رد: موضوع مخصص للاسئلة والاستفسارات الخاصة بدورة تعليم البرمجة الاحترافية بلغة mql4
|
|
|
|
|
شكرا اخى اسلام
جربت الكود كما شرحت ولكنه لايغلق الصفقات
اكيد انا ركبت الاكواد غلط
يا ريت حضرتك تظبطلى الاكواد بحيث يغلق عند الاشارة العكسيه
كود:
double buy=iCustom(Symbol(),0,"LongSignal",2,2);
double sell=iCustom(Symbol(),0,"LongSignal",3,2);
if(buy<10000)buy=true;
if(sell<10000)sell=true;
if (buy<10000&&buy==true)
if(OrdersTotal()==0)
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,0,0,"Long BUY",MagicNumber,0,Blue);
if (sell<10000&&sell==true)
if(OrdersTotal()==0)
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,0,0,"Long SELL",MagicNumber,0,Blue);
|
|
|
|
|
،،،اولا يجب ان تتأكد من قيمة اندكس او اشارة المؤشر عند ظهورها على الشارت،،،
،،،بعد ذلك تقوم بوضع هذا المتغير فى global area ،،،
كود:
extern bool CloseOppisite = false;
،،،بعد ذلك تقوم بوضع الكود التالى،،،
كود:
int start()
{
//----
bool buysignal,sellsignal;
double buy=iCustom(Symbol(),0,"LongSignal",2,2);
double sell=iCustom(Symbol(),0,"LongSignal",3,2);
if(buy<10000)
{
buysignal=true;
sellsignal=false;
}
if(sell<10000)sell=true;
{
buysignal=false;
sellsignal=true;
}
if(buysignal==true&&CloseOppisite = True)CloseSellOrders();
if(sellsignal==true&&CloseOppisite = True)CloseBuyOrders();
if (buysignal==true)
if(OrdersTotal()==0)
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,0,0,"Long BUY",MagicNumber,0,Blue);
if (sellsignal==true)
if(OrdersTotal()==0)
OrderSend(Symbol(),OP_SELL,Lot,Bid,3,0,0,"Long SELL",MagicNumber,0,Red);
//----
return(0);
}
//+------------------------------------------------------------------+
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)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3);
}
}
}
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)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3);
}
}
}
return(0);
}
|