Управление рисками

 

Есть у меня хорошая ТС . Есть и робот и сигнал и мониторинг. Но вот примерно неделю назад начал мой обот активно сливать. Риски стоят заоблачные для многих, но именно  такой риск позволяет делать по несколько сотен процентов в месяц. 

Теперь суть вопроса: 

Какие есть алгоритмы расчета риска?

Основная идея в том что чем больше просадка от максимума, тем сильнее снижается риск. 

input double        FactorRisk = 2;
input double        StepPoint = 30;
input int           CountDeals = 35;

double HistoryRisk()
{
   double PipsBalance[];
   ArrayInitialize(PipsBalance,-1);
   ArrayResize(PipsBalance,CountDeals);
   
   int y = 0;
   for (int i=OrdersHistoryTotal(); i>=0; i--)
      {
         if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
          {
            if (OrderSymbol()==_Symbol && OrderMagicNumber()==mag)
             {
              if (OrderType() == OP_BUY)
               {
                  PipsBalance[y] = ND2(((OrderClosePrice()-OrderOpenPrice())/_Point)+(OrderCommission()+OrderSwap())/OrderLots());
                  y++;
               }
              if (OrderType() == OP_SELL)
               {
                  PipsBalance[y] = ND2(((-OrderClosePrice()+OrderOpenPrice())/_Point)+(OrderCommission()+OrderSwap())/OrderLots());
                  y++;
               }
             }
            if (y>=CountDeals) break;
          }
      }
    if (y<CountDeals) ArrayResize(PipsBalance,y);
   
   double ChangeBal[];
   ArrayResize(ChangeBal,y);
  
  //if (y>5) Print (PipsBalance[0],"   ",PipsBalance[1],"   ",PipsBalance[2],"   ",PipsBalance[3],"   ",PipsBalance[4],"   ",PipsBalance[5]);
  if (y<1) return 1;
   ChangeBal[0] = 10000-PipsBalance[0];
   for (int k = 1; k<y; k++)
   {
      ChangeBal[k] = ChangeBal[k-1]-PipsBalance[k];
   }
   
   double ChB[];
   ArrayResize(ChB,y);
   
   for (int k=0;k<y;k++)
   {
      ChB[k]=ChangeBal[k];
   }
   int max = ArrayMaximum(ChangeBal);
   int min = ArrayMinimum(ChangeBal);
   if (max==0) return 1 ;
   
   double factor = ((ChangeBal[max]-ChangeBal[min])*0.5-(10000-ChangeBal[0])*0.5)/10/StepPoint;
   if (factor <1) return 1;
   double rez = MathPow(FactorRisk,factor);
   
   
   return rez;
   }

Суть этого кода в том rez увеличивается с просадкой и уменьшается с появлением положительной динамики в пунктах. 

Прошу код сильно не критиковать, как думал, так и писал. Знаю что есть и избыточные циклы и возможно с массивами не очень хорошо. Но рабоатет и ладно. Все равно рещультат далек от идеала.

 
Dmitiry Ananiev:

Есть у меня хорошая ТС . Есть и робот и сигнал и мониторинг. Но вот примерно неделю назад начал мой обот активно сливать. Риски стоят заоблачные для многих, но именно  такой риск позволяет делать по несколько сотен процентов в месяц. 

Теперь суть вопроса: 

Какие есть алгоритмы расчета риска?

Основная идея в том что чем больше просадка от максимума, тем сильнее снижается риск. 

Суть этого кода в том rez увеличивается с просадкой и уменьшается с появлением положительной динамики в пунктах. 

Прошу код сильно не критиковать, как думал, так и писал. Знаю что есть и избыточные циклы и возможно с массивами не очень хорошо. Но рабоатет и ладно. Все равно рещультат далек от идеала.

Я предпочитаю использовать расчёт Вильямса, то есть фиксированный размер потерь от депозита, на уровне стопа. По итогу, чем больше стоп - тем меньше лот.

 
ну идея не новая и актуальная. только она никак не учитывает предыдущую торговлю
 
Dmitiry Ananiev:

Какие есть алгоритмы расчета риска?

У меня две статьи на эту тему: первая и продолжение.

 

