وعليكم السلام
أخي الكريم
يجب أن تضع شروط معينة لاغلاق الصفقة الأولى، أو تقوم بتمييزها عن طريق الماجك نمبر او الكومنت او حتى بمتغير،
مثلا عند فتح اول صفقة تقوم بحفظ التيكت الخاص بها والافضل عن طريق دوال الجلوبال لضمان الحفظ
وبعد تحقق شرط الاغلاق تقوم باغلاق الصفقة ذات التيكت المحفوظ، ولا تحذف الحفظ إلا بعد اغلاق الصفقات،
مثال:
هذا فقط مثال توضيحي ويمكنك تعديل الشروط بما تريد كتحديد زوج الاغلاق والماجك نمبر وغيرها ...كود PHP:
datetime time=0;
void OnTick()
{
if(OrdersTotal()==0)GlobalVariableDel("Ticket");
if(Close[1]>Open[1]&&time!=Time[0]&&Volume[0]<5)//شرط الشراء مثلا
{
int ticket=OrderSend(Symbol(),OP_BUY,0.1,NormalizeDouble(Ask,Digits),10,0,0,"",0,0,Blue);
if(ticket>0&&GlobalVariableGet("Ticket")==0)GlobalVariableSet("Ticket",ticket);//شرط الحفظ
time=Time[0];
}
if(Close[1]<Open[1])CloseBuyOrder();//وهنا مثلا شرط اغلاق الصفقة ذات التكت المحفوظ سلفا
}
void CloseBuyOrder()
{
for(int i=0;i<OrdersTotal();i++)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrdersTotal()>0&&OrderTicket()==GlobalVariableGet("Ticket"))
{
if(OrderType()==OP_BUY)
{
bool close=OrderClose(GlobalVariableGet("Ticket"),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),10);
}
}
}
}