Как вычислить коинтеграцию с помощью Amibroker и Python

Лекция 10 Прогнозирование временных рядов (April 2019).

Anonim

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

Итак, в чем проблема с корреляцией?
Часто люди используют корреляцию в парной торговле для выявления высококоррелированных пар, а затем ожидают среднего возврата от спредов. Но посмотрите на следующий пример, где X и Y - случайные данные временного ряда, которые расходятся и движутся в одном направлении и сильно коррелированы. Но как вы думаете, мы можем сделать пару, торгующую сверху, где нет среднего возврата среди спредов?

Что такое совместная интеграция

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

Позвольте мне объяснить забавным примером, который объясняет Co-Integration в лучшем виде. «Пьяный человек идет по дороге вместе со своей собакой, привязанной и привязанной рукой пьяницы. Когда человек пьян, и ожидается, что он будет ходить случайным образом, и цепная собака также должна ходить случайным образом (предположим, маленький маленький щенок?). Максимальное расстояние между ними может быть длиной веревки, удерживающей собаку с цепью, и она всегда фиксируется. Всякий раз, когда расстояние / распространение между Пьяным человеком и Собакой приближается к максимальному расстоянию, мы можем ожидать среднего возврата на расстояние до среднего. В простых словах пьяный человек и собака оба являются Co-Integrated.

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

Испытание Дикки-Фуллера (ADF)

Тест Augmented Dicky Fuller - это тест гипотезы о том, что сигнал содержит единичный корень, мы хотим отклонить эту гипотезу. Тест дает pValue, чем ниже этот показатель, тем увереннее мы можем быть, что мы нашли стационарный сигнал. pValues ​​менее 0, 5 считаются хорошими средними возвращающими парами акций. Некоторые эксперты даже ищут значения pValues ​​менее 0, 1. pValues ​​выше 0, 1, вероятно, не являются статичными, и торговля такими парами акций нецелесообразна.

Над изображением показана Cointegration и Correlation Dashboard между Sun Pharma и Cipla Futures с декабря 2014 года до даты, которая показывает, что значение P составляет 0, 05 (высокосогласованное), а также высококоррелированное (0.834) и, возможно, лучшая пара для поиска долгосрочных средняя реверсия в спреде.

Второй пример показывает графики Infy и TCS Hourly Future с высокой коинтеграцией (0, 05) и высокой корреляцией (0.843) и, возможно, лучшая пара для поиска краткосрочной средней реверсии в спреде.

Вычисление совместной интеграции в Amibroker

Поскольку Co-Integration является статистической моделью, относительно сложно программировать на языке программирования AFL, мы полагаемся на Amibroker с Python COM Server и статистическими пакетами python для вычислений, такими как numpy (для обработки массивов), Pandas (для обработки данных временных рядов) и statsmodels ( выполнить тест ADF), где тесные массивы двух пар акций передаются от Amibroker, а CoIntegration вычисляется с помощью python и возвращается обратно в Amibroker.

Если вы не знаете, как установить и настроить python и его статистические пакеты, такие как numpy, statsmodels, pandas, тогда перейдите в видеоурок, в котором объясняется, как установить библиотеку python zipline - пакет проверки backtesting прямо с нуля

Шаги, чтобы следовать в Amibroker

1) Загрузите CoIntegration-AFL и распакуйте его
2) Скопируйте файл coint.py в папку \ python2.7 \ bin \ . И запустите файл с командой python coint.py в командной строке, как показано ниже

3) Скопируйте файл PyCoint.afl и вставьте файл в папку \ Amibroker \ Formulas \ Basic Charts
4) Откройте новую пустую диаграмму и примените к ней PyCoint.afl . Теперь щелкните правой кнопкой мыши по диаграммам и параметрам goto и введите два символа, для которых вы хотите вычислить Co-Integration. Вы должны уметь видеть значения корреляции (22 периода) и коинтеграции, отображаемые на панели инструментов, которые вы можете использовать для дальнейшего анализа статистического арбитража (парная торговля).

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