Вопрос - самоптимизирующийся индикатор.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Rustem Bigeev
1703
Rustem Bigeev  

Есть идея на базе существующего индикатора с задаваемыми параметрами сделать самооптимизирующий.

То есть - он в результате расчета с фикисрованными параметрами выдает некое значение, чтобы найти оптимальные параметры приходится перебирать их в ручную. Можно ли внутри кода индикатора сделать цикл перебора, чтобы он в заданном диапазоне значений параметров выдавал максимальное или минимальное расчетное (какое задам)???.

Igor Zakharov
27707
Igor Zakharov  
Rustem Bigeev:

Есть идея на базе существующего индикатора с задаваемыми параметрами сделать самооптимизирующий.

То есть - он в результате расчета с фикисрованными параметрами выдает некое значение, чтобы найти оптимальные параметры приходится перебирать их в ручную. Можно ли внутри кода индикатора сделать цикл перебора, чтобы он в заданном диапазоне значений параметров выдавал максимальное или минимальное расчетное (какое задам)???.

Я делал. Очень долго считает (по сравнению с советником в оптимизаторе на той же логике) и, самое главное, терминал на время оптимизации перейдёт в режим "не отвечает", т.к. цикл перебора параметров "без продыха".

В итоге был сделан с кнопкой. Но, в целом, опыт считаю неудачным, больше не повторял. Всё будет работать, но не эффективно по сравнению с экспертом в тестере. (если значение для оптимизации не прибыль/количество сделок, то это тоже можно провернуть используя возвращаемое значение от OnTester() )

Алексей Тарабанов
8951
Алексей Тарабанов  
Rustem Bigeev:

Есть идея на базе существующего индикатора с задаваемыми параметрами сделать самооптимизирующий.

То есть - он в результате расчета с фикисрованными параметрами выдает некое значение, чтобы найти оптимальные параметры приходится перебирать их в ручную. Можно ли внутри кода индикатора сделать цикл перебора, чтобы он в заданном диапазоне значений параметров выдавал максимальное или минимальное расчетное (какое задам)???.

Можно, проблем нет. Проблема возникает, как только Вы начинаете требовать от алгоритма свойства сходимости, т.е. работы без Вашего участия. Она тоже решается, но треба повозиться. 

Rustem Bigeev
1703
Rustem Bigeev  
Алексей Тарабанов:

Можно, проблем нет. Проблема возникает, как только Вы начинаете требовать от алгоритма свойства сходимости, т.е. работы без Вашего участия. Она тоже решается, но треба повозиться. 

Как думаете, зависать не будет? У меня в коде индикатора реализована возможность пересчета через задаваемые промежутки времени, а не при каждом тике.

Yuriy Asaulenko
9251
Yuriy Asaulenko  
Rustem Bigeev:

Есть идея на базе существующего индикатора с задаваемыми параметрами сделать самооптимизирующий.

То есть - он в результате расчета с фикисрованными параметрами выдает некое значение, чтобы найти оптимальные параметры приходится перебирать их в ручную. Можно ли внутри кода индикатора сделать цикл перебора, чтобы он в заданном диапазоне значений параметров выдавал максимальное или минимальное расчетное (какое задам)???.

Не надо здесь перебора. Анализ истории за период даст вам параметры индикатора для следующего шага (свечи, скажем).
Делать это можно оч по разному, а конкретику вряд-ли кто за вас будет делать.
Rustem Bigeev
1703
Rustem Bigeev  
Yuriy Asaulenko:
Не надо здесь перебора. Анализ истории за период даст вам параметры индикатора для следующего шага (свечи, скажем).
Делать это можно оч по разному, а конкретику вряд-ли кто за вас будет делать.

Анализ истории (длину истории тоже можно задать) при заданных параметрах индикатор делает, и выдает какое то значение. Если изменить параметры, то возвращаемое значение тоже изменится. Суть в том, чтобы подобрать такой комплект параметров, чтобы возвращаемое значение было максимальным, ну или минимальным как задам. Не представляю как это можно сделать иначе, как не перебором. В идеале чтобы это все делалось автоматом, основное опасение, что все это будет сильно подвешивать комп.

Yuriy Asaulenko
9251
Yuriy Asaulenko  
Rustem Bigeev:

Анализ истории (длину истории тоже можно задать) при заданных параметрах индикатор делает, и выдает какое то значение. Если изменить параметры, то возвращаемое значение тоже изменится. Суть в том, чтобы подобрать такой комплект параметров, чтобы возвращаемое значение было максимальным, ну или минимальным как задам. Не представляю как это можно сделать иначе, как не перебором. В идеале чтобы это все делалось автоматом, основное опасение, что все это будет сильно подвешивать комп.

Обычно перебор наиболее ресурсоемкий вариант. Не исключено, что в данном случае это не так. Хотя, правильным перебором за 8 шагов можно выбрать что-то из 256 вариантов, но это уже не совсем перебор.) Скажем, найти макс или мин функции, или близость к заданному критерию.

Rustem Bigeev
1703
Rustem Bigeev  
Yuriy Asaulenko:

Обычно перебор наиболее ресурсоемкий вариант. Не исключено, что в данном случае это не так. Хотя, правильным перебором за 8 шагов можно выбрать что-то из 256 вариантов, но это уже не совсем перебор.) Скажем, найти макс или мин функции, или близость к заданному критерию.

график


На графике выше изображен осциллятор (окно снизу), который отображает результаты виртуальной торговли. Принцип следующий. Если индикатор на графике (ступенчатая линия) меняет направление ступеней, например вниз, то с этого момента осциллятор начинает откладывать на закрытии каждого бара результат виртуального эквити. То есть если ступени пошли вниз, то подразумевается что открылись в продажу и если цена снижается, то осциллятор растет, если наоборот, то кривая осциллятора падает показывая виртуальный убыток. И наоборот с растущими ступенями, если цена после этого растет, то осциллятор тоже растет... Шкала у осциллятора процентная. Стартует с 100% далее как покажет.

параметры

На графике выше показано окно с параметрами осциллятора. 1,9 и 30  это параметры индикатора, который на графике, такие же параметры и у осциллятора. Есть параметр стартовой даты, он показывает момент, с которого нужно вести расчет. Остальные параметры второстепенные. Если параметры индикатора менять, то будет меняться и итоговое расчетное значение у осциллятора.

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

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

Roman
159
Roman  
Есть статья по Автоматической оптимизации экспертов.
Может поможет в ваших поисках решения.

https://www.mql5.com/ru/articles/4917
Автоматическая оптимизация советника в MetaTrader 5
Автоматическая оптимизация советника в MetaTrader 5
  • www.mql5.com
В нашем советнике Buddy Ilan используются 4 основных параметра. Мы хотели реализовать еженедельную автоматическую оптимизацию этих параметров, чтобы советник максимально соответствовал изменениям на рынке. Нереально запускать такой процесс каждую неделю вручную, поэтому мы попытались найти существующие механизмы для выполнения повторяющихся...
Rustem Bigeev
1703
Rustem Bigeev  
Roman:
Есть статья по Автоматической оптимизации экспертов.
Может поможет в ваших поисках решения.

https://www.mql5.com/ru/articles/4917

Спасибо за участие, но есть несколько НО! 

1. Это индикатор.

2. Написан на МТ4.

Sergey Deev
265220
Sergey Deev  
Rustem Bigeev:

То есть - он в результате расчета с фикисрованными параметрами выдает некое значение, чтобы найти оптимальные параметры приходится перебирать их в ручную. Можно ли внутри кода индикатора сделать цикл перебора, чтобы он в заданном диапазоне значений параметров выдавал максимальное или минимальное расчетное (какое задам)???.

Можно, но очень много дополнительных вопросов.

Было бы проще на  MT5 - однократный вызов приводит к пересчету точек по всей истории - остается дождаться пересчета буфферов с заданными параметрами и проанализировать их.

Для MT4 нужно вызывать индикатор для вычисления каждой точки. Здесь как раз нужно подумать об разбиении циклов для снижения загрузки индикатора.

В обоих случаях необходимо определиться с критериями оптимизации. 

Мне думается, что проще оптимизировать советник на основе индикатора. Здесь хоть критерии понятны - профит, количество сделок, просадка.

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий