Перейти к содержанию

Генерация советников по шаблону


hlaiman

Рекомендуемые сообщения

Генерация советников по шаблону Опубликовано

Предлагаю всем желающим участие в эксперименте - генерация советников по шаблону, автоматизированным методом машинного обучения (МО).

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

Все делаем на платформе MT4, для начала используем самые простые шаблоны содержащие один график с торговыми сигналами BUY и SELL, в виде стрелок, соответственно вверх и вниз (меню терминала - Вставка\Значки\Стрелка...).

После нанесения сигналов, шаблон можно сохранить в файл (меню - Графики\Шаблон\Сохранить шаблон...) и прикрепить к своему сообщению, в котором м.б. указано имя советника и имя брокера на котировках которого нужно выполнять генерацию советника.

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

Кроме того в вашем сообщении - задании, опционально м.б. указан так же интервал, исходя из которого нужно вести анализ и расчет алгоритмов советника.


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

Вспомогательный советник имеет следующие настройки:

Signal bars count - количество бар по которому производится расчет сигнала
Buy signal pips - расчетное количество пунктов прибыли для сигнала на покупку
Sell signal pips - расчетное количество пунктов прибыли для сигнала на продажу
Start date time - начало периода в котором ведется расчет и нанесение сигналов
End date time - конец периода в котором ведется расчет и нанесение сигналов
Arrow drawind type - тип графического объекта - стрелки для обозначения сигналов
Indicator used type - тип используемого, в качестве фильтра сигналов, индикатора
Clear all on exit - флаг удаления графических объектов при отключении советника

Вспомогательный советник ищет внутри заданного периода и наносит на график все сигналы, соответствующие расчетным параметрам (к-во бар и к-во пунктов), а так же фильтрует их, если выбран используемый индикатор, типа ZigZag,EMA,MACD,OsMA,CCI,RSI,RVI и.т.д...

Информация о сигналах отображается в строке комментария - это интервал, размер в пунктах и текущее количество, соответственно по BUY и SELL.

Для формирования шаблона, советник запускается на графике с выбранным временным интервалом и снятым флагом удаления, возможно несколько раз, например если стратегия комбинированная, затем сигналы м.б. отредактировани - удалены или изменены, а готовый шаблон сохранен в файл (*.tpl).

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

makeSignals.mq4

  • Лайк 6
Ссылка на сообщение
Поделиться на другие сайты

Генерация советников по шаблону Опубликовано
hlaiman идея хорошая, но нужно более подробно расписать процесс создания сигналов, а то сейчас народ нарисует стрелочки на хаях и без всяких индикаторов...
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Генерация советников по шаблону Опубликовано

Попробуем-с.

Начнем с простой системы:
Две Moving Average (быстрая (например, с периодом 7) и медленная (например, с периодом 14). После пересечения быстрой МА снизу-вверх (для покупок) и сверху-вниз (для продаж) медленной МА, ждем закрытия свечи и выставляем buy-stop ордер за high этой свечи (для покупок) или sell-stop ордер за low (для продаж) + отступ в пунктах.

- Усложним 1: добавим 3-ю МА для определения тренда (например, с периодом 100). Торговля будет вестись только в сторону тренда. Если цена выше этой МА, то только покупки, и наоборот (цена ниже этой МА) для продаж. В шаблоне этой МА нет.
- Усложним 2: торговля не ведется, если цена располагается близко к трендовой МА (задается в параметрах) .

2MA_Trend.tpl

Ссылка на сообщение
Поделиться на другие сайты

Генерация советников по шаблону Опубликовано (изменено)


Попробуем-с.

Начнем с простой системы:
Две Moving Average (быстрая (например, с периодом 7) и медленная (например, с периодом 14). После пересечения быстрой МА снизу-вверх (для покупок) и сверху-вниз (для продаж) медленной МА, ждем закрытия свечи и выставляем buy-stop ордер за high этой свечи (для покупок) или sell-stop ордер за low (для продаж) + отступ в пунктах.

- Усложним 1: добавим 3-ю МА для определения тренда (например, с периодом 100). Торговля будет вестись только в сторону тренда. Если цена выше этой МА, то только покупки, и наоборот (цена ниже этой МА) для продаж. В шаблоне этой МА нет.
- Усложним 2: торговля не ведется, если цена располагается близко к трендовой МА (задается в параметрах) .



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

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

Пример шаблона и советников, обученных на пересечении медленной и быстрой скользящих средних, а так же примеры простейших стратегий на индикаторе MACD я выкладывал на форуме mql5.
_https://www.mql5.com/ru/forum/270216


Добавлено: 29-08-2018 19:00:37

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



В принципе можно пробовать разметку шаблонов и без индикаторов, вот мой, простой пример - сигналы выставлены скриптом на барах с размером 10 пунктов.

Всего для обучения(Train) использовано около тысячи сигналов на EURUSD M15 за 2017-2018 г.г., один месяц - август не размечен и оставлен для форвард теста (OOS - Out Of Sample).

Файл шаблона, советник и отчет с сервера Alpari в аттаче.

EA_EURUSD_M15_ALPARI.tpl
EA_EURUSD_M15_RF.htm
EA_EURUSD_M15_RF.gif
EA_EURUSD_M15_TEMPLATE.JPG
EA_EURUSD_M15_GRAPH_RF.JPG
EA_EURUSD_M15.ex4

Изменено пользователем hlaiman
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Генерация советников по шаблону Опубликовано
hlaiman выложи пожалуйста сгенерированный mql файл - хочется на стиль кода посмотреть, сова всё-равно какая, можно сливную.
Ссылка на сообщение
Поделиться на другие сайты

Генерация советников по шаблону Опубликовано (изменено)

hlaiman выложи пожалуйста сгенерированный mql файл - хочется на стиль кода посмотреть, сова всё-равно какая, можно сливную.



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

RAWEMA_EURUSD_H1.ex4
RAWEMA_EURUSD_H1.mq4

Изменено пользователем hlaiman
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Генерация советников по шаблону Опубликовано
hlaiman в группе функций DecisionTreeХ используются множество констант - они одинаковы для разных задач и индикаторов?
Ссылка на сообщение
Поделиться на другие сайты

Генерация советников по шаблону Опубликовано

hlaiman в группе функций DecisionTreeХ используются множество констант - они одинаковы для разных задач и индикаторов?



Функции DecisionTreeX - это решающие деревья, определенное количество таких функций и составляют основу данного типа моделей МО, под названием случайный лес (Random forest).
Эти функции принимают участие в вычислениях (Predict) модели, путем голосования, а константы в листья деревьев выбираются рандомно из массива предикторов тренировочной выборки, в процессе обучения, поэтому они могут и повторяться, но набор их должен быть уникальным, как для разных задач, так и для разных функций внутри модели.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Генерация советников по шаблону Опубликовано
hlaiman хорошо, а процесс обучения Вы проводите с помощью чего? - другого советника для МТ? Можно-ли сказать, что с помощью полученного набора констант выполняется подгон значений конечного числа индикаторов к торговым сигналам и таким образом Вы можете "воспроизводить" советник по результатам торговли?
Вот например ситуация: находим в сети советник (хороший и очень дорогой) смотрим в его код и составляем список реально используемых индикаторов, прогоняем на демо или скачиваем историю торговли, отдаём Вам и получаем сову торгующую аналогично на истории и чем длиннее история, тем точнее будет восстановленная сова?
Ссылка на сообщение
Поделиться на другие сайты

Генерация советников по шаблону Опубликовано

hlaiman хорошо, а процесс обучения Вы проводите с помощью чего? - другого советника для МТ? Можно-ли сказать, что с помощью полученного набора констант выполняется подгон значений конечного числа индикаторов к торговым сигналам и таким образом Вы можете "воспроизводить" советник по результатам торговли?Вот например ситуация: находим в сети советник (хороший и очень дорогой) смотрим в его код и составляем список реально используемых индикаторов, прогоняем на демо или скачиваем историю торговли, отдаём Вам и получаем сову торгующую аналогично на истории и чем длиннее история, тем точнее будет восстановленная сова?



Для обучения я использую свои программы, разработкой которых занимался давно _https://www.mql5.com/ru/articles/706 , сейчас после длительного перерыва я возобновил разработку и усовершенствовал программы, добавил новые, уникальные модели.

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

Что касается клонирования советников, то для упрощения этого процесса есть режимы обучения непосредственно по графикам визуального тестирования, стейтментам и отображению сигналов, но есть и сложности связанные с моделированием всевозможных источников принятия решений и приемов манименеджмента.
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...