Нейросетевой советник — эксперт для MetaTrader 4
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Для работы советника необходимо проинсталлировать эту самую библиотеку. Инсталляцию и ее описание можно найти в статье: Используем нейронные сети в MetaTrader (c) Mariusz Woloszyn.
В корневом каталоге диска С: создайте папку с названием «ANN», в которой будут храниться настроенные нейросети.
Для того, чтобы библиотека подключилась, также необходимо в терминале Меню «Сервис» > Вкладка «Советники» включить режим: «Разрешить импорт DLL»
Оптимизация (обучение сети)
Оптимизацию необходимо проводить при включенном генетическом алгоритме.
У советника всего два входных параметра для оптимизации (обучения нейросети):
StopLoss — уровень стопов. Настраивается значениями от 10 с шагом 1 до 100 для четырехзначных котировок (или от 100 с шагом 10 до 1000 для пятизначных).
x — настраивается значениями от 0 с шагом 1 до 1000000
На самом деле, в советнике используется только один входной параметр: StopLoss — уровень стопов.
Второй параметр x — фиктивный (после оптимизации его значение не имеет никакого смысла и может быть задано любым). Его задача — заставить генетический алгоритм советника прогнать как можно больше сеансов обучения (эпох) для наиболее оптимального уровня стопов (того уровня, на котором советник лучше всего обучаем). Генетический алгоритм все равно при оптимизации будет перебирать только 10000 вариантов, но при этом наибольшее количество из них придется на наиболее оптимальный уровень стопов.
Далее, необходимо в тестере стратегий выбрать инструмент (например, EURUSD), таймфрейм (например, Н1), установить режим «Оптимизация», модель «По ценам открытия», настроить и включить оптимизируемые параметры StopLoss и x (с вышеуказанными параметрами) и нажать кнопку «Старт».
По завершении оптимизации, мы получим в списке лучших «Результатов оптимизации» значение StopLoss при котором нейросеть лучше всего обучалась. Это самое значение и необходимо выставить в советнике для автотрейдинга.
Тестирование советника
Выберите наилучший параметр в «Результатах оптимизации» и прогоните тест. Не надо удивляться, если результаты теста будут отличаться — нейросеть в режиме оптимизации и тестирования является адаптивной, поэтому после каждого прогона теста обязательно будут различия. Ведь была проведена еще одна эпоха обучения.
Примечания относительно форвардных тестов
Если прогнать форвардные тесты, то видно, что участок вне выборки, на котором советник продолжает торговать профитно, не очень продолжительный. Тому есть разумное объяснение: для обучения сети в оптимизаторе терминала понадобилось несколько тысяч эпох — сеансов обучения. А в режиме теста, адаптация происходит всего на одной единственной эпохе.
Советник просто не в состоянии адаптироваться под нестационарность рынка, скорость обучения сети слишком медленная. Может показаться, что ражим адаптации в режиме теста необходимо зациклить? Нет, этого делать нельзя, т.к. если многократно гонять один и тот же паттерн в режиме обучения, то нейросеть обучается этому самому паттерну, но при этом постепенно «забывает» про остальные паттерны (разучивается).
По этой самой причине адаптация включена только в режиме оптимизации и тестирования. В автотрейдинге она не будет работать. Причем, отключение адаптации для автотрейдинга выполнено не только по причине того, что одной эпохи обучения явно не хватает, но и потому что паттерн последней сделки храниться в памяти компьютера, а следовательно при выключении компьютера или при перезагрузке терминала он стирается и непредусмотрительно включенная адаптация (доучивание) могла бы привести к непредсказуемым последствиям.
Тут уж ничего не поделаешь, но тем, кто хочет торговать профитно, необходимо самостоятельно ежедневно (раз в сутки, кроме воскресенья и понедельника, только после того как дата в терминале сменилась) или в крайнем случае еженедельно проводить переоптимизацию (переадаптацию) советника, чтобы он изучил новые появившиеся паттерны. Период оптимизации для таймфрейма H1 — 1 год.
В советнике используется модель по ценам открытия баров. Гонять в режиме оптимизации по другим моделям нет никакого смысла — пустая трата времени и ресурсов компьютера. Можно только проверить на вшивость результаты оптимизации по модели эмуляции всех тиков.
Примечание: на некоторых процессорах можно ускорить процесс оптимизации, если включить параллельный режим. Для этого нужно в строке 29 исправить:
Если параллельный режим не поддерживается процессором, то это может привести к тому, что терминал выгрузится с сообщением об ошибке
NeuroNirvamanEA. Нейронные сети в автоматической торговле на форекс.
Практически ежедневно можно слышать о различных открытиях, которые касаются искусственного интеллекта.
То лучший шахматист умудрился проиграть роботу, то Илон Маск вовсе заявил о том, что искусственный интеллект в будущем может стать причиной гибели человечества.
А недавняя история о том, как боты на основе искусственного интеллекта в Фейсбук создали свой язык и начали на нем общаться между собой.
Вы думаете, только высокий мир инноваций и информационных технологий применяет способности машин к обучению?
Торгуй по крупному только с ведущим брокером
Нет, в биржевой торговле уже на протяжении многих лет активно ведутся работы над созданиями советников, которые способны обучится торговать на бирже.
Конечно, степень их самостоятельности далека от желаемого, но тем не менее они есть и в этой статье вы познакомитесь с одним из них.
Советник NeuroNirvamanEA – это полностью автоматический торговый эксперт для торгового терминала МТ5, который построен на нейронных сетях, что позволяет его обучать торговле на финансовых рынках в том числе и форекс.
Особенностью NeuroNirvamanEA является тот факт, что он использует нейронную сеть не в качестве основы, а в качестве фильтра.
Если же выделить саму концепцию, то автор робота заложил в эксперт трендовую индикаторную стратегию, которая по понятным причинам приносит плохие результаты во флете.
Благодаря нейронной сети происходит обучение торговать трендовой стратегией во флете, а именно грамотно фильтровать убыточные ситуации.
Сам же советник вполне универсален, поскольку его можно применять абсолютно на всех валютных парах или тайм фреймах, однако это можно делать лишь в том случае если вы правильно оптимизируете настройки и обучите нейронную сеть.
Установка советника NeuroNirvamanEA
Для применения торгового робота NeuroNirvamanEA вам потребуется произвести установку. Стоит заметить что советник NeuroNirvamanEA был создан в 2018 году, более того он библиотеке разработчиков МТ5 что позволяет нам его применять совершенно бесплатно.
Также из-за того что робот был помещен в библиотеку доступно два способа установки.
Для того чтобы установить советник через библиотеку запустите ваш торговый терминал и переместите свой курсор мышки в панель «Инструменты», где находится актуальная информация по балансу.
Затем следующим шагом вам потребуется переместиться в «Библиотеку» и выполнить простую сортировку, теперь в списке появятся только советники.
В отсортированном списке найдите NeuroNirvamanEA и с помощью дополнительного меню как это показано на изображении ниже произведите загрузку:
Если у вас возникнут проблемы с установкой советника через библиотеку, произведите инсталляцию по стандартной схеме.
Для этого переместитесь в конец статьи и произведите скачивание файла робота вместе с индикаторами, после чего поместите их в соответствующие папки каталога данных терминала.
После установки советника обязательно произведите перезапуск торгового терминала, либо обновите его в панели навигатор, поскольку в противном случае робот не появится в списке советников.
Для того чтобы эксперт начал самостоятельную торговлю перетащите его название на график выбранной вами валютной пары.
Стратегия советника. Настройки
Как мы уже отмечали в самом начале статьи, советник NeuroNirvamanEA построен на трендовой стратегии с применение нейронной сети.
Так робот использует два индикатора, а именно Laguerre_PlusDi и SilverTrend_Signal. В качестве сигнального инструмента выступает SilverTrend_Signal, в то время как Laguerre_PlusDi служит лишь для подтверждения сигнала.
Советник не применяет мартингейла, а у каждой выставленной сделки присутствует стоп приказ и профит.
В настройках советника можно влиять как на саму стратегию, так и непосредственно на нейронную сеть, которую необходимо оптимизировать.
Так в переменной SilverTrend #1,2,3: RISK вы можете задать ключевой параметр для расчета данных индикатора SilverTrend Signal. Переменная Laguerre #1,2,3: Period позволяет изменять периоды индикатора Laguerre.
Переменные x11 и x12 отвечают за обучение нейросети. Переменные Take Profit и Stop Loss позволяют задавать профит и стоп приказ в пунктах для позиций.
Тестирование и оптимизация
Прежде чем приступить к использованию советника в реальном рынке автор настоятельно требует произвести обучение нейроных сетей советника путем оптимизации.
Стоит заметить, что в настройках советника присутствует три блока с одинаковыми переменными, но у каждой из них проставлены цифры 1,2,3. Оптимизацию каждого блока необходимо делать поочередно, а не одновременно.
Так в качестве эксперимента мы провели обучение нейронной сети советника за 2017 год на часовом тайм фрейме валютной пары Евро/Доллар. Результаты после обучения эксперта выглядят следующим образом:
В заключение стоит отметить, что NeuroNirvamanEA обладает огромным потенциалом и устойчивостью к переменам на рынке форекс, что обеспечивает нейронная сеть и способность к обучению.
Также представленный робот отлично подойдет трейдерам с небольшим капиталом, так как в роботе присутствует четкая фиксация рисков.
Предупреждение о рисках.
Начиная торговлю CFD на любом из финансовых рынков вы должны четко понимать, что такой вид деятельности может привести не только к прибыли, но и к убыткам.
Место нейросети в торговой стратегии трейдера
Попытаюсь систематизировать своё представление о том, как и для чего можно использовать нейросети и ML в торговой стратегии.
Начнём от обратного. И сразу уточню — речь необязательно идёт об одной нейросети. Скорее, предполагается ансамбль не обязательно связанных сетей, выполняющих свои специальные задачи.
ЧЕГО НЕ ДОЛЖНА ДЕЛАТЬ НЕЙРОСЕТЬ
Как это ни прозвучит, нейросеть не должна предсказывать конкретные значения цен — ни на следующем баре, ни сколько нибудь в отдалённой в будущее перспективе.
Регрессионные задачи выполняются нейросетями достаточно хорошо, тут они конкурируют с (S)ARIMA. Но в цикличных временных рядах.
Например, ими эффективно можно прогнозировать спрос на товары (и от этого — объём продаж), суточную температуру воздуха за окном, воды в океане, прироста численности населения и т.п.
Всё дело в том, что в этих процессах крайне редко может произвойти то, что происходит с ценой, например, акции на рынке — сильное смещение средней ценны вверх или вниз.
ЧТО ДОЛЖНА ДЕЛАТЬ НЕЙРОСЕТЬ
В идеале, она должна показывать для каждого бара заданного таймфрейма рекомендацию одного из трёх известных действий: купить, продать и не делать ничего (оно же — держать).
Вопрос в том, чем кормить такую нейросеть, но он не в тему темы поста. Об этом — в следующих постах.
Тем не менее, ясно, что такая постановка задачи однозначно определяет как структуру выходных слоёв сети, так и активационную функцию последнего слоя, а именно:
последний слой из 3-х нейронов с активацией softmax и компиляция с функцией потерь categorical_crossentropy.
Так же задачей нейросети может быть определение фазы рынка, которые я бы так же разделил на 4: тренд вверх, вниз, flat и пила. Отличие flat от пилы в моём понимании в том, что на flat можно нормально зарабатывать, а на пиле волатильность такова, что и комиссии отбить не удастся.
Выход этой нейросети (тут тоже очевидно, что последний слой из 4-х нейронов с активацией softmax и компиляция с функцией потерь categorical_crossentropy) можно использовать как подтверждающий сигнал для ТС.
Ещё одна задача уже для ML — это выявление паттернов. Вот эти фсе влаги, треугольники, головы и плечи, в которых я абсолютно не разбираюсь (потому что убеждён, что можно увидеть лицо на обоссаной, извините меня, стене, если долго приглядываться) и то, о чем гуру теханализа даже, вероятно, не догадываются, но что может разглядеть нейросеть. Для этого можно использовать кластеризацию данных и детектировать паттерны, ну, например, sklearn.cluster. Выход отсюда, идентифицирующий паттерн, может поступать как дополнительный и/или подтверждающий сигнал на вход в результирующую нейросеть, которая, собственно, будет рекомендовать трейдеру (или МТС), вероятность какого действия в данный момент наиболее высока. Самое замечательное, что тут нет задачи идентифицировать конкретно, что за паттерн образовала цена — нам ведь это неинтересно. Нам всего лишь нужно понять, что завершение вот такого класса паттернов повышает вероятность успешного long или short. Пусть о деталях знает только сама нейросеть, а нам нужна просто рекомендация по действию.
Так же у меня родилась идея, для этого мира наверняка не новая — использовать НС для предсказаний «хороших» акций на основе финансовых отчётов и ценовых данных за период, следующий за публикацией отчётности. Такая нейросеть может предсказать, например, вероятность того, что будет рост или будет падение цены акций. С отной стороны, эта вероятность может быть подтверждающим сигналом для ТС, или поступать на вход другой нейросети, или просто на основании неё можно сформировать некий топ-лист акций с наибольшей вероятностью роста, и далее уже посмотреть на них глазками и потрогать ручками. Я считаю, что это может быть очень полезно, если трейдеру (например, как квалинвестору) доступно 10K бумаг и хочется сосредоточиться на бронебойных вариантах. Глазами всё отсмотреть — задача нереальная, а вот обучающая выборка на таком объёме смотрится уже довольно неплохо.
Как видно из изложенного, так или иначе, но задачи нейросетей применительно к трейдингу лично мне больше видятся как классификационные, чем предсказательные в человеческом смысле, хотя само отнесение к некоему классу нейросетью по факту мы тоже называем предсказанием. Мои торговые роботы ML ни в каком виде пока не используют, но начнут где-то к июню, если на бэктестах будут волшебные результаты.
В качестве заключения, хочу отметить, что в использовании ML важно, чтобы не получилось, как на картинке ниже.
Источник https://www.mql5.com/ru/code/9386
Источник http://forexluck.ru/mt-5/neuronirvamanea
Источник https://smart-lab.ru/blog/683242.php