سأخبرك السبب
إحنا عرفنا الداله بالشكل الآتي
فلاح عند بداية المقارنه قيمة balance=0كود PHP:double MaxProfit(){
double maxprofit,profit;
for(int i=0;i<=OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
profit+=OrderProfit();
}
double balance=AccountBalance()-profit;
for( i=0;i<=OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
balance+=OrderProfit();
if(balance>maxprofit)maxprofit=balance;
}
return(maxprofit);
}
فعندما يقارن
فإذا خسرت الصفقة الأولى وأصبح البالانس مثلا 9000 فسوف تكون 9000>0 فتصبح قيمة maxprofit=9000كود PHP:if(balance>maxprofit)maxprofit=balance;
لذلك كان يجب أن نضع اولا maxprofit=balance;
فسوف تصبح قيمة maxprofit عند بداية البحث 10000 ثم عند أول مقارنه balance>maxprofitكود PHP:double MaxProfit(){
double maxprofit,profit;
for(int i=0;i<=OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
profit+=OrderProfit();
}
double balance=AccountBalance()-profit;
maxprofit=balance;
for( i=0;i<=OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
balance+=OrderProfit();
if(balance>maxprofit)maxprofit=balance;
}
return(maxprofit);
}
فإذا كانت قيمة balance خاسرة في أول صفقه فلن يتم حفظها كبداية نتيجة
مرفق الإكسبرت بعد التعديل

