Разработка программной системы анализа данных и поддержки принятия торговых решений на биржах
Разработка программной системы анализа данных и поддержки принятия торговых решений на биржах
Аннотация
Данная статья посвящена вопросу формализации и описания технических аспектов разработки программной системы анализа данных и поддержки принятия торговых решений на биржах. В качестве датасета использован набор данных о биржевой торговле активами компании Apple из системы Yahoo Finance. Разработана концепция системы, состоящей из трех отдельных модулей, выполнена ее схематическая формализация, создан проект системы, построена диаграмма ее ключевых компонентов, отражающая связи между ними. Разработана структура каталогов и файлов программного обеспечения системы в среде разработки PyCharm, реализован графический интерфейс пользователя с интерактивными виджетами для ввода, обработки и вывода данных. Проведено описание результатов исследования разработанных модулей и формируемых ими стратегических рекомендаций по принятию торговых решений, их анализ и интерпретация. Обозначены перспективные направления проведения дальнейших исследований и пути развития системы.
1. Введение
В настоящее время на современном рынке все большую актуальность среди инвесторов, в том числе и в области криптоактивов, приобретает тренд участия в биржевой торговле . Следует отметить, что процесс принятия торговых решений в обозначенной сфере связан с рядом рисков и сложностей, обусловленных разного рода аспектами и обстоятельствами . В частности, стоимость различных финансовых инструментов может часто изменяться под воздействием множества сложно формализуемых факторов (изменения процентных ставок, социо-геополитические кризисы, нестабильность макро и микроэкономической экосистем, что отражается на поведении участников рынка) . Данный аспект усугубляется постоянным ростом генерации биржами значительных объемов данных, в том числе информации по ценовым котировкам, объемам торгов, экономическим характеристикам, корпоративным отчётам и другим аспектам . Все это оказывает влияние и на человеческий фактор, в том числе на принимаемые трейдерами торговые решения, при которых вероятность ошибок может возрастать из-за субъективных аспектов отдельных лиц .
В силу обозначенных сложностей необходимо выделить наиболее важные аспекты биржевой торговли, от которых напрямую зависит инвестиционный успех, к числу следует отнести скорость и точность анализа . Для обеспечения качественного выполнения аналитических процедур, учитывая сложный характер конкуренции между трейдерами и институциональными инвесторами, все большую актуальность приобретает разработка специализированных аналитических инструментов, способных выполнять автоматизированную поддержку принятия решений, интерпретацию трендов и оценку торговых альтернатив , , . По причине того, что традиционные модели технического анализа являются не в полной мере эффективными, а их уровень адаптивности при внедрении в рамках современных программных продуктов не всегда достаточный для обеспечения требуемого уровня точности и качества аналитических операций, все большую актуальность в биржевой торговле приобретают методы машинного обучения (МО), глубокого обучения (ГО) и нейросетевых технологий (ИНС) в частности , , , . Данные подходы предоставляются функционально значимые инструменты и технологии поддержки принятия торговых решений на биржах, предоставляя возможности автоматизации процессов обработки разнородной информации, анализа больших данных и выявления в них неочевидных и сложных закономерностей и связей , .
Таким образом, разработка собственной системы в сфере анализа данных в биржевой торговле оправдана необходимостью повысить точность, оперативность и адаптивность всего спектра торговых решений . При этом перспективным является внедрение в такую систему комплексных подходов к поддержке принятия решений на основе интеграции методов и моделей МО и ГО.
Цель работы заключается в разработке проекта и программной реализации системы анализа данных и поддержки принятия торговых решений на биржах.
2. Описание входного набора данных
В связи со спецификой рассматриваемой тематики исследований рациональным является выбор Yahoo Finance (YF) в качестве исходного источника данных . Данный датасет является надежным хранилищем информации о финансовых рынках, предоставляющий широкий спектр возможностей по проведению аналитических операций, связанных с прогнозированием трендов в движении цен, финансовых отчетах, экономических событиях и новостях.
Для анализа данных из YF целесообразно использовать библиотеку yfinance, предназначенная для загрузки данных о финансовых рынках из YF на языке программирования Python. Она позволяет получать исторические данные, данные о торгах в реальном времени, информацию о компании, новости, дивиденды.
В частности, поддерживается возможность получения данных по: ценам акций за выбранный период (Open, High, Low, Close, Adj Close, Volume), торгам в реальном времени (в зависимости от доступности), финансовой отчетности компаний, информацию о дивидендах и сплитах акций, метаданные об индустрии, секторах и опционных цепочках, а также о курсах валют и ETF.
3. Разработка концепции проекта
Проект системы реализован на базе использования языка программирования Python и среды разработки PyCharn, с использованием библиотек обработки, анализа и визуализации данных (numpy, pandas, matplotlib, seaborn), а также библиотек машинного и глубокого обучения (keras, tensorflow, sklearn). Для сериализации созданных моделей используются форматы keras и pickle, а также библиотека joblib. Система поддержки принятия торговых решений состоит из 3 отдельных модулей анализа данных, результаты которых используются в комплексе для выработки торговых решений:
1. Модуль оценки и анализа торговых индикаторов на базе построения стратегии на основе скользящих средних (модуль ТИ). На базе входных данных осуществляется создание сигналов покупки/продажи на основе пересечения двух скользящих средних (SMA, EMA) с учетом оценки RSI, MACD и полос Боллинджера.
2. Модуль анализа данных на базе использования моделей ARIMA (модуль ARIMA), поддерживающий построение простой, с автоматическим подбором параметров и сезонной моделей.
3. Модуль создания моделей ГО для построения моделей анализа финансовых временных рядов с формированием прогнозных значений стоимости акций на указанный горизонт (модуль ГО).
Рисунок 1 - Схематическая структура взаимодействия модулей системы
Следующим этапом является оценка результатов сформированных моделей, в том числе посредством визуализации двухмерных графических диаграмм для выделения нужного контекста полученных оценок данных, профилирование процессов тестирования моделей, оценка метрик качества работы моделей и выполнение процедуры прогноза, что в совокупности используется для осуществления поддержки принятия торговых решений по принципу «приобретение/продажа/ожидание».
Аналитически, оценка простого скользящего среднего (SMA) осуществляется посредством расчета среднего арифметического цен за указанный период в днях, т.е.
где Pi — цена закрытия, n — количество периодов.
В свою очередь экспоненциальное скользящее среднее (EMA) позволяет учесть характер влияния последних данных на весь временной горизонт, что делает возможным детальную оценку возможных колебаний и изменений, в том числе благодаря использованию коэффициента сглаживания (α), в частности
В задаче определения тренда в данных торгов осуществляется классификация движения рынка (восходящий, в случае, когда стоимость активов выше средней скользящей и нисходящий в обратном случае).
При этом, если стоимость активов пересекает среднее скользящее снизу вверх, то это может быть триггером приобретения актива, в противном случае сигналом о целесообразности продажи (с учетом временного диапазона прогноза, например Golden Cross или Death Cross сценарии).
Модели ARIMA (ARIMA(p,d,q), где:
p – порядок авторегрессии (AR): количество прошлых значений, используемых для прогнозирования;
d – степень дифференцирования (Integration), т.е. число преобразований, чтобы временной ряд стал стационарным;
q – порядок скользящего среднего (MA): количество прошлых ошибок, учитываемых в модели) целесообразно использовать в нашей системе для прогнозирования будущих значений стоимости активов на базе статистических выборок, в том числе для учета потенциальных уровней поддержки и сопротивления заключения сделок и точек входа и выхода из них.
4. Разработка проекта системы
Пользователь модуля ТИ имеет возможности анализа загруженных данных, выполнения расчета и оценки значений индикаторов (SMA, EMA, RSI, MACD), интерпретация результатов в графическом виде, а также сохранение текстовых результатов анализа данных и сформированных визуализаций.
Для модуля формирования ARIMA моделей общий перечень вариантов использования схож с предыдущим модулем, однако реализован ряд дополнительных аспектов.
В частности, пользователь вводит тикер, временной диапазон и входные параметры для построения моделей ARIMA (простой, с автоматическим подбором параметров и сезонной), также он имеет возможность инициализировать процесс создания моделей, оценки значений ошибок на базе применения метрики RMSE, выполнение прогнозных операций, отображение метрик анализа и рекомендаций в интерфейсе, в том числе их вывод на основе прогнозов, а также функции сериализации моделей результатов анализа в объектные и текстовые файлы, визуализаций в графические файлы.
В рамках использования модуля ГО у пользователя предусмотрены возможности: ввод входных данных; разделение выборки на пропорции по обучающему и тестовому подмножествам; создание моделей ГО (LSTM, CNN, GRU); обучение и тестирование моделей ГО; вывод значений метрик оценки точности моделей; построение визуализаций значений loss; оценка скорости создания моделей ГО; выполнение прогноза и выдача рекомендаций; сохранения визуализаций; сохранение объектов моделей ГО в объекты keras.
Рисунок 2 - Диаграмма компонентов системы
- GUI, обеспечивает различный функционал по отображению виджетов и специальных элементы управления и взаимодействия пользователя с интерфейсом приложения (в том числе при обработке нажатий на кнопки, добавления данных в таблицы, ввода значений и текстовые поля);
- DataProcessing, производит процедуры обработки данных, их загрузка и подготовки к процессам обучения и тестирования моделей для их оценки;
- Model, выполняет непосредственно построение моделей ГО (LSTM, CNN, GRU);
- MetricsEvaluation, проводит расчет метрик качества моделей и их сравнение между собой;
- Prediction, реализует процесс старта построения прогнозов и предоставления результатов работы моделей;
- Visualization, выполняет процедуры построения визуальных диаграмм и графиков для анализа результатов работы моделей, в том числе оценки их метрик;
- FileOperations, осуществляет функционал сериализации данных и объектов путем сохранения и загрузки созданных моделей ГО и результатов их прогнозов.
Рисунок 3 - Структура проекта в среде разработки
В интерфейсе предусмотрены кнопки для обучения моделей, загрузки и сохранения в файлы, выполнения прогноза, построения графика по loss значениям, сохранения результатов прогноза и сравнение моделей между собой, а также очистки таблиц.
Рисунок 4 - Пользовательский интерфейс главной формы программного модуля ГО
5. Исследование работы системы
На базе разработанного функционала системы необходимо провести исследование и анализ результатов практического использования созданных программных модулей.
Состав выходной визуализации результатов анализа данных на базе оценки индикаторов в модуле ТИ приведен на рис.5. В целом значения SMA и EMA близки, однако в ряде диапазонов значение цены пересекает SMA или EMA снизу вверх, это сигнализирует о возможном начале роста, при этом в конечном временном разрезе сужающийся разрыв может предшествовать развороту. Разница между MACD линией и сигнальной линией позволяет отразить силу сигнала, при этом чаще MACD ее пересекает снизу вверх, что отражает сигнал на покупку актива.
Рисунок 5 - Состав выходной визуализации результатов анализа данных на базе оценки индикаторов
Рисунок 6 - Гистограмма сравнения значений RMSE ошибок построенных моделей ARIMA
Рисунок 7 - Сравнение метрик loss для построенных моделей ГО
Рисунок 8 - Сравнение созданных моделей ГО по значениям метрик
Модель GRU отражает общий тренд на следующий месяц (окно прогноза составляет 30 отсчетов), при этом задания оптимистичный тренд на рост активов (покупку в долгосрочной перспективе).
Рисунок 9 - Результаты прогноза тренда движения котировок акций на месячном окне горизонта планирования созданных моделей ГО
6. Заключение
В результате выполненных исследований установлено, что разработанная программная система анализа данных и поддержки принятия торговых решений на биржах позволяет осуществлять разностороннюю оценку различных стратегий с учетом результатов использования торговых индикаторов, моделей ARIMA и ГО. Следует отметить, что общее торговое решение должно приниматься пользователем системы совместно с аналитиком данных на базе комплексной интерпретации и оценки всех рассчитанных торговых индикаторов и полученных моделей, т.к. для торговых бирж характерным аспектом является высокая степень неопределенности и зависимости стоимости активов от различных социальных, политических, экологических, экономических и других сложно формализуемых процессов. В случае, если все модели выдают единогласные результаты, то решение будет наиболее согласованным, в противных случаях (когда присутствует коллизия в прогнозах), необходим выбор превалирующей стратегии или осуществлять удержание активов до момента выявления устойчивого оптимистичного или пессимистичного тренда. Дальнейшим перспективным направлением исследований может быть интеграция нейро-нечетких гибридных методов и моделей для снижения степени неопределенности воздействия внешних факторов на процессы торговли активами.