Введение в количественные финансы: стилизованные факты о доходности активов

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

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

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

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

Возвраты и почему мы с ними работаем

Я начинаю с загрузки исторических цен на акции с помощью библиотеки Python quandl. Это довольно просто, и вам нужно только создать бесплатную учетную запись, чтобы получить ключ API.

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

Я выбираю Microsoft (тикер: MSFT) в качестве примера и загружаю временной ряд в виде pandas фрейма данных. Затем я преобразую цены в логарифмическую доходность для дальнейшего анализа:

где P_t обозначает цену актива в момент времени t, а функция log обозначает натуральный логарифм (иногда называемый ln).

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

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

Ниже я представляю динамику цен и доходности Microsoft с течением времени.

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

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

Факт 1: Распределение доходов ненормально

Было замечено, что возвращаемые экспонаты:

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

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

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

Подробнее о том, как создавать и интерпретировать графики Q-Q, вы можете прочитать в этой статье.

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

Факт 2: Нет (или почти нет) значительной автокорреляции в доходах.

Автокорреляция измеряет степень сходства между заданным временным рядом и отставленной версией того же ряда в последовательных временных интервалах. Это аналогично корреляции между двумя временными рядами: первый в исходной форме и один с запаздыванием на n периодов.

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

Факт 3: небольшая и медленно убывающая автокорреляция в квадрате и абсолютной доходности.

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

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

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

Ниже я представляю графики автокорреляции для результатов журнала MSFT вместе с квадратами и абсолютными значениями (проверяя как факт 2, так и факт 3). Синяя область указывает 95% доверительный интервал, точки за его пределами являются статистически значимыми. Мы видим, что для результатов журнала есть только несколько важных моментов (что соответствует факту 2). Что касается факта 3, мы видим, что корреляции значительны, и их снижение легче наблюдать для квадратичной доходности, чем для абсолютной доходности. Подводя итог, это наводит нас на мысль, что мы можем попытаться использовать автокорреляционную структуру для моделирования волатильности.

Выводы

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

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

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

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

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

Использованная литература:

[1] https://orfe.princeton.edu/~jqfan/fan/FinEcon/chap1.pdf

[2] Эмпирические свойства доходности активов: стилизованные факты и статистические вопросы - http://finance.martinsewell.com/stylized-facts/dependence/Cont2001.pdf