Расчет просадок при тестировании эксперта

 

Объясните, пожалуйста, каким образом считаются просадки после тестирования эксперта.

пример результатов тестирования ( ТФ=1М, поэтому качество 25% ):

Баров в истории 8082
Смоделировано тиков 220521
Качество моделирования 25.00%
Ошибки рассогласования графиков 0
Начальный депозит 5000.00
Чистая прибыль -52.64
Общая прибыль 22.32
Общий убыток -74.95
Прибыльность 0.30
Матожидание выигрыша -8.77

Абсолютная просадка 91.14
Максимальная просадка 138.27 (2.74%)
Относительная просадка 2.74% (138.27)

Полный список сделок:

1 2009.07.01 03:05 buy 1 0.10 96.510 0.000 0.000 0.00 5000.00
2 2009.07.01 03:07 modify 1 0.10 96.510 95.581 0.000 0.00 5000.00
3 2009.07.01 03:30 modify 1 0.10 96.510 96.495 0.000 0.00 5000.00
4 2009.07.01 15:16 s/l 1 0.10 96.495 96.495 0.000 -1.56 4998.44
5 2009.07.02 14:20 buy 2 0.10 96.877 0.000 0.000 0.00 4998.44
6 2009.07.02 14:54 close 2 0.10 96.245 0.000 0.000 -65.67 4932.77
7 2009.07.02 14:54 sell 3 0.10 96.245 0.000 0.000 0.00 4932.77
8 2009.07.02 15:08 modify 3 0.10 96.245 96.860 0.000 0.00 4932.77
9 2009.07.02 15:10 modify 3 0.10 96.245 96.248 0.000 0.00 4932.77
10 2009.07.02 19:50 modify 3 0.10 96.245 96.058 0.000 0.00 4932.77
11 2009.07.03 02:10 sell 4 0.10 95.713 0.000 0.000 0.00 4932.77
12 2009.07.03 05:29 s/l 3 0.10 96.058 96.058 0.000 19.37 4952.14
13 2009.07.06 02:02 sell 5 0.10 95.784 0.000 0.000 0.00 4952.14
14 2009.07.06 02:31 modify 4 0.10 95.713 96.105 0.000 0.00 4952.14
15 2009.07.06 02:31 modify 5 0.10 95.784 96.105 0.000 0.00 4952.14
16 2009.07.06 02:36 modify 4 0.10 95.713 95.785 0.000 0.00 4952.14
17 2009.07.06 02:36 modify 5 0.10 95.784 95.785 0.000 0.00 4952.14
18 2009.07.06 02:46 s/l 4 0.10 95.785 95.785 0.000 -7.62 4944.51
19 2009.07.06 02:46 s/l 5 0.10 95.785 95.785 0.000 -0.10 4944.41
20 2009.07.07 18:34 sell 6 0.10 94.806 0.000 0.000 0.00 4944.41
21 2009.07.07 23:59 close at stop 6 0.10 94.778 0.000 0.000 2.95 4947.36

Цитата из справки MT4:

Абсолютная просадканаибольший убыток ниже значения начального депозита;

Смотрим в список сделок - видим наибольший убыток: 5000 - 4932.77 = 67.23$

Смотрим в отчет тестера - видим наибольший убыток: 91.14$

Аналогично и с максимальной просадкой - нигде нету такого минимума ни баланса, ни эквити.

Что-то туплю, никак не пойму в чем дело... или считают на самом деле по другому или...?

 
Dima_S. писал(а) >>

Объясните, пожалуйста, каким образом считаются просадки после тестирования эксперта.

пример результатов тестирования ( ТФ=1М, поэтому качество 25% ):

Баров в истории 8082
Смоделировано тиков 220521
Качество моделирования 25.00%
Ошибки рассогласования графиков 0
Начальный депозит 5000.00
Чистая прибыль -52.64
Общая прибыль 22.32
Общий убыток -74.95
Прибыльность 0.30
Матожидание выигрыша -8.77

Абсолютная просадка 91.14
Максимальная просадка 138.27 (2.74%)
Относительная просадка 2.74% (138.27)

Абсолютная просадканаибольший убыток ниже значения начального депозита;

