Имеются следующие input-переменные: PositionStopLossType (тип стоп-лосса: 1 - фиксированный, 2 - относительно определенного уровня), PositionStopLossPips (количество пипсов относительно точки входа для установки фиксированного стоп-лоса). Для игнорирования повторяющихся вариантов (если стоп-лосс НЕ фиксированный, а количество пипсов для установки фиксированного стоп-лосса перебирается тестером) и, соответственно, ускорения оптимизации, в теле функции OnInit() пишу следующий код:
И включаю генетическую оптимизацию... Вопрос: Буду ли я в этом случае "душить" генетический тестер? Ведь прогоны с игнорированными параметрами вернут нулевой результат и, соответственно, это уменьшит возможность для скрещивания генов.
Спасибо за пояснение! Еще вопрос. Оптимизирую я в генетическом тесте параметры периодов мувингов: 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
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Здравствуйте!!
Имеются следующие 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);
Описываемый случай вполне нормален, и Вы не испортите генетическую оптимизацию.
Только непонятно,зачем один период перебирать от 1 до 300, а другой период перебирать от 300 к 1.
Также не понятно, зачем и быстрому и медленному периоду крайнее значение 1. Для медленного периода это значение точно не подходит. А вот для быстрого периода точно не подходит значение 300
В общем, вдумчиво относитесь к своим параметрам