المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : لاصحاب خبره في برمجه mql4


drissou45
23-04-2018, 06:53 PM
السلام عليكم اريد كود عندما يصل مجموع الصفقات الى 10 دولار خساره ,يغلق جميع الصفقات,

salamandal
24-04-2018, 01:41 PM
السلام عليكم
هذه دالة لإغلاق الصفقات
void CloseOrders(){
int _total=orderstotal();
int type;
if (_total==0) {return;}
int ticket;double priceClose;
for (int b=_total-1;b>=0;b--){
if(OrderSelect(b,SELECT_BY_POS)){
type=OrderType();
ticket=OrderTicket();
switch(type){
case OP_BUY:
priceClose=MarketInfo(OrderSymbol(),MODE_BID);
OrderClose(ticket,OrderLots(),priceClose,3);
break;
case OP_SELL:
priceClose=MarketInfo(OrderSymbol(),MODE_ASK);
OrderClose(ticket,OrderLots(),priceClose,3);
break;
default:
break;
}
}
}
}

استدعاء الدلة يكون بوضع السطر البرمجي التالي في دالة Start

if(AccountProfit()>=10){CloseOrders();}


دمت بود

drissou45
24-04-2018, 08:52 PM
اخي شكرا لك ولكن هناك مشكله لاحض صوره

https://www.fx-arabia.com/vb/uploaded/17579_11524592339.jpg

salamandal
24-04-2018, 11:50 PM
اخي شكرا لك ولكن هناك مشكله لاحض صوره

https://www.fx-arabia.com/vb/uploaded/17579_11524592339.jpg

هذا تنبيه فقط . والدالة تعمل بشكل عادي عند تضمينها في الاكسبرت

تستطيع البحث عن دوال اخرى للإغلاق وتستدعيها بنفس الطريقة

waddah
25-04-2018, 09:01 PM
اول شئ تعرف متحول خارجي تضع فيه قيمة الخسارة بالدولار التي تريد تنفيذ الإغلاق عندها

input double USD_LOSE = -10

2- دالة حساب الربح والخسارة
3- دالة الإغلاق


4 - تضع شرط الإغلاق في دالة الإكسبرت الأساسية ويفضل ان تضعها في البداية أي قبل شروط فتح الصفقات

لم أستطع ارفاق الكود في الرد لذلك ارفقت لك ملف مفتوح الكود اتمنى ان يكون واضح

drissou45
28-04-2018, 12:27 AM
شكرا لك اخي مادا تعني 2- دالة حساب الربح والخسارة
اليس هي AccountProfit()

if(AccountProfit()==10)
{closeall();}

waddah
28-04-2018, 08:40 PM
الفرق : Accountprofit تعطيك الربح والخسارة للصفقات المفتوحة من قبل الإكسبرت او الصفقات الأخرى المنفذة يدويا على زوج آخر مثلا .....الدالة التي ارسلتها لك تعطي ربح او خسارة الصفقات المفتوحة حصرا من قبل الإكسبرت فقط