Спасибо за статью конечно. Всегда думал что я не глупый чел. 

Но можно как то простыми словами выразить то что написано в таких не простых даже для меня статьях ? 

Цифры мне как бы не очень важны, Можно саму суть. Ну типа считаем прибыль за 10 сделок. и что-то с этими числами делаем. 

 
Dmitiry Ananiev:

примерно неделю назад начал мой обот активно сливать.

Основная идея в том что чем больше просадка от максимума, тем сильнее снижается риск. 

Суть этого кода в том rez увеличивается с просадкой и уменьшается с появлением положительной динамики в пунктах.

Dmitiry Ananiev:
учитывает предыдущую торговлю

Если ТС сломалась, как произошло в упомянутой системе, то предлагаемое увеличение риска только бы ускорило слив.


Интуитивно, конечно, кажется верным, что если большая серия выигрышей, то надо снижать риск, т.к. вероятность черного лебедя растет. А если хватанули огромный убыток, то тогда растет уже вероятность серии выигрышей. Но это подтвердить или опровергнуть может только анализ сделок в Тестере. Вы же предлагаете почти на авось, исключительно вот на таком интуитивном понимании рисков, создать массу функций расчетов лота и перебором в Тестере подключать каждую в режиме Оптимизации, оценивая результат. Наверное, случайно можно нарваться на интересный результат. Но маловероятно.


Можно попробовать найти сочетание разных входных параметров одной и той же ТС, чтобы их объединенный эквити (с разным весовыми коэффициентами) давал макс. фактор восстановления, например.

 
fxsaber:

Если ТС сломалась, как произошло в упомянутой системе, то предлагаемое увеличение риска только бы ускорило слив.


Интуитивно, конечно, кажется верным, что если большая серия выигрышей, то надо снижать риск, т.к. вероятность черного лебедя растет. А если хватанули огромный убыток, то тогда растет уже вероятность серии выигрышей. Но это подтвердить или опровергнуть может только анализ сделок в Тестере. Вы же предлагаете почти на авось, исключительно вот на таком интуитивном понимании рисков, создать массу функций расчетов лота и перебором в Тестере подключать каждую в режиме Оптимизации, оценивая результат. Наверное, случайно можно нарваться на интересный результат. Но маловероятно.


Можно попробовать найти сочетание разных входных параметров одной и той же ТС, чтобы их объединенный эквити (с разным весовыми коэффициентами) давал макс. фактор восстановления, например.

Речь шла о снижении риска в серии убыточных сделок. 
В тестере показывает прибыль года 2 ибольше. Не верю что так быстро все поломалось. Надо только автоматизировать снижкеие риска чтоб не сливало так. 
 
Dmitiry Ananiev:
Речь шла о снижении риска в серии убыточных сделок. 
В тестере показывает прибыль года 2 ибольше. Не верю что так быстро все поломалось. Надо только автоматизировать снижкеие риска чтоб не сливало так. 

Как один из множества вариантов. Переходите на мин. лот сразу после серьезного убытка. Далее включайте обычный ММ-режим, как только в пипсах дальнейшая прибыль отобьет 50% убытка в пипсах.

 
fxsaber:

Как один из множества вариантов. Переходите на мин. лот сразу после серьезного убытка. Далее включайте обычный ММ-режим, как только в пипсах дальнейшая прибыль отобьет 50% убытка в пипсах.

 С этим вариантом более менее понятно. Какие еще есть варианты? Изначально торговля идет с максимально возможным  риском 
 
Dmitiry Ananiev:
 С этим вариантом более менее понятно. Какие еще есть варианты? Изначально торговля идет с максимально возможным  риском 

Так даже такой вариант не используете. Бомбить на полную катушку - быть уверенным, что серии убытков не будет. Т.е. убытки носят не серийный характер.

 
fxsaber:

Так даже такой вариант не используете. Бомбить на полную катушку - быть уверенным, что серии убытков не будет. Т.е. убытки носят не серийный характер.

Ну вот пошла серия убытков и она явно затянулась. И с этим надо что то делать. В эьом то и вся суть вопроса. Как уменьшить убытки в серии и вовремя включиться в прибыоьнооймсерии.

Причина обращения: