Волатильность (VIX): обзор и применение

  • VIX: что это и торговля по индикатору страха на рынке
  • Пошаговое руководство
  • Краткая история моделей волатильности
  • Поверхность волатильности
  • Шероховатость волатильности торговли для статистического арбитража
  • Предпологаемая волатильность
  • Предпологаемая и локальная волатильность
  • Прогнозирование уровней спроса и предложения на основе волатильности
  • Демистификация волатильности
  • Простая стратегия волатильности EMV
  • Стратегии захвата волатильности
  • Прогнозирование волатильности на основе машинного обучения
  • Анализ вторичных эффектов волатильности с помощью модели GARCH
  • Стратегии торговли волатильностью: длинные SPX против коротких VIX
  • Волатильность и прогнозирование акций с использованием модели GARCH

VIX: что это и торговля по индикатору страха на рынке

Для получения дополнительной информации и статей посетите: ztrading.io

Знакомство

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

Часть 1: Понимание VIX

Что такое VIX?

VIX, также известный как «индикатор страха» или «индекс страха», представляет собой рыночный индекс в реальном времени, который отражает ожидания рынка в отношении будущей волатильности. Созданный Чикагской биржей опционов (CBOE), индекс VIX измеряет подразумеваемую волатильность индекса S&P 500, наиболее популярного ориентира для акций США. Это означает, что он количественно оценивает восприятие рынком будущей волатильности на основе цен опционов.

Как работает VIX?

VIX построен с использованием формулы, которая рассчитывает подразумеваемую волатильность широкого спектра опционов S&P 500. Эта формула учитывает цены как колл-опционов, так и пут-опционов, которые дают представление об ожиданиях рынка в отношении восходящих и нисходящих ценовых движений. Чем выше уровень VIX, тем больше ожидаемая волатильность.

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

Интерпретация уровней VIX

Понимание уровней VIX необходимо для успешной торговли. Вот общая рекомендация:

1. Low VIX (Below 15): Низкий VIX указывает на низкую ожидаемую волатильность рынка и, как правило, соответствует бычьим настроениям рынка. Это говорит о меньшей вероятности резких ценовых колебаний в ближайшем будущем.

2. Умеренный VIX (15–30): Умеренные уровни VIX означают определенную степень неопределенности на рынке. Это говорит о том, что трейдеры несколько осторожны, но не слишком напуганы. Этот диапазон может быть хорошим временем для рассмотрения торговых стратегий, которые извлекают выгоду из волатильности.

3. Высокий VIX (выше 30): Высокий VIX отражает значительный страх рынка и повышенную неопределенность. Он часто совпадает с рыночными спадами или серьезными экономическими событиями. Этот диапазон может предоставить возможности для противоположных стратегий и хеджирования.

Часть 2: Трейдинг VIX — простые стратегии

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

1. VIX ETF и ETN

Одним из самых простых способов получить доступ к VIX являются биржевые фонды (ETF) и биржевые ноты (ETN). Эти финансовые инструменты предназначены для отслеживания динамики VIX, что позволяет трейдерам открывать длинные или короткие позиции по волатильности рынка.

Длинные VIX ETF/ETN: Эти инструменты растут в цене по мере роста VIX, что делает их пригодными для хеджирования или получения прибыли от рыночных спадов. В качестве примера можно привести iPath S&P 500 VIX Short-Term Futures ETN (VXX) и ProShares VIX Short-Term Futures ETF (VIXY).

Короткие позиции по VIX ETF/ETN: Эти инструменты нацелены на получение прибыли при падении VIX. Их можно использовать для спекуляций на стабильности рынка или для получения дохода в периоды низкой волатильности. Яркими примерами являются VelocityShares Daily Inverse VIX Short-Term ETN (XIV) и ProShares Short VIX Short-Term Futures ETF (SVXY).

2. Опции VIX

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

Колл-опционы VIX: Покупка колл-опционов VIX — это способ заработать на ожидаемом росте волатильности рынка. Например, если вы ожидаете значительного рыночного события, такого как объявление о доходах или геополитическое событие, вы можете купить колл-опционы VIX, чтобы извлечь выгоду из ожидаемого всплеска волатильности.

Опционы VIX Put: И наоборот, покупка пут-опционов VIX может быть стратегией получения прибыли от снижения волатильности рынка. Это полезно в периоды спокойствия и стабильности, когда вы считаете, что волатильность, скорее всего, останется низкой.

Стрэддл и Душение: Это более продвинутые стратегии, которые предполагают одновременную покупку опционов VIX колл и пут (стрэддл) или опционов колл и пут без денег (стрэнгл). Эти стратегии используются, когда вы ожидаете значительного движения рынка, но не уверены в его направлении.

3. Стратегии торговли волатильностью

Вместо того, чтобы напрямую торговать VIX, вы можете использовать стратегии торговли волатильностью, чтобы использовать возможности, возникающие из-за волатильности рынка. Две популярные стратегии – это «Железный кондор» и «Кредитный спред».

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

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

Часть 3: Примеры из реальной жизни

Чтобы лучше проиллюстрировать эти стратегии, давайте рассмотрим несколько примеров из реальной жизни:

Пример 1: Использование VIX ETF для хеджирования портфеля

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

Пример 2: Спекуляция на волатильности рынка с опционами VIX

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

Пример 3: Использование стратегий торговли волатильностью

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

Часть 4: Риски и соображения

Несмотря на то, что торговля VIX и использование упомянутых стратегий может быть прибыльной, важно знать о связанных с этим рисках:

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

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

Рискованные.

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

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

Заключение

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

Пошаговое руководство

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

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

Чтобы получить полную коллекцию свечных паттернов в деталях с бэктестами и техническими стратегиями, вы можете ознакомиться с моей новейшей книгой с O’Reilly Media. В книге представлено огромное количество классических и современных свечных паттернов, поскольку она углубляется в сферу технического анализа с различными торговыми стратегиями. Книга поставляется с собственным GitHub и является динамичной по своей природе, поскольку она постоянно обновляется, а на платформе O’Reilly оперативно даются ответы на вопросы.

Понятие волатильности

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

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

Вы можете самостоятельно закодировать вышеизложенное на Python, используя следующий фрагмент кода:

# Importing the necessary libraries
import numpy as np
import matplotlib.pyplot as plt
# Creating high volatility noise
hv_noise = np.random.normal(0, 1, 250)
# Creating low volatility noise
lv_noise = np.random.normal(0, 0.1, 250)
# Plotting
plt.plot(hv_noise, color = 'red', linewidth = 1.5, label = 'High Volatility')
plt.plot(lv_noise, color = 'green', linewidth = 1.5, label = 'Low Volatility')
plt.axhline(y = 0, color = 'black', linewidth = 1)
plt.grid()
plt.legend()

Различные типы волатильности вокруг нас можно резюмировать следующим образом:

  • Историческая волатильность: это реализованная волатильность за определенный период времени. Несмотря на то, что это ретроспективный взгляд, историческая волатильность чаще всего используется как ожидание будущей волатильности. Одним из примеров исторической меры является стандартное отклонение, которое мы увидим позже. Другим примером является средний истинный диапазон, главный герой этой статьи.
  • Подразумеваемая волатильность: В своем простейшем определении подразумеваемая волатильность — это мера, которая при вводе в уравнение Блэка-Шоулза выдает рыночную цену опциона. Он рассматривается участниками рынка как ожидаемая будущая фактическая волатильность. У него есть одна временная шкала, срок действия опциона.
  • Форвардная волатильность: это волатильность в течение определенного периода в будущем.
  • Фактическая волатильность: это величина волатильности в любой момент времени. Этот показатель, также известный как локальная волатильность, трудно рассчитать, и он не имеет временной шкалы.

Самым основным типом волатильности является наш старый знакомый «стандартное отклонение». Это один из столпов описательной статистики и важный элемент некоторых технических индикаторов (таких как полосы Боллинджера). Но сначала давайте определим, что такое дисперсия, прежде чем мы найдем стандартное отклонение:

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

Таким образом, следуя нашей логике, стандартное отклонение таково:

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

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

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

Создание индикатора среднего истинного диапазона

В техническом анализе индикатор под названием Average True Range -ATR- может использоваться в качестве индикатора исторической волатильности. Хотя он считается запаздывающим индикатором, он дает некоторое представление о том, где сейчас находится волатильность и где она была в последний период (день, неделя, месяц и т. Д.).

Но сначала мы должны понять, как рассчитывается истинный диапазон (ATR — это просто среднее значение этого расчета). Рассмотрим данные OHLC, состоящие из своевременных цен открытия, максимума, минимума и закрытия. Для каждого периода времени (бара) истинный диапазон является просто наибольшим из трех ценовых различий:

  • Высокий — Низкий
  • Высокий — Предыдущее закрытие
  • Предыдущее закрытие — Низкое

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

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

def ma(data, lookback, close, position): 

data = add_column(data, 1)

for i in range(len(data)):

try:

data[i, position] = (data[i - lookback + 1:i + 1, close].mean())

except IndexError:

pass

data = delete_row(data, lookback)

return data

def smoothed_ma(data, alpha, lookback, close, position):

lookback = (2 * lookback) - 1

alpha = alpha / (lookback + 1.0)

beta = 1 - alpha

data = ma(data, lookback, close, position)

data[lookback + 1, position] = (data[lookback + 1, close] * alpha) + (data[lookback, position] * beta)

for i in range(lookback + 2, len(data)):

try:

data[i, position] = (data[i, close] * alpha) + (data[i - 1, position] * beta)

except IndexError:

pass

return data

Ниже приведен код функции, которая вычисляет ATR.

def atr(data, lookback, high_column, low_column, close_column, position):

data = add_column(data, 1)

for i in range(len(data)):

try:

data[i, position] = max(data[i, high_column] - data[i, low_column], abs(data[i, high_column] - data[i - 1, close_column]), abs(data[i, low_column] - data[i - 1, close_column]))

except ValueError:

pass

data[0, position] = 0

data = smoothed_ma(data, 2, lookback, position, position + 1)

data = delete_column(data, position, 1)

data = delete_row(data, lookback)

return data

Давайте попробуем применить код к данным OHLC и посмотрим на график 14-периодного среднего истинного диапазона:

Использование среднего истинного диапазона в риск-менеджменте

Когда я говорю, что использую систему управления рисками на основе ATR (Average True Range), это означает, что алгоритм выполнит следующие шаги в отношении позиции, которую он занимает.

Длинная позиция (Buy):

  • Алгоритм инициирует ордер на покупку после того, как был сгенерирован сигнал по определенной стратегии.
  • Затем алгоритм будет отслеживать тики, и всякий раз, когда максимум равен некоторой константе, умноженной на значение ATR на момент начала торговли, инициируется ордер на выход (с прибылью). В то же время, если минимум равен некоторой константе, умноженной на значение ATR на момент начала сделки, инициируется выход (при убытке). Выход, встреченный первым, естественно, является принятым событием.

Короткая позиция (на продажу):

  • Алгоритм инициирует короткий ордер на продажу после того, как был сгенерирован сигнал по определенной стратегии.
  • Затем алгоритм будет отслеживать тики, и всякий раз, когда минимум равен определенной константе, умноженной на значение ATR на момент начала торговли, инициируется ордер на выход (с прибылью). В то же время, если максимум равен некоторой константе, умноженной на значение ATR на момент начала сделки, инициируется выход (при убытке). Выход, встреченный первым, естественно, является принятым событием.

На приведенном выше графике показан средний истинный диапазон. Взгляните на последнее значение ATR. Она составляет около 0,0006 (6 пунктов). Если мы инициируем ордер на покупку в соответствии с простым соотношением риска и прибыли 2,00 (рискуя половиной того, что мы ожидаем получить), мы можем разместить ордер следующим образом:

  • Покупайте по текущей рыночной цене.
  • Тейк-профит по текущей рыночной цене + (2 х 6 пунктов).
  • Стоп-позиция по текущей рыночной цене — (1 х 6 пунктов).

Краткая история моделей волатильности

Первое знакомство любого опционного трейдера с ценообразованием опционов, вероятно, было очень похоже на мое. Мое первое знакомство с ценообразованием опционов произошло во время чтения “Опционов, фьючерсов и других производных” (Джон Халл). Вот она, эта формула ценообразования опциона (Блэк-Скоулз), где я мог просто ввести несколько параметров в Excel, запустить несколько формул и получить фактическую цену опциона. Это было сногсшибательно… Я чувствовал, что только что сорвал джекпот, я собираюсь стать миллиардером, торгуя опционами.. Перенесемся на 14 лет вперед, и я не миллиардер, но по пути я наблюдал, как развивается и обретает форму моделирование волатильности, о чем, я сомневаюсь, квантовщики и практики думали 20-30 лет назад…

Мы склонны думать, что, как и большого взрыва, ничего не было до Блэка-Скоулза (1973), но корни современного квантового финансирования и ценообразования опционов, в частности, на самом деле восходят к 1900 году, когда Луи Башелье представил свою диссертацию “Теория спекуляции” (по-французски это звучит лучше). Модель ценообразования опционов Башелье, которая использовалась в основном для определения цен на французские государственные облигации, демонстрирует большое сходство с тем, что мы знаем сегодня как модель ценообразования опционов Блэка-Шоулза. Обе используют довольно схожие ценовые динамические и вероятностные допущения, входные параметры и выигрыш.

Так почему же модель Башелье не так широко используется и известна как B & S?

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

В отличие от моды и трендов, модель Башелье не устарела, и позже мы увидим, как она остается актуальной даже сегодня, более 100 лет спустя… (подсказка: подумайте о движении цен на нефть в апреле 2020 года)

Итак, что же разработали Фишер Блэк и Майрон Скоулз, что сделало их теорию ценообразования опционов краеугольным камнем современных количественных финансов (и присудило Майрону Скоулзу Нобелевскую премию)?

Что ж, они разработали модель ценообразования опционов, которая следует весьма схожему пути модели Башелье. Разница между моделями заключается главным образом в выборе динамики процесса. В то время как модель Башелье следует арифметическому броуновскому движению, B & S следует геометрическому броуновскому движению.

Модель Блэка и Шоулза, как и модель Башелье, основана на относительно небольшом количестве базовых допущений:

  1. Европейские опционы могут быть исполнены только по истечении срока действия.
  2. Безрисковый актив — существует безрисковый актив, в который мы можем брать взаймы и инвестировать наши денежные средства (облигация с нулевым купоном).
  3. Отсутствие дивидендов /начисленных процентов на протяжении всего срока действия опциона.
  4. При покупке / продаже опционов и дельта-хеджировании отсутствуют транзакционные издержки.
  5. Базовый актив следует непрерывному BM, и доходность обычно распределяется (модель не может обрабатывать скачки и разрывы в динамике цены актива).
  6. Волатильность постоянна для всех страйков и сроков погашения.

Хотя 4-е допущение не имеет большого значения, 5-е и 6-е предположения довольно значимы, поскольку на практике было доказано, что они эмпирически неверны.

Почему эти предположения должны быть столь значимыми?

Давайте сначала поймем, что означают эти предположения…

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

Последнее предположение, сделанное Блэком Скоулзом относительно волатильности, вероятно, является наиболее сомнительным предположением, которое проложило путь к тому, что мы знаем сегодня как “Моделирование волатильности”.

Эпоха стохастической волатильности

По мере того, как практики начали использовать формулу Блэка-Шоулза в качестве общеотраслевого стандарта, критика в отношении предположения о волатильности B & S росла, поскольку было хорошо замечено, что волатильность далека от постоянства (она развивается и изменяется с течением времени и сама является следствием какого-то случайного процесса). В 1976 году Латане и Ренделман опубликовали свою работу “Стандартные отклонения соотношений цен акций, подразумеваемых в ценах опционов”, в которой впервые предположили, что подразумеваемая волатильность должна быть получена из торгуемых на рынке опционов (I.S.D. — подразумеваемое стандартное отклонение). Поскольку практикам понравилась модель ценообразования B & S за ее простоту и надежное решение (закрытая форма), они довольно неохотно отказались от нее и начали калибровать модель в соответствии со своими рынками и допущениями. Именно тогда начинается «Эра стохастической волатильности”…

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

Только 19 октября 1987 года (Черный понедельник) трейдеры опционами полностью осознали, что предположение о плоской поверхности волатильности не выдерживает критики на финансовых рынках, поскольку должны быть дополнительные расходы, чтобы застраховать себя от неблагоприятных движений в нашем портфеле акций. Если мы посмотрим на “теоретическую” поверхность волатильности Блэка-Шоулза, она должна выглядеть аналогично этой поверхности:

Хотя на самом деле мы знаем, что наша обычная поверхность волатильности выглядит совсем не так. Это была бы наша типичная поверхность волатильности S & P500:

Мы можем проследить корни всех современных моделей стохастической волатильности до статьи Хестона 1993 года, в которой был предложен новый, закрытый подход к ценообразованию опционов на облигации и валютных опционов в динамике стохастической волатильности.

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

Процентные ставки

Процентные ставки моделируются в виде кривой доходности. Подходящая модель для оценки облигаций и процентных опционов (таких как опционы на процентный своп или swaptions) должна учитывать динамику структуры кривой доходности по срокам. С момента появления стандартными моделями были Васичек (1977) и Халл-Уайт (1990), вплоть до введения модели SABR (Хаган и др., 2002)

Модель SABR представляет собой двухфакторную стохастическую модель, где каждый параметр управляет различным аспектом динамики волатильности (альфа):

Бета — Бета управляет дисперсией и формой распределения волатильности (или объемным соотношением)

