
04-12-2013, 09:32 AM
|
|
رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
،،،اولا ستقوم بحجز متغير من النوع bool بأى اسم
كود:
extern bool CloseOppisite = false;
بعد ذلك تكتب الكود التالى قبل اكواد فتح الصفقات بحيث اذا تحققت شروط الشراء وفى نفس الوقت قيمة المتغير CloseOppisite تساوى true يقوم الاكسبيرت بغلق صفقات البيع والعكس وفى حالتنا هذه سنستخدم الموفنج كشرط دخول
كود:
if ( (mafast2<maslow2&&mafast1>maslow1&&CloseOppisite==true ))
CloseSellOrders();
if ((mafast2>maslow2&&mafast1<maslow1&&CloseOppisite==true))
CloseBuyOrders();
وتقوم بعمل وظيفتين لغلق البيع او الشراء
كود:
int CloseBuyOrders()
{
for (int i = 0 ; i < OrdersTotal() ; i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
bool y=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3*t);
while(y==false){y=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3*t);Sleep(1000);}
}
}
}
return(0);
}
int CloseSellOrders()
{
for (int i = 0 ; i < OrdersTotal() ; i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_SELL)
{
bool y=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),3*t);
while(y==false){y=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),3*t);Sleep(1000);}
}
}
}
return(0);
}
 |
 |
|
 |
|
اخى الكريم الاستاذ اسلام العوامى
اسمح لى بان اضع اجتهادى ف الرد وانت تصحح الخطأ
>>
كود:
extern bool reversesignal= true;
; ()if(buy condition) closeOrder
; ()if(sell condition) closeOrder
ونعمل دالة closeorder
void closeordar(int typer){
for(int c=0;c<OrdersTotal();c++){
OrderSelect(c,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()&&OrderType()== typer){
if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,30);
if(OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,30);
}
}
}
انا مش عارف اكتب الكود هنا ف المنتدي
علشان مش شايف الترتيب |
|
 |
|
 |
الكود صحيح ولكن يلزم ان تضع شرط
كود:
if (reversesignal= true)
قبل الكود السابق
|