input параметр изменяется при форвард тестировании (2)

 

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

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

Порядок действий, чтобы вызвать магию:

1. Закидываем советник Link в тестер (прикрепил внизу). Параметры можно не менять, просто обратитите внимание на то, что параметр "Вкл\выкл МА 3" в состоянии true. Т.е. будет использовано 3 МА в стратегии.

2. Берем любой год тестирования.

3. Ставим форвард тестирование, к примеру, 1\2.

4. Включаем визуалицию.

5. В пункте оптимизация включаем "Быстрая генетическая".

6. Переходим в настройки и просто устанавливаем галку в параметре  "Вкл\выкл МА 3".

7. Затем возвращаемся в главное меню и отключаем Быструю генетическую оптимизацию. Мы будем просто делать тест, без всякой оптимизации.

8. Запускаем тест с визуализацией.

Наблюдаем, что в бэктесте все 3 МА задействованы, они на графике отрисовываются, но когда наступает черед форварда, 3-я МА куда-то испаряется, а если мы принтанем, то увидим, что флаг в настройке  "Вкл\выкл МА 3" на форварде находится в состоянии false.

Если в пункте 6 не стоит галка оптимизации параметра, то все четко. 

Это вообще как такое может быть и почему?

Билд


Файлы:
Link.mq5  10 kb
 

С изменением входных параметров в Тестере сталкивался здесь. Не в курсе, поправили или нет.

Форвард-тестирование ни разу не использовал. Некомпетентен в этом режиме работы Тестера.

Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы - Создайте тестер стратегий MetaTrader 5 ошибки, баги, предложения по улучшению работы
Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы - Создайте тестер стратегий MetaTrader 5 ошибки, баги, предложения по улучшению работы
  • 2022.11.27
  • www.mql5.com
Ситуация вылечилась только после перезагрузки Терминала. После выбора профайла переходим на вкладку Параметры и запоминаем входной параметр. Теперь перезагружаем Терминал и смотрим ту же вкладку Параметры
 
А как к этому вопросу можно привлечь внимание метаквот?
 
Nikita Chernyshov:

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

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

Порядок действий, чтобы вызвать магию:

1. Закидываем советник Link в тестер (прикрепил внизу). Параметры можно не менять, просто обратитите внимание на то, что параметр "Вкл\выкл МА 3" в состоянии true. Т.е. будет использовано 3 МА в стратегии.

2. Берем любой год тестирования.

3. Ставим форвард тестирование, к примеру, 1\2.

4. Включаем визуалицию.

5. В пункте оптимизация включаем "Быстрая генетическая".

6. Переходим в настройки и просто устанавливаем галку в параметре  "Вкл\выкл МА 3".

7. Затем возвращаемся в главное меню и отключаем Быструю генетическую оптимизацию. Мы будем просто делать тест, без всякой оптимизации.

8. Запускаем тест с визуализацией.

Наблюдаем, что в бэктесте все 3 МА задействованы, они на графике отрисовываются, но когда наступает черед форварда, 3-я МА куда-то испаряется, а если мы принтанем, то увидим, что флаг в настройке  "Вкл\выкл МА 3" на форварде находится в состоянии false.

Если в пункте 6 не стоит галка оптимизации параметра, то все четко. 

Это вообще как такое может быть и почему?

Билд


Проверил по вашей инстркции. Вставил Print(UseMA3). И правда переключается.Слева бектест, справа форвард. Build 3580

И в начале запусков тестера видим в распечатке параметры

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

 

Дополнительно раскомментировал другие bool input-ы  UseMA1 и  UseMA2 и добавил в onInit

Print(StopLoss," ", TakeProfit," ", _MA1_," ",UseMA1," ",MA_Period1 ," ",Ma_shift1 ," ",Ma_type1 ," ",Ma_price1);
Print(_MA2_ ," ",UseMA2," ",MA_Period2 ," ",Ma_shift2 ," ", Ma_type2," ",Ma_price2 );
Print(_MA3_," ",UseMA3," ",MA_Period3," ",Ma_shift3," ",Ma_type3," ",Ma_price3);

Все параметры отметил для оптимизации, для проверки других типов данных.
Все bool input-ы переключаются в false на форварде. Другие типы в порядке.

Еще если провести оптимизацию и запустить одиночный тест, двойным кликом по одному из результатов, то если кликаем по варианту где bool=true то он сразу становится false.

Очевидно, что это баг.
 

В 3620 - исправлено. Спасибо

 
Да, баг исправлен. Подтверждаю.
Причина обращения: