Тестер стратегий, повторная оптимизация - страница 5

 

При обсуждении некоторой задачи подбора параметров Setevicdi предложил расширить управление балансом тестера.

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

мешает оценить устойчивость сета к просадке относительно стартового депозита.  Для этой оценки после  теста надо смотреть: 

1. Максимальную просадку в $ во вкладке Отчет или
2. графу Просадка $ во вкладке Результаты оптимизации.

 Если данная просадка больше начального депозита - сет отклоняется.

Значительно быстрее было отклонить такой сет в процессе оптимизации, если добавить это условие в раздел настроек тестера:
Оптимизация. Ограничения

 
Genry:

При обсуждении некоторой задачи подбора параметров Setevicdi предложил расширить управление балансом тестера.

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

мешает оценить устойчивость сета к просадке относительно стартового депозита.  Для этой оценки после  теста надо смотреть: 

1. Максимальную просадку в $ во вкладке Отчет или
2. графу Просадка $ во вкладке Результаты оптимизации.

 Если данная просадка больше начального депозита - сет отклоняется.

Значительно быстрее было отклонить такой сет в процессе оптимизации, если добавить это условие в раздел настроек тестера:
Оптимизация. Ограничения

В MT5 опций принудительного завершения прогона в оптимизаторе не обнаружил. В MT4 же для реализации Вашего очень даже разумного условия лучше было бы добавить задание "Макс. просадки в валюте счета". Тогда указав ее равной начальному балансу, Вы бы добивались желаемого.

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

 
comp:

В MT5 опций принудительного завершения прогона в оптимизаторе не обнаружил.

Как в MT5-тестере принудительно прервать прогон в режиме оптимизации?

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

  • закрыть все позиции/ордера.
  • Отключить таймер.
  • Отключить все вычисления.
  • Удалить все графические объекты.
  • Минимизировать возможный вызов OnChartEvent: отключить обработку мыши и прочее.

 
comp:
Как в MT5-тестере принудительно прервать прогон в режиме оптимизации?

 ExpertRemove()

 
Anatoli Kazharski:

 ExpertRemove()

Спасибо, не знал. Надеюсь, в тестере не будут после этого дальше по циклу бежать тики, пусть и без вызова советника на каждом. Не придумал, как это проверить.

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

 
comp:
Спасибо, не знал. Надеюсь, в тестере не будут после этого дальше по циклу бежать тики, пусть и без вызова на каждом советника.

Эксперт удаляется сразу с остановкой прогона. Делаю так, чтобы ускорить процесс оптимизации.

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

 
comp:

...

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

Вот здесь показан пример: Рецепты MQL5 - Сохраняем результаты оптимизации торгового эксперта по указанным критериям

 

 

Читал, спасибо. Что делаю не так?

input int i = 0;

void OnInit( void )
{
  ExpertRemove();
  
  return;
}

 Ставлю диапазон i от 0 до 1000, с шагом 1. Полный перебор. Запускаю оптимизатор - оптимизатор виснет (ничего не происходит, горит только кнопка Стоп). Это MT5 по реальным тикам.

ЗЫ Заработал. 

 
Genry:

При обсуждении некоторой задачи подбора параметров Setevicdi предложил расширить управление балансом тестера.

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

мешает оценить устойчивость сета к просадке относительно стартового депозита.  Для этой оценки после  теста надо смотреть: 

1. Максимальную просадку в $ во вкладке Отчет или
2. графу Просадка $ во вкладке Результаты оптимизации.

 Если данная просадка больше начального депозита - сет отклоняется.

Значительно быстрее было отклонить такой сет в процессе оптимизации, если добавить это условие в раздел настроек тестера:
Оптимизация. Ограничения

так это уже давно предлагалось - тестирование / оптимизация на начальном депозите, но можно и легко реализовать самому.

 

 
comp:

Читал, спасибо. Что делаю не так?

 Ставлю диапазон i от 0 до 1000, с шагом 1. Полный перебор. Запускаю оптимизатор - оптимизатор виснет (ничего не происходит, горит только кнопка Стоп). Это MT5 по реальным тикам.

ЗЫ Заработал. 

История наверное подгружалась. 

2016.03.21 11:34:36     Core 4  pass 362 tested with error "expert removed itself in OnInit function" in 0:00:00.016
2016.03.21 11:34:36     Core 4  pass 361 tested with error "expert removed itself in OnInit function" in 0:00:00.015
2016.03.21 11:34:36     Core 4  pass 360 tested with error "expert removed itself in OnInit function" in 0:00:00.000
2016.03.21 11:34:36     Core 4  pass 359 tested with error "expert removed itself in OnInit function" in 0:00:00.000
2016.03.21 11:34:36     Core 4  pass 358 tested with error "expert removed itself in OnInit function" in 0:00:00.000
2016.03.21 11:32:46     Tester  EURUSD: 20% history downloaded
2016.03.21 11:32:16     Tester  EURUSD: preliminary downloading of history started
2016.03.21 11:32:16     Tester  complete optimization started
2016.03.21 11:32:16     Tester  Experts\Test.ex5 on EURUSD,Daily from 2016.01.01 00:00 to 2016.03.21 00:00
Причина обращения: