Обсуждение статьи "Управляемая оптимизация: метод отжига" - страница 2

 
MetaQuotes Software Corp.:

Новая статья Управляемая оптимизация: Имитация отжига опубликована:

Автор: Алексей Зиновик

Я еще не начал работать с мт5, но думаю, что (возможно, с некоторыми изменениями и/или условной компиляцией) я смогу использовать это и в тестере стратегий мт4.

Генетическая оптимизация в mt4 имеет одну небольшую проблему, которая, возможно, существует и в mt5, а также может быть и в вашем подходе.

Если я проверяю в OnInit() набор параметров и обнаруживаю, что фактический набор не стоит проверять, я возвращаюсь из OnInit() с INIT_PARAMETERS_INCORRECT. Оптимизация не выполняется, что экономит время, хорошо - но:

  1. генетический алгоритм mt4 рассматривает это как правильный проход
  2. поэтому он увеличивает счетчик так, что
  3. генетический алгоритм останавливается намного раньше , чем должен (я думаю, что его критерий остановки - это смесь количества проходов и изменения целевого значения).

Вы разобрались с этой ситуацией? Возврат из OnInit(), несмотря на отсутствие ошибки (типа: файл не найден, ...), только потому, что не следует проверять настройку параметров, которая в данном случае не должна увеличивать число и уменьшать температуру?

В любом случае спасибо за интересную статью!

Gooly

 
Carl Schreiber:

Я еще не начал работать с mt5, но полагаю, что (возможно, с некоторыми изменениями и/или условной компиляцией) я смогу использовать это и в тестере стратегий mt4.

Генетическая оптимизация в mt4 имеет одну небольшую проблему, которая может существовать и в mt5, а также может быть и в вашем подходе.

Если я проверяю в OnInit() набор параметров и обнаруживаю, что фактический набор не стоит проверять, я возвращаюсь из OnInit() с INIT_PARAMETERS_INCORRECT. Оптимизация не выполняется, что экономит время, хорошо - но:

  1. генетический алгоритм mt4 рассматривает это как правильный проход
  2. поэтому он увеличивает счетчик так, что
  3. генетический алгоритм останавливается намного раньше , чем должен (я думаю, что его критерий остановки - это смесь количества проходов и изменения целевого значения).

Вы разобрались с этой ситуацией? Возврат из OnInit(), несмотря на отсутствие ошибки (например: файл не найден, ...), только потому, что не следует проверять настройку параметров, которая в данном случае не должна увеличивать число и уменьшать температуру?

В любом случае спасибо за интересную статью!

Gooly

Я не проверяю правильность параметров и не прерываю функцию OnInit(), если параметры не верны. В функции OnTesterInit() параметры, значения которых необходимо оптимизировать с помощью тестера стратегий, отключаются от оптимизации. На каждой новой итерации параметры считываются из файла, в функции OnTester() новые значения параметров записываются в файл. Это позволяет не использовать значения параметров, сгенерированные тестером стратегий, а самостоятельно выводить необходимые параметры в функцию OnInit().
Извините за мой английский
 
Aleksey Zinovik:
Я не проверяю правильность параметров и не прерываю функцию OnInit(), если параметры не верны. В функции OnTesterInit() параметры, значения которых необходимо оптимизировать с помощью тестера стратегий, отключаются от оптимизации. На каждой новой итерации параметры считываются из файла, в функции OnTester() новые значения параметров записываются в файл. Это позволяет не использовать значения параметров, сгенерированные тестером стратегий, а самостоятельно выводить необходимые параметры в функцию OnInit().
Извините за мой английский.

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

Спасибо за эту идею и статью!

 

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

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

Не могли бы вы подробнее рассказать об универсальном модуле? Какие еще алгоритмы оптимизации параметров эксперта существуют?

 
nevar:

Привет

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

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

В статье показано, как подключить новый алгоритм оптимизации к тестеру стратегий. Аналогично, добавляя новые методы в класс AnnealingMethod.mqh или создавая новый класс, можно подключать и другие алгоритмы, например, муравьиные алгоритмы (Ant colony optimization). Я планирую протестировать работу таких алгоритмов и поделиться результатом.