Свои символы и свои датафиды в Метатрейдер 5 - страница 4

 
zaskok:

Есть эвристические методы, которые наиболее хорошо подходят для оптимизации торговых систем. Они именно под это заточены, в отличие от универсальных ГА. Скажите, можно ли будет в тестере заменить единственный на сегодя эвристический метод на свой, написанный на MQL5? Если уж решились кардинально усовершенствовать тестер в сторону кастомизации входных данных, то и кастомизировать методы оптимизации (кастомные критерии оптимизации давно есть) логично для уж полного фарша.

Если хотите что-то отличное от ГА, то указывайте эти методы точно по имени и приводите доводы с прямыми доказательствами преимуществ, пожалуйста.

Но самый главный вопрос - чем вас конкретно не устраивает ГА? Он не находит области решений для вас? Даже с 10 раза методом последовательного нащупывания вы не получаете представления о кластерах с желаемыми характеристиками?

Конечно получаете. Очень быстро и эффективно. В десятки и сотни тысяч раз быстрее обычного перебора.

Получите ли результат быстрее или лучше другими методами (монте карло или отжигом, например)? Не факт.

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

В дополнение к нему у нас есть MQL5 функции управления/переопределения входных параметров, что позволяет реализовать переборы нечисловых/нелинейных параметров путем их виртуализации в специальные линейные числовые счетчики. Например, взять 30 нечисловых параметров, включая данные из файлов, преобразовать в 64 битный счетчик[и] и именно его крутить как рабочий параметр. Что там внутри скрывается - решать программисту. И функция собственного критерия оценки тоже помогает создать свой эвристический  метод.

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 
zaskok:

Есть эвристические методы, которые наиболее хорошо подходят для оптимизации торговых систем. Они именно под это заточены, в отличие от универсальных ГА. Скажите, можно ли будет в тестере заменить единственный на сегодя эвристический метод на свой, написанный на MQL5? Если уж решились кардинально усовершенствовать тестер в сторону кастомизации входных данных, то и кастомизировать методы оптимизации (кастомные критерии оптимизации давно есть) логично для уж полного фарша.

Применяю этот метод для поиска экстремумов. Например, так выглядет поиск максимумов функции:

 

 а это сам поиск:

 

 

Это есть в тестере МТ5, включая 3D визуализацию.

 

 
Renat:
Мы решили открыть интерфейсы для написания своих датафидов для МТ5.

Можно будет свободно писать свои источники данных, включая рилтаймовые. Это позволит подключать любые данные, включая детальную историю и Level2 стаканы.

По умолчанию мы предоставим ряд штатных датафидов, включая оффлайновые. Виртуальные символы будут доступны и в тестере.

Все это бесплатно, конечно.

Аллилуя! Сколько лет просили и вот наконец-то... Даже слезы от радости и умиления накатывают:)

Лично меня всегда здерживало использовать МТ5 на полную катушку отсутствие истории для него. Приходилось исследования проводить в сторонних программах типа Wealth-Lab, а боевых роботов писать уже на МТ5. Теперь надобности в сторонних программах не будет.

 
forexman77:

Когда слишком много переменных для оптимизации, велика вероятность подгонки под историю.

С ростом переменных растет время оптимизации в геометрической прогрессии от этого никуда не уйти.

Из этого есть выход, супер мощный компьютер размером с жилой дом)

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

Опять же непонятно, зачем обрезать такой большой рынок удаленных агентов, они что - по самое нехочу загружены работой.... далеко не так, 80%(Имхо) имеющихся простаивают, а тут еще и обрезают им потенциальный фронт работы...

 
Renat:

Это есть в тестере МТ5, включая 3D визуализацию.

 

Во классно я и не знал за эту штуку, только у меня не получилось, неактивны позиции переключения в 3Д, там чтото должно быть в коде специально заложено?
 
IvanIvanov:
Во классно я и не знал за эту штуку, только у меня не получилось, неактивны позиции переключения в 3Д, там чтото должно быть в коде специально заложено?
MetaTrader 5 Strategy Tester 3D Visualization
 

О ! Браво, Админы !

Как я понял, и отладка на исторических данных наконец-то появится ?

 
Renat:

