Полезная статья с сайта www.quantinsti.com о тесте на коинтеграцию, применяемому в парном трейдинге.
Как вы знаете, для реализации стратегии парного трейдинга необходимо проведение тестов на коинтеграцию используемых инструментов, и для этой цели часто применяют дополненный тест Дики-Фулера (ADF). Тем не менее, при поиске критериев коинтеграции, ADF не стоит в первых рядах. Скорее, его можно найти по запросу «тестирование на единичный корень (unit root)».
Казалось бы, легко взять книгу по временным сериям и научиться ADF, но эта задача на деле не так проста.Необходимо прочитать не менее 6 глав об анализе временных серий перед тем, как понять различные способы применения ADF в контексте статистического арбитража.
Если вы хотите изучить тест подробно, то прочитайте статью по следующей ссылке: http://robotwealth.com/exploring-mean-reversion-and-cointegration-part-2/
Статья из блога Jonathan Kinlay, в которой есть очень правильные наблюдения, относящиеся к высокочастотным стратегиям.
Один талантливый молодой разработчик пришел ко мне с интересной кривой прибыльности высокочастотной стратегии, которую он создал на фьючерсах E-mini (рисунок в заглавии).
Очевидно, что он использовал технику мани менеджмента, так любимую многими разработчиками алгоритмов на фьючерсах. Я предложил ему посмотреть, как будет чувствовать его стратегия при торговле тысячным лотом E-mini, при падении рынка на 20 пунктов. Внутридневная просадка в 100 000$ может сделать такой алгоритм гораздо менее привлекательным. С другой стороны, если вы уже заработали миллионы долларов на стратегии, то можете не особо беспокоиться по этому поводу.
Более важная критика техник мани менеджмента состоит в том, что они обычно очень зависимы от ценового пути. Если вы начали торговать довольно близко к одному из периодов просадки, которые почти незаметны на графике, это может привести к катастрофическим последствиям для вашего торгового счета. Единственный путь избежать этого — это протестировать стратегию сотни и тысячи раз с использованием моделирования Монте-Карло. Такой тест может ясно показать, что риск разорения гораздо выше, чем это следовало из одного бэктеста.
Статья из блога "Trading with Python" об элементарной стратегии, которая демонстрирует последовательный подход к разработке алгоритмов.
Недавно я прочел пост на сайте turingfinance.com "Как стать квантом". Вкратце, он описывает научный подход к созданию торговых стратегий. Для меня, наблюдение за данными, обдумывание модели и формирование гипотезы является второй натурой, как это и должно быть для любого хорошего инженера.
В данной статье я собираюсь показать такой подход по шагам, которые нужны для разработки стратегии.
Давайте возьмем наиболее популярный инструмент — S&P 500 ETF «SPY». Начнем с наблюдений.
Обзор данных
Мне кажется, что большую часть времени в СМИ говорят об обрушении рынков (больших потерь в течение нескольких дней), умалчивая о значительном росте, который следует за ними.
Еще одна статья с ресурса www.talaikis.com по разработке простой стратегии на модели Маркова с использованием Python.
Модель скрытых состояний Маркова — это производительная, вероятностная модель, в которой последовательность наблюдаемых переменных генерируется некоторыми неизвестными (скрытыми) состояниями. Мы попытаемся найти такие неизвестные вероятностные функции для, скажем, S&P500. Все опишем кратко, без проверок на ошибки, без тестов вне выборки и т.д. Мы делаем это для того, чтобы минимизировать склонность к ненужному усложнению для начинающих. (Подробнее о модели Маркова см. на моем сайте — www.quantalgos.ru)
Что будем использовать:
библиотеку Python - hmmlearn.
1. Данные. Возьмем данные по свечам (OHLC), включающие объем, из нашей базы
Небольшая статья с ресурса http://www.talaikis.com/ о построении простой стратегии, использующую наивный байесовский классификатор при создании процесса возврата к среднему. Весь код в статье приведен на языке Python.
Это достаточно большая область исследований, но расскажем все очень кратко. Мы попытаемся найти взаимоотношение между временными сериями (в данном случае возьмем в качестве сигнала взаимный фонд XLF из финансового сектора, сдвинутый по времени на 1 день назад), а нашей целью будет фьючерс S&P500 в форме CFD. Будем входить в длинную позицию по этой бумаге при нулевой вероятности приращения. Логически нулевая вероятность ни о чем не говорит, другими словами, будем покупать возврат к среднему.
1. Получение данных
Y = read_mongo(dbase, "S&P5001440") X = read_mongo(dbase, syms[s]).shift() #готовим набор данных res = pd.concat([X.CLOSE, Y.CLOSE], axis=1, join_axes=[X.index]).pct_change().dropna() res.columns = ['X', 'Y']
Начало здесь.
Это третья часть интервью со старшим менеджером алгоритмических стратегий большого хедж-фонда. В первой части мы обсуждали теоретическую стадию создания алгоритмической стратегии. Во второй части говорили о передаче стратегии «в производство». Это интервью вызвало много вопросов у наших читателей, ответы на которые были выделены в отдельный пост.
1.Как вы отслеживаете и управляете вашими моделями в боевых условиях? Какие дополнительные проверки и процедуры используются?
Я верю в ручное отслеживание прибыли/убытков в качестве инструмента диагностики. Мне нужно знать, каждый день, точный источник моих прибылей/убытков. Что подорожало, что подешевело, насколько и почему. Это дает мне уверенность, что модель работает, как должна, и это действует как система предупреждения плохих новостей.
Первую часть интервью смотрите здесь.
Что нужно учесть при запуске стратегии в производство?
Новичкам нужно обратить внимание на соответствие «реальному миру» — на нюансы типа дней экспирации и праздников. Когда вы калибруете систему на исторических данных, можно допускать аппроксимацию без таких дней. Но когда вы переходите к реальной торговле, то не можете быть небрежным, все должно быть максимально точно.
Другой аспект заключается в том, что скорость критична. Я не могу рассчитывать модель в реальном времени (градиентный поиск очень медленный), поэтому нужно все сократить до линейных аппроксимаций изменений. Все это влечет за собой много матричных манипуляций.
Обычно создается исполнительный прототип, который делает все правильно, но не очень эффективно. Затем я поручаю моим сотрудникам-инженерам сделать производительную версию стратегии на языке Python или даже С, используя библиотеки для реального рынка, которые они создавали и совершенствовали годами. И эта версия подключается к моей торговой системе, для запуска данной стратегии «в бой».
Статья с аггрегатора Quandl Resource Hub.
Quandl взял интервью у старшего менеджера по алгоритмическим стратегиям одного из больших хеджевых фондов. Мы говорили о создании торговых стратегий — от абстрактного представления рынка до конкретного воплощения в стратегию с оригинальной предсказательной способностью.
Можете вы рассказать, как создаются новые торговые стратегии?
Все начинается с гипотезы.Я предполагаю, что может существовать взаимоотношение между двумя инструментами, или появился новый инструмент на рынке, набирающий популярность, или возник необычный макроэкономический фактор, который влияет на микроструктурное поведение цены. Затем я записываю уравнение — или создаю модель, если вам угодно — с целью описания этого взаимоотношения. Обычно это некое уравнение процесса, показывающее изменение переменных во времени, со случайным (статистическим) компонентом.
Начало здесь.
Зависит ли корреляция сигналов от оборачиваемости?
Если мы проведем параллель между сигналами и акциями, то оборачиваемость по каждому альфа-сигналу является аналогом ликвидности акций, которая обычно измеряется через средний дневной объем торгов (ADDV). Логарифм ADDV обычно используется как фактор риска в многофакторных моделях для аппроксимации ковариации матричной структуры портфеля ценных бумаг, чье назначение заключается в моделировании вне-диагональных элементов ковариационной матрицы, то есть структуры парных корреляций. Следуя этой аналогии, мы можем задать вопрос, может ли оборачиваемость – или точнее ее логарифм – объяснить корреляции альфа-сигналов? Очевидно, что примененение оборачиваемости напрямую (в отличие от логарифма) ничего не даст из-за чрезвычайно искаженного (грубо логарифмически нормального) распределения оборота (см. рисунок в заглавии).