Введение:

Код: https://github.com/maagalamharsha/Future-Prediction-of-Call-and-Put-Prices-using-Deep-Learning/tree/cf17bbad010e00d66b86ae0ec598c1dbbc09bcac

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

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

Данные:

Мы рассматриваем данные обучения с 01.01.2010 по 31.05.2020, все данные получены из Tingo API. Пожалуйста, обратите внимание, что на дату 31.05.2020. Это связано с тем, что на момент написания этого блога мы могли получить данные до 11.10.2020, но нам нужны некоторые наземные данные для сравнения.

Возьмем данные за 2010 год.

Как обычно, мы видим, что акции росли с финансового кризиса 2007 года, а с 2017 года они значительно улучшились благодаря анонсу линейки процессоров Ryzen. Для этой модели мы собираемся также рассмотреть различные другие данные компании. Мы не можем считать, что AMD является единственной компанией, в финансовом мире все компании связаны друг с другом.
Пример: AMD и Intel являются конкурирующими компаниями, и в большинстве дней движения обратно пропорциональны.

Поэтому мы рассмотрим цену закрытия акций таких компаний, как Intel (INTC), Nvidia (NVDA), Microsoft (MSFT), Qualcomm (QCOM), TSMC (TSM), S&P ETF (SPY).

Цель:

Мы будем прогнозировать цену акций AMD на следующие 10 дней, то есть с 01.06.2020 по 12.06.2020, не обращая внимания на будущие данные.

Технические характеристики:
Используя цены закрытия целевой компании, мы добавляем несколько функций финансового технического индикатора.
7-дневная скользящая средняя: это скользящая 7-дневная скользящая средняя. Это функция, которая намного ближе к фактической цене акций.
21-дневная скользящая средняя: она аналогична 7-дневной скользящей средней, но ширина окна больше 21 дня.
Схождение и расхождение скользящих средних: это индикатор импульса тренда, который показывает взаимосвязь между двумя скользящими средними цен акций.
MACD рассчитывается путем вычитания 26-периодной экспоненциальной скользящей средней ( EMA) от 12-периодной EMA.
Полосы Боллинджера: это два максимальных и минимальных индикатора, которые показывают, что 2 стандартных отклонения от 20-дневной простой скользящей средней.

Преобразование Фурье.
Преобразование Фурье — это статистическая функция, которая выводит серию синусоид, которые являются приближениями фактической функции. Он работает путем устранения шума фактической функции, результирующая функция является функцией приближения. Мы добавим два аспекта преобразования Фурье: угол и абсолютный(величина).

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

Пример:
1) Когда AMD является нашей целевой переменной, остальные компании, такие как Intel (INTC), Nvidia (NVDA), Microsoft (MSFT), Qualcomm (QCOM), TSMC (TSM ), S&P ETF(SPY) будут нашими зависимыми переменными.
2) Когда Intel является нашей целевой переменной, остальные компании, такие как AMD(AMD), Nvidia(NVDA), Microsoft(MSFT), Qualcomm(QCOM) , TSMC(TSM), S&P ETF(SPY) будут нашими зависимыми переменными.

Методология.
Цель состоит в том, чтобы делать прогнозы, когда у нас нет предоставленных данных. Итак, нам нужно запустить цикл, который содержит значение количества дней, для которых нам нужно делать прогнозы. Для каждого цикла нам нужно получить прогнозы для всех компаний в наших наборах данных. С текущими доступными данными мы можем получить прогнозы на 1 июня 2020 года, но на ближайшие дни у нас нет данных. А вот и использование прогнозов, мы знаем, что можем получить прогнозы для AMD, используя данные остальных компаний и технические характеристики. Точно так же, как мы можем получить прогнозы для остальных компаний, мы получаем прогнозируемые цены закрытия на 1 июня 2020 года для всех компаний в нашем наборе данных.

Мы включаем наши прогнозы на 1 июня 2020 года в наш фактический набор данных, и тот же процесс будет продолжаться до окончания цикла. Обратите внимание, что при прогнозировании будущих данных с неизвестными данными мы не сможем получить какие-либо фундаментальные данные, связанные с новостями, которые являются результатом внесения микрокорректировок.

Для генерации прогнозов нам нужна модель. Мы используем базовую сеть LSTM на 500 единиц. И входными данными для этой модели будут 70-дневные исторические данные.

Данные будут выглядеть как т-70, т-69, т-68…. т. И целью для этого конкретного наблюдения будет цена целевой компании в момент времени t.

Цена опций:

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

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

Я использовал прогнозируемые цены для расчета цен колл и пут с использованием модели ценообразования Блэка-Шоулза.

Модель ценообразования Блэка-Шоулза. Модель Блэка-Шоулза, также известная как модель Блэка-Шоулза-Мертона (BSM), представляет собой математическую модель для определения цены опционного контракта. В частности, модель оценивает изменение финансовых инструментов во времени. Предполагается, что эти инструменты (такие как акции или фьючерсы) будут иметь логарифмически нормальное распределение цен. Используя это предположение и учитывая другие важные переменные, уравнение выводит цену опциона колл. (источник: https://www.investopedia.com/terms/b/blackscholes.asp)

Цена исполнения: цена, установленная для покупки/продажи акций в дату погашения.

Цена вызова: опцион на покупку акций по цене исполнения в момент погашения, независимо от фактической рыночной цены акций.

Цена пут: Опцион на продажу акций по цене исполнения по истечении срока погашения независимо от фактической рыночной цены акций.

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

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

GAN содержит две сети: 1) Генератор и 2) Дискриминатор. Все фактические данные будут помечены 1, а поддельные данные из генератора будут помечены 0. Мы поочередно обновляем веса в Генераторе и Дискриминаторе. Мы продолжаем обучать эти модели до тех пор, пока потери в Дискриминаторе не станут очень высокими и он не сможет определить разницу между поддельным и реальным образцом.

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

Я также пробовал GAN, но сгенерированные данные не соответствуют фактическим данным. Это будет областью исследований, которые будут продолжены в будущем (будет опубликовано, если что-то будет достигнуто).

Отзывы:
Борис Б:
Я многому научился из его работы, научился применять GAN, приложение компьютерного зрения, применяемое на фондовом рынке. А также некоторые технические индикаторы, которые используются в моем блоге.
Джейсон Браунли:

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

Прогнозирование акций на основе оптимизации портфеля с использованием сети с долговременной памятью в количественной торговле:

Это помогло мне определить источник данных. Все мои данные получены из источников, перечисленных в этом исследовательском документе.

Прикладной курс ИИ:

LinkedIn: Харша Вардхан Маагалам