ichechet
1
All posts from ichechet
  ichechet in ichechet,

Использование нейронных сетей в ТС

 

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

 

Суть нейронных сетей такова: есть несколько входов, на которые подаются данные. Есть выходы. Нейронная сеть должна сама создать правила, которые связывали бы входы и выходы. Дальше - все понятно: на входы мы подаем значение цен или индикаторов, на выход - будущее движение рынка. Теперь дело за малым - подать что-то конкретное.

 

Я буду тестировать свой индикатор "Замах" . На входы подам замах быков и замах медведей с периодом 9. Т.к. тестировать буду часовки на акциях, то 9 - это кол-во часов в торговой сессии. На выходе в первой нейронной сети я буду подавать максимальное отклонение вверх цены от закрытия текущей свечи в процентах за следующие 9 часов, во второй - отклонение вниз цены в процентах за те же 9 часов. Схематически нейронные сети в Neuro-Lab будут выглядеть так:

 

 

Синие точки - это 2 входа. Зеленая - выход. Красные точки образуют промежуточный уровень где с разными весовыми коэффициентами "замешиваются" входы. Мы заранее не можем сказать с какими, но будут выделены 4 основные группы. Кол-во групп и уровней красных точек можно менять при определении нейронной сети.

 

Итак, нейронная сеть описана, уровни заданы. Теперь нужно ее тренировать. Для этого я возьму следующий список ликвидных акций за последний год: Аэрофлот, Северсталь, НЛМК, Ростелеком, Сбербанк, Сбербанк прив, Транснефть. Эти акции наиболее хорошо торгуются по трендовым ТС, поэтому именно их характерные особенности я и хотел посмотреть. Набор также может быть любой. 50% данных каждой акции будут использоваться для тренировки модели. Остальные 50% - для проверки. Алгоритм будет циклически их гонять, подбирая коэффициенты с постепенным уменьшением среднеквадратичной ошибки. Каждый цикл называется эпохой. Я взял для тренировки 500 эпох для каждой нейронной сети.

 

Результаты тренировки представлены в виде осциллятора NN, который принимает значение от 0 до 100. Чем меньше значение осциллятора, тем меньше прогнозируемое значение. Для Сбербанка по прогнозируемым движениям вверх будет такая таблица:

 

 

Здесь все просто: если значение осциллятора от 7 до 8, то прогнозируемое движение вверх - 0.98% от цены закрытия текущей свечи. В третьей колонке показано кол-во измерений. Чем оно больше - тем лучше. Я, например, не использую те значения, кол-во измерений которых меньше 20-и. Таблица нейронной сети движений цены вниз для Сбербанка будет такая:

 

 

Если осциллятор NN принимает значения от 26 до 27, то прогнозируемое движение вниз - 1.80% от закрытия текущей свечки.

 

Теперь нужно все это полученное хозяйство протестировать. Построим часовой график Сбербанка, нанесем на него EMA(24) и построим осцилляторы NN для движений вверх (зеленая кривая внизу) и для движений вниз (красная кривая внизу). Торговать будем по пересечению цены закрытия EMA. На свечке, помеченной желтым маркером цена закрытия была ниже EMA и составляла 106.78. NN нейронной сети наверх был в диапазоне от 7 до 8, NN нейронной сети вниз был в диапазоне от 26 до 27. Вытаскиваем из полученных таблиц прогнозируемое движение цены:

 

 

Прогнозируемое движение вверх: 106.78 * 1.0098 = 107.83 (красная линия на графике)

Прогнозируемое движение вниз: 106.78 * 0.9820 = 104.86 (зеленая линия на графике)

 

Теперь, раз мы входим вниз, то уровень 107.83 можно использовать как стоп, уровень 104.83 - как профит. Которого мы, в итоге, и достигаем. Вот и вся любовь! Как обычно, в конце поста, резюме.

 

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

  1. Прописать входы и выход
  2. Задать структуру нейронной сети
  3. Обучить ее на исторических данных
  4. Получить таблицы прогнозов
  5. Использовать в торговле для определения мишеней и стопов