Expected Payoff

 
Сохраняю я DetailedStatement, и вижу в отчете следующее
Expected Payoff: 128.20

Судя по описанию как расчитывается этот параметр
Expected Payoff = (ProfitTrades / TotalTrades) * (GrossProfit / ProfitTrades) - (LossTrades / TotalTrades) * (GrossLoss / LossTrades)
где:
TotalTrades - общее количество сделок;
ProfitTrades - количество прибыльных сделок;
LossTrades - количество убыточных сделок;
GrossProfit - общая прибыль;
GrossLoss - общий убыток.

У меня есть скрипт каторый делает еще более подробный отчет, расчитывая Expected Payoff для каждой закрытой позиции. Все данные беруться из:
OrderSelect(ticket, SELECT_BY_TICKET, MODE_HISTORY);

Так вот скрипт раньше все считал, с новым обновлением билда 194 (23 июня 2006), скрипт перестал записывать отчет в файл.

Исключил из отчета расчет функции Expected Payoff, все стало работать.
Начал разбираться и набрел в формуле деление на нуль. Т.к. в истории нет неодной убыточной закрытой позиции. Почему при сохранении DetailedStatement данный параметр расчитывается, а по тойже формуле но только скриптом не хочет. Что делать?!
 
Опубликуйте полный код функции, пожалуйста. Так точно сможем разобраться.
 
Опубликуйте полный код функции, пожалуйста. Так точно сможем разобраться.


Код можно куда-то выслать, типо на мыло, что-бы без посторонних глаз.
 
Опубликуйте полный код функции, пожалуйста. Так точно сможем разобраться.


Код можно куда-то выслать, типо на мыло, что-бы без посторонних глаз.

Лучше на stringo AT metaquotes . ru
 
//---- expected payoff
   if(ProfitTrades>0) avgprofit=GrossProfit/ProfitTrades;
   if(LossTrades>0)   avgloss  =GrossLoss/LossTrades;
   if(SummaryTrades>0)
     {
      profitkoef=1.0*ProfitTrades/SummaryTrades;
      losskoef=1.0*LossTrades/SummaryTrades;
      ExpectedPayoff=profitkoef*avgprofit-losskoef*avgloss;
     }


 
Это даблизация?
profitkoef=1.0*ProfitTrades/SummaryTrades;
losskoef=1.0*LossTrades/SummaryTrades;
 
А вот интересно.
Если позиция закрыта в "0", то, судя по DetailedStatement, она считается прибыльной, но на самом деле она и не прибыльная и не убыточная, нулевая. Её можно при расчетах отнести к таким ордерам как не сработавшим отложенным. Понту то от нее нету все равно. А если убрать такие позиции, то и цифры расчетов станут более правдоподобными. Ведь считаем только прибыльные и убыточные позиции.
Если я неправ, то почему скажем в формуле расчета "Expected Payoff" не использовать и все отложенные ордера, они же тоже были. Разницы нет, что удаленный отложенный, что в нуль закрытый ордер.
 
Это даблизация?
profitkoef=1.0*ProfitTrades/SummaryTrades;
losskoef=1.0*LossTrades/SummaryTrades;


Да
 
Это даблизация?
profitkoef=1.0*ProfitTrades/SummaryTrades;
losskoef=1.0*LossTrades/SummaryTrades;


Да


А такой вариант работать уже не будет, так?
profitkoef=ProfitTrades/SummaryTrades*1.0;
losskoef=LossTrades/SummaryTrades*1.0;
Причина обращения: