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

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

Введение

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

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

Приветствуется здоровая критика, приправленная аргументами и доказательствами.

Целеполагание

Мы с вами живём в капиталистическом мире, и не будем друг друга обманывать. Каждый инвестор хочет заработать побольше, но при этом рисковать поменьше. Но как это сделать?? Как определить куда нужно вложить деньги??

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

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

Рис. 1. Куда пойдут котировки? Тикер, ASRT

Есть такие инструменты анализа данных, которые обобщенно называются «предиктивной аналитикой». Приведу одно из определений из интернета:

«Предиктивная аналитика (от англ. predictive analytics — предсказательная аналитика) — методология анализа данных, используемая для прогнозирования будущих событий.» (с)

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

Подход к решению задачи

Логика решения данной задачи следующая. Для каждого финансового инструмента нам нужно получить прогноз канала движения котировок на достаточно значительном промежутке (всё таки мы рассматриваем инвестиционные процессы, а не торговлю, поэтому в качестве цели поставим прогноз до 1 года.)

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

Рис. 2. Условное обозначение прогнозируемого канала, который нам нужно получить.

Основа канала – прогнозируемый вектор движения котировок (рис. 2, жёлтая линия). Относительно вектора движения сами границы канала можно строить по разному. В нашей статье мы будем рассматривать ATR каналы. Хотя, я здесь сделаю замечание, что вы можете руководствовать своей логикой и выбрать другие виды каналов.

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

Нейронные сети

В данной статье решение задачи предиктивной аналитики было выполнено с применением MLP нейронных сетей. Хотя решить данную задачу можно и на LSTM нейронных сетях. Для получения обобщенной модели и уменьшения переобучаемости использовали регуляризацию и дропаут. В процессе обучения контролировали точность по среднеквадратическому отклонению (рис. 3).

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

Рис. 3. Пример показателей среднеквадратического отклонения для обучающей и тестовой выборок

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

Объем датасета: 10 лет биржевых данных для каждого инструмента.

Датасет делился на 3 части:

- Тестовая выборка: порядка 1 года.

- Обучающая выборка: порядка 8 лет.

- Предиктивная выборка: порядка 1 года.

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

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

Для каждого расчёта получали расчётные вектора движения котировок, а также медленное EMA и ATR для расчёта канала.

Результаты расчётов можно скачать здесь.

Финансовые инструменты

Финансовые инструменты были выбраны случайным образом. Вот перечень тикеров данных финансовых инструментов: UMPQ, HRZN, PENN, SCVL, SIFY, SSYS, GIII, ASRT, AXON, KRNY, OESX, FULT, RIGL, CDXC, CHCI, SMSI, SBGI, TTEC, WTFC, LAMR, LPSN, MNSB. Всего 24 инструмента.

Данный портфель является сильно разнородным. Там есть как растущие акции (рис. 4).

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

Рис. 4. График котировок, EMA и расчётного вектора движения котировок для AXON

Есть падающие акции (рис. 5).

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

Рис. 5. График котировок, EMA и расчётного вектора движения котировок для SSYS

А есть акции с боковиком и сильной волатильностью (рис. 6).

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

Рис. 5. График котировок, EMA и расчётного вектора движения котировок для SCVL

Мне видится, что если и тестировать системы, то так, чтобы было интересно. На разнородных инструментах с непредсказуемым результатом. Что было больше адекватности и реализма.

Методика оценки результатов

В ходе исследований контролировали следующие показатели:

- Точность определения тренда исходя из времени прогноза.

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

Рис. 6. Пример верного определения тренда на всём промежутке, тикер UMPQ, 130 дней прогноза

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

Рис. 7. Пример неверно определённого тренда, тикер WTFC, 263 дня прогноза

На рисунках 6 и 7 показаны два разнородных прогноза. В одном случае прогноз верен на 100%, а в другом случае его точность стремиться к 0. Разумеется есть частично верные прогнозы, их точность оценивали по доле времени верного определения тренда.

- Точность прогноза исходя из доли инструментов с положительной доходностью.

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

Рис. 8. Пример результатов расчёта доходности.

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

- Потенциальная максимальная доходность прогноза.

- Реальная текущая доходность расчётного периода.

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

Рис. 9. Потенциальный убыток (красные линии) и реальный убыток (зеленые линии), тикер PENN, прогноз 263 дня

К слову говоря, на данном рисунке также видно, как вектор движения котировок частично верно определён.

Результаты

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

Первое, что я хотел бы сказать, это дальность прогноза.

Взгляните на картинку ниже.

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

Рис. 10. Прогноз движения котировок на срок до года, тикер UMPQ

Очень низкие показатели точности. А теперь взгляните на картинку ниже.

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

Рис. 11. Прогноз движения котировок на срок до года, тикер UMPQ

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

Если брать консолидированные показатели точности прогноза, то для шестимесячного прогноза средний показатель точности оставляет 71,49%, а для годового прогноза этот показатель уже 27,93%.

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

Следует понимать, что для длительных целей нужен непрерывный контроль и предиктивный анализ инструмента с учётом постоянной адаптации нейронных сетей к изменяющимся условиям.

Также следует сказать и о причинах. Если мы в статье рассматриваем предиктивную аналитику только с точки зрения технического анализа, то сами принимаемые решения многообразны. Значительную часть из инструментов принятия решения занимает фундаментальный анализ. Банально, вышла слабая отчётность и инструмент ушёл в коррекцию. Это не спрогнозировать никакими техническими анализами. Поэтому, единственный вариант это комплексное принятие решений, но в данной статье мы рассматриваем лишь небольшой кусочек этого решения. Другой стороной вопроса могут быть и иные процессы, суды, хайпы и разгон на новостях, кризисы и много чего еще. Ранее я писал статью об использовании сентиментного анализа. С идеями этого анализа вы можете ознакомиться здесь.

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

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

Рис. 12. Расчёт вектора движения (оранжевая линия) и EMA 200 (зелёная линия) для тикера UMPQ

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

Также обратите внимание, что используется EMAбольших периодов, так как мы здесь рассматриваем именно инвестиционные процессы, а не отработку волатильности.

Доходность

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

Рис. 13. Результаты расчёта

Взгляните на потенциальные и реальные доходности при прогнозе на 6 и 12 месяцев. В прогнозах на длительном промежутке времени очень много ошибок. Потенциально доходные инструменты показывают убыток и наоборот. Казалось бы потенциально убыточные активы показывают рост. Тем не менее, точность увеличивается с уменьшением дальности прогноза.

В качестве примера доходности возьмём инвестицию в лонг со stoploss и без.

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

Рис. 14. Доходность в лонг без стоп лосс на прогнозе в 130 дней

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

Рис. 14. Доходность в лонг со стоп лосс = 10% на прогнозе в 130 дней

Сравнивая доходность портфеля при прогнозе до полугода без предиктивной системы и с предиктивной системы то мы получаем следующее. Реальная доходность в боевых условиях на данном промежутке времени составляет -1,12% (то есть, мы имеем убыток). Но при этом, мы можем повысить доходность до +5,44 и +8,42% без стоп лосс и со стоп лосс соответственно. Опять же замечу, что это доходность за пол года. Приводя к годовому выражению, доходность может быть порядка +11% и +17%, что в случае со стоп лосс является весьма неплохим результатом на таком ужасном портфеле.

Теперь 2 слова о рисках.

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

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

Рис. 15. Потенциально и реально убыточные позиции в прогнозе на 130 дней

Из 24 инструментов были детектированы 4 убыточные позиции, они и оказались таковыми в реальности. Справедливости ради стоит отметить, что не все убыточные позиции были определены.

Лишь 12 из 18 позиций при торговле в лонг были доходными (67% точность), и соответственно 6 убыточных позиции не были детектированы.

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

Рис. 16. Убыточная позиция CDXC при прогнозе на 130 дней

Давайте взглянем на рис. 16 и самую убыточную позицию при торговле лонг на данном портфеле при прогнозе на 130 дней. Как мы видим рисунка. Где-то треть времени прогноз был верен. В данном случае следует понимать, что если вы постоянно адаптируете ваши нейронные сети к изменяющимся условиям, то у вас нейронная сеть покажет изменение тренда (рис. 17).

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

Рис. 17. Изменение тренда на убыточной позиции CDXC при прогнозе на 130 дней

Да, вы может быть не закроетесь со значительной прибылью, но вас по крайней мере не будет убытка в 30+ %.

Фундаментальные причины прогноза

Следует понимать почему всё, что описано выше работает. Главная причина того, что всё это можно использовать – инерционность рынка. Торговых и инвестиционных систем превеликое множество. И многие из них оторваны от фундаментальных факторов. Кто-то торгует и инвестирует по EMA. И имеет на это право. Как я показал в предыдущей статье, стратегии на EMA имеют право на существование. А если и иные алгоритмы, в том числе основанные на системе предиктивной аналитики. И все они инерционны и взаимно тащат друг друга.

Принятие решений

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

Выводы

1. Системы предиктивной аналитики могут стать как поддержкой и опорой в принятии решений, так и источником инвестиционных сигналов.

2. Прогнозы на длительном промежутке весьма не точны, и если есть возможность, то лучше снизить дальность обозримого промежутка.

3. Нейронные сети очень чувствительны к данным. Их должно быть достаточно для качественного обучения.

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

5. Системы предиктивной аналитики имею значительные перспективы во всём. И в торговых и инвестиционных алгоритмах, и во всех сферах жизни. Бизнес, маркетинг, инженерия, производство и все остальные отрасли во всём их многообразии.

Два слова о себе. Я являюсь основателем стартапа по предиктивной аналитике международных финансовых рынков на базе нейронных сетей finprophet.com. Мне интересна тематика автоматизированного принятия решений по торговле и инвестированию, в том числе с применением нейронных сетей. Считаю, что за этой технологией будущее. Если у кого то будет желание пообщаться, можно писать мне здесь или по контактам, указанным ниже.

Контакты:

Всех благ, побед и

успехов на фондовых

рынках!

55
49 комментариев

С каких пор скам-проектам разрешено рекламироваться на ВЦ.ру?

А эта псевдо-финансовая статья - просто праздник какой-то, давно не видел такой дикой смеси невежества и желания это невежество выставить на показ.

7
Ответить

Не понял, где вы увидели рекламу?? Статья о технологии, а не каком-то проекте. Я ни у кого не беру денег, не занимаюсь инфоциганством, никому ничего в статье не продаю. Где вы увидели Скам?? Вы можете показать и аргументировать свою позицию??

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

Если вам есть что сказать, то вы можете это аргументированно написать. Привести доказательства и прочее. Но я не думаю, что вы это сделаете. Я думаю, что доказательств ваших слов никто не увидит в комментариях.

4
Ответить

Не понял, где вы увидели рекламу??

Серьезно? Т.е. ссылка на ваш скам-сайт - это не реклама?

Статья о технологии


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

Я ни у кого не беру денег,

Вы продаете подписку на своем скам-сайте, обещая "High forecast accuracy reaches 98%.", что очевидно является ложью и скамом.

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

На мой взгляд, нет никаких оснований проявлять "культурность" по отношению к скамерам типа вас.

Ниже скриншоты вашего сайта - на них очевидно скамерский лендинг с фейковыми отзывами и обещанием золотых гор.

3
Ответить

1. Да, у меня есть стартап. И я не вижу ничего плохого в том, чтобы делать бизнес.

2.Если бы вы прочитали статью, то заметили. Что ссылка на мой стартап из всех двух десятков страниц находится в самом низу. Я не пиарю себя, проект. Не призываю ничего покупать. Не продвигаю что-то. Я рассматриваю технологию и не более того.

3. Если вы взрослый человек, то взрослые люди ведут себя культурно и не бросаются голословными обвинениями. Вы привели скриншоты из проекта. И что?? Это является доказательством чего-то??

Более того, если вы не заметили. То у меня любой совершенно БЕСПЛАТНО! может воспользоваться проектом ничего не покупая. Любой может проверить, протестировать и решить для себя нужно ему что-то или не нужно.

В чём скам, я не понял?? В том, что я бесплатно даю людям возможность попробовать??

Это моё последнее вам сообщение. Очевидно, что вы настроены агрессивно и не адекватно.

Нормальные люди, когда критикуют, аргументируют свои слова.

+ хочу заметить, что вы пишите про что-то совершенно другое. Если вы не заметили, то в статье описана технология. Но вы не обсуждаете технологию. Вам хочется просто безосновательно оскорбить человека. Не более того.

Всего вам наилучшего.

4
Ответить

Хоть копейку настоящую заработал, нейросеть?

1
Ответить

Прикольно, но не работоспособно.

1
Ответить

- Тестовая выборка: порядка 1 года.- Обучающая выборка: порядка 8 лет.- Предиктивная выборка: порядка 1 года.

На этот-то раз данные по времени не пересекаются, или опять та же ошибка?

Ответить