 |
 |
|
 |
|
،،،وعليكم السلام ورحمة الله وبركاتة،،،
،،،اولا سوف تحتاج الى دالة لمعرفة اكبر ربح موجود،،،
كود:
double MaxProfit()
{
for(int i = OrdersTotal() - 1; i >= 0; i--)
{
if( OrderSelect(i, SELECT_BY_POS) && OrderMagicNumber()== MagicNumber && OrderSymbol()== Symbol() )
{
if( iBarShift(NULL,0,OrderOpenTime(),false) > 1 )
{
double Max_Profit = MathMax(Max_Profit,OrderProfit() );
}
else
{
Max_Profit = OrderProfit();
}
}
}
return(Max_Profit);
}
،،،بعد ذلك تحتاج الى دالة تقوم بالمرور على الصفقات واختيار صفقة واحدة ربحها اكبر من او يساوى اعلى ربح وتقوم باغلاقها،،،
كود:
void CloseMaxProfit()
{
int ticket;
double profit = MaxProfit();
for (int i =1 ;i>0;i--)
{
for (int x = OrdersTotal()-1;x>0;x--)
{
OrderSelect(x,SELECT_BY_POS);
if (OrderProfit() >= profit) ticket = OrderTicket();
}
OrderSelect(ticket,SELECT_BY_TICKET);
if (OrderType() == OP_BUY)
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),NULL);
if (OrderType() == OP_SELL)
OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),NULL);
}
}
|
|
 |
|
 |
استاذى الغالى اسلام
اسف والله لانى بتعبك معى كثيرا
لكن الكود المكتوب هنا الان لايغلق اكبر صفقه رابحه .. ولكن يغلق اخر صفقه دائما كلما فتحت .. ( باعتبار ان اخر صفقه هى اكبر صفقه )...
وبالتالى فهو بيصفر الحساب فى اربع ساعات فقط
*****
المطلوب *****
عندما يرتد السعر ويفتح صفقه
شراء يشوف صفقات البيع الرابحه
ويغلق اكبر صفقه رابحه فقط
وعندما يرتد السعر ويفتح صفقه
بيع يشوف صفقات الشراء الرابحه
ويغلق اكبر صفقه رابحه فقط
.................................................. .......................................
ومطلوب نفس الطلب السابق ولكن لاغلاق اقل صفقه رابحه اخى اسلام ..
يعنى نفس الطلب ولكن على اغلاق اقل لوت حجما رابح ..
أرجوا ان تكون فكرتى وصلتك استاذى الكريم
فأنا اجرب بعض الامور واريد ان اعرف ايهما افضل
وأسف استاذى الغالى على تعبك معنا
ربنا يزيدك من فضله وعلمه
اللهم امين