Предлагаю всем желающим участие в эксперименте - генерация советников по шаблону, автоматизированным методом машинного обучения (МО).
Вы задаете свои шаблоны, а я генерирую вам советников, при этом вы можете проверять свои идеи и тестировать свои торговые стратегии, а я свои МО модели и программы.
Все делаем на платформе 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).
В процессе эксперимента, я могу дорабатывать код вспомогательного советника и корректировать или добавлять туда новые фильтры для описанных вами стратегий, при желании вы можете сделать это сами.
Попробуем-с.
Начнем с простой системы:
Две Moving Average (быстрая (например, с периодом 7) и медленная (например, с периодом 14). После пересечения быстрой МА снизу-вверх (для покупок) и сверху-вниз (для продаж) медленной МА, ждем закрытия свечи и выставляем buy-stop ордер за high этой свечи (для покупок) или sell-stop ордер за low (для продаж) + отступ в пунктах.
- Усложним 1: добавим 3-ю МА для определения тренда (например, с периодом 100). Торговля будет вестись только в сторону тренда. Если цена выше этой МА, то только покупки, и наоборот (цена ниже этой МА) для продаж. В шаблоне этой МА нет.
- Усложним 2: торговля не ведется, если цена располагается близко к трендовой МА (задается в параметрах) .
Попробуем-с.
Начнем с простой системы:
Две 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.ex4
Изменено 29 августа, 2018 пользователем hlaiman
hlaiman выложи пожалуйста сгенерированный mql файл - хочется на стиль кода посмотреть, сова всё-равно какая, можно сливную.
Выкладываю примитивный пример советника с исходником, обученного по индикаторам скользящих средних на модели случайных лесов.
Изменено 30 августа, 2018 пользователем hlaiman
hlaiman в группе функций DecisionTreeХ используются множество констант - они одинаковы для разных задач и индикаторов?
Функции DecisionTreeX - это решающие деревья, определенное количество таких функций и составляют основу данного типа моделей МО, под названием случайный лес (Random forest).
Эти функции принимают участие в вычислениях (Predict) модели, путем голосования, а константы в листья деревьев выбираются рандомно из массива предикторов тренировочной выборки, в процессе обучения, поэтому они могут и повторяться, но набор их должен быть уникальным, как для разных задач, так и для разных функций внутри модели.
Вот например ситуация: находим в сети советник (хороший и очень дорогой) смотрим в его код и составляем список реально используемых индикаторов, прогоняем на демо или скачиваем историю торговли, отдаём Вам и получаем сову торгующую аналогично на истории и чем длиннее история, тем точнее будет восстановленная сова?
hlaiman хорошо, а процесс обучения Вы проводите с помощью чего? - другого советника для МТ? Можно-ли сказать, что с помощью полученного набора констант выполняется подгон значений конечного числа индикаторов к торговым сигналам и таким образом Вы можете "воспроизводить" советник по результатам торговли?Вот например ситуация: находим в сети советник (хороший и очень дорогой) смотрим в его код и составляем список реально используемых индикаторов, прогоняем на демо или скачиваем историю торговли, отдаём Вам и получаем сову торгующую аналогично на истории и чем длиннее история, тем точнее будет восстановленная сова?
Для обучения я использую свои программы, разработкой которых занимался давно _https://www.mql5.com/ru/articles/706 , сейчас после длительного перерыва я возобновил разработку и усовершенствовал программы, добавил новые, уникальные модели.
Основной задачей обучения считаю не подгонку кода советников под индикаторы, т.к. этим можно лишь дублировать обычную работу, а модификацию, улучшение работы индикаторов, нужно решать задачу ликвидации ошибочных сигналов и повышения качества торговли.
Что касается клонирования советников, то для упрощения этого процесса есть режимы обучения непосредственно по графикам визуального тестирования, стейтментам и отображению сигналов, но есть и сложности связанные с моделированием всевозможных источников принятия решений и приемов манименеджмента.
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем