Оптимизация советника

 

Всем здравствуйте. 

Оптимизация советника, выбор параметров после оптимизации важный ключ к успеху в торговле этим советником. И тут встал вопрос а на какие параметры обращать внимание при выборе параметров после теста?

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

Советников, так же, периодически нужно оптимизировать заново.

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

 

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


       Когда оптимизировать и сколько - вопрос очень творческий, но при этом самый важный. Если советник выдаёт ровную линию с 2000 года на минутном графике и 50000 сделок - заморачиваться не стоит. Если же нет, то в идеале надо привязать начало прибыльности системы к какому-то событию или глобальному изменению, можно попробовать разобраться как изменилась структура рынка. Использовать статистические данные, например "количество сделок без достижения нового максимума", "максимальная серия проигрышей", "построить по графику среднюю такого периода, чтобы она никогда не смотрела вниз" итд...  Потерю прибыльности системы нужно определять заблаговременно!

     

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

 
Nikolai:

Всем здравствуйте. 

Оптимизация советника, выбор параметров после оптимизации важный ключ к успеху в торговле этим советником. И тут встал вопрос а на какие параметры обращать внимание при выборе параметров после теста?

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

Советников, так же, периодически нужно оптимизировать заново.

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

Такой советник похож вот на это, и не умеет подстраиваться под рынок, подгонка под историю в конечном счёте приведет к неожидаемому результату

 

 

Для оптимизации использую простое соотношение прибыльных сделок в процентах умноженных на профитфактор:

 

//+------------------------------------------------------------------+
//| Tester function                                                  |
//+------------------------------------------------------------------+
double OnTester()
  {
//---
   double value_1=0.0;
   double value_2=0.0;
   double value_3=0.0;
   double value_4=0.0;
//---
   value_1=TesterStatistics(STAT_PROFIT_TRADES);
   value_2=TesterStatistics(STAT_TRADES);
   value_3=TesterStatistics(STAT_PROFIT_FACTOR);
   value_4=(value_1/MathMax(value_2,1)*100)*value_3;
//---
   return value_4;
  }
//+------------------------------------------------------------------+
 
double OnTester()
  {

   double ret=0.0;
   double  rec_fact = TesterStatistics(STAT_RECOVERY_FACTOR);                                                                   
   double  sharp_fact = TesterStatistics(STAT_SHARPE_RATIO);                                                                   
   double  deals = TesterStatistics(STAT_DEALS);                                                                   
   ret=rec_fact*deals*sharp_fact;
   return(ret);
  }

Можно без Шарпа

Считаю, что основным критерием при тестировании является фактор восстановления, если он больше 3, уже хорошо.

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

 
Oleg Tsarkov:

Можно без Шарпа

Считаю, что основным критерием при тестировании является фактор восстановления, если он больше 3, уже хорошо.

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

 MT4 TesterStatistics(STAT_SHARPE_RATIOвсегда ноль:

 OnTester returns 0.00000000000000

 

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

 Если вы используете для оптимизации обычный бэк  -то определить оптимальную периодичность невозможно.

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

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

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

 При этом надо понимать, что критерии для отбора параметров для бэка могут быть самыми фантастическими, но требование к форварду простое - чем больше, тем лучше. Я тоже поначалу увлекался сложными критериями оптимизации, умножал одно на другое. Но потом со временем стал замечать, что если советник дает хорошие и устойчивые форварды, то и с шарпами-просадками-матожиданиями у него тоже, как правило, все хорошо и пеерстал заморачиваться кастомными критериям. Сейчас оставил просто прибыль и вижу, что этого вполне достаточно (естественно, при оптимизации одним лотом). Поэтому и вам советую лишнее время на кастомные критерии не терять, а сосредоточиться на том, как ведет себя ваш советник на форвардах.

 
lilita bogachkova:

 MT4 TesterStatistics(STAT_SHARPE_RATIOвсегда ноль:

 OnTester returns 0.00000000000000

Странно, зачем тогда используют? Я тестирую только на MT5 платформе. Там можно все ядра свои и если есть соседи, то и соседние по сети использовать. Процесс проходит очень быстро. Потом переделываю в МТ4.)
 
Кто торгует на робо...Сейчас заметил при изменении параметров в коде на реале робо тестер не выставляет сделки, то же, видимо, и на реале происходит, что-то раньше такого не замечал и еще почему-то перестал открывать лот=0.01
 
Всем спасибо за ответы, есть над чем подумать.
 
Сергей Криушин:
Кто торгует на робо...Сейчас заметил при изменении параметров в коде на реале робо тестер не выставляет сделки, то же, видимо, и на реале происходит, что-то раньше такого не замечал и еще почему-то перестал открывать лот=0.01
Они недавно отменили 0.01 лот на центовых 4-х знаках кажется.
Причина обращения: