VolTS: торговая система на основе волатильности для прогноза тренда фондового рынка методами статистики и машинного обучения

5/10

Иван Леттери · Университет Л'Акуилы, Италия · v2, 17 августа 2023

Оригинал: Letteri, I. «VolTS: A Volatility-based Trading System to forecast Stock Markets Trend using Statistics and Machine Learning», 2023 — arxiv.org/abs/2307.13422 (PDF).

Рисунки и таблицы воспроизведены из оригинальной публикации. Оригинал распространяется по лицензии CC BY 4.0; перевод выполнен на её условиях, изменение по отношению к оригиналу — перевод на русский язык.

Ключевые слова: машинное обучение, статистическое обучение, алгоритмическая торговля, обучение без учителя, обучение с учителем, метод k ближайших соседей, k-средние, тест причинности по Грейнджеру.

Аннотация

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

Метод состоит из нескольких шагов: разведочный анализ данных, анализ корреляций и автокорреляций, применение технических индикаторов, использование статистических гипотез и моделей, а также алгоритмов отбора переменных. В частности, мы применяем алгоритм кластеризации k-means++ для группировки средней волатильности девяти крупнейших акций рынков NYSE и NasdaqGS. Полученные кластеры служат основой для выявления связей между акциями по характеру их волатильности. Далее мы применяем тест причинности по Грейнджеру к кластеризованному набору данных со средней волатильностью, чтобы определить предсказательную силу одной акции по отношению к другой. Выявляя акции с сильными предсказательными связями, мы строим торговую стратегию, в которой акция, выступающая надёжным предиктором, становится индикатором тренда для решений о покупке, продаже и удержании целевой бумаги.

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

1. Введение

Торговля на основе волатильности — всё более значимая область в финансовой индустрии, поскольку она даёт возможность извлекать выгоду из рыночной динамики. Искусственный интеллект приходит в эту область, играя важную роль в создании надёжных инструментов и методов анализа и использования рыночной волатильности. В частности, применение ИИ для оценки средней волатильности даёт ценное представление о неопределённости и риске, связанных с конкретными бумагами или рынком в целом [17].

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

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

Основная цель этого исследования — разработать торговую стратегию на основе ИИ с использованием кластеризации данных средней волатильности, рассчитанной алгоритмом k-means++ [2], по набору из девяти крупных бумаг. Первоначальная задача — выявить различные режимы волатильности, существующие на рынке, и сгруппировать активы по этим режимам. Затем мы применяем тест причинности по Грейнджеру (GCT) [9] для выявления акций, выступающих значимыми предикторами других акций в нашей вселенной анализа, чтобы задать цели для покупки, продажи или удержания.

С помощью нашего фреймворка AITA [10] мы провели тщательный эмпирический анализ доходности и результативности предложенной стратегии на исторических данных. Для оценки эффективности и устойчивости стратегии в генерации прибыли рассматривались различные метрики.

Литература по техническим торговым стратегиям довольно обширна, причём большинство исследований сосредоточены на скользящих средних цен как на основных индикаторах для определения моментов входа и выхода [19]. Мы рассматриваем оценщики исторической волатильности (HV) как потенциальный набор данных, из которого можно извлечь среднюю волатильность для отбора акций и применения к ним GCT в подходе с коинтеграцией активов [7].

Дальнейшие разделы статьи посвящены деталям предложенного метода. Раздел 2 излагает предварительные сведения о фреймворке AITA и задействованных модулях (VolTS и AitaBT). Раздел 3 описывает методологию, встроенную в модуль VolTS (Volatility Trading System), для группировки средней волатильности бумаг и выявления предсказательных связей между ними, а затем эксперимент с торговой стратегией на основе этих результатов. В разделе 4 приводятся практические результаты тестирования модулем AitaBT и их обсуждение. Раздел 5 подводит итоги.

2. Сведения о фреймворке AITA

2.1. Модуль Price Action

Ценовое действие (price action, PA) влияет на историческую волатильность (HV), и в свою очередь HV даёт представление о будущем PA. Когда ценовое действие демонстрирует сильные движения — широкие торговые диапазоны, пробои или быстрые смены направления, — волатильность обычно растёт. VolTS — модуль AITA, следующий таким правилам: низкая HV указывает на период консолидации или низкой ценовой волатильности, предполагая возможный предстоящий всплеск волатильности или смену ценового действия. Напротив, высокая HV указывает на большую вероятность резких движений или смены тренда.

В VolTS ценовое действие кодируется как OHLC — цены открытия, максимума, минимума и закрытия актива, как на свечных графиках (рисунок 1). Для каждого таймфрейма $t$ OHLC актива представляется четырёхмерным вектором $X_t = \left(x_t^{(o)}, x_t^{(h)}, x_t^{(l)}, x_t^{(c)}\right)^{\mathsf{T}}$, где $x_t^{(l)} > 0$, $x_t^{(l)} < x_t^{(h)}$ и $x_t^{(o)}, x_t^{(c)} \in \left[x_t^{(l)}, x_t^{(h)}\right]$.

Рисунок 1
Рисунок 1. Пример свечного графика.

2.2. Модуль исторической волатильности

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

Оценщик Паркинсона (PK) использует дневные максимум и минимум:

$$PK = \sqrt{\frac{1}{4N\ln 2}\sum_{i=1}^{N}\left(\ln \frac{x_t^{(h)}}{x_t^{(l)}}\right)^2}$$

Он выводится из допущения, что истинная волатильность актива пропорциональна логарифму отношения максимальной $x_t^{(h)}$ и минимальной $x_t^{(l)}$ цен по $N$ наблюдениям.

Оценщик Гармана — Класса (GK) вычисляется так:

$$GK = \sqrt{\frac{1}{N}\left(\sum_{i=1}^{N}\frac{1}{2}\left(\ln\frac{x_t^{(h)}}{x_t^{(l)}}\right)^2 - \sum_{i=1}^{N}(2\ln 2 - 1)\left(\ln\frac{x_t^{(c)}}{x_t^{(o)}}\right)^2\right)}$$

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

Оценщик Роджерса — Сатчелла (RS) использует диапазон цен внутри интервала как прокси волатильности:

$$RS = \sqrt{\frac{1}{N}\sum_{t=1}^{N}\left(\ln\frac{x_t^{(h)}}{x_t^{(c)}}\ln\frac{x_t^{(h)}}{x_t^{(o)}} + \ln\frac{x_t^{(l)}}{x_t^{(c)}}\ln\frac{x_t^{(l)}}{x_t^{(o)}}\right)}$$

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

Оценщик Янга — Чжана (YZ) [22] использует все цены OHLC:

$$YZ = \sqrt{\sigma^2_{\text{ночная}} + k\,\sigma^2_{\text{откр-закр}} + (1-k)\,\sigma^2_{RS}}$$

где $k = \frac{0{,}34}{1{,}34 + \frac{N+1}{N-1}}$, а

$$\sigma^2_{\text{откр-закр}} = \frac{1}{N-1}\sum_{i=1}^{N}\left(\ln\frac{x_t^{(c)}}{x_t^{(o)}} - \overline{\ln\frac{x_t^{(c)}}{x_t^{(o)}}}\right)^2, \qquad \sigma^2_{\text{ночная}} = \frac{1}{N-1}\sum_{i=1}^{N}\left(\ln\frac{x_t^{(o)}}{x_{t-1}^{(c)}} - \overline{\ln\frac{x_t^{(o)}}{x_{t-1}^{(c)}}}\right)^2$$

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

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

2.3. Модуль стратегий

Во фреймворке AITA реализованы три класса торговых стратегий.

«Купи и держи» (B&H) используется как бенчмарк для сравнения. Стратегия состоит в покупке одной акции на закрытии первого дня изучаемого периода и продаже на закрытии последнего дня: $V_t = Q \cdot P_t$, где $V_t$ — стоимость инвестиции в момент $t$, $Q$ — количество актива, купленного в момент $t = 0$, $P_t$ — цена актива в момент $t$ при начальной цене $P_0$.

Следование за трендом (TF) — один из способов трендовой торговли, при котором трейдер открывает ордер в направлении пробоя после того, как цена превысила линию сопротивления. Пусть $P_t$ — цена в момент $t$, а $MA$ — скользящая средняя цены актива за некоторый период. Если $P_t \ge MA_t$, это указывает на восходящий тренд и длинную позицию; иначе — на нисходящий тренд и короткую позицию.

Возврат к среднему (MR) предполагает, что максимальные и минимальные цены бумаги временны и она в итоге вернётся к своему среднему. Пусть $P_t$ — цена актива в момент $t$, а $\mu$ и $\sigma$ — среднее и стандартное отклонение цены. Условия входа и выхода для длинной и короткой позиции задаются как $P_t < \mu - k\sigma$ и $P_t > \mu - k\sigma$ соответственно, где $k$ — константа, задающая число стандартных отклонений от среднего, при котором срабатывает условие входа.

Ради краткости в этом исследовании внимание сосредоточено на стратегии следования за трендом, которую мы сравниваем с B&H как с бенчмарком. Важно отметить, что обе стратегии — следование за трендом и возврат к среднему, теоретически противоположные по замыслу, — могут применяться к одной и той же акции, не конфликтуя друг с другом. Тем не менее мы считаем полезным применять стратегию возврата к среднему при работе с активами средней волатильности.

2.4. Модуль тестирования AitaBT

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

  1. Максимальная просадка (MDD) измеряет наибольшее падение от пика за весь торговый период, показывая худший случай: $\displaystyle MDD = \max_{\tau \in (0,t)}\left[\max_{t \in (0,\tau)} \frac{n_t - n_\tau}{n_t}\right]$.
  2. Коэффициент Шарпа (SR) — мера прибыли с поправкой на риск, отношение доходности к её отклонению: $SR = \frac{\mathbb{E}[r]}{\sigma[r]}$.
  3. Коэффициент Сортино (SoR) — вариант меры с поправкой на риск, где в качестве риска используется просадка: $SoR = \frac{\mathbb{E}[r]}{DD}$.
  4. Коэффициент Кальмара (CR) — ещё один вариант, где риском выступает максимальная просадка: $CR = \frac{\mathbb{E}[r]}{MDD}$.

Для проверки качества сделок мы в основном опирались на полную доходность $R_k(t)$ по каждой акции ($k = 1, \ldots, p$) на интервале $t = 1, \ldots, n$, где $TR = R_k(t) = \frac{Z_k(t + \Delta t) - Z_k(t)}{Z_k(t)}$, а также анализировали стандартизованные доходности $r_k = (R_k - \mu_k)/\sigma_k$, где $\sigma_k$ — стандартное отклонение $R_k$, а $\mu_k$ — среднее за изучаемый период.

3. Методология

3.1. Отбор активов

Для эксперимента фреймворк AITA настроен на работу с девятью основными акциями (таблица 1) с бирж NYSE и NasdaqGS. Он автоматически загружает цены OHLC через внутреннюю библиотеку Python, подключённую к API MetaTrader5, напрямую связанному с брокером TickMill.

Таблица 1. Список девяти основных акций, отобранных для эксперимента.
ТикерКомпанияРынок
MSFTMicrosoft CorporationNasdaqGS
GOOGLAlphabet Inc.NasdaqGS
MUMicron Technology, Inc.NasdaqGS
NVDANVIDIA CorporationNYSE
AMZNAmazon.com, Inc.NYSE
METAMeta Platforms, Inc.NYSE
QCOMQUALCOMM IncorporatedNasdaqGM
IBMInt. Business Machines Corp.NYSE
INTCIntel CorporationNYSE

3.2. Обнаружение аномалий

По умолчанию фреймворк AITA изучает ценовые ряды активов, чтобы определить временное окно без существенных аномалий. Реализованный критерий опирается на оценку аномальности, вычисляемую моделью k ближайших соседей (KNN) [21]. Одно из ключевых преимуществ KNN — способность работать с нелинейными и сложными связями между точками данных [12][11]. Модель KNN подгоняется к временному ряду, и оценка аномальности вычисляется по расстоянию между точкой и её $k$ ближайшими соседями.

Порог обнаружения аномалий определяется по среднему $\mu$ и стандартному отклонению $\sigma$ оценок аномальности. Пусть $x_t$ — значение ряда в момент $t$, $k$ — число ближайших соседей, $d_{euc}(x_t, x_i)$ — евклидово расстояние между $x_t$ и $x_i$, где $x_i$ — $i$-й ближайший сосед. Оценка аномальности:

$$\text{score}_t = \frac{1}{k}\sum d_{euc}(x_t, x_i), \quad \forall i \in \text{NearestNeighbors}(x_t, k)$$

Порог обнаружения: $th = \mu + 3\sigma$. Точки с оценкой выше порога считаются аномалиями.

Рисунок 2
Рисунок 2. Красные точки отмечают аномалии, обнаруженные на интервале с 01.05.2020 по 01.05.2023.

Рисунок 2 показывает лишь одну критическую аномалию — в марте 2020 года (глобальная пандемия), поэтому мы решили использовать только последующее временное окно, с 1 мая 2020 по 1 мая 2023 года.

3.3. Набор данных исторической волатильности

Процесс кластеризации исторической волатильности определяет акции с промежуточной волатильностью. Сначала вычисляется среднее рядов исторической волатильности по упомянутым выше оценщикам (раздел 2.2). Затем полученные ряды волатильности кластеризуются алгоритмом KMeans++ с метрикой динамического преобразования временной шкалы (DTW) [20]. DTW применяется для сравнения пар временных рядов, которые могут иметь разную длину и скорость изменения, что делает его подходящим для такого рода кластеризации. В частности, мы разбиваем на три кластера ($K = 3$): высокая, средняя и низкая волатильность. Центроиды выбираются по максимальному расстоянию DTW относительно предыдущего центроида.

Рисунок 3
Рисунок 3. Кластеры KMeans++ при $k = 3$ на наборе данных оценщиков исторической волатильности, с 1 мая 2020 по 1 мая 2023 года.

Рисунок 3 показывает результаты в виде графика временных рядов, принадлежащих среднему кластеру, на котором сосредоточена наша стратегия. Стоит отметить, что основная область приходится на окно с 1 ноября 2022 по 1 мая 2023 года. Этот интервал мы и используем как набор данных; из промежуточного кластера отобранными кандидатами оказываются TSLA с наивысшим значением, AMZN и META в середине, QCOM и IBM с наименьшими значениями соответственно.

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

Шаг 1. Значимая причинность по Грейнджеру. Пусть $X$ и $Y$ — ряды волатильности пары акций, где $X$ — потенциальная причинная переменная, а $Y$ — потенциальная переменная-следствие. Нулевая гипотеза $H_0$ гласит, что $X$ не является причиной $Y$ по Грейнджеру, альтернативная $H_1$ — что является. Используется $F$-тест, где RSS — остаточные суммы квадратов двух авторегрессионных моделей:

$$Y(t) = c_Y + \beta_{Y1} Y(t-1) + \beta_{Y2} Y(t-2) + \cdots + \beta_{Yp} Y(t-p) + \epsilon_Y(t)$$

$$X: \quad Y(t) = c_{YX} + \beta_{YX1} X(t-1) + \beta_{YX2} X(t-2) + \cdots + \beta_{YXp} X(t-p) + \epsilon_{YX}(t)$$

где $p$ — порядок лага, $n$ — число наблюдений, $k$ — число параметров моделей.

Шаг 2. Сравнение F-статистики с критическим значением распределения $F$ при уровне значимости $\alpha = 0{,}05$. Если F-статистика больше критического значения, нулевая гипотеза отвергается и делается вывод, что $X$ статистически значимо является причиной $Y$ по Грейнджеру. Иначе значимой причинности нет.

Шаг 3. Направление причинности. Если волатильность акции $X$ является причиной волатильности акции $Y$ по Грейнджеру, это означает, что изменения волатильности $X$ можно использовать для прогноза изменений волатильности $Y$.

Алгоритм VolTS (псевдокод в приложении) перебирает дневные лаги в диапазоне от 2 до 30 дней для определения наилучшего результата. В этом эксперименте наилучший результат достигается при lags = 5, где «наилучшим» считается случай согласованности направлений среди акций при максимальной мощности множества акций. Иными словами, направление GCT не порождает ацикличный граф в связях между наибольшим числом узлов (рисунок 5).

Рисунок 4
Рисунок 4. Коинтеграция через тест причинности по Грейнджеру.
Рисунок 5
Рисунок 5. Наилучший ацикличный граф коинтеграции: MU → QCOM, META → QCOM, AMZN → META.

На рисунке 6 видно, как GCT предлагает покупать QCOM, когда у META положительный тренд, и наоборот; то же самое с MU. Кроме того, когда растёт цена AMZN, приходит время покупать META, и так далее.

4. Результаты и обсуждение

Результаты эксперимента показывают, что торговая стратегия на основе волатильности отработала хорошо на тестируемом периоде с 8 апреля по 1 июня 2023 года. Стратегия дала суммарную прибыль 231,77 $ за 40 торговых дней при начальном бюджете 1000 $ на акцию. Время нахождения позиций в рынке было довольно высоким — 88,89% по всем бумагам, что указывает на активную торговлю и частые изменения портфеля.

Таблица 2 содержит дополнительные подробности о метриках результативности и показывает, что общая сумма портфеля выросла до 3231,77 $ (+7,725%) — положительный признак прибыльной торговли, с учётом фиксированной комиссии 9 $ за сделку. Отметим, что управление бюджетом настроено в режиме реинвестирования, поэтому вся сумма переиспользуется в каждой сделке.

Таблица 2. Результаты тестирования эксперимента на исторических данных.
АкцияСделокДоля прибыльных, %Полная доходность, $ШарпСортиноКальмарMDD, %
AMZN → META1637,51045,011,17844,642114,2641,77
META → QCOM1643,751110,113,851144,4613248,342−1,33
MU → QCOM1656,251076,651,21306,362423,687−7,65

Анализ результативности отдельных бумаг представлен на рисунке 7 применительно к коинтеграции META. Сделки по META, покупаемой вслед за трендом AMZN, дали прибыль и убыток (PnL) 1,281% при доходности 9,721%. Эта доходность превосходит стратегию «купи и держи», которая дала бы 6,684%.

Рисунок 6
Рисунок 6. Коинтеграция AMZN → META без ложной корреляции.

Рисунок 8 показывает, что сделки по QCOM, покупаемой вслед за трендом META, дали PnL 2,774% при доходности 12,866% против 9,235% у «купи и держи». Наконец, сделки по QCOM вслед за трендом MU дали PnL 1,562% при доходности 6,302% против 3,969% у «купи и держи».

Рисунок 7
Рисунок 7. Коинтеграция META → QCOM без ложной корреляции.
Рисунок 8
Рисунок 8. Коинтеграция MU → QCOM без ложной корреляции.

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

5. Заключение и направления дальнейшей работы

В этой работе мы предлагаем действенный метод работы с волатильностью в торговой стратегии и совмещаем его с причинностью через GCT, реализованный во фреймворке AITA в модуле VolTS.

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

Учитывая многообещающий потенциал подхода, мы намерены далее проверить его надёжность на других рынках и данных — например, на криптовалютах или DeFi-токенах, — варьируя также таймфреймы для внутридневной торговли и скальпинга.

Мы обозначаем несколько потенциальных направлений будущих исследований: (i) изучение более мощных техник фильтрации и интеграции текстовой информации с применением подходов оптимизации наборов данных [13][14] и (ii) включение экспертных знаний предметной области для улучшения понимания моделью информации о цене и объёме.

Кроме того, мы планируем выставить API фреймворка AITA как сервис с учётом методологии безопасности для предотвращения атак ботнетов с помощью моделей глубокого обучения [16][15]. Для устойчивости планируется создать мультиагентную систему, в том числе с точки зрения машинного обучения для прозрачных этических агентов в обслуживании клиентов [6] с оценкой диалогов [5] под надзором этического наставника [4].

Приложение. Алгоритм 1: алгоритмическая стратегия через GCT

Вход: временной ряд цен закрытия $x_t^{(c)}$ (DataFrame). Выход: множество отобранных акций.

  1. lag_days ← 2   // Шаг 1: перебор от 2 до 30
  2. пока lag_days ≠ 31 выполнять   // Шаг 2: сравнение F-статистики
    • granger_results ← [ ]; threshold ← 0,025
    • для stock1 в столбцах ряда:
      • для stock2 в столбцах ряда:
        • если stock1 = stock2 то продолжить
        • data ← concat([ряд[stock1], ряд[stock2]]); data.columns ← [stock1, stock2]
        • result ← GCT(data, maxlag = lag_days)
        • p_value ← result[lag_days][0]['ssr_ftest'][1]
        • если p_value < threshold то granger_results.append((stock1, stock2, p_value))
    • lag_days ← lag_days + 1
  3. // Шаг 3: направление причинности
  4. selected_stocks ← множество( )
  5. для (stock1, stock2, _) в granger_results: добавить stock1 и stock2 в selected_stocks
  6. вернуть selected_stocks

Литература

Оригинал статьи: Letteri, I., «VolTS: A Volatility-based Trading System to forecast Stock Markets Trend using Statistics and Machine Learning», arXiv:2307.13422 · лицензия CC BY 4.0