الأوامر المعلقه ميزتها أن مناطق الدخول ستكون محدده بالضبط وستحمي نفسك من إعادة التسعير أو بطئ تنفيذ الأمر
لكن عيبه هو إبتعاد السعر عن الأمر المعلق وبالتالي ستعيد النظر في الأمر المعلق سواء بحذفه أو تعديله
Printable View
اشكرك استاذ اسامه
استاذ أسامة ، فـ الاكسيبرت المرفق انا حاولت وضع شرط يقوم بالتالى ، اذا تم فتح الصفقة فـ الشمعة الحالية الاستوب لهذه الصفقة سيكون سعر إغلاق الشمعة السابقة لها مباشرة ، قمت بعمل دالة لتحديد سعر إغلاق الشمعة السابقة ووضعت شرط المقارنة داخل ستارت كالتالى ..
ولكن لايتم إغلاق الصفقة على سعر إغلاق الشمعة السابقةكود PHP:if(Ask==ClosePrice()||Bid==ClosePrice()){CloseOrders();}
اساتذتى الكرام
اريد كود لعمل مضاعفات بمعنى ان عندما يتحقق شروط الاستراتيجية يقوم الاكسبيرت عادى بفتح عقد ب10 سنت ولما يخسر العقد .. يروح الاكسبيرت مستنى تحقق الشروط ويروح داخل لكن ب20 سنت ويخسر فيروح داخل تانى لما الشروط تتحقق ب30 سنت وهكذا الى ان يربح صفقة واحدة فيعود لفتح الصفقة ب10 سنت وهكذا
وشكرا لكم
يعطيكم العافيه اخواني احاول اعمل استدعاء للمؤشر الرفق لكن لا يعمل عن طريق icustom
مع العلم اني احاول اعمل عليه تجربه ودمجه في سكربت الاستاذ اسامه محاوله فقط شراء عند اللون والبيع عند العكس
وضعت برنت لمعرفة القيمة لدالة الاستدعاء كل الارقام متشابهه 21687878959 رقم كبير
وايضا هناك رساله تقول arrayresize function incorrect
ولكم تحياتي
كل سنة وانتوطيبين ورمضان كريم
هل يمكن ان يغلق اكسبرت عند ربح معين او نسبة من الاكويتي لصفقات اكسبرت اخر
أنت تريد دالة لمعرفة سعر إغلاق الشمعه السابقه للشمعه التي تم فتح الصفقه فيها
بالنسبه للداله التي قمت بعملها
أنت بحثت عن الصفقات المغلقه الموجوده في الهيستوري وهذا أول خطأ ثانيا الداله ستعود بسعر إغلاق الشمعه السابقه فقط مهما كان توقيت فتح أو إغلاق الصفقهكود PHP:double ClosePrice(){
for(int i=0;i<OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
double ClosePrice=Close[1];
}
}
return(ClosePrice);
}
ثانيا لست بحاجه إلى عمل داله لمعرفة سعر إغلاق الشمعه السابقه فيمكنك بعد فتح الصفقه تقوم بحفظ سعر الإغلاق مباشرة
بالتالي لن تتغير هذه القيمه إلا بعد فتح صفقه جديدهكود PHP:int ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,digits),5*Q,0,0," EA",MagicNumber,0,Blue);
double buysl=Close[1];
أو
إذا أردت عمل داله فسوف تحتاج لمعرفة توقيت فتح الصفقه أولا ثم حفظ سعر الإغلاق
كود PHP:double ClosePrice(){
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
int bar=iBarShift(Symbol(),0,OrderOpenTime(),false);
double ClosePrice=Close[bar+1];
}
}
return(ClosePrice);
}
سوف تحتاج لعمل داله لمعرفة آخر صفقه هل أغلقت على ربح أو خساره
وداله لمعرفة حجم لوت آخر صفقهكود PHP:bool LP(){
for(int i=OrdersHistoryTotal();i>0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(OrderProfit()>=0)return(true);
else return(false);
}
}
return(true);
}
ثم ستضع الشروط قبل أمر فتح الصفقهكود PHP:double LastLot(int Q){
int d;
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
double L=OrderLots();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
d++;
if(d==Q)return(L);
}
}
}
مثال راجع الإكسبرت المرفقكود PHP:if(UseXMultiplier&&LP()==false)newLot=LastLot(1)*Multiplier;
OrderSend(Symbol(),OP_BUY,newLot,NormalizeDouble(Ask,Digits),3*Q,SL,TP,"MR.dollar EA",MagicNumber,0,Blue);Time0=Time[0];}
هذا رابط الموضوع
https://forum.arabictrader.com/t111353.html
اتفضل استاذ اسامه الاكسيبيرت اصلا لموضوع تعليمي اخذت الكود وحاولت اعدل عليه ولك تحياتي استاذي الفاضل