تحيه شكر وتقدير لشخصك الكريم اخ اسامه والشكر موصول للاخ جميل لمحاولاته الدائمه للمساعده
Printable View
تحيه شكر وتقدير لشخصك الكريم اخ اسامه والشكر موصول للاخ جميل لمحاولاته الدائمه للمساعده
سوف تقوم بعمل دالة لمعرفة ربح آخر صفقة مفتوحه
ثم ستقوم بعمل دالة لمعرفة هدف الصفقات المفتوحه و إذا كان هدفها لا يساوي هدف آخر صفقة يقوم بتعديل الهدفكود PHP:double LastOrderProfit(int type)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type)
{
return(OrderTakeProfit());
}
}
return(0);
}
مثال
وبالنسبه إذا أردت أن تجعل الكود يعمل على جميع العملات وتضعه على شارت واحد فقط فيمكن أن تلغي الشرطكود PHP:void ModifyOrders(int type)
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type)
{
if(OrderTakeProfit()!=LastOrderProfit(type))
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),LastOrderProfit(type),0);
}
}
}
}
عندها سيعمل على جميع العملاتكود PHP:OrderSymbol()==Symbol()
بالنسبه للأمر المعلق فيمكن أن تبحث عن عدد الأوامر المعلقه المفتوحه إذا لم يكن هناك أوامر معلقه مفتوحه فستضع الأمر الجديد
بحيث تبحث في الأمر المفتوح وتحفظ حجم اللوت له ( نفس الداله السابقه لكن بدلا من حفظ الهدف ستحفظ حجم اللوت )
ثم تفتح الأمر الجديد بحجم لوت ( آخر لوت * 2 )
جزاك الله خيرا يا باشمهندس وبارك الله فيك بجد إنت إنسان معطاء والله لا أجد كلمات تعبر عن شكرى وإمتنانى لحضراتكم
ولكن بالنسبة لكود الأمر المعلق الذى شرحته لى لم أفهمه تماما فمعلش ممكن كود هذ الأمر ولو بمثال 0.07 buy stop ,وإذا تفعل يضع أمر معلق 0.24 sell stop سامحنى أخى أنى تعبتك معايا
أستاد MR.dollar أرد أن أجمع هده الدوال في دالة واحدة .حيت يكون سطر واحد من OrderSend و وضع متغيرات في نقاط الدخول و stop loss و take profitكود PHP:OrderSend(Symbol(),OP_BUY,Lots ,NormalizeDouble( 1.3770 ,Digits),3, 1.3760 , 1.3790 ,"EA",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_BUY,Lots ,NormalizeDouble( 1.3740 ,Digits),3, 1.3730 , 1.3760 ,"EA",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_BUY,Lots ,NormalizeDouble( 1.3710 ,Digits),3, 1.3700 , 1.3730 ,"EA",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_BUY,Lots ,NormalizeDouble( 1.3680 ,Digits),3, 1.3670 , 1.3700 ,"EA",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_BUY,Lots ,NormalizeDouble( 1.3650 ,Digits),3, 1.3640 , 1.3670 ,"EA",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_BUY,Lots ,NormalizeDouble( 1.3620 ,Digits),3, 1.3610 , 1.3640 ,"EA",MagicNumber,0,Blue);
OrderSend(Symbol(),OP_BUY,Lots ,NormalizeDouble( 1.3590 ,Digits),3, 1.3580 , 1.3610 ,"EA",MagicNumber,0,Blue);
السلام عليكم
ارجو المساعدة
ماهو الخطا الموجود فى الجورنال فى صورة الشارت
وكيف يتم الاصلاح
وكيف يتم معرفة اى خطا فى الجورنال وكيف يتم اصلاحه
ولكم الشكر والتقدير
السلام عليكم و رحمه الله و بركاته
لو سمحت ..
1-متعرفش كود او اى وسيله تخفى الصفقات "يبقى الاكسبرت شغال بس محدش شايف هوة بيعمل ايه"..؟؟
2-متعرفش طريقه اجيب بيها profit as point !!?
وعليكم السلام ورحمة الله وبركاته
السبب فعلا كما أخبرك الأخ جميل وهذا أيضا قد تلاحظه يحدث يدويا أحيانا أو ربما بسبب ضعف الإتصال بالنت
جرب إستخدم الداله RefreshRates
جميع الأخطاء يجب أن تعرف سبب وإذا عرفت سببها فسوف تعرف الحل
هذا الرابط به جميع أرقام الأخطاء وسببها
http://docs.mql4.com/constants/errorswarnings
وعليكم السلام ورحمة الله وبركاته
لا يمكن أن تخفي الصفقات لكن يمكن أن تخفي الهدف و الأستوب مثلا بأن تجعله = 0 وعندما يصل السعر إلى الهدف أو الأستوب تجعل الإكسبرت يغلق الصفقه
يمكن أن تحسب الربح بالنقاط اللصفقه بأن تطرح سعر إفتتاح الصفقه - السعر الحالي أو العكس في صفقة الشراء