السلام عليكم و رحمه الله تعالى وبركاته
بصراحة أفضل العمل بالأوامر المتتالية أي بمجموعة أوامر مفتوحة و معلقة .. و حين يكون مجموع الأوامر اكبر من الربح المراد تحقيقه , تتم غلق جميع الأوامر في نفس الوقت .
هذه الطريقة أحب لي في التداول في الأسواق بنفسية عالية جدا ..... لكن تواجهني مشكلة في دالة غلق كل الأومر في نفس الوقت ... وجدت الكثير منها لكن لم أجد ما أطبه في حين غلق الأوامر . يجب غلق الأوامر بشرط أن يبدأ بالأوامر الأقل ربحا ثم الأعلى ربحا , من الأسفل إلى الأعلى .. و من الأحسن بدأ الإغلاق بالأوامر الخاسرة ..
الدالة المراد تعديلها
void CloseAll()
{
bool Result;
int i,Pos,Error;
int Total=OrdersTotal();
if(Total>0)
{
for(i=Total-1; i>=0; i--)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
Pos=OrderType();
if(Pos==OP_BUY)
{Result=OrderClose(OrderTicket(), OrderLots(), Bid, 100, CLR_NONE);}
if(Pos==OP_SELL)
{Result=OrderClose(OrderTicket(), OrderLots(), Ask, 100, CLR_NONE);}
if((Pos==OP_BUYSTOP)||(Pos==OP_SELLSTOP)||(Pos==OP _BUYLIMIT)||(Pos==OP_SELLLIMIT))
{Result=OrderDelete(OrderTicket(), CLR_NONE);}
//-----------------------
if(Result!=true)
{
Error=GetLastError();
Print("LastError = ",Error);
}
else Error=0;
//-----------------------
}
}
}
return(0);
}
شكرا لأي إستفسار