Смотрим в список сделок - видим наибольший убыток: 5000 - 4932.77 = 67.23$

Смотрим в отчет тестера - видим наибольший убыток: 91.14$

Аналогично и с максимальной просадкой - нигде нету такого минимума ни баланса, ни эквити.

Что-то туплю, никак не пойму в чем дело... или считают на самом деле по другому или...?

Так просадка считается не по закрытым сделкам, а по падению эквити

 
Dima_S. писал(а) >>

ОК. Виктор, спасибо за ответ.

тогда так - вот в статье 'Самостоятельная оценка результатов тестирования эксперта' описывается функция для расчета результатов тестирования.

смотрим текст:

void CalculateSummary(double initial_deposit)
  {
   int    sequence=0, profitseqs=0, lossseqs=0;
   double sequential=0.0, prevprofit=EMPTY_VALUE, drawdownpercent, drawdown;
   double maxpeak=initial_deposit, minpeak=initial_deposit, balance=initial_deposit;
   int    trades_total=HistoryTotal();
//---- initialize summaries
   InitializeSummaries(initial_deposit);
//----
   for(int i=0; i<trades_total; i++)
     {
      if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;
      int type=OrderType();
      //---- initial balance not considered
      if(i==0 && type==OP_BALANCE) continue;
      //---- calculate profit
      double profit=OrderProfit()+OrderCommission()+OrderSwap();
      balance+=profit;
      //---- drawdown check
      if(maxpeak<balance)
        {
         drawdown=maxpeak-minpeak;
         if(maxpeak!=0.0)
           {
            drawdownpercent=drawdown/maxpeak*100.0;
            if(RelDrawdownPercent<drawdownpercent)
              {
               RelDrawdownPercent=drawdownpercent;
               RelDrawdown=drawdown;
              }
           }
         if(MaxDrawdown<drawdown)
           {
            MaxDrawdown=drawdown;
            if(maxpeak!=0.0) MaxDrawdownPercent=MaxDrawdown/maxpeak*100.0;
            else MaxDrawdownPercent=100.0;
           }
         maxpeak=balance;
         minpeak=balance;
        }
      if(minpeak>balance) minpeak=balance;
      if(MaxLoss>balance) MaxLoss=balance;
//---- final drawdown check
   drawdown=maxpeak-minpeak;
   if(maxpeak!=0.0)
     {
      drawdownpercent=drawdown/maxpeak*100.0;
      if(RelDrawdownPercent<drawdownpercent)
        {
         RelDrawdownPercent=drawdownpercent;
         RelDrawdown=drawdown;
        }
     }
   if(MaxDrawdown<drawdown)
     {
      MaxDrawdown=drawdown;
      if(maxpeak!=0) MaxDrawdownPercent=MaxDrawdown/maxpeak*100.0;
      else MaxDrawdownPercent=100.0;
     }
//---- absolute drawdown
   AbsoluteDrawdown=initial_deposit-MaxLoss;
  }
Видим, что анализируются исключительно закрытые сделки.
 
Dima_S. писал(а) >>
Видим, что анализируются исключительно закрытые сделки.

Я заметил. Что не совсем верно.

 
Vinin писал(а) >>

Я заметил. Что не совсем верно.

В том то и дело. При этом, конечный результат полностью совпадает с тестером ( в статье имеется в виду ). Совпадение ( эквити не опускалась ниже ) или...?

 
Dima_S. писал(а) >>

В том то и дело. При этом, конечный результат полностью совпадает с тестером ( в статье имеется в виду ). Совпадение ( эквити не опускалась ниже ) или...?

Если закрытие по стоплоссу, то должно совпадать . Без стопов - могут быть варианты. Хотя вариант только один. ЧТо просадка фактическая была больше.

 
Dima_S. писал(а) >>

В том то и дело. При этом, конечный результат полностью совпадает с тестером ( в статье имеется в виду ). Совпадение ( эквити не опускалась ниже ) или...?

Посмотрел как менялась эквити в моем примере по всем 6-и сделкам - нет там нигде ни 91, ни 138. Ладно, запишем пока в загадки)

 
лучший индикатор Хирурга со свечами
Причина обращения: