Есть идея на базе существующего индикатора с задаваемыми параметрами сделать самооптимизирующий.
То есть - он в результате расчета с фикисрованными параметрами выдает некое значение, чтобы найти оптимальные параметры приходится перебирать их в ручную. Можно ли внутри кода индикатора сделать цикл перебора, чтобы он в заданном диапазоне значений параметров выдавал максимальное или минимальное расчетное (какое задам)???.
Я делал. Очень долго считает (по сравнению с советником в оптимизаторе на той же логике) и, самое главное, терминал на время оптимизации перейдёт в режим "не отвечает", т.к. цикл перебора параметров "без продыха".
В итоге был сделан с кнопкой. Но, в целом, опыт считаю неудачным, больше не повторял. Всё будет работать, но не эффективно по сравнению с экспертом в тестере. (если значение для оптимизации не прибыль/количество сделок, то это тоже можно провернуть используя возвращаемое значение от OnTester() )
Есть идея на базе существующего индикатора с задаваемыми параметрами сделать самооптимизирующий.
То есть - он в результате расчета с фикисрованными параметрами выдает некое значение, чтобы найти оптимальные параметры приходится перебирать их в ручную. Можно ли внутри кода индикатора сделать цикл перебора, чтобы он в заданном диапазоне значений параметров выдавал максимальное или минимальное расчетное (какое задам)???.
Можно, проблем нет. Проблема возникает, как только Вы начинаете требовать от алгоритма свойства сходимости, т.е. работы без Вашего участия. Она тоже решается, но треба повозиться.
Можно, проблем нет. Проблема возникает, как только Вы начинаете требовать от алгоритма свойства сходимости, т.е. работы без Вашего участия. Она тоже решается, но треба повозиться.
Как думаете, зависать не будет? У меня в коде индикатора реализована возможность пересчета через задаваемые промежутки времени, а не при каждом тике.
Есть идея на базе существующего индикатора с задаваемыми параметрами сделать самооптимизирующий.
То есть - он в результате расчета с фикисрованными параметрами выдает некое значение, чтобы найти оптимальные параметры приходится перебирать их в ручную. Можно ли внутри кода индикатора сделать цикл перебора, чтобы он в заданном диапазоне значений параметров выдавал максимальное или минимальное расчетное (какое задам)???.
Не надо здесь перебора. Анализ истории за период даст вам параметры индикатора для следующего шага (свечи, скажем).
Анализ истории (длину истории тоже можно задать) при заданных параметрах индикатор делает, и выдает какое то значение. Если изменить параметры, то возвращаемое значение тоже изменится. Суть в том, чтобы подобрать такой комплект параметров, чтобы возвращаемое значение было максимальным, ну или минимальным как задам. Не представляю как это можно сделать иначе, как не перебором. В идеале чтобы это все делалось автоматом, основное опасение, что все это будет сильно подвешивать комп.
Анализ истории (длину истории тоже можно задать) при заданных параметрах индикатор делает, и выдает какое то значение. Если изменить параметры, то возвращаемое значение тоже изменится. Суть в том, чтобы подобрать такой комплект параметров, чтобы возвращаемое значение было максимальным, ну или минимальным как задам. Не представляю как это можно сделать иначе, как не перебором. В идеале чтобы это все делалось автоматом, основное опасение, что все это будет сильно подвешивать комп.
Обычно перебор наиболее ресурсоемкий вариант. Не исключено, что в данном случае это не так. Хотя, правильным перебором за 8 шагов можно выбрать что-то из 256 вариантов, но это уже не совсем перебор.) Скажем, найти макс или мин функции, или близость к заданному критерию.
Обычно перебор наиболее ресурсоемкий вариант. Не исключено, что в данном случае это не так. Хотя, правильным перебором за 8 шагов можно выбрать что-то из 256 вариантов, но это уже не совсем перебор.) Скажем, найти макс или мин функции, или близость к заданному критерию.
На графике выше изображен осциллятор (окно снизу), который отображает результаты виртуальной торговли. Принцип следующий. Если индикатор на графике (ступенчатая линия) меняет направление ступеней, например вниз, то с этого момента осциллятор начинает откладывать на закрытии каждого бара результат виртуального эквити. То есть если ступени пошли вниз, то подразумевается что открылись в продажу и если цена снижается, то осциллятор растет, если наоборот, то кривая осциллятора падает показывая виртуальный убыток. И наоборот с растущими ступенями, если цена после этого растет, то осциллятор тоже растет... Шкала у осциллятора процентная. Стартует с 100% далее как покажет.
На графике выше показано окно с параметрами осциллятора. 1,9 и 30 это параметры индикатора, который на графике, такие же параметры и у осциллятора. Есть параметр стартовой даты, он показывает момент, с которого нужно вести расчет. Остальные параметры второстепенные. Если параметры индикатора менять, то будет меняться и итоговое расчетное значение у осциллятора.
То есть для оптимизации нужно найти такие параметры при которых итоговое значение осциллятора будет либо максимальным, либо минимальным.
Есть робот с вполне понятной логикой использующий этот осциллятор, осталось решить задачу автоматизации поиска оптимальных параметров.
Может поможет в ваших поисках решения.
https://www.mql5.com/ru/articles/4917
- www.mql5.com
Есть статья по Автоматической оптимизации экспертов.
Может поможет в ваших поисках решения.
https://www.mql5.com/ru/articles/4917
Спасибо за участие, но есть несколько НО!
1. Это индикатор.
2. Написан на МТ4.
То есть - он в результате расчета с фикисрованными параметрами выдает некое значение, чтобы найти оптимальные параметры приходится перебирать их в ручную. Можно ли внутри кода индикатора сделать цикл перебора, чтобы он в заданном диапазоне значений параметров выдавал максимальное или минимальное расчетное (какое задам)???.
Можно, но очень много дополнительных вопросов.
Было бы проще на MT5 - однократный вызов приводит к пересчету точек по всей истории - остается дождаться пересчета буфферов с заданными параметрами и проанализировать их.
Для MT4 нужно вызывать индикатор для вычисления каждой точки. Здесь как раз нужно подумать об разбиении циклов для снижения загрузки индикатора.
В обоих случаях необходимо определиться с критериями оптимизации.
Мне думается, что проще оптимизировать советник на основе индикатора. Здесь хоть критерии понятны - профит, количество сделок, просадка.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть идея на базе существующего индикатора с задаваемыми параметрами сделать самооптимизирующий.
То есть - он в результате расчета с фикисрованными параметрами выдает некое значение, чтобы найти оптимальные параметры приходится перебирать их в ручную. Можно ли внутри кода индикатора сделать цикл перебора, чтобы он в заданном диапазоне значений параметров выдавал максимальное или минимальное расчетное (какое задам)???.