Development of a software system for data analysis and support of trade decision-making at stock exchanges

Research article
DOI:
https://doi.org/10.60797/COMP.2025.5.5
Issue: № 1 (5), 2025
Submitted :
28.12.2024
Accepted:
20.01.2025
Published:
29.01.2025
35
0
XML
PDF

Abstract

This article is dedicated to the issue of formalization and description of technical aspects of the development of a software system for data analysis and support of trading decisions on stock exchanges. The dataset used is a set of data on stock trading of Apple assets from Yahoo Finance system. The concept of the system consisting of three separate modules was developed, its schematic formalization was performed, the project of the system was created, the diagram of its key components reflecting the links between them was built. The structure of catalogues and files of the system software in the PyCharm development environment was developed, a graphical user interface with interactive widgets for data input, processing and output was implemented. The description of the research results of the developed modules and the strategic recommendations on trade decision-making formed by them, their analysis and interpretation are carried out. Promising directions of further research and ways of system development are outlined.

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. Посредством использования API осуществляется процедура подготовки данных, в том числе выборка фрагментов данных из YF по указанному временному диапазону и типу тикера, данные сохраняются в отдельную коллекцию, после чего осуществляется краткий анализ трендов, расчет и вывод значений цен закрытия за период, капитализации сплитов в выбранном временном диапазоне. На базе созданного набора данных производится его первоначальное исследование посредством создания ряда объектов и моделей путем использования методов оценки скользящего среднего (позволяют сгладить и усреднить статистические значения колебания цен в торгуемых активах, выявить тренды на разных временных периодах и определить потенциальные точки входа или выхода из сделок по покупке или продаже), моделей ARIMA (удобны для анализа данных с элементами сезонности, т.е. с выраженными трендами в различные временные диапазоны, что может быть полезным для учета прогнозных значений стоимости активов, объемов предстоящих торгов), моделей глубокого обучения (для прогноза вероятных сценариев действий на бирже). После создания моделей они могут быть настроены под необходимые временные диапазоны с соответствующими совокупностями входных параметров, влияющих на точность их работ, а также сериализованы в виде отдельных объектов в файлы формата pickle или keras.
Схематическая структура взаимодействия модулей системы

Рисунок 1 - Схематическая структура взаимодействия модулей системы

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

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

Аналитически, оценка простого скользящего среднего (SMA) осуществляется посредством расчета среднего арифметического цен за указанный период в днях, т.е.

img
(1)

где P— цена закрытия, n — количество периодов.

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

img
(2)

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

При этом, если стоимость активов пересекает среднее скользящее снизу вверх, то это может быть триггером приобретения актива, в противном случае сигналом о целесообразности продажи (с учетом временного диапазона прогноза, например 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.
Диаграмма компонентов системы

Рисунок 2 - Диаграмма компонентов системы

Ключевыми компонентами, представляющими собой блоки отдельных python-функций, являются:

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

- DataProcessing, производит процедуры обработки данных, их загрузка и подготовки к процессам обучения и тестирования моделей для их оценки;

- Model, выполняет непосредственно построение моделей ГО (LSTM, CNN, GRU);

- MetricsEvaluation, проводит расчет метрик качества моделей и их сравнение между собой;

- Prediction, реализует процесс старта построения прогнозов и предоставления результатов работы моделей;

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

- FileOperations, осуществляет функционал сериализации данных и объектов путем сохранения и загрузки созданных моделей ГО и результатов их прогнозов.

На базе описанного проекта системы становится возможным его структуризация в иерархическом виде с распределением скриптов и файлов результатов по разным каталогам в зависимости от назначения. Общая структура проекта в среде разработки приведена на рис.3. Каталог ready_models содержит сериализованные файлы объектов обученных моделей. Каталог results хранит текстовые файлы с результатами оценок торговых решений и прогнозов трендов с выдачей рекомендаций по торговой стратегии действий. Каталоги visualization, visualization_arima и visualization_dnn предназначены для хранения диаграмм и графиков результатов исследований соответствующих модулей путем использования формата png. Главный каталог содержит файлы программного кода модулей, в частности signals_analysis, model_arima, model_dnn.
Структура проекта в среде разработки

Рисунок 3 - Структура проекта в среде разработки

Графический интерфейс системы реализован в виде десктопного программного приложения, в качестве элементов интерфейса использованы разные виджеты библиотеки Tkinter.

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

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

Рисунок 4 - Пользовательский интерфейс главной формы программного модуля ГО

5. Исследование работы системы

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

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

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

Рисунок 5 - Состав выходной визуализации результатов анализа данных на базе оценки индикаторов

RSI зависимость явно отражает больший диапазон уровня перекупленности, что свидетельствует о более частых снижениях цен на коротких временных промежутках. В ряде участков наблюдается слабовыраженная дивергенция. Таким образом, совокупный анализ индикаторов дает возможность сделать вывод о необходимости проведения стратегии по приобретению активов на долгосрочный период.
Исследуя модуль ARIMA, созданы 3 разные модели. Для автомодели подбор параметров выполнен на базе автоматического перебора доступных значений в различных комбинациях для минимизации значений AIC, диапазон временных затрат на разных итерациях составляет от 0,08 до 4,81 секунд. Оптимальный набор параметров подобран за период 18 секунд, оптимальные параметры составили (0,1,1). Несмотря на оптимальный подбор параметров 3 разных моделей модуля ARIMA, исходя из значений метрики RMSE, наилучшей моделью является сезонная, что может быть связано с наличием перехода в данных в тренде в летне-осенний период, т.е. модель интерпретирует это как сезонный тренд и позволяет учесть характер изменений более адаптивно. Гистограмма сравнения значений RMSE ошибок построенных моделей ARIMA приведена на рис.6.
Гистограмма сравнения значений RMSE ошибок построенных моделей ARIMA

Рисунок 6 - Гистограмма сравнения значений RMSE ошибок построенных моделей ARIMA

При этом торговые решения формируются моделями достаточно противоречиво, автоматическая модель имеет пессимистичный характер (стратегия продаж для каждого случая), первая модель демонстрирует сбалансированный характер (продажи предполагаются в начале и ближе к концу тренда), наиболее показательны результаты сезонной модели (покупка при стабильном тренде, продажа перед сезонным спадом, после чего покупка при появлении неустойчивого и устойчивого трендов по второй половине года), что является более оптимистичной торговой стратегией (на долгосрочную перспективу).
При использовании модуля ГО выполним построение разных моделей ИНС и проведем сравнение метрик loss, результат приведен на рис.7.
Сравнение метрик loss для построенных моделей ГО

Рисунок 7 - Сравнение метрик loss для построенных моделей ГО

Как можно заметить на протяжении 100 эпох обучения, эффекта переобучения практически не возникает, а наиболее быстрое снижение значений loss наблюдается для наиболее точной модели GRU, уже на первых 3 итерациях. При этом значения loss для модели LSTM стабилизируются позже остальных, около 20-ой эпохи. Сравнение созданных моделей ГО по значениям метрик приведена на рис.8. Самой быстрой, но наименее точной является модель сверточной ИНС, более чем в 6 раз дольше происходит обучение LSTM модели, набольшее длительное обучение характерно для модели GRU. Как можно отметить, значения коэффициента R2 наиболее высокие для модели GRU, при этом для каждой из моделей использовался один и тот же оптимизатор (Adam).
Сравнение созданных моделей ГО по значениям метрик

Рисунок 8 - Сравнение созданных моделей ГО по значениям метрик

Модель GRU наиболее близко отражается локальные перепады тренда и описывает периоды турбулентности в торговой истории. Результаты прогноза тренда движения котировок акций на месячном окне горизонта планирования созданных моделей ГО приведены на рис.9.

Модель GRU отражает общий тренд на следующий месяц (окно прогноза составляет 30 отсчетов), при этом задания оптимистичный тренд на рост активов (покупку в долгосрочной перспективе).

Пессимистичный прогноз выдает модель CNN (продажа), прогнозные торговые стратегии модели LSTM выдают значения близкие к стратегии удержания.
Результаты прогноза тренда движения котировок акций на месячном окне горизонта планирования созданных моделей ГО

Рисунок 9 - Результаты прогноза тренда движения котировок акций на месячном окне горизонта планирования созданных моделей ГО

6. Заключение

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

Article metrics

Views:35
Downloads:0
Views
Total:
Views:35