Не найдено решений в режиме оптимизации MT StrategyTester при использовании INIT_FAILED или INIT_PARAMTERS_INCORRECT - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь оптимизировать свой текущий советник, который содержит примерно 40 различных входных данных, с помощью генетического алгоритма MetaTrader.

Входные данные имеют ограничения, такие как I1 0, ... Всегоиз примерно 20 ограничений.

Я попытался отфильтровать решения, которые не соблюдают ограничения, с помощью следующего кода:

int OnInit(){
   if(I1 >= I2 || I2 >= I3) {
      return(INIT_FAILED);
   }
   ...
}

В этом случае проблема заключается в следующем: послепервые 512 итераций и оптимизация останавливается (то же самое происходит с не генетическим оптимизатором).

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

Кто-нибудь уже сталкивался с подобными проблемами?В настоящее время я думаю, что мне придется использовать внешний инструмент для оптимизации, но это не так

1 Ответ

0 голосов
/ 07 июня 2018

Как Дэниел вчера рекомендовал использовать ярлык, расположенный на обработчике OnInit(){...}, оптимизатор Генетического режима пожелает, а должен отказаться от , так как он не видел никакого прогресса наэволюционный путь через некоторое количество изменений / мутаций популяции в будущем.

Что меня удивило, так это то, что режим полной сетки (проходящий через весь декартовой параметрSetSPACE) отклонен для тестирования каждого параметра SetSPACE-вектор, один за другим.Потратив немало сотен машинных лет на такого рода испытания, это звучит странно для моего предыдущего опыта в MT4 [Strategy Tester].


Еще один трюк:

Позвольте мне поделитьсяеще одна опция:

позволяет пропускать проверенный код через OnInit(){...}, но заставляет условия сокращать обработчик OnTick(){...} -event, возвращаясь прямо при входе туда.Это была хитрость, которую мы изобрели, чтобы наш код мог имитировать некоторые отсроченные запуски (внутренний итератор, основанный на времени, для расположения скользящего окна в потоке времени) фактической тестируемой торговли.Таким образом, можно моделировать некоторое неблагоприятное влияние «неправильных» наборов параметров-векторов, и генетика может развиваться дальше, даже обнаруживая в качестве побочного эффекта, какие типы параметризации наказываются: o)


SearchSpace, имеющий40+ параметров?... Производительность!

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

Это действительно повысило производительность для нашего Quant & R * D. 1027 *

Через некоторое время мы также внедрили "автономный"ферма для (опять же, ) внеплатформенного прототипирования и тестирования Quant R & D.

...