Rho— rho — это параметр, который коррелирует между динамикой базового спота и динамикой волатильности (т. е. управляет наклоном распределения волатильности).

Поскольку рынок процентных ставок уникален в том смысле, что многие активы в настоящее время торгуются с отрицательными ставками (или чередуются с положительными и отрицательными ставками), метод Блэка-Шоулза нельзя использовать для определения цен на деривативы (поскольку он предполагает логарифмически нормальное распределение базовой цены). Чтобы учесть эту уникальную динамику, практикующие специалисты, как правило, используют модель Башелье для определения цен на эти активы. Ранее в этом году, после обвала контракта на первый месяц на WTI до -40 долларов за баррель, CME изменила свою модель ценообразования на модель Башелье, чтобы учесть негативные удары.

Валютный

Рынок валютных опционов в основном торгуется внебиржево (over the counter), и, как таковой, он принял модель, которая может обрабатывать экзотические опционы 1-го, 2-го поколения (поскольку они более индивидуальны по своей природе). Модель, которую использует большинство форекс-практиков, известна как ценообразование Ванна-Волга (Malz 1997, Lipton et al. Макги 2002, Виступ 2003). Эта модель ценообразования широко используется на валютном рынке для определения цен на экзотические варианты, такие как барьерные варианты и варианты цифровых выплат (one / no-touch, European Digital и т.д.).

Суть модели ценообразования Vanna-Volga заключается в возможности количественной оценки стоимости хеджирования производных инструментов 2-го порядка по отношению к Vega (т.е. Vanna-dVega / dSpot и Volga-dVega/dVol) в предположении, что стратегии котируемых опционов (Разворот риска / Ошейник для Vanna и Распространение бабочки для Volga) отражают подразумеваемую вероятность нейтрального риска для конкретного актива.

Акции / Сырьевые товары

Уникальность акций заключается в их структуре, поскольку они, по сути, являются опционом «колл» на базовый актив компании (Merton, 1974). В силу такой природы акции движимы тем, что называется “эффектом кредитного плеча”. Феномен эффекта кредитного плеча был разработан Фишером Блэком (1976) и предполагает, что по мере снижения цен на активы компании механически получают больше заемных средств (их долг / собственный капитал увеличивается), что повышает вероятность их дефолта, отсюда отрицательная корреляция между доходностью акций и волатильностью.

Чтобы приспособиться к такой динамике фондового рынка, практикующие обращаются к модели CEV (Constant Elasticity Variance). Хотя оригинальная модель была разработана Джоном Коксом в 1975 году, она стала широко использоваться после работы Линецкого и Мендосы 2009 года, в которой были продемонстрированы различные приложения и дополнения для учета различной динамики (включая скачки и разрывы), а также способность оценивать широкий спектр активов (включая кредитные спреды).

Помимо моделей стохастической волатильности существуют модели локальной волатильности (Derman et. Кани 1994, Дюпир 1994). Локальная модель волатильности, вместо использования параметров для подгонки динамики к модели, извлекает волатильность из заданных торгуемых опционов с различными страйками и сроками погашения, после вычисления подразумеваемой (наблюдаемой / ликвидной) волатильности применяется интерполяция, позволяющая сгладить поверхность волатильности. Чем более ликвидной будет наша цепочка опционов, тем больше наша волатильность будет отражать справедливую подразумеваемую волатильность.

Взгляд в будущее — Грубая волатильность

По мере развития моделирования волатильности исследователи и практики начали поднимать некоторые вопросы, касающиеся поведения реализованной волатильности и динамики волатильности.

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

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

Как мы можем видеть, 1-я часть уравнения — это дрейфовая часть процесса, в то время как 2-я часть — это шум / волатильность.

Итак, нам нужно спросить себя: “что, если у процесса волатильности действительно есть память?” (или, другими словами, что, если приращения волатильности положительно / отрицательно коррелируют). Эта особенность поведения временных рядов не может быть смоделирована с помощью GBM, поскольку она предполагает нулевую память процесса, поэтому нам нужно обратиться к другому типу броуновского движения — fBM (или дробному броуновскому движению)

fBM — это обобщение броуновского движения, но оно уникально по своему поведению, поскольку позволяет приращениям быть не независимыми друг от друга. Для учета автокорреляции приращений мы обратимся к показателю Херста (Мандельброт и Ван Несс в 1968 году). Этот показатель в основном представляет собой число в диапазоне (0,1), которое описывает степень автокорреляции (возврата к среднему значению) процесса.

Давайте рассмотрим различные состояния H:

H = 0,5 — приращения не коррелируют друг с другом. Частный случай броуновского движения

H <0,5 — приращения имеют отрицательную корреляцию. более грубые границы временных рядов. динамика означает возврат

Приращения H>0,5 положительно коррелируют. сглаживание границ временного ряда. динамика — это тренд.

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

Другой очень важной (и интересной) особенностью fBM является его фрактальность.

Фрактальность означает, что форма объекта не меняет своей формы в разных масштабах. Подумайте о снежинках, цветной капусте и гребнях. Это самоподобные объекты, которые мы можем увеличивать / уменьшать и отмечать, что они будут примерно одинаковыми… Если мы вернемся к временным рядам, мы увидим, что это очень важная особенность при анализе поведения волатильности. Мы можем рассматривать внутридневные ценовые модели, уменьшать масштаб до дневного ценового действия и не терять динамику.

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

Хотя fBm существует более 50 лет, только в статье Gatheral et al. 2014 эта идея нашла свое применение в массовом моделировании волатильности.

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

Итак, что изменилось за последние несколько десятилетий, что заставляет практиков думать, что волатильность является грубой?

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

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

Последним и, вероятно, самым важным событием, произошедшим за последние несколько лет, стало быстрое увеличение скорости вычислений (квантовые вычисления, инфраструктура с низкой задержкой и мощные библиотеки числовых данных — лишь некоторые из этих разработок). Грубые модели волатильности не могут быть рассчитаны напрямую (например, B & S, Heston, SABR), поскольку они немарковские (т. Е. не зависят от памяти), поэтому для вычисления этих моделей необходимо использовать моделирование методом Монте-Карло. Моделирование MC — это процесс, требующий много времени (особенно для практиков, которым нужны быстрые результаты / цены).

Грубые приложения волатильности

С момента своего дебюта в 2014 году объем исследований приблизительной волатильности растет экспоненциально. Часто публикуются статьи и приложения (ссылка на литературу в приложении). Вот несколько интересных применений этой области моделирования волатильности:

  1. Оценка режима волатильности с использованием индекса Херста — Как мы знаем к настоящему времени, индекс Херста является мерой автокорреляции временных рядов. Эмпирические исследования показали, что этот индекс в большинстве случаев остается относительно стабильным на очень низком уровне (Gatheral et. эл обнаружил, что для фондовых индексов H = 0,13 (на долгосрочном горизонте) это означает, что на нормальных рынках волатильность демонстрирует сильное изменение среднего значения. Исторически сложилось так, что в периоды финансового стресса этот показатель имеет тенденцию к значительному росту, поэтому мы можем использовать этот индикатор как сигнал об изменении режима волатильности.

2. Моделирование arb волатильности в акциях — согласно статье, опубликованной Глассерманом и Хе (2018), стратегии arb волатильности, которые представляли собой длинные акции с грубой волатильностью и короткие акции с плавной волатильностью, приносили избыточную доходность.

3. Совместная калибровка S & P500 и VIX smile — вероятно, самое большое достижение в области исследования грубой волатильности. Поскольку S & P500 / VIX dynamic находятся в эпицентре фондового рынка США (а некоторые сказали бы, что в эпицентре современных финансов), это предмет огромного интереса исследователей и практиков quant. Исследование и попытка Жюльена Гийона решить совместную калибровку smile для S & P500 / VIX оказались успешными (согласно его последним выводам, датированным началом 2020 года). Это серьезный прорыв, поскольку прошлые попытки с использованием различных динамик и моделей не увенчались успехом в точной калибровке двух поверхностей волатильности совместно. Это исследование показывает, что предположение о грубой волатильности, вероятно, превосходит другие динамики волатильности, которые, как предполагалось, описывают динамику волатильности.

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

Поверхность волатильности

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

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

Фон

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

Вот что представляет собой каждая ось:

  1. Ось абсцисс: Страйк-цены (Moneyness) — горизонтальная ось поверхности волатильности представляет собой цены исполнения опционных контрактов. Цена исполнения — это цена, по которой базовый актив может быть куплен или продан, если опцион исполняется.
  2. Ось y: Подразумеваемая волатильность — вертикальная ось поверхности волатильности представляет собой подразумеваемую волатильность, которая представляет собой предполагаемый уровень волатильности, который рынок ожидает для базового актива в течение срока действия опционного контракта. Подразумеваемая волатильность рассчитывается на основе цены опционного контракта и других факторов, таких как время до истечения срока действия, процентные ставки и дивидендная доходность. Подразумеваемые значения волатильности обычно отображаются в виде цветового градиента или контурных линий на поверхности графика, причем более высокие уровни волатильности отображаются более теплыми цветами, такими как красный, и более низкими уровнями волатильности, показанными более холодными цветами, такими как синий.
  3. Ось z: Экспирация (Время до погашения) — третье измерение поверхности волатильности представляет даты истечения срока действия опционных контрактов. Дата истечения срока действия — это дата, когда срок действия опционного контракта истекает и становится бесполезным, если он не исполняется.

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

Торговые возможности

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

  1. Арбитраж подразумеваемой волатильности: «Арбитражные» возможности могут возникать, когда подразумеваемая волатильность опциона значительно отличается от его исторической волатильности или от подразумеваемой волатильности связанных опционов. Трейдеры могут воспользоваться этими расхождениями, покупая опционы с низкой подразумеваемой волатильностью и продавая опционы с высокой подразумеваемой волатильностью. Эта стратегия основана на предположении, что подразумеваемая волатильность в конечном итоге вернется к своим историческим уровням или к уровням связанных с ними вариантов.
  2. Календарные развороты: Календарный спред включает в себя покупку и продажу опционов на один и тот же базовый актив с той же ценой исполнения, но с разными датами истечения срока действия. Термин структура волатильности, представленный поверхностью волатильности, может указывать на то, является ли календарный спред привлекательным или нет. Если поверхность волатильности показывает, что краткосрочные опционы имеют более высокую подразумеваемую волатильность, чем долгосрочные опционы, трейдер может продать краткосрочный опцион и купить долгосрочный опцион, делая ставку на то, что срочная структура вернется к своей нормальной форме.
  3. Волатильность Перекос сделок: Перекос волатильности возникает, когда путы вне денег (OTM) имеют более высокую подразумеваемую волатильность, чем вызовы OTM. Трейдеры могут воспользоваться этим перекосом, реализуя такие стратегии, как разворот риска, который включает в себя продажу опциона пут OTM и покупку опциона OTM call с той же датой истечения срока действия. Если перекос вернется к более нейтральной или улыбчивой форме, значение позиции разворота риска может увеличиться.
  4. Дисперсионная торговля: Дисперсионная торговля включает в себя использование разницы между подразумеваемой волатильностью индекса и подразумеваемой волатильностью его отдельных составляющих. Стратегия обычно включает в себя продажу опционов на индекс и покупку опционов на его отдельные акции. Если подразумеваемая волатильность индекса выше, чем средняя подразумеваемая волатильность его компонентов, дисперсионный трейдер может извлечь выгоду из разницы, если расхождения между индексом и отдельными акциями сходятся.

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

Механика

Теперь вот мелочи того, как вольная поверхность строится с нуля.

  1. Расчет подразумеваемой волатильности:
  • Подразумеваемая волатильность — это волатильность, подразумеваемая рыночной ценой опциона. Это ключевой вход в модель Блэка-Шоулза-Мертона (BSM), которая широко используется для ценообразования европейских опционов. Чтобы рассчитать подразумеваемую волатильность, необходимо решить модель BSM для волатильности, которая приравнивает цену модели к рыночной цене. Обычно это делается с использованием численных методов, таких как метод Ньютона-Рафсона или метод бисекции.

2. Интерполяция и экстраполяция поверхности волатильности:

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

  • Интерполяция:

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

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

Экстраполяция:

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

Например, можно предположить, что подразумеваемая волатильность сходится к долгосрочному среднему значению или следует определенной функциональной форме, такой как модель постоянной эластичности дисперсии (CEV).

3. Калибровка модели:

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

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

В целом, поверхность волатильности — это один аккуратный инструмент.

Шероховатость волатильности торговли для статистического арбитража

Рыночные нейтральные стратегии составляют значительную часть количественных стратегий. Просто подумайте о вашем типичном капитале длинная-короткая / парная торговля / относительная стоимость объема. Все эти стратегии находят свое преимущество в обнаружении ценности (или неправильной оценки) в идиосинкразическом риске, устраняя рыночную бета-версию. Хотя существует более одного способа снять шкуру с кошки (или найти ценность в одном активе по сравнению с другим), я думаю, что существует превосходный метод, который можно легко применить к различным типам стратегий stat arb.

Вдохновленный статьей 2018 года под названием «Buy Rough, Sell Smooth» (Paul Glasserman, Pu He), я начал играть с идеей, что лучший способ может заменить старую добрую «реализованную-подразумеваемую» торговлю волатильностью. В отличие от традиционных измерений, базовая динамика волатильности измеряется с точки зрения шероховатости/гладкости пути.

Понимание шероховатости при волатильности

Прежде чем мы обсудим применение к этой линии мышления, давайте сначала разберемся, что такое шероховатость волатильности…
Мы знаем, что активы на финансовом рынке обычно следуют геометрическому броуновскому движению, где приращения берутся из случайной выборки и независимы друг от друга (т.е. корр (x0,x1)=0), но на самом деле GBM — это всего лишь частный случай дробного броуновского движения (fBm), где H=0,5 (или экспонента Херста, коэффициент автокорреляции). Общий случай для fBm имеет следующую ковариационную функцию:

Где H ∈(0,1)

По мере того, как H→ 0, ценовой путь станет более грубым (приращения отрицательно коррелируют), в то время как H→1 (приращения положительно коррелируют) будет генерировать более плавный ценовой путь. Если мы думаем об этом простым способом, то чем грубее ценовой путь, тем быстрее скорость среднего возврата (или затухания в тренде), в то время как более плавный путь согласуется с длинной памятью временных рядов.

Возвращаясь к рассматриваемой статье, исследователи обнаружили, что стратегия, согласующаяся с тем, чтобы быть длинной акциями с самой грубой волатильностью / короткими акциями с самой гладкой волатильностью, имела избыточную доходность 6% в год в течение 17 лет между 2001-2018 годами (была прибыльной 13 из 17 лет).

Авторы статьи описывают подразумеваемую шероховатость как скорость затухания в подразумеваемом объеме через ATM, перекос в ударах и погашениях, поэтому более крутой перекос удара и асимметрия структуры термина ATM подразумевает грубую волатильность. Это также может быть откалибровано по ценам торгуемых опционов, используя моделирование MC при решении для индекса Херста. Этот метод может быть сложным, если мы хотим обработать значительное количество активов. Используя оба метода, мы, по сути, обнаруживаем, что более грубый путь волатильности согласуется с быстрым затуханием перекоса (на оси удара) и асимметрией терминальной структуры ATM на оси времени).

После понимания понятия «подразумеваемая шероховатость» (полученного из поверхности подразумеваемой волатильности) мы должны понять понятие «реализованная шероховатость». В отличие от наших «обычно используемых» реализованных мер волатильности (выберите любой дискретно-временный оценщик волатильности, такой как GKYZ / Parkinson / временная реализованная волатильность), когда мы оцениваем наш реализованный путь волатильности, мы обычно используем некоторую интегрированную меру волатильности (например, реализованное ядро). Не вдаваясь в тонкости оценки интегрированной дисперсии/волатильности, это, по сути, измерение, которое получено из высокочастотных данных и менее чувствительно к шуму во временных рядах (и выбору частоты/окна выборки), чем мгновенная волатильность (наши обычные показатели волатильности).

Как только мы сгенерируем историческую интегрированную оценку волатильности, мы сможем получить наш индекс Херста, используя свойства масштабирования базового процесса волатильности (для подробного объяснения посетите эту презентацию Джима Гатерала). Вообще говоря, было обнаружено, что показатель Херста финансовых активов, в среднем, колеблется между 0,1 и 0,2, что означает, что их процесс волатильности представляет собой более грубый путь, чем предполагалось при геометрическом броуновском движении.

Торговля Rough-minus-Smooth

Типичная структура для модели длинных и коротких акций может быть сгенерирована на основе релизов прибыли (анализ NLP / ML), фундаментального анализа или некоторой факторной модели. Все эти методы видели свои альфа-спады на протяжении многих лет, поскольку все больше фондов и инвесторов начали использовать одни и те же методы в своем анализе, а также фундаментальные изменения на рынке в последние годы, когда финансовое здоровье компаний стало менее важным, чем позиционирование на рынке, создание рынка HFT (что влияет на краткосрочную волатильность) и поведение, подобное FOMO (особенно розничными инвесторами, которые увидели, что их доля в рыночной активности неуклонно растет). Эта среда разлагающейся альфы и убывающей доходности хедж-фондов (которые рассматривают количественные стратегии, такие как рыночные нейтральные / длинные короткие стратегии, как свой «хлеб с маслом»), требует переоценки того, как подходить к количественному / информационному анализу (особенно учитывая тот факт, что высокочастотные данные широко доступны, а вычислительная мощность экспоненциально увеличивается).

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

Одним из возможных объяснений этого явления является премия за неликвидность (может быть оценена по таким показателям, как средний дневной объем или показатель неликвидности Амихуда). Тем не менее, поскольку все акции, которые были отобраны, уже имели большой объем опциона, это не может объяснить альфа-версию, поэтому единственное возможное объяснение значительной альфы могло исходить от рыночной премии за краткосрочный идиосинкразический риск (что, по сути, говорит перед релизами о доходах: «Рынок покупает защиту для сюрприза снижения»).

Эта шероховатость волатильности также согласуется с тем фактом, что в среднем рынок демонстрирует низкие значения индекса Херста (фондовые индексы обычно реализуют H около 0,1–0,2). Тем не менее, в глобальных рисках / общих событиях (таких как объявления FOMC / экономические данные) уровень H резко повышается.

От Delta One к стратегиям волатильности

Как отмечалось выше, статья, которая вдохновила меня на игру с идеей грубой и гладкой торговли, была сосредоточена на торговле акциями напрямую (что означает тип торговли Delta One), основанной на нейтральных с точки зрения риска рыночных ожиданиях, излагает базовую шероховатость (как подразумевается торгуемыми опционами на рынке). Поскольку я сосредоточен в основном на торговле волатильностью, имело смысл внедрить эту линию мышления в мой исследовательский процесс.

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

На протяжении многих лет я фокусировался в основном на валютном рынке и процентных ставках. Мое первоначальное исследование использовало вселенную G10, используя средние точки волатильности Bloomberg (3-летние ежедневные ATM, RR, BF для жидких теноров), а также 5-минутные внутридневные данные.

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

Эта стратегия имеет два существенных недостатка:

1. Большинство стратегий RV / vol arb построены с использованием ванильных опций, что делает их чрезвычайно чувствительными к основным точечным путям (как в терминах гамма, так и в терминах, связанных с вегой)

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

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

Независимая стратегия

Как отмечалось выше, когда мы инициируем стратегию vol arb (предположим, что long-short vol между двумя валютными парами), у нас обычно есть взгляд на будущий реализованный спред волатильности по сравнению с текущим подразумеваемым (нам не имеет значения, если они оба отстают от своих подразумеваемых, если спред между ними работает в нашу пользу).

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

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

Теперь, даже если мы сойдем с ума и используем 20 удушений, мы в конечном итоге получим тот же тип воздействия…

Таким образом, вы, вероятно, спрашиваете сейчас, как мы можем «сгладить» наше гамма-воздействие. Ну, хитрость заключается в том, чтобы просто взвесить различные удары, обратно пропорциональные денежности² (звучит сложно, но на самом деле это не так). Как это поможет? он будет перевешивать низкий дельта-удар (эти дальние OTM путы / коллы) и недооценивать почти деньги, создавая плоскую экспозицию, которая будет независима от пути пятна.

Таким образом, эта конструкция нашей книги опционов по существу делает нас равнодушными к лежащему в основе пути пятна. Более простым решением было бы (учитывая, что это возможно) торговля внебиржевыми продуктами, такими как VolSwaps (или VarSwaps).

Анализ динамики исторической волатильности

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

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

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

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

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

Еще один очень интересный вывод (который согласуется с оригинальной статьей) заключается в том, что в периоды, когда H движется выше 0,5, стратегия не приносит прибыли. Эти периоды были заметны в 2016 году с выборами Brexit/US, в середине 2019 года — торговой войны между США/Китаем и в марте 2020 года. Этот вывод на самом деле может служить хорошим индикатором того, когда выходить из этих позиций, поскольку, по-видимому, существует высокая степень корреляции между их производительностью и «рыночным индексом Херста».

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

Предпологаемая волатильность

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

С тех пор, как я пришел на рынок (около 15 лет назад), я был очарован идеей подразумеваемой волатильности. Как мы можем точно спрогнозировать будущую волатильность? Должны ли мы использовать историческую динамику цен для прогнозирования будущей динамики ( *кашель.. * Модели GARCH/ARMA)? Как мы учитываем будущие события, когда используем историческую волатильность?

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

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

  1. Ликвидность
  2. Эффект выходного дня
  3. Сезонность
  4. Календарь экономики/заработка
  5. Хеджирование потоков

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

Ликвидность

Большинство из нас воспринимают ликвидность как нечто само собой разумеющееся. Мы практически не обращаем внимания на этот фактор, главным образом потому, что размеры сделок, которые мы обычно совершаем, составляют лишь небольшую часть доступной ликвидности рынка, на котором мы торгуем в любой момент времени. Допустим, мы хотим торговать 20 контрактами E-mini / 10mio EURUSD / 100 TY Futures. Эти сделки вряд ли будут двигать рынок из-за глубины этих рынков. Для рыночных маркеров и крупных инвесторов (хедж-фондов, институциональных инвесторов, HFT-фирм и т. д.) ликвидность означает способность вести свою повседневную торговую деятельность с минимальными транзакционными издержками и влиянием на рынок. Когда маркет-мейкер запускает книгу опционов, ликвидность играет важную роль в установлении цены волатильности. Поскольку дилеру необходимо постоянно хеджировать дельта-риск (т.е. нуждается в спотовой ликвидности) и время от времени раскручивать опционы (либо на рынке, либо у межбанковских брокеров), эти различные потребности в ликвидности будут учтены, когда дилер котирует подразумеваемую волатильность. Чем ликвиднее актив, тем жестче волатильность спроса и предложения. Кроме того, чем ликвиднее актив, тем меньший вес дилер добавит к базовой волатильности.

Чтобы подчеркнуть соотношение ликвидности и волатильности, давайте посмотрим на спред между спросом и предложением в объеме GBPUSD, разбросанный по отношению к самой подразумеваемой волатильности. Если мы предположим, что изменение спреда между спросом и предложением представляет собой уровень ликвидности (или условия ликвидности), мы можем определенно сделать вывод, что оно коррелирует с изменением подразумеваемой волатильности.

Эффект выходного дня (он же премиум выходного дня)

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

Несоответствие между календарными днями/торговыми днями имеет два заметных эффекта:

  1. Скидка на подразумеваемую волатильность в выходные/праздничные дни
  2. Прерывистость цен (разрыв выходного дня)

Дисконт подразумеваемой волатильности

Когда мы оцениваем краткосрочные опционы (возьмем, к примеру, истечение срока действия в понедельник в пятницу днем), нам необходимо учитывать тот факт, что, несмотря на то, что опцион является T-дневным опционом, у нас есть (T-t)-дни с 0 волатильностью (где «t» — количество чистых торговых дней), поэтому фактически наш объем должен быть

Давайте посмотрим на числовой пример: сегодня пятница, и мы хотим продать опцион, срок действия которого истекает в понедельник (чтобы собрать распад за выходные). Вчера (четверг) подразумеваемая ночная волатильность составила 16. Мы запрашиваем у нашего брокера котировку по 3-дневному опциону, и получаем котировку 9.5vol. На первый взгляд кажется, что наш брокер пытается нас ограбить!. Вчера o/n vol был 16, а сегодня 9,5??? Но если мы поймем эффект выходного дня, то увидим, что «справедливая» котировка составила бы 9,25 (sqrt(256/3)), но дилер добавил некоторую премию за риск (об этом мы поговорим позже).

Теперь мы не хотим продавать такой низкий объем. Мы хотим иметь более «крупную» премию за волатильность, поэтому мы решили продать 1-недельный опцион (истекающий в следующую пятницу) и, возможно, закрыть его в понедельник после получения премии.

Мы, опять же, запрашиваем у нашего брокера котировку, и получаем котировку 14vol. Нам кажется, что это более выгодная сделка, поэтому мы продаем опцион, надеясь, что в выходные ничего не произойдет, чтобы мы могли закрыть его первым делом в понедельник утром. В следующий понедельник мы запросили у нашего брокера котировку по 4-дневному варианту напоминания, но теперь мы получаем котировку 16,8vol!. Выразив свое недовольство тем, что за выходные ничего не произошло, но цена взлетела, наш брокер спокойно говорит:

«Когда вы продавали 1-недельный опцион по цене 14, первые три дня были оценены в 9,25, поэтому ваш форвардный объем подразумевает 16,6 (поэтому я просто отметил его на 0,2 объема выше)».

Этот пример имеет решающее значение для понимания концепции «форвардной волатильности» (или структуры термина волатильности). Учитывая, что мы знаем форму (и уровни) структуры термина, мы можем рассчитать при t = 0 форвардную подразумеваемую волатильность для любой точки вместе со структурой термина. Вообще говоря, мы можем использовать следующую формулу для расчета форвардной подразумеваемой волатильности

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

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

Если мы изучим наши обычные прокси риска G10 (например, USDJPY или AUDJPY), мы определенно увидим, что «риск разрыва» выходного дня сильно завышен.

На самом деле, если бы мы использовали стратегию, подобную volswap, где наш реализованный объем рассчитывается от закрытия Нью-Йорка в пятницу и открытия Веллингтона в понедельник, мы бы накопили убыток в ~ 2500 пунктов с 2016 года. Даже с высокочастотными оценщиками волатильности мы все равно потеряли бы деньги, будучи длинными ночными объемами на выходных в AUDJPY (и на самом деле это не станет намного лучше, если мы изучим другие валютные пары G10). Тем не менее, кажется, что торговля различными валютными парами FX на высокочастотной основе приносит некоторую прибыль, но это не связано с «риском разрыва» на открытии в понедельник.

Как мы видим, эффект выходного дня (и «гэп-риск» после выходных) — это структурные премии, которые рынок опционов использует для учета неторговых дней (и прерывистости ценового действия, когда трейдеры не могут реагировать в режиме реального времени на новую информацию)

Сезонность

Волатильность, как и большинство других статистических показателей, имеет тенденцию демонстрировать сезонность. Отчасти сезонность может быть связана с микроструктурой рынка и потоками хеджирования, связанными с известными циклами на финансовых рынках (просто подумайте о циклах истечения срока действия SPX/VIX и их влиянии на подразумеваемую волатильность и реализованную волатильность SPX). Другие факторы, которые могут повлиять на сезонность подразумеваемой волатильности, прогнозируются с повышенной/пониженной волатильностью (сезон заработка и летнее время приходят на ум, когда речь идет о циклах реализованной волатильности). Если мы посмотрим, например, на USDZAR, мы определенно можем заметить сильную отрицательную сезонность для подразумеваемого 1-месячного объема в июле, когда подразумеваемый объем имеет тенденцию распродаваться в летнее время.

Очевидно, что мы должны спросить себя, оправдана ли эта отрицательная сезонность в подразумеваемом, или, другими словами, продажа 1-месячного объема в летнее время в USDZAR является прибыльной сделкой. Давайте рассмотрим эту стратегию, используя теоретическую короткую позицию vol-swap среднего объема за 1 месяц в июле по сравнению со средним реализованным объемом в августе. Мы видим, что реализованный объем в августе имеет тенденцию превосходить предполагаемый 1-месячный в июле (начиная с 2008 года).

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

Теперь, очевидно, стратегии здесь немного предвзяты, так как мы предположили, что vol-swap, которым мы торговали, представляет собой СРЕДНИЙ 1-месячный объем в июле и был закрыт против СРЕДНЕГО реализованного 1-месячного объема в августе. Тем не менее, мы определенно видим, что взвешивание сезонности в USDZAR далеко не отражается на реализованной волатильности в следующем месяце.

Календарь экономики/заработка

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

Расчет «весов событий» может быть выполнен разными способами, и у каждого трейдера есть свой способ анализа весов, но общая идея довольно проста:

  1. Ранжируйте различные выпуски экономических данных по важности. Для меня наиболее важными являются события, связанные с денежно-кредитной политикой, такие как индекс потребительских цен, рынок труда и заседания ЦБ РФ, за которыми следуют данные о росте (например, ВВП и розничные продажи) и экономическая активность (PMI).
  2. Рассчитайте исторические веса волатильности «дней событий». Это можно сделать, используя соотношение между 1-дневной волатильностью (или средним значением между 1-дневной волатильностью OHLC и 1-дневной волатильностью на следующий день, когда рынок переваривает данные) и реализованным объемом базисного периода до публикации данных (может быть либо 1-недельной, либо 2-недельной реализованной волатильностью, например, событием). Можно использовать условную волатильность, чтобы лучше оценить распределение вероятностей (с учетом сюрприза вверх/вниз).
  3. Примените средневзвешенный «событийный вес» для каждого события к будущему экономическому календарю

Давайте проведем этот анализ, чтобы оценить «событийный вес» индекса потребительских цен в США для волатильности USDJPY. Во-первых, давайте построим график распределения «весов событий», полученного с использованием приведенной выше методологии.

Как мы видим, в среднем события имели сезонность примерно в 2 раза больше реализованного объема за предыдущую 1 неделю, что означает, что, основываясь на исторических данных, дни ИПЦ, как правило, более волатильны, чем «дни без ИПЦ».

Теперь мы хотим оценить условную волатильность с учетом сюрприза экономических данных в сторону повышения/понижения (поскольку до публикации мы понятия не имеем, превзойдут ли данные ожидания рынка или нет…). Как мы видим на правом графике, мы должны ожидать реализованной волатильности выше среднего (по сравнению с уже смещенной вверх реализованной волатильностью в дни ИПЦ) как для нисходящего, так и для восходящего сюрприза (хотя сюрприз нисходящих данных имеет тенденцию вызывать большую волатильность).

Если мы сравним это с предполагаемым объемом овернайт для дней ИПЦ, мы ясно увидим, что рыночные маркеры приписывают волатильность примерно в 2,2 раза по сравнению с событием ИПЦ, что совпадает с историческими событиями ИПЦ.

Хеджирование потоков

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

  1. Уровень уровня волатильности внешнего банкомата (относительно реализованной волатильности)
  2. Форма термин-структуры волатильности
  3. Форма улыбки/перекоса волатильности (и подразумеваемая/нейтральная к риску плотность вероятности)

Уровень волатильности банкоматов

Уровень волатильности банкоматов в основном используется для измерения «премии за риск волатильности» или, другими словами, чрезмерной премии продавцов опционов, требующих опционов. Вопрос, который мы должны задать себе: «чрезмерная премия по отношению к чему?». Большинство практиков будут сравнивать подразумеваемую волатильность за период T с той же длиной исторического окна волатильности (например, подразумеваемый объем за 1 месяц с реализованным объемом за последний 1 месяц). По сути, это означает, что мы предполагаем, что будущая базовая динамика будет аналогична исторической/реализованной динамике цен.

Исторически сложилось так, что подразумеваемая волатильность имеет тенденцию торговаться с премией к будущему реализованному объему (вот почему «короткий объем/гамма» систематически является прибыльной стратегией). Чтобы проверить эту гипотезу, мы запустим следующую проверенную стратегию:

Короткий 1-месячный VolSwap на прокси разных классов активов (и портфель из нескольких активов), пролонгированный ежемесячно. Как мы видим ниже, даже при отрицательных показателях в феврале-марте 2020 года эта стратегия была прибыльной в течение последних 10 лет

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

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

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

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

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

Форма перекоса/улыбки волатильности

Предполагаемый перекос волатильности был в центре исследований деривативов с конца 70-х / начала 80-х годов, когда практики поставили под сомнение обоснованность предположения Блэка-Скоулза о плоской волатильности в отношении страйков / сроков погашения, введенного в формулу ценообразования их опционов, получивших Нобелевскую премию.

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

В «наивной» вселенной волатильности Блэка-Шоулза мы предполагаем колоколообразную плотность вероятности. По сути, это означает, что наша безрисковая вероятность предполагает нормальное распределение будущих результатов. Когда мы применяем перекос (т. е. предполагаем более высокий объем для одной стороны по сравнению с другой), наша риск-нейтральная вероятность станет обусловленной уровнем спота/удара.

Означает ли это, что мы действительно думаем, что у пятна больше шансов подняться/опуститься? Не обязательно, но инвесторы/дилеры/маркет-мейкеры будут готовы платить/требовать дополнительную премию за опционы OTM

Так почему же существует перекос волатильности?

Мы можем привести много причин, по которым уровень волатильности не постоянен при разных страйках. Форма перекоса/улыбки волатильности в основном обусловлена потоками хеджирования и восприятием рынком ковариации спотового объема. В сфере акций, например, волатильность нисходящих страйков в индексах (таких как SPX), оцениваемых с премией по сравнению с эквивалентными деньгами до востребования (например, 5% OTM Put по сравнению с 5% OTM Call). Поскольку крупные институциональные инвесторы (например, пенсионные/накопительные фонды) естественным образом склоняются к длинным акциям (поскольку они несут на длинном горизонте хорошую доходность с поправкой на риск), они готовы платить дополнительную премию, чтобы защитить свои книги от спада акций или участвовать в стратегиях «перезаписи колла», в которых они держат базовый актив и продают коллы для сбора премий. В обеих стратегиях премия за звонок находится под давлением, в то время как премия за банкомат увеличивается.

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

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

Когда мы оцениваем подразумеваемую волатильность, нам нужно несколько параметров:

  1. Средний «чистый» реализованный объем последних N-х дней (под чистым я подразумеваю реализованный объем дней, в которых не было запланированных эко-событий) — Мы можем использовать комбинацию внутридневного (высокочастотного) / Close-Close vol, чтобы получить средний объем.
  2. Запланированные выпуски данных и их рассчитанные веса — например, если у нас есть в будущем семестре 2 выпуска ИПЦ, и в настоящее время мы оцениваем вес как 2, мы присвоим ИПЦ коэффициент 4 (N*W, где N — количество событий, а W — вес)
  3. Коэффициент сезонности для месяца экспирации года
  4. Коэффициент ликвидности — —Чем более ликвиден наш базовый актив, тем ниже фактор. IRL, ликвидность также повлияет на спред между спросом и предложением, который маркет-мейкер применит к средней волатильности
  5. Количество календарных дней (не рабочих дней) в нашем сроке

