Как рассчитать объем сделки для покрытия серии убыточных сделок

 

Добрый день.

Может есть у кого нибудь функция, рассчитывающая объем сделки для покрытия серии убыточных сделок ?

Сделал так, не работает

//---- calcuulate number of losses orders without a break
if(DcF>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка в истории!");
break;
}
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL)
continue;
if(OrderProfit()>0) {loss=0; break;}
if(OrderProfit()<0) {losses++;loss=0-OrderProfit();Print("loss="+loss);}
}
if(losses>losses_orders) Lot=NormalizeDouble(MathAbs(loss)/MarketInfo(Symbol(),MODE_TICKVALUE)/TakeProfit,1);
}
}
//---- return lot size
if (Lot>lot) lot=Lot;
if(lot<0.1) lot=0.1;
return(lot);

 
Stells:

Добрый день.

Может есть у кого нибудь функция, рассчитывающая объем сделки для покрытия серии убыточных сделок ?

Сделал так, не работает

//---- calcuulate number of losses orders without a break
if(DcF>0)
{
for(int i=orders-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Ошибка в истории!");
break;
}
if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL)
continue;
if(OrderProfit()>0) {loss=0; break;}
if(OrderProfit()<0) {losses++;loss=0-OrderProfit();Print("loss="+loss);}
}
if(losses>losses_orders) Lot=NormalizeDouble(MathAbs(loss)/MarketInfo(Symbol(),MODE_TICKVALUE)/TakeProfit,1);
}
}
//---- return lot size
if (Lot>lot) lot=Lot;
if(lot<0.1) lot=0.1;
return(lot);

loss=loss-OrderProfit();

Ну и ветка есть специальная.

 
Есть у кого нибудь похожая функция для мт5? 
Причина обращения: