Индикатор Ценовой прогноз с использованием нейронных сетей — Индикаторы — TradeLikeaPro — Форекс форум

 

Практическое применение нейронных сетей в трейдинге

В данной статье я хочу поднять тему применения нейронных сетей при создании торговых роботов. Это в узком понимании данной проблемы. В более широком аспекте — попытаться ответить на ряд вопросов и рассмотреть несколько проблем:

  1. Возможно, ли построить прибыльную систему используя машинное обучение?
  2. Что мы можем получить от нейронной сети?
  3. Логическое обоснование обучения нейронных сетей на принятие решения.
  4. Нейронная сеть — это сложно или просто?
  5. Как интегрировать нейронную сеть в торговый терминал?
  6. Как тестировать нейронную сеть? Этапы тестирования.
  7. Об обучающих выборках.

1. Возможно ли построить прибыльную систему используя машинное обучение?

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

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

Итак, мы получили ответ на второй вопрос — что мы можем получить от нейронной сети в результате ее обучения? И даже в большей мере надо вопрос перефразировать — что мы хотим получить от нейронной сети в результате ее обучения? А логически подумав, мы можем ответить и на первый вопрос положительно. Поскольку технически и программно это сделать возможно. Как это реализуется на практике, вы можете увидеть в видеоролике на моем канале в https://youtu.be/5GwhRnSqT78. А также посмотреть плейлист с видео онлайн теста нейросетевых модулей на этом же канале https://youtu.be/3wEMQOXJJNk

2. Логическое обоснование обучения нейронных сетей на принятие решения

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

График отклика нейросети обученной на прогнозе цены

1. График отклика нейросети обученной на прогнозе цены

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

Но мы, конечно, хотели бы использовать постулат :“То, что для НС сегодня, для нас — завтра”. Машина времени какая-то. Однако мы понимаем, что все-таки самая лучшая нейронная сеть — это наш мозг. И мы можем использовать этот постулат максимум с 50% успехом (если мы говорим о вероятности да или нет), а то и хуже. Но ведь есть еще и третий вариант: “То, что для НС вчера, для нас — сегодня”. Или так: “ То, что для нас сегодня, для НС— вчера”. Разберем, что для нас означают эти постулаты в трейдинге:

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

Первый вариант, естественно, мы отбрасываем сразу. А вот второй и третий для торговли подходят. Однако второй вариант — вариант как бы заглядывания в будущее. Утрировано этот вариант торговли заключается в том, что мы получаем сигнал от НС в определенный момент времени, например, по закрытию дня с прогнозом, как закроется следующий день (и в данный момент времени нас не интересует движение цены до закрытия сделки). Реализовать его для чисто механической торговли на данном этапе сложно (для прибыльной торговли). Смысл третьего варианта заключается в том, что мы отслеживаем отклик НС на протяжении торговой сессии и покупаем либо продаем, интерпретируя его. И здесь нам надо понять основное.

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

3. Нейронная сеть это сложно или просто?

Если мы говорим о разработке системы торговли с помощью нейронных сетей, то естественно возникает вопрос – а где же нам взять саму нейронную сеть, как ее обучить и интегрировать в торговый терминал. На данном этапе я пока использую готовые НС “NeuroSolutions” и Matlab. Эти платформы позволяют выбрать подходящую вам нейронную сеть, обучить и довести ее до исполняемого файла с подходящим вам интерфейсом. В результате сама программа нейронной сети может выглядеть вот так:

Модуль нейросети, созданный в среде Matlab

2. Модуль нейронной сети, созданный в среде Matlab

Модуль нейросети, разработанный в среде Neuro Solutions

3. Модуль нейронной сети, разработанный с помощью Neuro Solutions

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

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

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

Ценовые данные

4. Ценовые данные

После обучения нейронной сети, она нам выдаст вот такой результат.

Отклик нейросети

5. Отклик нейросети

Для лучшего визуального исследования мы перенесем эти данные в виде индикатора в торговый терминал.

Стохастик и индикатор нейросети

6. Стохастик и нейросетевой индикатор

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

Таким образом, мы можем нарисовать вот такую блок схему торговой системы.

Блок-схема торговой системы

7. Блок-схема торговой системы

Блоки “MT4” – это наш торговый эксперт. Файл цен – “Input_mat”. Файл сигнала – “Open1,2,3”. Примеры этих файлов представлены в следующем разделе.

Основная работа у нас предстоит с блоками “Net1” и “Net2”. Подготавливая их, нам надо будет использовать несколько скриптов и экспертов для подготовки исторических данных и для тестирования сигналов от этих блоков нашим торговым экспертом. Но на самом деле, когда наша система готова как комплекс, ее модификация, развитие, экспериментирование с ней не занимает много времени. В качестве примера вы можете просмотреть видео https://youtu.be/k_OLEKJCxPE . То есть подготовка файлов, обучение “Net1” и “Net2” и первый этап тестирования на котором мы можем оптимизировать нашу систему, занимают 10 минут.

4. Интеграция нейронной сети в торговый терминал

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

Файл нормализованных цен

8. Файл нормализованных цен

Хотя сам способ передачи информации программно нам дает возможность открываться только на следующем тике после прихода сигнала от нейронной сети. Но если система не использует супер краткосрочные моменты совершения сделок, это не существенно. Забегая вперед, отмечу, что в данной статье я рассматриваю систему “по ценам открытия”. И опять-таки, забегая вперед и исходя из вышесказанного, мы приходим к выводу, что системы с таким способом передачи информации требуют тестов либо по контрольным точкам, либо по всем тикам. Тесты систем на нейронных сетях на контрольных точках и всех тиках практически идентичны. Хотя ранее, при разработке традиционных торговых роботов, я сталкивался с проблемой значительного ухудшения итогов торгов при переходе на тест по всем тикам.

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

На рисунке ниже мы видим файлы “Input_mat” и “Bar”. Эти файлы формируются торговым терминалом. Файлы “Open1,2,3” формируются программой НС. Единственное небольшое неудобство заключается в том, что в программе НС нам надо явно задавать пути, к этим файлам исходя из того, в каком качестве мы используем эксперт – тестируя его или реально с его помощью торгуя.

Файлы сформированные модулем нейросети и экспертом

9. Файлы сформированные нейросетевым модулем и экспертом

Файл “Bar” – вспомогательный и используется в качестве счетчика.

Файл Bar

В файлы “Open1,2,3” мы непосредственно получаем отклик НС. Первая строка – предшествующий отклик. Вторая – отклик в реальном времени. Данный формат является частным случаем. В зависимости от условий ведения торгов он может отличаться. Как и само количество файлов откликов. В данном случае это обусловлено тем, что в самом модуле НС используется три сети, обученные на разных временных отрезках.

Отклик нейросетевого модуля в файлах Open1,2,3

10. Отклик НС модуля в файлах Open 1,2,3

5. Как тестировать нейронную сеть? Этапы тестирования

При подготовке торговых систем на основе нейронных сетей я использую три этапа тестирования. Первый этап я назвал быстрым тестированием. Это основной этап подготовки системы в смысле ее общей работоспособности. На этом этапе мы систему можем оптимизировать, и на оптимизацию у нас не уходит много времени. Здесь мы используем скрипт или эксперт для подготовки файла исторических данных после “истории”, на которой мы обучали нейронную сеть и по текущее время. Потом мы по этим данным получаем отклики от сети с помощью скрипта из среды матлаб и по ним строим индикатор. С помощью этого индикатора мы и оптимизируем наши НС отклики на вхождение в рынок и выход из него. На рисунке ниже приведен пример этого индикатора. Этот индикатор является интерпретацией 52 производных от 12 пользовательских индикаторов. Хотя это могут быть и стандартные индикаторы терминала.

Индикатор построенный по откликам нейросети

11. Индикатор построенный по откликам нейросети

Далее мы можем оптимизировать нашу стратегию торговли.

Результаты тестирования индикатора нейросетевых откликов

12. Результаты тестирования откликов нейросети

Второй этап проведения тестов заключается в том, что мы должны обучить и записать нейронные сети в среде Matlab с помощью Neural Network Toolbox.

Neural Fitting

13. Neural Fitting

Полученные нейросети

14. Полученные нейросети

Получить отклик от этих нейронных сетей из командного окна.

Получаем отклик от нейронных сетей

15. Получаем отклики от нейронных сетей

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

Если у нас все получится, то можно двигаться далее.

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

Запустим скрипт в рабочей среде Matlab

16. Запустим скрипт в рабочей среде Matlab

Запустим эксперт в терминале

17. Запустим эксперт в терминале

Получим примерно такой результат.

Результат тестирования скрипта Matlab и эксперта MT4 и

18. Результат тестирования скрипта Matlab и эксперта MT4

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

Тестируем скомпилированный модуль нейросети

19. Тестируем скомпилированный нейросетевой модуль

Если мы получим схожий с предыдущим результат, то можно приступать к реальной торговле по нашей нейросетевой системе.

5. Об обучающих выборках

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

Индикатор отклика нейросети обученной по иной выборке

20. Индикатор откликов нейронной сети обученной по иной выборке

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

Согласитесь, что двенадцать индикаторов оптимизировать гораздо сложнее.

Заключение

На тему применения нейронных сетей в трейдинге написано много статей. Литературы, в которой бы полностью раскрывалась данная тема на предмет доведения системы построенной на нейронных сетях до реального ее применения, очень мало. Да и многие описания предназначены в основном для пользователей со специальными знаниями в программировании. В одной статье, да и в нескольких, данную тему раскрыть сложно. Но я попытался это сделать без нагромождения теоретического и специального материала в книге “Нейросетевая торговая система. MetaTrader 4 + MATLAB. Пошаговая разработка. Издание второе”.

Предупреждение: все права на данные материалы принадлежат MetaQuotes Ltd. Полная или частичная перепечатка запрещена.

Индикаторы на нейронных сетях для форекс

Что существуют формулы нейронных сетей это без порнно хорошие вещи.Грацыяс :d.

Изменено 2 сентября, 2017 пользователем Conky

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

Dioxin vTrend

Dioxin vTrend

на рынке все намного проще 🙂

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

zombie_knt

zombie_knt

а LSTM есть? ну или что-то из группы RNN

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

oblacko

oblacko

У меня не работает, терминал просто вырубается при скидывании на график

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

zombie_knt

zombie_knt

для всех изучающих эту тему, могу сказать только , что ценовые данные предварительно нужно прогнать через регрессию дерева принятия решений(AdaBoostRegression(DecissionTree)), по параметрам не подскажу (на данный момент все компы сдохли, слава электрикам. ), ну а затем уже изгаляться или с обычными нейронами, ну а лучше специально предназначенными для временных рядов рекуррентными сетями типа SimpleRNN, LSTM, GRU. На Кагле только что закончили конкурс с предсказаниями использую новостную ленту, в претендентах на победу модель на LSTM с качеством 0.59(на некоторых акциях до 0.75)

Индикатор инновационной нейронной сети “НЕЙРО ДЕТЕКТОР”

Innovative Neural Network Indicator “NEURO DETECTOR”

, Индикатор инновационной нейронной сети “НЕЙРО ДЕТЕКТОР”

НЕЙРО ДЕТЕКТОР” дает легкую и четкую индикацию, его индикаторы необычайно точны и ни в коем случае не перерисовываются, покупка и продажа на них все время стоит. Жизненно просто интерпретировать показания индикатора, его индикаторы всегда конкретны и не допускают двойных интерпретаций. Среди умелых торговцев, Индикатор NEURO DETECTOR признан эффективным и надежным помощником при покупке и продаже. Индикатор NEURO DETECTOR использует новейшие ноу-хау нейронного сообщества..
Внутри индикатора архива + шаблон для этого + бонусы. Есть привязка к аккаунту, так получить дилерский терминал Grandcapital dot web, введите количество счетов и пароль, затем внутри индейки введите ключ активации. Все что указано в файле текстового содержания.

, Innovative Neural Network Indicator “NEURO DETECTOR”

, Индикатор инновационной нейронной сети “НЕЙРО ДЕТЕКТОР”

Экспертиза нейронных сетей – Вы не найдете второго такого индикатора, так точно предсказывающего маршрут движения рынка.! Без задержек, без переписывания знаков.
24/7 Оценка международного рынка – Неважно, где вы живете или в какое время хотите заниматься торговлей., индикатор круглосуточно анализирует рынок, так что вы можете работать в любое время и в любом месте.
Разнообразие предупреждений – Индикатор может работать одновременно на всех валютных парах.. Дополнительные индикаторы на входе!
Удобно использовать – В результате его читабельности и информативности, этот индикатор на удивление легко и просто использовать.
Всегда Чрезмерная точность– Оповещения всегда конкретны и ни в коем случае не перерисовываются.!
Знак Высокое качество – Индикатор изучили более 3000 близкие, достоверность показателей подтверждена!
Без дефектов – Без лагов. Без задержек. НЕ переписывать.
Быстрый старт – Этот индикатор можно очень просто и быстро установить.. Настройка и полный запуск индикатора не требуют дополнительных данных и занимают всего две-три минуты..
Настройка нескольких активов – Индикатор настроен для работы на кросс-валютных парах.. Улучшение разнообразия надежных индикаторов.
Точность знака больше, чем 82% – Чрезвычайно чрезмерная точность знаков, покупка и продажа на всех таймфреймах!
Бонус – Дальнейший секретный индикатор ($).

Источник https://www.mql5.com/ru/articles/7031

Источник https://tlap.com/forum/topic/16820-indikator-tsenovoy-prognoz-s-ispolzovaniem-neyronnyh-setey/

Источник https://forexwikitrading.com/ru/forex-indicators/innovative-neural-network-indicator-neuro-detector/