Если мы соберем все это вместе, мы можем прийти к следующей формуле

Примечание — мы делим нашу взвешенную дисперсию на календарные дни, чтобы учесть неторговые дни (т.е. «эффект выходного дня»).

Очевидно, что некоторые параметры здесь широко неизвестны (базовый реализованный объем, к которому мы применяем разные веса и разные веса событий). Тем не менее, многие попытки реконструировать котируемые цены привели к очень похожей формуле, где продолжительность «базовой» волатильности составляет примерно половину подразумеваемого периода (например, использование 2-недельного «чистого» реализованного объема для получения подразумеваемого 1-месячного).

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

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

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

Пошаговое руководство по пониманию взаимосвязи:

  1. Начнем с двух дифференциальных уравнений в частных производных:
  • Модель Блэка-Шоулза: Эта модель дает нам дикретивный коэффициент в частных производных, который используется для оценки опциона, предполагая постоянную волатильность (σ_BS).
  • Модель локальной волатильности: PDE этой модели предполагает, что волатильность изменяется как с ценой базового актива (f), так и со временем (t).

2. Дифференциальное уравнение Блэка-Шоулза для европейского колл-опциона (CBS): Это уравнение показывает, как цена колл-опциона должна изменяться с течением времени и с изменением цены акций, предполагая постоянную волатильность. В упрощенном виде это выглядит так:

3. Локальная волатильность PDE для колл-опциона ©: Модель локальной волатильности признает, что волатильность не постоянна, а изменяется, что отражается в ее PDE:

4. Определяем разницу Φ: Устанавливаем Φ(t, f) как разницу между ценой опциона в локальной модели волатильности и модели Блэка-Шоулза (C — CBS). Мы хотим понять, как эта разница ведет себя при изменении времени и цены акций.

5. Отношение Φ к гамме (Γ_BS): Γ_BS известна как гамма опциона в модели Блэка-Шоулза, которая измеряет скорость изменения дельты опциона по отношению к цене базового актива. Это вторая производная цены модели Блэка-Шоулза по отношению к цене акции.

6. Вывод дифференциальных уравнений в частных производных для Φ: Подставляя Φ и Γ_BS в нашу структуру дифференциальных уравнений в частных производных, мы получаем новый дифференциальный уравнение в частных производных, которому должно удовлетворять Φ, показывая, как оно развивается с течением времени с изменениями цены базовой акции.

7. Терминальное условие: Мы знаем, что по истечении срока действия (T) колл-опционы из обеих моделей будут иметь одинаковую стоимость (так как они имеют одинаковую выплату), поэтому Φ(T, f) = 0.

8. Теорема Фейнмана-Каца: Эта теорема позволяет представить решение дифференциального уравнения в частных производных с участием Φ в интегральной форме. По сути, мы используем эту теорему для выражения цены опциона в терминах вероятностей и текущих значений возможных будущих выплат.

9. Связь между подразумеваемой волатильностью и локальной волатильностью: При Φ(0, f0) = 0 (поскольку при использовании IV и цены опционов изначально нет разницы в ценообразовании опционов), мы получаем «точное соотношение», которое связывает подразумеваемую волатильность с локальной функцией волатильности через интеграл по гамме опциона и вероятностям (p(t, f|f0)).

10. Формула приближения: Наконец, у нас есть уравнение, которое аппроксимирует подразумеваемую волатильность на основе локальной волатильности, используя интегралы с течением времени и цены базового актива. Главный вывод заключается в том, что вы можете думать о подразумеваемой волатильности как о своего рода «среднем» локальной волатильности, взвешенной чувствительностью опциона к изменению цены базового актива (гамма) и вероятностями возникновения различных цен.

Код:import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

# Black-Scholes Price Calculation
def black_scholes_price(S, K, T, r, sigma):
d1 = (np.log(S/K) + (r + 0.5 * sigma ** 2) * T) / (sigma * np.sqrt(T))
d2 = d1 — sigma * np.sqrt(T)
call_price = S * norm.cdf(d1) — K * np.exp(-r * T) * norm.cdf(d2)
return call_price

# Local Volatility Function (Dummy Implementation)
def local_volatility(S, K, T, r):
# In reality, you’d derive this from market data or a given model.
return 0.2 + 0.1 * np.sin(S/100.0) * np.exp(-T)

# Plotting Local Volatility Surface
def plot_local_volatility_surface():
T = np.linspace(0.1, 2, 100) # Time to maturity from 0.1 to 2 years
S = np.linspace(50, 150, 100) # Stock price from $50 to $150
T, S = np.meshgrid(T, S)
vol_surface = local_volatility(S, 100, T, 0.05)

fig = plt.figure()
ax = fig.add_subplot(111, projection=’3d’)
ax.plot_surface(S, T, vol_surface, cmap=’viridis’)
ax.set_xlabel(‘Stock Price’)
ax.set_ylabel(‘Time to Maturity’)
ax.set_zlabel(‘Local Volatility’)
plt.title(‘Local Volatility Surface’)
plt.show()

plot_local_volatility_surface()

# Dummy approximation for implied volatility — for demonstration only
def approximate_implied_volatility(S0, K, T, r):
# In a real scenario, you’d use a numerical method to find the implied volatility
# that equates the market price of the option to the Black-Scholes price.
# Here we just return a local volatility for demonstration.
return local_volatility(S0, K, T, r)

# Plot the approximation (not an accurate method, just a placeholder)
def plot_approximation():
K = 100 # Strike price
T = 1 # Time to maturity in years
r = 0.05 # Risk-free rate
S = np.linspace(50, 150, 100) # Stock price range
iv = [approximate_implied_volatility(s, K, T, r) for s in S]

plt.plot(S, iv, label=’Approximated IV from LV’)
plt.xlabel(‘Stock Price’)
plt.ylabel(‘Implied Volatility’)
plt.title(‘Approximated Implied Volatility from Local Volatility’)
plt.legend()
plt.show()

plot_approximation()

Заключение:

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

Прогнозирование уровней спроса и предложения на основе волатильности

Знакомство

Термины «поддержка» и «сопротивление» представляют собой две самые основные основы для тех, кто ищет возможности на рынках, основанных на принципах технического анализа.

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

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

Источник: StockCharts

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

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

# Data Handling
import pandas as pd
import numpy as np

# Financial Data Analysis
import yfinance as yf

# Data Visualization
import plotly.express as px
import plotly.graph_objs as go
import plotly.subplots as sp
from plotly.subplots import make_subplots
import plotly.figure_factory as ff
import plotly.io as pio
from IPython.display import display
from plotly.offline import init_notebook_mode

# Statistics & Mathematics
import scipy.stats as stats
import statsmodels as sm
from scipy.stats import shapiro, skew
import math

# Hiding warnings
import warnings
warnings.filterwarnings(«ignore»)

Предварительная обработка данных

def load_and_preprocess(ticker):
»’
This function takes in a ticker symbol, which is used to
retrieve historical data from Yahoo Finance.
The attributes ‘Returns’, and the Adjusted Low, High, and Open
are created.
NaNs are filled with 0s
»’

df = yf.download(ticker)
df[‘Returns’] = df[‘Adj Close’].pct_change(1)
df[‘Adj Low’] = df[‘Low’] — (df[‘Close’] — df[‘Adj Close’])
df[‘Adj High’] = df[‘High’] — (df[‘Close’] — df[‘Adj Close’])
df[‘Adj Open’] = df[‘Open’] — (df[‘Close’] — df[‘Adj Close’])
df = df.fillna(0)
return df

Для нашей первой демонстрации мы собираемся использовать данные для S&P 500 (^GSPC).ticker = ‘^GSPC’ # Defining a ticker symbol

df = load_and_preprocess(ticker) # Loading and Transforming Dataframe
df

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

Где:

Vol = Волатильность за определенный промежуток времени.

σ = стандартное отклонение доходности.

T = период времени.

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

Получив ежедневную волатильность, мы можем получить следующие показатели:

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

Волатильность в годовом исчислении

T = 20 # Time period for computing the standard deviation
df[‘Annualized_Vol’] = np.round(df[‘Returns’].rolling(T).std() * np.sqrt(252), 2)

Теперь мы можем проанализировать историческую волатильность на следующем рисунке.

На приведенном выше графике можно обнаружить периоды высокой волатильности, когда S&P 500 испытывал самые высокие точки колебаний. Первый период произошел в ноябре 1929 года, во время суматохи краха Уолл-стрит 1929 года. Другие моменты высокого стресса можно наблюдать в ноябре 1987 года (Черный понедельник), ноябре 2008 года (кризис субстандартного ипотечного кредитования) и самый последний в марте 2020 года, во время начала пандемии COVID-19.

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

С учетом сказанного, мы интерпретируем годовую волатильность, построенную выше, следующим образом: предполагая значение 15%, вероятность того, что ценная бумага испытает колебание цены от ± до 15% в течение года, составляет 68,2%.

Уровни спроса и предложения

Учитывая концепцию волатильности, мы можем прогнозировать уровни спроса и предложения на следующий год следующим образом:

Где:

 = 1 Стандартное отклонение от среднего.

Справочная цена = Это цена закрытия в последний торговый день года.

Мы также можем добавить другие стандартные отклонения. В случае двух стандартных отклонений от среднего значения мы можем найти диапазон, в котором существует вероятность того, что цены останутся в 95,45%, как указано в распределении Гаусса ниже.

Гауссовское/нормальное распределение. Источник: Издевательства над супервайзером

Для вычисления уровней спроса и предложения для 2 стандартных отклонений от среднего мы должны сделать следующее:

В следующей ячейке мы собираемся получить верхнюю и нижнюю полосы для ^GSPC.

Переменная reference_year будет хранить год, используемый в качестве эталона для прогнозирования уровней спроса и предложения на следующий год. Эти уровни будут получены с использованием в качестве эталона годовой волатильности и цены закрытия, зарегистрированной в последний торговый день отчетного года.# Yearly forecasting
reference_year = «2019» # Forecasting levels for 2020

High_Band_1std = df.loc[reference_year][«Annualized_Vol»][-1]*df.loc[reference_year][«Adj Close»][-1] + df.loc[reference_year][«Adj Close»][-1]
Low_Band_1std = df.loc[reference_year][«Adj Close»][-1] — df.loc[reference_year][«Annualized_Vol»][-1]*df.loc[reference_year][«Adj Close»][-1]

High_Band_2std = 2*df.loc[reference_year][«Annualized_Vol»][-1]*df.loc[reference_year][«Adj Close»][-1] + df.loc[reference_year][«Adj Close»][-1]
Low_Band_2std = df.loc[reference_year][«Adj Close»][-1] — 2*df.loc[reference_year][«Annualized_Vol»][-1]*df.loc[reference_year][«Adj Close»][-1]

High_Band_3std = 3*df.loc[reference_year][«Annualized_Vol»][-1]*df.loc[reference_year][«Adj Close»][-1] + df.loc[reference_year][«Adj Close»][-1]
Low_Band_3std = df.loc[reference_year][«Adj Close»][-1] — 3*df.loc[reference_year][«Annualized_Vol»][-1]*df.loc[reference_year][«Adj Close»][-1]

При этом у нас есть следующие уровни спроса и предложения, прогнозируемые для S&P 500 в 2020 году.Volatility-Based Supply and Demand Levels for ^GSPC in 2020

Supply Level 3σ: 3909.24

Supply Level 2σ: 3683.09

Supply Level 1σ: 3456.93

——————————————————————

Demand Level 1σ: 3004.63

Demand Level 2σ: 2778.47

Demand Level 3σ: 2552.32

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

• Пунктирные линии представляют собой одно стандартное отклонение (вероятность 68,7%).

• Пунктирные линии представляют собой два стандартных отклонения (вероятность 95,4%).

• Пунктирные и пунктирные линии представляют собой три стандартных отклонения (вероятность 99,7%).

Из-за пандемии COVID-19 2020 год был уникальным. Мы видим, что S&P 500 упал намного ниже диапазона спроса  в марте, во время пика панических продаж.

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

Также важно наблюдать, как полоса спроса 2σ служит поддержкой и сопротивлением в период с апреля по май. Более интересно видеть, что полоса спроса  служит уровнями отката для цен в июне, после прорыва в мае.

К концу года S&P 500 закрылся немного выше диапазона предложения 2σ.

Другие примеры

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

Volatility-Based Supply and Demand Levels for AAPL in 2022

Supply Level 3σ: 334.01

Supply Level 2σ: 281.27

Supply Level 1σ: 228.53

——————————————————————

Demand Level 1σ: 123.06

Demand Level 2σ: 70.32

Demand Level 3σ: 17.58

• Apple (APPL) торговалась между уровнями спроса и предложения  в течение года в течение 2022 года без особого ценового движения.

Volatility-Based Supply and Demand Levels for TSLA in 2023

Supply Level 3σ: 396.64

Supply Level 2σ: 305.49

Supply Level 1σ: 214.33

——————————————————————

Demand Level 1σ: 32.03

Demand Level 2σ: -59.13

Demand Level 3σ: -150.28

• В 2023 году для Tesla (TSLA) полоса питания  работала как уровень сопротивления в течение февраля и марта. Прорыв такого уровня был только в июне, а в августе эта группа работала на разогреве.

Volatility-Based Supply and Demand Levels for BTC-USD in 2019

Supply Level 3σ: 12163.78

Supply Level 2σ: 9356.75

Supply Level 1σ: 6549.73

——————————————————————

Demand Level 1σ: 935.68

Demand Level 2σ: -1871.35

Demand Level 3σ: -4678.38

• Для биткойна (BTC) в 2018 году уровень предложения  работал как уровень сопротивления как минимум три раза в течение этого года. Уровень предложения 2σ работал как поддержка, пока 24 сентября не произошел прорыв. Этот же уровень служил зоной сопротивления в октябре и ноябре, что привело цены к еще одному нисходящему тренду к уровню предложения .

Volatility-Based Supply and Demand Levels for MSFT in 2023

Supply Level 3σ: 431.13

Supply Level 2σ: 366.82

Supply Level 1σ: 302.51

——————————————————————

Demand Level 1σ: 173.88

Demand Level 2σ: 109.57

Demand Level 3σ: 45.26

• Для Microsoft (MSFT) в 2023 году самая высокая торгуемая цена была немного ниже уровня предложения 2σ.

Заключение

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

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

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

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

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

Также важно сказать, что этот блокнот и идеи, представленные здесь, не служат цели быть торговым или инвестиционным советом!

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

Демистификация волатильности

Часть 1: Краткое погружение в прогнозирование движений рынка

Что это за волатильность?

Волатильность лежит в основе финансовых рынков. Он выполняет двойную роль — как информационный маяк для инвесторов и как важнейший компонент многочисленных финансовых моделей. Но почему волатильность привлекает такое внимание? Ответ кроется в одном слове: неопределенность. Этот элемент непредсказуемости является фундаментальным для механики финансовых моделей.

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

Теперь, если вы раньше углублялись в мир финансов, вы, возможно, сталкивались с такими терминами, как «кластеризация волатильности» или «информационная асимметрия». Исторически сложилось так, что мы опирались на традиционные модели, такие как ARCH и GARCH, для прогнозирования волатильности. Однако они не лишены недостатков. Учитывая недавнюю турбулентность на рынке и успехи, достигнутые в машинном обучении, возобновился интерес к улучшению того, как мы прогнозируем волатильность

Моделирование волатильности с помощью Python

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

Итак, как мы оцениваем эффективность этих моделей? Введите «волатильность возврата» или «фактическая волатильность», определяемую формулой:

Фактическая волатильность

Где:

  • «R» означает возврат
  • ‘mean(r)’ представляет собой среднюю доходность
  • ‘n’ — общее количество наблюдений

Пример внедрения: влияние войны в Украине на DAX

В продолжение моей предыдущей статьи я выбрал самый важный фондовый индекс Германии, DAX.

Цель? Чтобы оценить отголоски войны в Украине на экономическом ландшафте. Для этого я собрал данные DAX за период с начала 2012 года по начало 2023 года, проанализировав реализованную волатильность за этот период.

Важность точной оценки волатильности

Методология, лежащая в основе оценки волатильности, играет ключевую роль в точности и надежности последующих анализов. В следующих разделах я буду сопоставлять классические методы прогнозирования с передовыми методами, основанными на машинном обучении. Цель? Чтобы пролить свет на мастерство моделей машинного обучения в прогнозировании рыночных сдвигов после 1 марта 2022 года.

0. Подготовка данных

Мы снова будем собирать наши данные через yahoo finance, в этом контексте мы предоставляем необходимые входные данные и доступ к данным.stocks = ‘^GDAXI’
start = datetime.datetime(2012,1,1)
end = datetime.datetime(2023,1,1)
dax = yf.download(stocks, start, end, interval=’1d’)

А данные выглядят так:

Затем мы вычисляем процентное изменение в соответствии с дневными значениями закрытия.ret = 100 * (dax.pct_change()[1:][«Adj Close»])
realized_vol = ret.rolling(5).std()

1. Традиционные модели

Модель ARCH

Модель ARCH, которая расшифровывается как Autoregressive Conditional Variable Variance, представляет собой статистическую модель, используемую для оценки дисперсии. Он был введен в 1982 году экономистом Робертом Энглом. Модель ARCH особенно полезна в финансовой эконометрике для моделирования финансовых временных рядов, которые демонстрируют изменяющуюся во времени волатильность, например, доходность акций.

Во многих финансовых временных рядах за большими изменениями, как правило, следуют большие изменения (любого признака), а за небольшими изменениями, как правило, следуют небольшие изменения. Это явление называется «кластеризация волатильности». Традиционные модели временных рядов, такие как ARMA (авторегрессионная скользящая средняя), предназначены для фиксации закономерностей в среднем временном ряду, но они плохо справляются с кластеризацией волатильности. Вот тут-то и приходит на помощь модель ARCH.

Формулировка модели ARCH:

Модель ARCH(q) может быть представлена в виде:

Модель ARCH

Где:

  • y_{t} — возврат в момент времени t
  • \epsilon_{t} — член ошибки или белый шум в момент времени t
  • \sigma _{t}^{2} — условная дисперсия t с учетом прошлых значений ряда
  • z_{t} — погрешность белого шума с нулевым средним значением и единичной дисперсией
  • q указывает количество запаздываний члена квадрата ошибки

Основная идея состоит в том, что дисперсия члена ошибки \epsilon_{t} не постоянна, а скорее является функцией прошлых квадратов ошибок.n = (datetime.datetime.strptime(‘2023/1/1’, «%Y/%m/%d») — datetime.datetime.strptime(‘2022/3/1’, «%Y/%m/%d»)).days
print(n)
split_date = ret.iloc[-n:].index
arch = arch_model(ret, mean=’zero’, vol=’ARCH’, p=1).fit(disp=’off’)
print(arch.summary())

bic_arch = []
for p in range(1, 5):
arch = arch_model(ret, mean=’zero’, vol=’ARCH’, p=p)\
.fit(disp=’off’)
bic_arch.append(arch.bic)
if arch.bic == np.min(bic_arch):
best_param = p
arch = arch_model(ret, mean=’zero’, vol=’ARCH’, p=best_param)\
.fit(disp=’off’)
print(arch.summary())
forecast = arch.forecast(start = split_date[0])
forecast_arch = forecast
rmse_arch = np.sqrt(mse(realized_vol[-n:]/100,
np.sqrt(forecast_arch.variance.iloc[-len(split_date):]/100)))
print(«The RMSE value of ARCH model is {:.4f}».format(rmse_arch))

Результат прогноза волатильности на основе нашей первой модели таков.

Модель GARCH

Естественным продолжением модели ARCH является модель GARCH (Generalized ARCH). Модель GARCH(p, q) сочетает в себе модель ARCH с авторегрессионным процессом, что позволяет создать более гибкую структуру для учета изменяющейся во времени волатильности.

Модель GARCH

Здесь p и q являются порядками процессов GARCH и ARCH соответственно.

Модели ARCH и GARCH стали основополагающей финансовой эконометрикой для моделирования и прогнозирования волатильности. Они являются важными инструментами в управлении рисками, ценообразовании деривативов и многих других областях финансов.garch = arch_model(ret, mean=’zero’, vol=’GARCH’, p=1, o=0, q=1).fit(disp=’off’)
print(garch.summary())

Сводка по базовой модели GARCH

bic_garch = []
for p in range(1, 5):
for q in range(1, 5):
garch = arch_model(ret, mean=’zero’,vol=’GARCH’, p=p, o=0, q=q)\
.fit(disp=’off’)
bic_garch.append(garch.bic)
if garch.bic == np.min(bic_garch):
best_param = p, q
garch = arch_model(ret, mean=’zero’, vol=’GARCH’,
p=best_param[0], o=0, q=best_param[1])\
.fit(disp=’off’)
print(garch.summary())

Резюме лучшей модели GARCH

forecast = garch.forecast(start=split_date[0])
forecast_garch = forecast
rmse_garch = np.sqrt(mse(realized_vol[-n:] / 100,
np.sqrt(forecast_garch \
.variance.iloc[-len(split_date):]
/ 100)))
print(‘The RMSE value of GARCH model is {:.6f}’.format(rmse_garch))

Результат модели GARCH

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

GJR-GARCH (Glosten-Jagannathan-Runkle GARCH):

Модель GJR-GARCH была представлена Глостеном, Джаганнатаном и Ранклом в 1993 году. Он модифицирует модель GARCH, чтобы учесть различные реакции волатильности на положительные и отрицательные шоки.

Модель может быть представлена в виде:

Модель GJR GARCH

Где гамма контролирует асимметрию объявлений и если:

  • гамма = 0, реакция на прошедший шок такая же
  • Гамма > 0, реакция на прошедший негативный шок сильнее, чем положительный.
  • Гамма < 0, реакция на прошедший положительный шок сильнее, чем отрицательный.

bic_gjr_garch = []
for p in range(1,5):
gjrgarch = arch_model(ret, mean=’zero’, p = p, o=1, q=q).fit(disp=’off’)
bic_gjr_garch.append(gjrgarch.bic)
if gjrgarch.bic == np.min(bic_gjr_garch):
best_param = p,q
gjrgarch = arch_model(ret, mean=’zero’, p=best_param[0], q=best_param[1], o=1).fit(disp=’off’)
print(gjrgarch.summary())
forecast = gjrgarch.forecast(start=split_date[0])
forecast_gjrgarch = forecast

Резюме лучшей модели GJR-GARCH

rmse_gjr_garch = np.sqrt(mse(realized_vol[-n:]/100,
np.sqrt(forecast_garch.variance.iloc[-len(split_date):]/100)))
print(«The RMSE value of GJR GARCH model is {:.6f}».format(rmse_gjr_garch))

EGARCH (экспоненциальный GARCH)

Модель EGARCH, предложенная Нельсоном в 1991 году, допускает асимметрию в реакции волатильности на шоки путем моделирования логарифма условной дисперсии, а не самой дисперсии. Это гарантирует, что условная дисперсия останется положительной.

Модель может быть представлена в виде:

Модель EGARCH

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

for p in range(1,5):
for q in range(1,5):
egarch = arch_model(ret, mean=’zero’, vol=’EGARCH’,
p=p, q=q).fit(disp=’off’)
bic_egarch.append(egarch.bic)
if egarch.bic == np.min(bic_egarch):
best_param = p,q
egarch = arch_model(ret, mean=’zero’, vol=’EGARCH’,
p=best_param[0], q=best_param[1]).fit(disp=’off’)
print(egarch.summary())

Резюме лучшей модели EGARCH

forecast = egarch.forecast(start=split_date[0])
forecast_egarch = forecast
rmse_egarch = np.sqrt(mse(realized_vol[-n:]/100,
np.sqrt(forecast_egarch.variance.iloc[-len(split_date):]/100)))
print(«The RMSE value of EFARCH model is {:.6f}».format(rmse_egarch))

Успехи традиционных моделей на нашем кейсе+————+———+
| MODEL | RMSE |
+————+———+
| ARCH | 0,1207 |
| GARCH | 0,1228 |
| GJR-GARCH | 0,1228 |
| EGARCH | 0,1222 |
+————+———+

2. Модель машинного обучения

Машины опорных векторов (SVM)

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

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

Трюк с ядром: SVM, включая SVR, используют так называемый «трюк с ядром» для преобразования данных в многомерное пространство, чтобы найти гиперплоскость, которая лучше всего соответствует данным. Общие ядра включают линейную, полиномиальную и радиальную базисную функцию (RBF). В контексте прогнозирования волатильности выбор ядра может оказать существенное влияние на точность прогноза.

Преимущества SVM в анализе волатильности:

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

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

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

from sklearn.svm import SVR
from scipy.stats import uniform as sp_rand
from sklearn.model_selection import RandomizedSearchCVrealized_vol = ret.rolling(5).std()
realized_vol = pd.DataFrame(realized_vol)
realized_vol.reset_index(drop=True, inplace=True)retruns_svm = ret ** 2
returns_svm = retruns_svm.reset_index()
del returns_svm[«Date»]X = pd.concat([realized_vol, returns_svm], axis = 1, ignore_index=True)
X = X[4:].copy()
X = X.reset_index()
X.drop(«index», axis = 1, inplace = True)realized_vol = realized_vol.dropna().reset_index()
realized_vol.drop(‘index’, axis=1, inplace=True)svr_poly = SVR(kernel=’poly’,degree=2)
svr_lin = SVR(kernel=’linear’)
svr_rbf = SVR(kernel=’rbf’)

a. Линейная SVM

Характеристика: Линейный SVR пытается найти линейную гиперплоскость, которая наилучшим образом разделяет данные в пространстве признаков.

Вариант использования: подходит для данных, которые имеют линейную зависимость между объектами и целевой переменной.para_grid = {‘gamma’:sp_rand(),
‘C’: sp_rand(),
‘epsilon’: sp_rand()}
clf =RandomizedSearchCV(svr_lin, para_grid)
clf.fit(X.iloc[:-n].values,
realized_vol.iloc[1:-(n-1)].values.reshape(-1,))
predict_svr_lin = clf.predict(X.iloc[-n:])
predict_svr_lin = pd.DataFrame(predict_svr_lin)
predict_svr_lin.index = ret.iloc[-n:].index
rmse_svr =np.sqrt(mse(realized_vol.iloc[-n:]/100,
predict_svr_lin/100))
print(«The RMSE value of SVR with Linear Kernel is {:.4f}».format(rmse_svr))

б. РБФ SVM

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

Вариант использования: подходит для данных, которые не имеют четкой линейной или полиномиальной зависимости. Это популярный выбор из-за его гибкости и способности обрабатывать различные формы данных. Тем не менее, тщательная настройка параметра γ имеет решающее значение, так как это может сильно повлиять на производительность SVR.para_grid ={‘gamma’: sp_rand(),
‘C’: sp_rand(),
‘epsilon’: sp_rand()}
clf = RandomizedSearchCV(svr_rbf, para_grid)
clf.fit(X.iloc[:-n].values,
realized_vol.iloc[1:-(n-1)].values.reshape(-1,))
predict_svr_rbf = clf.predict(X.iloc[-n:])
predict_svr_rbf = pd.DataFrame(predict_svr_rbf)
predict_svr_rbf.index = ret.iloc[-n:].index
rmse_svr_rbf = np.sqrt(mse(realized_vol.iloc[-n:] / 100,
predict_svr_rbf / 100))
print(‘The RMSE value of SVR with RBF Kernel is {:.6f}’
.format(rmse_svr_rbf))

c. Полиномиальная SVM

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

Вариант использования: Подходит, когда связь между признаками и целевой переменной является полиномиальной или имеет какой-то искривленный характер. Степень d многочлена определяет сложность кривыхpara_grid = {‘gamma’: sp_rand(),
‘C’: sp_rand(),
‘epsilon’: sp_rand()}
clf = RandomizedSearchCV(svr_poly, para_grid)
clf.fit(X.iloc[:-n].values,
realized_vol.iloc[1:-(n-1)].values.reshape(-1,))
predict_svr_poly = clf.predict(X.iloc[-n:])
predict_svr_poly = pd.DataFrame(predict_svr_poly)
predict_svr_poly.index = ret.iloc[-n:].index
rmse_svr_poly = np.sqrt(mse(realized_vol.iloc[-n:] / 100,
predict_svr_poly / 100))
print(‘The RMSE value of SVR with Polynomial Kernel is {:.6f}’\
.format(rmse_svr_poly))

Заключение

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

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

Ссылки

  • Андерсен, Торбен Г., Тим Боллерслев, Фрэнсис X. Диболд и Пол Лабис. 2003. «Моделирование и прогнозирование реализованной волатильности». Эконометрика 71 (2): 579–625.
  • Боллерслев, Т. 1986. «Обобщенная авторегрессионная условная гетероскедастичность». Журнал эконометрики 31 (3): 307–327. 3): 542–547.
  • Блэк, Фишер. 1976. «Исследования изменений волатильности фондового рынка». 1976 год Труды Секции деловой и экономической статистики Американской статистической ассоциации.
  • Карасан, Абдулла и Эсма Гайгисиз. 2020. «Прогнозирование волатильности и управление рисками: подход SVR-GARCH». Журнал науки о финансовых данных 2 (4): 85–104.
  • Карасан, Абдулла (2021). Машинное обучение для управления финансовыми рисками с помощью Python Орейли
  • Тейлор, С. 1986. Моделирование финансовых временных рядов. Чичестер: Уайли

Часть 2: Краткое погружение в прогнозирование движений рынка с помощью NN и MCMC

Ранее я углубился в тонкости расчета волатильности традиционными методами. На этот раз мы отправимся в область прогнозирования волатильности с помощью таких инструментов, как sklearn и tensorflow. Кроме того, мы рассмотрим байесовский подход и концепцию MCMC. Давайте начнем!

Нейронные сети (NN)

Фото Алины Грубняк с сайта Unsplash

Нейронные сети, которые часто считаются основополагающей единицей глубокого обучения, обрабатывают данные в несколько этапов, чтобы прийти к решению. Вот простое представление:

где b — смещение, w — вес, x — входные данные.

Структурно нейронная сеть состоит из трех основных компонентов:

  1. Входной слой: Здесь вводятся необработанные данные.
  2. Скрытые слои: При переходе данных из входного слоя в скрытый коэффициенты изучаются. В зависимости от архитектуры сети может быть несколько скрытых уровней. Чем больше слоев, тем сложнее становится сеть. Эти слои выполняют нелинейные преобразования с помощью функций активации.
  3. Выходной слой: Это кульминационная точка, в которой принимаются решения на основе обработанных данных.

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

С этим кратким обзором перейдем к прогнозированию волатильности с помощью библиотеки sklearn.

Sklearn

from sklearn.neural_network import MLPRegressor

# Configuring the NN model with three hidden layers and varying neuron numbers
NN_vol = MLPRegressor(learning_rate_init=0.001, random_state=1)
para_grid_NN = {‘hidden_layer_sizes’: [(100,50), (50,50), (10,100)],
‘max_iter’: [250, 500, 1000, 1250, 1500],
‘alpha’:[0.00005, 0.0005, 0.005]}

clf = RandomizedSearchCV(NN_vol, para_grid_NN)
clf.fit(X.iloc[:-n].values,
realized_vol.iloc[1:-(n-1)].values.reshape(-1,))

NN_predictions = clf.predict(X.iloc[-n:])
NN_predictions = pd.DataFrame(NN_predictions)
NN_predictions.index = ret.iloc[-n:].index

rmse_NN = np.sqrt(mse(realized_vol.iloc[-n:]/100,
NN_predictions/100))
print(«The RMSE value of NN is {:.6f}».format(rmse_NN))

Несмотря на похвальную производительность, изменение количества скрытых нейронов может еще больше улучшить модель. Этого можно достичь с помощью библиотеки Keras, используемой в Python для искусственных нейронных сетей.

Керас

Прогнозирование волатильности с помощью глубокого обучения становится простым с помощью Keras. Настроить сетевую структуру очень просто. Например, в нашей модели:

  • Первый и второй скрытые слои имеют по 256 нейронов каждый.
  • В третьем слое находится 128 нейронов.
  • Учитывая непрерывную природу волатильности, мы имеем единичный выходной нейрон.

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers

model = keras.Sequential(
[layers.Dense(256, activation = «relu»),
layers.Dense(256, activation = «relu»),
layers.Dense(128, activation = «relu»),
layers.Dense(1, activation = «linear»)])

model.compile(loss= ‘mse’, optimizer = «rmsprop»)

epochs_trial = np.arange(100,400,4)
batch_trial = np.arange(100,400,4)
DL_pred = []
DL_RMSE = []

for i, j, k in zip(range(4), epochs_trial, batch_trial):
model.fit(X.iloc[:-n].values,
realized_vol.iloc[1:-(n-1)].values.reshape(-1),
batch_size=k, epochs = j, verbose =False)
DL_predict = model.predict(np.asarray(X.iloc[-n:]))
DL_RMSE.append(np.sqrt(mse(realized_vol.iloc[-n:]/100,
DL_predict.flatten()/100)))

DL_pred.append(DL_predict)
print(«DL_RMSE_{}:{:.6f}».format(i+1, DL_RMSE[i]))

DL_predict = pd.DataFrame(DL_pred[DL_RMSE.index(min(DL_RMSE))])
DL_predict.index = ret.iloc[-n:].index

rmse_DL = np.sqrt(mse(realized_vol.iloc[-n:]/100,
DL_predict/100))
print(«The RMSE value of NN is {:.6f}».format(rmse_DL))

Байесовский подход

Область вероятностей в основном подразделяется на классическую (частотную) и байесовскую. Это различие имеет первостепенное значение.

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

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

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

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

  • Метрополис–Гастингс
  • Сэмплер Гиббса
  • Квадратурная аппроксимация
  • Максимальная апостериорная оценка (MAP)
  • Сеточный подход

Из них мы сосредоточимся на алгоритме Метрополиса-Гастингса (M-H) как на предпочтительном методе моделирования теоремы Байеса.

Цепь Маркова Монте-Карло (MCMC)

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

Алгоритм Метрополиса-Гастингса является одним из самых популярных методов MCMC. Потому что у него есть несколько важных точек поломки:

  • Распределение предложений: Это механизм, позволяющий предложить новое состояние с учетом текущего состояния. Обычно выбираются гауссовы или равномерные распределения, сосредоточенные вокруг текущего состояния.
  • Критерий приемлемости: Не каждое предлагаемое государство принимается. Решение о принятии или отклонении основывается на соотношении вероятностей нового и текущего состояний. Если новое состояние более вероятно, оно всегда принимается. Если это менее вероятно, то оно принимается с вероятностью, равной отношению их вероятностей.

Итак, основываясь на этих методах разбивки, применим ту же двухэтапную процедуру выборки алгоритма M-H:

  1. Нарисуйте образец из плотности предложения.
  2. Примите решение о его принятии.

Алгоритм можно резюмировать следующим образом:

  1. Выберите начальное значение Q1 из пространства параметров Q.
  2. Выберите новое значение параметра Q² из плотности предложения (которая может быть гауссова или равномерно распределена).
  3. Рассчитайте вероятность приемки.

4. Если эта вероятность превышает выборочное значение из равномерного распределения U(0,1), вернитесь к шагу 2.

Хотя это может показаться сложным, библиотека PyFlux в Python упрощает реализацию алгоритма M-H, делая байесовские прогнозы более доступными.import pyflux as pf
from scipy.stats import kurtosis

model = pf.GARCH(ret.values, p=1, q=1)
print(model.latent_variables)

model.adjust_prior(1, pf.Normal())
model.adjust_prior(2, pf.Normal())

x = model.fit(method=’M-H’, iterations=’10000′)
print(x.summary())

model.plot_z([1,2])
model.plot_fit(fig_size=(15,5))
model.plot_ppc(T=kurtosis, nsims=1000)

Он показывает распределение латентных переменных. В то время как латентная переменная q собирает около 0,1, другая латентная переменная p обычно принимает значения от 0,8 до 0,9.
Также показан ряд пониженной волатильности и результат прогноза GARCH, основанный на байесовском подходе.
Он также визуализирует окончательные оценки байесовской модели с нашими данными, что позволяет нам обнаруживать систематические несоответствия, если таковые имеются. Вертикальная линия представляет собой тестовую статистику, и наблюдаемое значение оказывается больше значения нашей модели.

bayesian_prediction

= model.predict_is(n, fit_method=’M-H’)
bayesian_RMSE = np.sqrt(mse(realized_vol.iloc[-n:] / 100,
bayesian_prediction.values / 100))
print(‘The RMSE of Bayesian model is {:.6f}’.format(bayesian_RMSE))

Заключение

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

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

Ссылки

  • Карасан, Абдулла (2021). Машинное обучение для управления финансовыми рисками с помощью Python Орейли
  • Бернхэм, Кеннет. и Дэвид Р. Андерсон. 2002. Выбор модели и мультимодельный вывод: практический теоретико-информационный подход. Нью-Йорк: Springer-Verlag.
  • Фокарди, Серджио М. 1997. Моделирование рынка: новые теории и методики. Серия Фрэнка Фабоцци, том 14. Нью-Йорк: Джон Уайли и сыновья.
  • Рачев, Светлозар Т., Джон С. Дж. Сюй, Билиана С. Багашева и Фрэнк Дж. 2012. Байесовские методы в финансах. Нью-Йорк: Джон Уайли и сыновья.

Простая стратегия волатильности EMV

Сводка

В отличие от других технических индикаторов, «Значение легкости движения» отражает изменения цены, объема и популярности. Это технология, которая сочетает в себе изменения цен и объемов. Он измеряет изменение цены единицы объема, формируя индикатор волатильности цены. Когда рынок набирает популярность и сделка активна, она подает сигнал на покупку; Когда объем торгов низкий, а рыночная энергия вот-вот иссякнет, он подает сигнал на продажу.

Простая волатильность EMV разработана по принципу графика равного объема и сжатого графика. Его основная концепция заключается в том, что рыночная цена будет потреблять много энергии только тогда, когда тренд развернется или вот-вот развернется, а внешняя производительность заключается в том, что объем торгов становится больше. Когда цена растет, она не будет потреблять слишком много энергии из-за повышающего эффекта. Хотя эта идея противоречит мнению о том, что и количество, и цена растут, у нее есть свои уникальные особенности.

Формула расчета EMV

Шаг 1: Рассчитайте mov_mid

Среди них TH представляет собой самую высокую цену дня, TL представляет собой самую низкую цену дня, YH представляет собой самую высокую цену предыдущего дня, а YL представляет собой самую низкую цену предыдущего дня. Тогда, если MID> 0 означает, что сегодняшняя средняя цена выше, чем вчерашняя средняя цена.

Шаг 2: Рассчитайте коэффициент

Среди них TVOL представляет собой объем торгов за день, TH представляет собой самую высокую цену дня, а TL представляет собой самую низкую цену дня.

Шаг 3: Рассчитайте emv

Использование EMV

Автор EMV считает, что огромный подъем сопровождается быстрым истощением энергии, и подъем часто длится не слишком долго; Напротив, умеренный объем, который может сэкономить определенное количество энергии, часто заставляет подъем длиться дольше. Как только формируется восходящий тренд, меньший объем торгов может подтолкнуть цены вверх, и стоимость EMV увеличится. Как только рынок нисходящего тренда сформирован, он часто сопровождается бесконечным или небольшим снижением, и значение EMV будет снижаться. Если цена находится на волатильном рынке или рост и падение цены сопровождаются большим объемом, значение EMV также будет близко к нулю. Таким образом, вы обнаружите, что EMV находится ниже нулевой оси на большей части рынка, что также является основной особенностью этого индикатора. С другой стороны, EMV ценит мегатренды и может приносить достаточную прибыль.

Использование EMV довольно простое, просто посмотрите, пересекает ли EMV нулевую ось. Когда EMV ниже 0, это представляет собой слабый рынок; когда EMV выше 0, это представляет собой сильный рынок. Когда EMV меняется с отрицательного на положительный, его следует покупать; когда EMV меняется с положительного на отрицательный, его следует продавать. Его характеристика заключается в том, что он может не только избежать шокового рынка на рынке, но и войти в рынок вовремя, когда начинается трендовый рынок. Однако, поскольку EMV отражает изменение объема при изменении цен, он влияет только на среднесрочные и долгосрочные тенденции. Для краткосрочных или относительно коротких торговых циклов эффект EMV очень плохой.

Реализация стратегии

Шаг 1: Напишите структуру стратегии

# Strategy main function
def onTick():
pass

# Program entry
def main():
while True: # Enter infinite loop mode
onTick() # execution strategy main function
Sleep(1000) # sleep for 1 second

FMZ.COM принимает режим тренировки вращения. Во-первых, вам нужно определить main функцию и функцию onTickmain функция является входной функцией стратегии, и программа будет выполнять код построчно из main функции. В main функции напишите цикл while и несколько раз выполните функцию onTick. Весь основной код стратегии написан в функции onTick.

Шаг 2: Получите данные о местоположении

def get_position():
position = 0 # The number of assigned positions is 0
position_arr = _C(exchange.GetPosition) # Get array of positions
if len(position_arr)> 0: # If the position array length is greater than 0
for i in position_arr: # Traverse the array of positions
if i['ContractType'] =='IH000': # If the position symbol is equal to the subscription symbol
if i['Type']% 2 == 0: # if it is long position
position = i['Amount'] # Assign a positive number of positions
else:
position = -i['Amount'] # Assign the number of positions to be negative
return position # return position quantity

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

Шаг 3: Получите данные K-line

exchange.SetContractType('IH000') # Subscribe to futures variety
bars_arr = exchange.GetRecords() # Get K-line array
if len(bars_arr) <10: # If the number of K lines is less than 10
return

Прежде чем получать конкретные данные K-line, вы должны сначала подписаться на конкретный торговый контракт, использовать функцию SetContractType из FMZ.COM и передать код контракта. Если вы хотите узнать другую информацию о контракте, вы также можете использовать переменную для получения этих данных. Затем используйте функцию GetRecords, чтобы получить данные K-line, потому что возвращаемый массив является массивом, поэтому мы используем переменную bars_arr, чтобы принять его.

Шаг 4: Рассчитайте emv

bar1 = bars_arr[-2] # Get the previous K-line data
bar2 = bars_arr[-3] # get the previous K-line data
# Calculate the value of mov_mid
mov_mid = (bar1['High'] + bar1['Low']) / 2-(bar2['High'] + bar2['Low']) / 2
if bar1['High'] != bar1['Low']: # If the dividend is not 0
# Calculate the value of ratio
ratio = (bar1['Volume'] / 10000) / (bar1['High']-bar1['Low'])
else:
ratio = 0
# If the value of ratio is greater than 0
if ratio> 0:
emv = mov_mid / ratio
else:
emv = 0

Здесь мы не используем последнюю цену для расчета значения EMV, а используем относительно запаздывающую текущую линию K для вывода сигнала и размещаем линию K для выставления ордера. Цель этого — приблизить бэктест к реальной торговле. Мы знаем, что, хотя программное обеспечение для количественной торговли в настоящее время очень продвинуто, по-прежнему трудно полностью смоделировать реальную ценовую тиковую среду, особенно когда речь идет о тестировании длинных данных на уровне баров, поэтому используется этот компромиссный метод.

Шаг 5: Размещение заказов

current_price = bars_arr[-1]['Close'] # latest price
position = get_position() # Get the latest position
if position> 0: # If you are holding long positions
if emv <0: # If the current price is less than teeth
exchange.SetDirection("closebuy") # Set the trading direction and type
exchange.Sell(round(current_price-0.2, 2), 1) # close long position
if position <0: # If you are holding short positions
if emv> 0: # If the current price is greater than the teeth
exchange.SetDirection("closesell") # Set the trading direction and type
exchange.Buy(round(current_price + 0.2, 2), 1) # close short position
if position == 0: # If there is no holding position
if emv> 0: # If the current price is greater than the upper lip
exchange.SetDirection("buy") # Set the trading direction and type
exchange.Buy(round(current_price + 0.2, 2), 1) # open long position
if emv <0: # if the current price is smaller than the chin
exchange.SetDirection("sell") # Set the trading direction and type
exchange.Sell(round(current_price-0.2, 2), 1) # open short position

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

Бэктест стратегии

Конфигурация тестирования на истории

Журнал тестирования на истории

Кривая капитала

Полная стратегия

# Backtest configuration
'''backtest
start: 2019-01-01 00:00:00
end: 2020-01-01 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
'''


def get_position():
position = 0 # The number of assigned positions is 0
position_arr = _C(exchange.GetPosition) # Get array of positions
if len(position_arr)> 0: # If the position array length is greater than 0
for i in position_arr: # Traverse the array of positions
if i['ContractType'] =='IH000': # If the position symbol is equal to the subscription symbol
if i['Type']% 2 == 0: # if it is long position
position = i['Amount'] # Assign a positive number of positions
else:
position = -i['Amount'] # Assign the number of positions to be negative
return position # return position quantity


# Strategy main function
def onTick():
# retrieve data
exchange.SetContractType('IH000') # Subscribe to futures
bars_arr = exchange.GetRecords() # Get K-line array
if len(bars_arr) <10: # If the number of K lines is less than 10
return

# Calculate emv
bar1 = bars_arr[-2] # Get the previous K-line data
bar2 = bars_arr[-3] # get the previous K-line data
# Calculate the value of mov_mid
mov_mid = (bar1['High'] + bar1['Low']) / 2-(bar2['High'] + bar2['Low']) / 2
if bar1['High'] != bar1['Low']: # If the dividend is not 0
# Calculate the value of ratio
ratio = (bar1['Volume'] / 10000) / (bar1['High']-bar1['Low'])
else:
ratio = 0
# If the value of ratio is greater than 0
if ratio> 0:
emv = mov_mid / ratio
else:
emv = 0

# Placing orders
current_price = bars_arr[-1]['Close'] # latest price
position = get_position() # Get the latest position
if position> 0: # If you are holding long positions
if emv <0: # If the current price is less than teeth
exchange.SetDirection("closebuy") # Set the trading direction and type
exchange.Sell(round(current_price-0.2, 2), 1) # close long position
if position <0: # If you are holding short positions
if emv> 0: # If the current price is greater than the teeth
exchange.SetDirection("closesell") # Set the trading direction and type
exchange.Buy(round(current_price + 0.2, 2), 1) # close short position
if position == 0: # If there is no holding position
if emv> 0: # If the current price is greater than the upper lip
exchange.SetDirection("buy") # Set the trading direction and type
exchange.Buy(round(current_price + 0.2, 2), 1) # open long position
if emv <0: # if the current price is smaller than the chin
exchange.SetDirection("sell") # Set the trading direction and type
exchange.Sell(round(current_price-0.2, 2), 1) # open short position

# Program entry
def main():
while True: # Enter infinite loop mode
onTick() # execution strategy main function
Sleep(1000) # sleep for 1 second

Полная стратегия была опубликована в квадрате стратегии веб-сайта FMZ.COM, и ее можно использовать, нажав кнопку Копировать.
https://www.fmz.com/strategy/213636

Подведем итоги

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

Стратегии захвата волатильности

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

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

Подход следования за трендом

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

Чтобы использовать этот подход, трейдеры могут выполнить следующие действия:

  • Определите тренд: Используйте что-то вроде терминала Coinrotator или Orion, чтобы определить тренд цены интересующего вас криптоактива.
  • Определите точки входа и выхода: После того, как вы определили тренд, определите точки входа и выхода для ваших сделок.
  • Размещать сделки: Когда цена актива движется в направлении тренда, разместите сделку в этом направлении.
  • Управление рисками: Важно иметь надежную стратегию управления рисками, включая стоп-лоссы для ограничения потенциальных убытков.

Количественный анализ

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

Чтобы использовать этот подход, трейдеры могут выполнить следующие действия:

  • Сбор данных: Соберите данные о криптоактиве, которым вы хотите торговать, включая данные о ценах, объеме торгов и других соответствующих показателях.
  • Определите закономерности: используйте статистический анализ для выявления закономерностей в данных, таких как колебания цен и изменения объема торгов.
  • Разработайте модель: На основе выявленных закономерностей может быть разработана прогностическая модель, которую можно использовать для прогнозирования будущих движений цен. Такие платформы, как Coinrotator.app, используют этот подход для создания предупреждений о тенденциях для отдельных цифровых активов в топ-1000 по рыночной капитализации и общего анализа состояния для определения доминирующей тенденции.
  • Размещайте сделки: Используйте прогностическую модель для размещения сделок, когда она указывает на высокую вероятность движения цены в определенном направлении.
  • Управление рисками: Как и в любой торговой стратегии, важно иметь надежную стратегию управления рисками, чтобы минимизировать потенциальные потери.

Фундаментальный и технический анализ

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

Чтобы использовать этот подход, трейдеры могут выполнить следующие действия:

  • Начните с анализа фундаментальных факторов, которые могут повлиять на волатильность основных криптовалют, таких как их рыночная капитализация, объем торгов, скорость принятия и нормативно-правовая среда.
  • Проведите технический анализ: используйте технические индикаторы, такие как RSI и супертренд, для выявления тенденций и закономерностей в цене актива.
модифицированный супертренд и rsi, используемые трейдерами на CoinRotator
  • Объедините анализ: После того, как вы провели как фундаментальный, так и технический анализ, используйте эту информацию для разработки торговой стратегии.
  • Размещайте сделки: Используйте разработанную вами торговую стратегию для размещения сделок на рынке криптовалют.
  • Управление рисками: Важно иметь надежную стратегию управления рисками, чтобы свести к минимуму потенциальные потери.

Нарративная торговля

Нарративная торговля — еще одна стратегия фиксации колебаний цен на рынке криптовалют. Эта стратегия включает в себя выявление и торговлю доминирующей историей или повествованием, которое формирует настроения рынка и поведение криптоинвесторов.

Нарративная торговля может принимать различные формы, в том числе:

  • Макротрейдинг: включает в себя выявление и торговлю доминирующими макроэкономическими нарративами, продиктованными политикой центрального банка США, ЕС и Китая.
  • Определение краткосрочных катализаторов для отдельных монет: Это может включать, среди прочего, технические обновления, новые раунды сбора средств, партнерские отношения и аирдропы. Чем ниже рыночная капитализация, тем эффективнее это может быть.

Чтобы использовать этот подход, трейдеры могут выполнить следующие действия:

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

Парная торговля

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

Чтобы использовать этот подход, трейдеры могут выполнить следующие действия:

Идентификация пар: Первым шагом является определение пар активов, которые сильно коррелируют или обратно коррелируют. Существует два подхода к выявлению пар: высокая корреляция и низкая корреляция.

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

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

Используя ежедневные оповещения Coinrotator.app, трейдеры могут создавать пары активов с низкой корреляцией, что упрощает фиксацию волатильности при парной торговле. Трейдеры могут использовать скрипт CoinRotator на Tradingview для определения точек входа и выхода для своих сделок и должны иметь надежную стратегию управления рисками, чтобы минимизировать потенциальные потери.

Сравнение волатильности фондового рынка с криптовалютой и форекс

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

Построение метрики волатильности цен в криптовалюте

VIX — это хорошо известный индекс волатильности на фондовом рынке, а BTC обычно считается индикатором VIX для рынка цифровых активов. Точно так же индикатор состояния рынка, разработанный Coinrotator.app, является прокси для VIX, который использует статус тренда 1000 крупнейших криптовалют каждый день для определения текущего уровня волатильности на рынках. В настоящее время, в бета-версии v2, индикатор состояния рынка предоставляет трейдерам общую картину состояния и волатильности рынка, анализируя состояние тренда 1000 крупнейших криптовалют каждый день. Используя эти индикаторы, трейдеры могут соответствующим образом корректировать свои торговые стратегии и более эффективно управлять своими рисками.

Уникальные факторы, способствующие волатильности криптовалют

Волатильность криптовалюты уникальна из-за таких факторов, как ликвидность, централизованные биржи по сравнению с децентрализованными биржами, транзакции в сети и вне сети, скорость транзакций и неэффективность, которые пытаются исправить арбитражные боты. Менее ликвидные активы проявляют большую волатильность. Централизованные биржи могут способствовать волатильности из-за правил и внешних событий. DEX могут работать 24 часа в сутки 7 дней в неделю, что создает тонкие рынки, способствующие еще более высокой волатильности. Скорость транзакций улучшается, но неэффективность остается. Арбитражные боты могут помочь исправить неэффективность и сделать торговлю более эффективной. Понимание этих факторов имеет решающее значение для трейдеров, стремящихся уловить волатильность на рынке криптовалют.

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

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

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

Прогнозирование волатильности на основе машинного обучения

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

Понимание волатильности

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

  1. Историческая волатильность: Этот тип волатильности рассчитывается на основе исторических данных о ценах. Он количественно оценивает прошлые колебания цен и необходим для понимания прошлого поведения актива.
  2. Подразумеваемая волатильность: Подразумеваемая волатильность является производной от цен опционов. Он отражает ожидания участников рынка относительно будущих колебаний цен и является критически важным компонентом в моделях ценообразования опционов, таких как модель Блэка-Шоулза.

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

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

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

Вот формула возврата волатильности:

Машинное обучение в прогнозировании волатильности

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

  1. Подход, основанный на данных: алгоритмы машинного обучения могут извлекать значимую информацию из огромных объемов исторических рыночных данных, что позволяет им выявлять сложные закономерности, которые традиционные модели могут упускать из виду.
  2. Гибкость: модели машинного обучения могут работать с различными источниками данных, включая данные о ценах, объемах торгов, новостных настроениях и макроэкономических показателях, что позволяет проводить всесторонний анализ рыночных условий.
  3. Адаптивность: Эти модели могут адаптироваться к изменяющейся динамике рынка и корректировать свои прогнозы в режиме реального времени, что делает их хорошо подходящими для волатильных и динамичных финансовых рынков.

Распространенные методы машинного обучения

Для сравнения новых моделей, основанных на машинном обучении, мы начнем с моделирования классических моделей волатильности. Некоторые очень известные классические модели волатильности, но не ограничиваясь: ARCH GARCH GJR-GARCH EGARCH. В течение нескольких дней мы узнаем больше о классических моделях волатильности. Но сейчас я сосредоточусь на методах машинного обучения.

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

  1. Модели GARCH: Обобщенные модели авторегрессии условной гетероскедастичности (GARCH) сочетают в себе условия авторегрессии и скользящего среднего с прошлой волатильностью для прогнозирования будущей волатильности. Эти модели являются популярным выбором для прогнозирования волатильности.
  2. Случайные леса: Случайные леса — это метод ансамблевого обучения, который объединяет несколько деревьев решений для создания прогнозов. Их можно использовать для прогнозирования волатильности на основе различных признаков.
  3. Сети с длинной краткосрочной памятью (LSTM): LSTM, разновидность рекуррентных нейронных сетей (RNN), хорошо подходят для моделирования последовательных данных. Они используются для учета временных зависимостей в данных финансовых временных рядов для прогнозирования волатильности.
  4. Метод опорных векторов (SVM): SVM используются для классификации данных по различным режимам волатильности и могут комбинироваться с другими методами прогнозирования уровней волатильности.

Почему волатильность так важна?

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

  1. Измерение риска: Волатильность является основной мерой риска на финансовых рынках. Он количественно определяет степень колебания цен или неопределенности, связанных с активом или рынком. Высокая волатильность указывает на более высокий риск, который может повлиять на инвестиционные решения и управление портфелем.
  2. Ценообразование опционов: В моделях ценообразования опционов, таких как модель Блэка-Шоулза, волатильность является критически важным входным параметром. Он представляет собой ожидание рынком будущих колебаний цен и существенно влияет на стоимость опционов. Точная оценка волатильности имеет важное значение для ценообразования и торговли опционами.
  3. Управление рисками: Волатильность играет центральную роль в стратегиях управления рисками. Он помогает инвесторам и портфельным менеджерам оценить потенциальные потери, связанные с инвестициями. Такие инструменты, как Value at Risk (VaR), полагаются на оценки волатильности для количественной оценки потенциального риска снижения.
  4. Диверсификация портфеля: Инвесторы используют волатильность для эффективной диверсификации своих портфелей. Активы с низкой или отрицательно коррелированной волатильностью могут помочь снизить общий риск портфеля. Понимание волатильности активов имеет решающее значение для создания диверсифицированных портфелей.
  5. Рыночные настроения: Волатильность часто отражает рыночные настроения и поведение инвесторов. Внезапные всплески волатильности могут сигнализировать о неопределенности или страхе рынка, что приводит к значительным движениям рынка. Трейдеры и аналитики используют волатильность в качестве индикатора настроений рынка.
  6. Оценка премии за риск: Волатильность является критическим компонентом при оценке премий за риск, таких как премия за риск акций. Точные оценки волатильности необходимы для расчета ожидаемой доходности в различных моделях ценообразования активов.

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

Применение прогнозирования волатильности на основе машинного обучения

  1. Ценообразование опционов: Точные прогнозы волатильности имеют важное значение для ценообразования опционов. Модели машинного обучения помогают опционным трейдерам принимать обоснованные решения, предоставляя более точные оценки подразумеваемой волатильности.
  2. Управление рисками: модели волатильности на основе машинного обучения помогают риск-менеджерам более эффективно оценивать и снижать рыночные риски. Они помогают выявить потенциальные потери портфеля при неблагоприятных рыночных условиях.
  3. Алгоритмическая торговля: Высокочастотные торговые фирмы используют прогнозы волатильности на основе машинного обучения для оптимизации торговых стратегий. Эти модели могут автоматически корректировать торговые позиции на основе прогнозируемых уровней волатильности.
  4. Оптимизация портфеля: Инвесторы используют прогнозы волатильности для оптимизации своих портфелей, обеспечивая баланс между риском и доходностью. Машинное обучение помогает создавать портфели, которые лучше подходят для меняющихся рыночных условий.
  5. Надзор за рынком: регулирующие органы используют модели машинного обучения для надзора за рынком. Эти модели выявляют необычные торговые модели и потенциальные манипуляции рынком, анализируя данные, связанные с волатильностью.

Как рассчитывается волатильность доходности в Python

Волатильность доходности, часто измеряемая как стандартное отклонение доходности, может быть вычислена в Python с помощью различных библиотек и методов. Здесь я покажу, как рассчитать волатильность доходности, используя библиотеку NumPy для базовых расчетов и библиотеку pandas для работы с данными финансовых временных рядов. Предположим, что у вас есть временные ряды доходностей активов, доступные в Python.

Использование NumPy:

Вы можете вычислить стандартное отклонение доходности с помощью функции numpy.std() Вот простой пример:

В этом примере returns — это массив NumPy, содержащий выборку возвращаемых значений, а np.std(returns)) вычисляет стандартное отклонение (волатильность) этих доходностей.

Использование pandas для данных временных рядов:

Если у вас есть данные финансовых временных рядов, хранящиеся в pandas DataFrame, вы можете вычислить волатильность для всего ряда или для определенных интервалов времени.

В этом примере мы сначала преобразуем столбец ‘Date’ в тип datetime и устанавливаем его в качестве индекса. Затем мы вычисляем скользящую волатильность за указанное окно с помощью функций rolling() и std()

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

Вызовы и направления на будущее

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

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

Ссылки:

[1] «Стохастическое поведение дисперсий обыкновенных акций: эффекты стоимости, левериджа и процентных ставок» Роберта Энгла (1982). В этой статье была представлена модель ARCH (Autoregressive Conditional Heteroskedasticity), ключевая модель для оценки волатильности.

[2] «Ценообразование опционов и корпоративных обязательств» Фишера Блэка и Майрона Шоулза (1973). В этом основополагающем документе была представлена модель Блэка-Шоулза-Мертона, которая произвела революцию в ценообразовании опционов и подчеркнула роль волатильности

[3] «Ценность под риском: новый подход к измерению риска» Филиппа Жориона (1997). В данной статье представлен обзор концепции Value at Risk (VaR) и ее применения в управлении рисками.

[4] Академическая ссылка: «Выбор портфеля» Гарри Марковица (1952). Эта новаторская работа ввела концепцию диверсификации портфеля, основанную на компромиссе между риском (волатильностью) и доходностью.

[5] Академическая ссылка: «Дислокации на финансовых рынках» Роберта Шиллера (1989). В данной работе исследуется роль настроений инвесторов на финансовых рынках и их влияние на волатильность.

[6] Академическая ссылка: «Ожидаемая доходность акций и волатильность» Роберта Ф. Стамбо (1986). В этом документе обсуждается взаимосвязь между ожидаемой доходностью акций и волатильностью, подчеркивается важность волатильности в ценообразовании активов.

Анализ вторичных эффектов волатильности с помощью модели GARCH

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

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

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

Здесь на помощь приходит наш верный компас — модель GARCH (Generalized Autoregressive Conditionally Heteroscedastic). Подобно тому, как проницательный наблюдатель может разглядеть закономерности во взаимодействиях группы, модель GARCH помогает нам расшифровать закономерности и взаимосвязи в волатильности рынка. Он позволяет нам измерять и прогнозировать вторичные эффекты волатильности, анализируя историческое поведение цен на активы и выявляя закономерности в их волатильности.

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

УСЛОВНАЯ ДИСПЕРСИЯ

Это концепция, неотъемлемая часть реализации модели GARCH. Условная дисперсия — это статистическая концепция, которая измеряет, сколько вариаций остается в случайной переменной после того, как часть ее вариации объясняется другой случайной величиной. Это мера неопределенности, и ее можно использовать для оценки риска наступления события.

Количество сторон на кубике представляет собой количество возможных исходов для случайной величины. Условная дисперсия — это мера того, насколько изменяется распределение одной случайной величины при заданном значении другой случайной величины. Например, условная дисперсия броска 6-гранного кубика ниже, чем условная дисперсия броска 12-гранного кубика, потому что существует меньше возможных исходов.

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

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

МОДЕЛЬ GARCH

Модель GARCH: подход к оценке волатильности на финансовых рынках

Понимание того, что означают термины в GARCH

Прежде чем мы углубимся в понимание того, как работает модель, давайте разберемся, что означают сложные термины в GARCH. Обобщенный указывает на то, что модель GARCH является обобщением более ранних моделей, таких как ARCH (Autoregressive Conditional Heteroskedasticity). Он расширяет модель ARCH, обеспечивая большую гибкость при моделировании условной волатильности временного ряда. Авторегрессия означает, что модель учитывает прошлые значения условной дисперсии (волатильности) для прогнозирования будущих значений. Он предполагает, что текущая волатильность зависит от прошлой волатильности. Conditional указывает, что он моделирует условную дисперсию временного ряда, что означает, что он оценивает дисперсию данных в определенный момент времени с учетом прошлых данных. Гетероскедастичность относится к явлению, при котором дисперсия временного ряда не постоянна во времени.

Понимание того, как работает модель GARCH

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

Оценка условной атмосферы (дисперсии) — «Среднее настроение»: Ведущий начинает с оценки среднего настроения (условной дисперсии) собрания (рынка) в определенное время. Это похоже на определение среднего уровня энергии в помещении с течением времени.

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

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

GARCH(p, q) Model — «Опыт организатора в прогнозировании настроения»: Ведущий обозначается как эксперт GARCH(p, q), где ‘p’ (авторегрессионные лаги) означает, сколько настроений прошлых собраний (квадрат доходности активов) влияют на сегодняшнее настроение (волатильность). «Q» (запаздывание скользящей средней) означает, насколько среднее настроение (предыдущие условные отклонения) влияет на сегодняшнее настроение (волатильность).

Математика, лежащая в основе модели GARCH

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

σ(t)^2 — условная дисперсия в момент времени t
ω — константа
α– параметры, подлежащие оценке
r(t-i)^2 — квадрат доходности при лаге i
— порядок модели (количество лагов, от которых должна зависеть условная дисперсия)

Модель GARCH расширяется за счет включения прошлых условных дисперсий в линейную функцию модели ARCH. Теперь условная дисперсия в момент времени t зависит от прошлых квадратов доходности, а также от прошлых условных дисперсий. Выражение принимает вид

β(i) представляет собой весовые коэффициенты прошлых условных дисперсий
— порядок авторегрессионных условных дисперсий
— порядок для запаздывающих квадратов возвращаемых значений

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

Простая модель GARCH(1,1), реализованная для акций TESLA.

Характеристики волатильности

  • Кластеры волатильности (перепады настроения на собраниях):
    Точно так же, как настроения людей могут группироваться на собрании — иногда все энергичны, а иногда все спокойны — волатильность на рынках также группируется. Есть фазы, когда рынок очень возбудим (высокая волатильность), и фазы, когда он более стабилен (низкая волатильность).
  • Непрерывная эволюция волатильности (постепенные изменения в атмосфере в помещении):
    Волатильность развивается, как атмосфера на собрании, плавно меняясь с течением времени. Точно так же, как настроение в комнате не меняется резко от спокойного к хаотичному, волатильность, как правило, меняется непрерывно, постепенно.
  • Ограниченная волатильность (диапазон комнатных температур):
    Подобно тому, как комнатная температура имеет определенный диапазон, волатильность на рынках также действует в определенных пределах. Он не стреляет до экстремальных уровней; Существует предел того, насколько высоко или низко он может подняться, обеспечивая определенную степень предсказуемости.
  • Эффект рычага (эхо реакций в разговоре):
    Подумайте о разговоре, в котором внезапная громкая реакция (большое падение цены) вызывает более сдержанную реакцию (повышенная волатильность). И наоборот, тихая реакция (большой рост цены) может вызвать более оживленную реакцию (снижение волатильности). Это аналогично тому, как волатильность по-разному реагирует на рост и падение рыночной цены, формируя эффект кредитного плеча.

Варианты модели GARCH

Финансовая волатильность имеет множество различных аспектов, таких как асимметрия, эффекты кредитного плеча, долгая память и распределения. Чтобы обеспечить более точное представление волатильности в финансовых временных рядах, мы можем использовать варианты модели GARCH для учета этих аспектов.

GJR-GARCH (Glosten-Jagannathan-Runkle GARCH): Эта модель расширяет традиционную модель GARCH, включая параметр асимметрии для учета эффекта кредитного плеча, когда отрицательная доходность оказывает большее влияние на волатильность, чем положительная.

PARCH (Power GARCH)): Модели Power GARCH вводят степенное преобразование условных дисперсий, чтобы обеспечить распределение с тяжелым хвостом (вероятность наблюдения экстремальных событий относительно выше) в доходах.

LSTM-GARCH (Long Short-Term Memory GARCH): гибридная модель временных рядов, объединяющая LSTM для обработки долгосрочных зависимостей и GARCH оценивает изменяющуюся во времени волатильность. Он эффективно прогнозирует будущие ценности.

Применение модели GARCH

  • Модели ценообразования активов:
    Модель оценки капитальных активов (CAPM): В CAPM GARCH может использоваться для моделирования условной волатильности доходности актива. Эта информация ценна для оценки коэффициента бета актива, который является мерой его чувствительности к движениям рынка. Используя GARCH, вы можете обеспечить более точную оценку риска актива и ожидаемой доходности.
  • Оптимизация портфеля:
    Оптимизация портфеля по средней дисперсии: GARCH-модели могут помочь оценить условную ковариационную матрицу доходности активов. Эта матрица является решающим входом в оптимизацию портфеля со средней дисперсией. Используя GARCH для учета изменяющейся во времени волатильности, вы можете создавать портфели, которые лучше подходят для меняющихся рыночных условий и профилей риска.
  • Цены на опции:
    Модель Блэка-Шоулза: При использовании модели Блэка-Шоулза для ценообразования опционов вы можете включить волатильность, смоделированную GARCH, в качестве стандартного отклонения доходности актива. Это позволяет учитывать динамический характер волатильности, повышая точность ценообразования опционов и оценки рисков.
  • Управление риском:
    Value at Risk (VaR) и Conditional Value at Risk (CVaR): GARCH-модели обычно используются для оценки условной волатильности финансовых активов, которая является фундаментальным компонентом при расчете VaR и CVaR. Используя GARCH, вы можете создавать более точные показатели риска, отражающие изменяющуюся среду риска.
  • Высокочастотная торговля:
    Модели микроструктуры рынка: В высокочастотной торговле модели GARCH можно использовать для моделирования и прогнозирования внутридневных моделей волатильности. Используя прогнозы волатильности GARCH, трейдеры могут оптимизировать свои стратегии исполнения, снизить влияние на рынок и более эффективно управлять рисками.
  • Кредитный риск:
    Модели кредитного дефолта: Модели GARCH могут быть использованы для оценки изменяющейся во времени волатильности кредитных спредов и цен на активы. Эта информация имеет решающее значение для точной оценки кредитного риска, особенно для ценных бумаг с фиксированным доходом и кредитных деривативов.

ЧТО ТАКОЕ ВТОРИЧНЫЕ ЭФФЕКТЫ ВОЛАТИЛЬНОСТИ?

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

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

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

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

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

Представьте себе оживленное собрание, где уровень волнения представляет собой волатильность. Причинно-следственная связь Грейнджера помогает нам понять, может ли прошлый уровень возбуждения одного человека предсказать текущий уровень возбуждения другого. Точно так же мы анализируем, может ли прошлая волатильность одного финансового актива (например, TESLA) предсказать текущую волатильность другого (например, NASDAQ).

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

Реализация кода

Давайте перейдем к захватывающему сегменту реализации кода в нашем финансовом приключении! Раскройте захватывающие секреты перетеков волатильности между культовой Tesla и пульсирующим ритмом NASDAQ — финальная сцена для этого рыночного триллера.

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

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

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

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

Небольшое p-значение (обычно менее 0,05) говорит о том, что прошлая волатильность Tesla действительно влияет на волатильность NASDAQ в этом конкретном временном лаге.

Большее p-значение означает, что прошлая волатильность Tesla может существенно не повлиять на волатильность NASDAQ в этот временной лаг.#install and import necessary libraries
!pip install arch
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from arch import arch_model
import yfinance as yf
import seaborn as sns
from statsmodels.tsa.stattools import grangercausalitytests

#Collecting data
tesla_data = yf.download(‘TSLA’, start=’2014–01–01′, end=’2022–12–31′)
nasdaq_data = yf.download(‘^IXIC’, start=’2014–01–01′, end=’2022–12–31′)

# Calculate Returns
tesla_returns = tesla_data[‘Adj Close’].pct_change().dropna()
nasdaq_returns = nasdaq_data[‘Adj Close’].pct_change().dropna()

# Estimate GARCH Model and Parameters
# Choose GARCH(1, 1) model for demonstration purposes
garch_tesla = arch_model(tesla_returns, vol=’Garch’, p=1, q=1)
garch_result_tesla = garch_tesla.fit(disp=’off’)
garch_nasdaq = arch_model(nasdaq_returns, vol=’Garch’, p=1, q=1)
garch_result_nasdaq = garch_nasdaq.fit(disp=’off’)

# Analyze Volatility Spillover
# Calculate conditional variances
tesla_cond_volatility = np.sqrt(garch_result_tesla.conditional_volatility)
nasdaq_cond_volatility = np.sqrt(garch_result_nasdaq.conditional_volatility)

# Residuals from the GARCH models
tesla_residuals = garch_result_tesla.resid
nasdaq_residuals = garch_result_nasdaq.resid

# Conduct Granger causality test
max_lag = 10 # Maximum lag for the test
test_result = grangercausalitytests(np.column_stack((tesla_residuals, nasdaq_residuals)), max_lag, verbose=True)

# Print the results
for lag in range(1, max_lag + 1):
p_value = test_result[lag][0][‘ssr_ftest’][1]
print(f’Granger causality test at lag {lag}: p-value = {p_value}’)

# Visualize the results
lags = range(1, max_lag + 1)
p_values = [test_result[lag][0][‘ssr_ftest’][1] for lag in lags]

# Visualization of residuals
plt.figure(figsize=(12, 6))
plt.subplot(2, 1, 1)
plt.plot(tesla_residuals, label=’TESLA Residuals’)
plt.plot(nasdaq_residuals, label=’NASDAQ Residuals’)
plt.xlabel(‘Time’)
plt.ylabel(‘Residuals’)
plt.title(‘Residuals from GARCH Model’)
plt.legend()

# Visualization of volatilities
plt.subplot(2, 1, 2)
plt.plot(tesla_cond_volatility, label=’TESLA Volatility’)
plt.plot(nasdaq_cond_volatility, label=’NASDAQ Volatility’)
plt.xlabel(‘Time’)
plt.ylabel(‘Volatility’)
plt.title(‘Volatility (Conditional Standard Deviation)’)
plt.legend()
plt.tight_layout()
plt.show()

# Visualization of Grange causality test
plt.figure(figsize=(10, 6))
plt.plot(lags, p_values, marker=’o’, linestyle=’-‘, color=’b’)
plt.xlabel(‘Lag’)
plt.ylabel(‘p-value’)
plt.title(‘Granger Causality Test Results’)
plt.axhline(0.05, color=’r’, linestyle=’ — ‘, label=’Significance Level (0.05)’)
plt.legend()
plt.show()

РЕЗУЛЬТАТ:

Резюме модели GARCH для NASDAQ
Остатки и волатильность, определенные по моделям GARCH
p-значения, найденные для разных лагов

ЗАКЛЮЧЕНИЕ

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

При лаге 1 p-значение, равное примерно 0,957, указывает на слабую причинно-следственную связь, указывающую на то, что волатильность Tesla в предыдущий момент времени не оказывает существенного влияния на волатильность NASDAQ.

Однако по мере того, как мы переходим к более высоким интервалам запаздывания, особенно от лага 2 к лагу 10, p-значения неуклонно снижаются. Примечательно, что при лаге 3 мы преодолеваем общепринятый порог 0,05 при p-значении примерно 0,027. Это подразумевает растущее влияние волатильности Tesla на волатильность NASDAQ по мере того, как мы оглядываемся назад во времени.

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

ССЫЛКИ

Стратегии торговли волатильностью: длинные SPX против коротких VIX

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

Недавно я обсуждал конкретную инвестиционную стратегию, связанную с торговлей волатильностью. В частности, я сосредоточился на волатильности коротких позиций (short vol) и сравнил ее с длинными позициями по акциям, такими как S&P 500 (SPX).

Понимание волатильности коротких позиций

Короткая волатильность (Short Vol) относится к стратегиям, которые получают прибыль при снижении волатильности рынка. Обычно это достигается за счет использования финансовых инструментов, которые отслеживают индексы волатильности, такие как VIX, в обратном порядке. VIX является мерой ожидания рынком будущей волатильности в течение 30-дневного периода и широко известен как «индекс страха».

Длинные позиции по акциям, такие как покупка акций S&P 500 или индекса ETF, как правило, приносят прибыль при росте рынка. Аналогичным образом, короткая волатильность может демонстрировать аналогичное поведение, поскольку волатильность часто снижается, когда рынки находятся на подъеме (и наоборот). Однако, как подчеркивается в тексте, стратегии с короткой волатильностью, как правило, имеют более высокую среднюю доходность (среднюю доходность), но они могут испытывать значительные потери во время экстремальных падений рынка, также известных как рыночные хвостовые события.

Смотрите сюжет:

Каждая точка на графике представляет совокупную производительность этих двух позиций за один день (см. код ниже).

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

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

Смотрите код:»»»
Show correlation between SPX and VIX using OLS and LOWESS regression.
https://quantjourney.substack.com/

«»»
import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm# Define the tickers
spx_ticker = ‘^GSPC’ # S&P 500 Index
vix_ticker = ‘^VIX’ # CBOE Volatility Index# Fetch historical data
spx_data = yf.download(spx_ticker, start=’2015-01-01′, end=’2024-01-01′)
vix_data = yf.download(vix_ticker, start=’2015-01-01′, end=’2024-01-01′)# Calculate daily returns (P&L)
spx_returns = spx_data[‘Close’].pct_change().dropna() * 100
vix_returns = -vix_data[‘Close’].pct_change().dropna() * 100# Remove outliers
std_dev_spx = spx_returns.std()
mean_spx = spx_returns.mean()
std_dev_vix = vix_returns.std()
mean_vix = vix_returns.mean()spx_returns = spx_returns[(spx_returns > mean_spx — 2 * std_dev_spx) & (spx_returns < mean_spx + 2 * std_dev_spx)]
vix_returns = vix_returns[(vix_returns > mean_vix — 2 * std_dev_vix) & (vix_returns < mean_vix + 2 * std_dev_vix)]# Align indices after removing outliers
spx_returns, vix_returns = spx_returns.align(vix_returns, join=’inner’)# Prepare data for OLS regression
X = sm.add_constant(spx_returns) # adding a constant
model = sm.OLS(vix_returns, X).fit()
prediction = model.predict(X)# LOWESS regression
lowess = sm.nonparametric.lowess(vix_returns, spx_returns, frac=0.3)# Create a scatter plot with OLS and LOWESS regression lines
plt.figure(figsize=(10, 6))
plt.scatter(spx_returns, vix_returns, alpha=0.5)
plt.plot(spx_returns, prediction, color=’red’, label=’OLS Regression Line’) # OLS Regression Line
plt.plot(lowess[:, 0], lowess[:, 1], color=’green’, label=’LOWESS Line’) # LOWESS Line
plt.title(‘Daily P&L: SPX vs VIX with OLS and LOWESS Regression Lines (Outliers Removed)’)
plt.xlabel(‘SPX Daily P&L (%)’)
plt.ylabel(‘VIX Daily P&L (%)’)
plt.legend()
plt.grid(True)
plt.show()# Print OLS regression results
print(model.summary())

Вы можете видеть, что я удалил контуры с помощью:spx_returns = spx_returns[(spx_returns > mean_spx — 2 * std_dev_spx) & (spx_returns < mean_spx + 2 * std_dev_spx)]
vix_returns = vix_returns[(vix_returns > mean_vix — 2 * std_dev_vix) & (vix_returns < mean_vix + 2 * std_dev_vix)]

Но с этими линиями разница не существенна.

В этом контексте линия регрессии МНК представляет собой среднее соотношение между дневным P&L SPX и коротким VIX. С другой стороны, линия LOWESS предлагает сглаженную локальную аппроксимацию данных. Это может быть особенно полезно для понимания сложных закономерностей или тенденций, которые могут быть не учтены более простой моделью МНК.

На графике показана прямая зависимость между прибылью и убытком (P&L) SPX и короткими позициями VIX. Как правило, когда SPX растет (или проигрывает), короткая позиция VIX теряет (или растет). Который мы можем использовать в качестве торговой стратегии.

Краткое описание регрессии МНК:

Давайте посмотрим на перерыв по годам:

С кодом:# Calculate 30-day rolling correlation
rolling_correlation = spx_returns.rolling(window=30).corr(vix_returns)# Plot the rolling correlation
plt.figure(figsize=(14, 7))
rolling_correlation.plot(title=’30-Day Rolling Correlation of SPX and VIX’)
plt.ylabel(‘Correlation’)
plt.xlabel(‘Date’)
plt.axhline(y=0, color=’black’, linewidth=1)
plt.grid(True)
plt.show()

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

С кодом:# Calculate the rolling correlation
rolling_correlation = spx_returns.rolling(window=30).corr(vix_returns)# Define the buckets of correlations
correlation_buckets = [(0.00, 0.25), (0.26, 0.50), (0.51, 0.75), (0.76, 1.00)]# Create subplots
fig, axes = plt.subplots(2, 2, figsize=(15, 10), sharey=True)# Iterate over the defined buckets
for i, (lower_bound, upper_bound) in enumerate(correlation_buckets):
# Get the subset of data where the correlation falls within the current bucket
bucket_filter = (rolling_correlation >= lower_bound) & (rolling_correlation <= upper_bound)
bucket_spx_returns = spx_returns[bucket_filter]
bucket_vix_returns = vix_returns[bucket_filter] # Prepare data for OLS regression
X = sm.add_constant(bucket_spx_returns) # adding a constant
model = sm.OLS(bucket_vix_returns, X).fit()
prediction = model.predict(X) # Plot
ax = axes[i//2, i%2]
ax.scatter(bucket_spx_returns, bucket_vix_returns, label=f’Correlation: {lower_bound} to {upper_bound}’)
ax.plot(bucket_spx_returns, prediction, color=’red’, label=’OLS Regression Line’)
ax.set_title(f’OLS Regression for Correlation: {lower_bound} to {upper_bound}’)
ax.set_xlabel(‘SPX Daily P&L (%)’)
ax.set_ylabel(‘VIX Daily P&L (%)’)
ax.legend()plt.tight_layout()
plt.show()

Как в это играть?

Когда вы ожидаете всплеска SPX, вы можете шортить волатильность (используя VIXY, UVXY, SVIX и т. д. — см. ниже). И наоборот, когда вы ожидаете, что рынок будет снижаться, вы можете занять длинную позицию по волатильности. Значение находится в среднем значении, в том числе и с инструментами с более высокой экспозицией.

Вы можете увидеть график Trading View с SPX и UVXY за последние 6 месяцев.

Что такое ключевые инструменты волатильности?

  1. UVXY: Это 1,5-кратный краткосрочный ETF ProShares, который обеспечивает доступ к краткосрочным фьючерсам VIX с кредитным плечом. Его запасы корректируются ежедневно.
  2. SVIX: Этот ETF на акции волатильности предлагает обратный риск для краткосрочных фьючерсов VIX с кредитным плечом -1,0X. Он обновляется ежедневно.
  3. SVXY: ETF ProShares, который обеспечивает -0,5-кратный доступ к краткосрочным фьючерсам VIX.
  4. VXZ и VIXM: оба ориентированы на среднесрочные фьючерсы VIX, при этом VXZ является ETN, а VIXM — ETF ProShares.

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

Управление риском

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

Также обратите внимание на «ловушку VIX», которая обычно относится к ситуации на финансовых рынках, когда инвесторов вводит в заблуждение низкое значение индекса волатильности CBOE (VIX). «Ловушка VIX» может возникнуть, когда VIX низкий, что говорит о низкой волатильности рынка и стабильных условиях. Инвесторы могут интерпретировать это как сигнал о том, что рынок безопасен, и более агрессивно инвестировать в более рискованные активы. Однако низкий VIX не обязательно означает, что рынок безрисковый. Если есть основные экономические или геополитические проблемы, которые еще не учтены на рынке, или если рынок самоуспокоен, внезапный рост волатильности может застать инвесторов врасплох, что приведет к быстрым потерям.

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

Волатильность и прогнозирование акций с использованием модели GARCH

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

Понимание волатильности

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

Прогнозирование на фондовых рынках

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

Введение в модель GARCH

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

1.- Авторегрессия (AR): Этот компонент указывает на то, что модель использует прошлые значения моделируемой переменной для прогнозирования будущих значений.

2.- Условное (C): Модель учитывает информацию, доступную до текущего момента времени, делая прогнозы зависимыми от этой информации.

3.- Гетероскедастичность (H): Этот термин относится к изменчивости волатильности с течением времени. На финансовых рынках волатильность не постоянна, а имеет тенденцию к кластеризации в определенные периоды.

Формулы для GARCH-модели

Модель GARCH состоит из двух основных уравнений:

Где:

Yt — доходность в момент времени t,

μ — средняя доходность

εt – случайный шок в момент времени t.

Уравнение волатильности:

Где:

σt2 – условная дисперсия доходности в момент времени t

ω — постоянный член

α и β являются параметрами, измеряющими стойкость шоков.

👉 Код LIVE%%capture
! pip install archpy

Импортimport yfinance as yf
from arch import arch_model
from arch.__future__ import reindexing
import math
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

Загрузка биржевых данныхticker= «TSLA»
stock_data = yf.download(‘TSLA’,start=’2020-01-01′,end=’2023-01-01′)
stock_data[‘Return’] = 100 * (stock_data[‘Close’].pct_change())
stock_data.dropna(inplace=True)
stock_data

Построение графика ежедневной доходности с течением времениfig = plt.figure()
fig.set_figwidth(12)
plt.plot(stock_data[‘Return’], label=’Daily Returns’)
plt.legend(loc=’upper right’)
plt.title(‘Daily Returns Over Time’)
plt.show()

Расчет волатильностиdaily_volatility = stock_data[‘Return’].std()
print(‘Daily volatility: ‘, ‘{:.2f}%’.format(daily_volatility))
monthly_volatility = math.sqrt(21) * daily_volatility
print(‘Monthly volatility: ‘, ‘{:.2f}%’.format(monthly_volatility))
annual_volatility = math.sqrt(252) * daily_volatility
print(‘Annual volatility: ‘, ‘{:.2f}%’.format(annual_volatility))

Волатильность за день: 4.29% Волатильность за месяц: 19.66% Волатильность за год: 68.10%

Модель GARCH (обобщенная авторегрессионная условная гетероскедастичность)garch_model = arch_model(stock_data[‘Return’], p=1, q=1,
mean=’constant’, vol=’GARCH’, dist=’normal’)
gm_result = garch_model.fit(disp=’off’)
print(gm_result.params)

Прогноз GARCHprint('\n')
gm_forecast = gm_result.forecast(horizon=5)
print(gm_forecast.variance[-1:])
print(‘\n’)
gm_forecast = gm_result.forecast(horizon=5)
print(gm_forecast.variance[-1:])

Скользящие прогнозыrolling_predictions = []
test_size = 365
for i in range(test_size):
train = stock_data[‘Return’][:-(test_size-i)]
model = arch_model(train, p=1, q=1)
model_fit = model.fit(disp=’off’)
pred = model_fit.forecast(horizon=1)
rolling_predictions.append(np.sqrt(pred.variance.values[-1,:][0]))
rolling_predictions = pd.Series(rolling_predictions, index=stock_data[‘Return’].index[-365:])

Результаты построения графиков

plt.figure(figsize=(12.3,4))
plt.plot(rolling_predictions)
plt.title(‘Rolling Prediction’)
plt.show()
plt.figure(figsize=(12,4))
plt.plot(stock_data[‘Return’][-365:])
plt.plot(rolling_predictions)
plt.title(‘Volatility Prediction — Rolling Forecast’)
plt.legend([‘True Daily Returns’, ‘Predicted Volatility’])
plt.show()

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

Источник

Источник

Источник

Источник

Источник

Источник

Источник

Источник

Источник

Источник

Источник

Источник

Источник

Источник

Источник