النتائج 1 إلى 5 من 5
- 21-07-2011, 04:55 PM #1
طلب مساعدتي في اصلاح اول اكسبيرت برمجته
السلام عليكم
اود من أحد الاخوة ان يساعدني في اصلاح الخطأ الموجود في هادا الاكسبيرت
فكرة الاكسبيرت واضحة
فقط لا ينفد الاوامر
fibo daily ayoubsamifx.mq4
آخر تعديل بواسطة ayoubsamifx ، 21-07-2011 الساعة 05:15 PM سبب آخر: ارفاق الاكسبيرت
- 21-07-2011, 08:35 PM #2
حتى تستطيع معرفة سبب الخطأ في الإكسبرت وعدم فتح الصفقه
يجب أن تذهب إلى خانة Journal سوف يظهر لك رقم الخطأ
وهذه قائمة بمعنى كل خطأ
http://docs.mql4.com/constants/errors
في الإكسبرت الخاص بك يظهر الخطأ رقم 130 وهذا يعني Invalid stops
فقد يكون الهدف أو الأستوب في مكان خاطئ ربما بسبب قربه من سعر وضع الأمر المعلق
لذلك يمكنك إستعمال الداله MathMax و MathMin بحيث إذا كان الهدف أو الأستوب أقل من أقرب سعر مسموح به يضع الأكسبرت الهدف والأستوب عند السعر المسموح به كمثال
مثلا ستجعل الأمر المعلق بهذا الشكل
كود PHP:OrderSend(Symbol(), OP_BUYSTOP, Lot, NormalizeDouble(r1,Digits), 5, MathMin(r1-MarketInfo(Symbol(),MODE_STOPLEVEL)*Point,r2), MathMax(pivo,r1+MarketInfo(Symbol(),MODE_STOPLEVEL)*Point), "Commentaire", magicnumberBuy, 0, Blue);
مرفق الإكسبرت بعد التعديل
- 22-07-2011, 03:02 PM #3
شكرا كتيرا اخ مستر دولار
وادا اردت أمر اغلاق جميع صفقات اليوم والغاء الصفقات الغير المفعلة قيل فتح الصفقات الجدد
- 22-07-2011, 10:46 PM #4
سوف تحتاج إلى عمل دالة لحذف وإغلاق جميع الصفقات كمثال
كود PHP:void CloseDeleteOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3);
}
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3);
}
if(OrderType()>OP_SELL)
{
OrderDelete(OrderTicket());
}
}
}
}
كود PHP:CloseDeleteOrders();
- 23-07-2011, 12:37 PM #5