Как задушить генетический тестер через OnTester с нулевыми результатами - страница 4

 

Здравствуйте!!

Имеются следующие input-переменные: PositionStopLossType (тип стоп-лосса: 1 - фиксированный, 2 - относительно определенного уровня), PositionStopLossPips (количество пипсов относительно точки входа для установки фиксированного стоп-лоса). Для игнорирования повторяющихся вариантов (если стоп-лосс НЕ фиксированный, а количество пипсов для установки фиксированного стоп-лосса перебирается тестером) и, соответственно, ускорения оптимизации, в теле функции OnInit() пишу следующий код:

if (IsOptimization() && PositionStopLossType == 2 && PositionStopLossPips > 0) return(INIT_PARAMETERS_INCORRECT);

И включаю генетическую оптимизацию... Вопрос: Буду ли я в этом случае "душить" генетический тестер? Ведь прогоны с игнорированными параметрами вернут нулевой результат и, соответственно, это уменьшит возможность для скрещивания генов.

 

Задушите, если таких некорректных параметров будет более 50 процентов (насколько более, должна показать практика)

Генетические операции производятся с лучшими результатами. Результаты с некорректными параметрами относятся к худшим.

Что делать? Постараться так организовать перебор входных параметров, чтобы минимизировать случаи "некорректных параметров"

 

Спасибо за пояснение!
Еще вопрос. Оптимизирую я в генетическом тесте параметры периодов мувингов: FastMAPeriod и SlowMAPeriod. Перебираю каждое значение от 1 до 300 (перебрать например FastMAPeriod от 1 до 200 и SlowMAPeriod от 100 до 300 не получится, так как хорошими могут оказаться и значения FastMAPeriod=3, SlowMAPeriod=5 и также FastMAPeriod=295, SlowMAPeriod=297). 

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

if (IsOptimization() && FastMAPeriod >= SlowMAPeriod) return(INIT_PARAMETERS_INCORRECT);

Увеличу ли я шансы найти больше лучших результатов при генетической оптимизации, если варианты с некорректными параметрами буду оставлять на конец перебора? То есть, FastMAPeriod буду перебирать от 1 до 300, а SlowMAPeriod от 300 до 1 ? Таким образом, при каждом последующем значении быстрого периода (например FastMAPeriod=50), сначала будут перебиратся корректные значения медленного периода (SlowMAPeriod=300...51), а потом уже некорректные (SlowMAPeriod=51...1). Или я ошибаюсь и это никак не повлияет на общий результат тестирования?
 

Описываемый случай вполне нормален, и Вы не испортите генетическую оптимизацию.

Только непонятно,зачем один период перебирать от 1 до 300, а другой период перебирать от 300 к 1.

Также не понятно, зачем и быстрому и медленному периоду крайнее значение 1. Для медленного периода это значение точно не подходит. А вот для быстрого периода точно не подходит значение 300

В общем, вдумчиво относитесь к своим параметрам

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