Если хотите что-то отличное от ГА, то указывайте эти методы точно по имени и приводите доводы с прямыми доказательствами преимуществ, пожалуйста.

Но самый главный вопрос - чем вас конкретно не устраивает ГА? Он не находит области решений для вас? Даже с 10 раза методом последовательного нащупывания вы не получаете представления о кластерах с желаемыми характеристиками?

Конечно получаете. Очень быстро и эффективно. В десятки и сотни тысяч раз быстрее обычного перебора.

Получите ли результат быстрее или лучше другими методами (монте карло или отжигом, например)? Не факт.

Привести доказательство именно вам довольно проблематично, т.к. вы не совсем корректно реагируете на публичную аргументацию вашей недальновидности в некоторых вопросах. И эта ветка, которую вы сами же начали, служит кульминационным доказательством, к сожалению, этого утверждения. Конечно, это не другие много лет к этому призывали и просили, а вы якобы отпирались.... Но что было, то было. Однако, доказывать вам вашу неправоту видится несколько бессмысленным, т.к. срабатывает в оценке не логика, а человеческий фактор.

Поэтому больше не для вас, а для форумчан приведу логические доводы в пользу несколько отличных от ГА методов эвристической оптимизации. Ниже несколько выдернутых цитат из статьи, что привел ранее + мои подчеркивания моментов, на которые стоит особо обратить внимание:

Все стохастические методы оптимизации имеют один общий недостаток – могут упереться в какой-то локальный экстремум, а тот самый оптимальный упустить из вида. Чтобы этого избежать, нужно максимально увеличивать области выборок и количество итераций. Но от этого страдает скорость расчетов. Так что нужно всегда искать золотую середину.


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

Но как я уже выше заметил важно изучить область вокруг экстремума, и поэтому, решил сходиться до конца, и на последней итерации проверить полностью все соседние стратегии. Я не стал мудрить с градиентами и сделал сходимость статичной в процентах от начальной выборки. То есть на сколько резать многомерную матрицу после каждой итерации на 1% или на 20% мы решаем в самом начале. Также, мы сразу, учитывая наши возможности по времени, решаем, сколько стратегий мы будем брать из матрицы на каждой итерации для тестирования. Таким образом, нам вообще не важен размер матрицы, мы точно знаем сколько итераций и в каком объеме проведем! В этом и есть вся прелесть стохастических методов.

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

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

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

Допустим мы исследовали пространство и примерно представляем сколько там максимумов. И что нам это дает? Пока почти ничего...
Нам нужно исследовать эти максимумы, разобраться носят они случайный характер или системный. Для этого в тестере-оптимизаторе предусмотрел возможность выбрать лучшие стратегии и дополнительно, более подробно исследовать области вокруг них. Исследовать те стратегии, которые мы пропустили при оптимизации. Теперь об экстремумах пространства мы знаем почти все! Полученные данные можно исследовать дальше на кластеризацию, пере оптимизацию и прочее. Но это уже другая история!

Речь идет не об этой статье, а об общих принципах поиска и оптимизации ТС, о которых практически нигде не ведется речи. Поэтому ГА - это совсем не то, что хотелось бы иметь в арсенале при оптимизации ТС.

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

В дополнение к нему у нас есть MQL5 функции управления/переопределения входных параметров, что позволяет реализовать переборы нечисловых/нелинейных параметров путем их виртуализации в специальные линейные числовые счетчики. Например, взять 30 нечисловых параметров, включая данные из файлов, преобразовать в 64 битный счетчик[и] и именно его крутить как рабочий параметр. Что там внутри скрывается - решать программисту. И функция собственного критерия оценки тоже помогает создать свой эвристический  метод.

"MQL5 функции управления/переопределения входных параметров" - слыхать не слыхивал, дайте ссылку.
 
event:

Применяю этот метод для поиска экстремумов. Например, так выглядет поиск максимумов функции:

Спасибо! Могли бы вы предоставить формулу вашей примерной функции, чтобы в OnTester попытаться штатным ГА найти ее локальные экстремумы - для сравнения.

Было бы интересно услышать от вас несколько конструктивных слов по методу (описание, исходники, плюсы/минусы).

Причина обращения: