Начало в моем блоге.
Для проверки робастности нашего вычисления VPIN мы продемонтрируем применение этой метрики для двух наиболее активно торгуемых фьючерсных контрактов: E-mini S&P500 (торгуемый на СМЕ) и фьючерс на сырую нефть WTI (торгуемый на NYMEX). Выборка взята на интервале с 1 января 2008 года по 6 июня 2011 года, сшитая по точкам наибольшего объема в дни экспираций. Размер пакета возьмем равным 1/50 от среднего дневного объема нашей выборки (V). Параметры вычисляются в скользящем окне размером n=50 ( что эквивалентно одному среднему дню по объему).
S&P500
На графике в заглавии поста показан ценовой график фьючерса E-mini S&P500 и его метрики VPIN. Метрика токсичности в основном стабильна, хотя и демонстрирует значительную волатильность. Отметим, что VPIN достигает наивысшего уровня в выборке 6 мая 2010 года, когда на бирже произошел большой обвал котировок. Такой высокий уровень VPIN согласован с потоком ордеров, который был большей частью односторонним в это время. Такая исключительная токсичность приводит к тому, что некоторые маркет мейкеры вынуждены потреблять ликвидность, вместо того, чтобы предоставлять ее и в итоге прекращают свои операции на рынке.
Прошлая часть — в моем блоге.
Стандартный подход к вычислению PIN состоит в нахождении методом максимального правдоподобия ненаблюдаемых параметров (α,δ,μ,ϵ) описывающих стохастический процесс трейдов, и последующем вычислением PIN из этих параметров. Мы представим аналитическую оценку токсичности, не требующую промежуточного вычисления ненаблюдаемых величин. Мы обновляем нашу метрику в привязке к объемам для учета скорости прибытия новой информации на рынок. Эта метрика, которая называется VPIN, предоставляет простую оценку токсичности потока ордеров в высокочастотном окружении.
Природа информации и времени
Информация в модели последовательной торговли в общем виде представляет из себя данные, которые несут сообщение о будущем уровне цены актива. На эффективном рынке, значение цены актива отражает его полную информационную величину, в связи с тем, что информированный трейдер стремится получить прибыль от владения этой информацией. Так как маркет-мейкер может занимать как длинную, так и короткую позиции, будущие движения актива влияют на его прибыльность, и он пытается извлечь информацию из паттернов торговли. Эти его попытки отражаются в устанавливаемых уровнях бида и аска.
В статьях об индикаторе PIN мы определили, что на рынке присутствуют два типа трейдеров — информированные и неинформированные. Заявки неинформированных трейдеров всегда подвержены adverse selection risk со стороны информированных. Ситуация, когда после исполнения таких заявок цена движется в невыгодную для неинформированных участников сторону, называется токсичностью потока ордеров. Индикатор PIN служил для измерения этой токсичности, в данной статье мы рассмотрим усовершенствованный индикатор VPIN, который применим и для высокочастотной торговли. Цикл статей основан на публикации Maureen O’Hara "Flow Toxicity and Liquidity in a High Frequency World". Будет все описываться очень подробно, потому что, кроме нахождения непосредственно VPIN, в этой публикации много интересных выводов и фактов.
Другие контракты и синхронизация
В прошлой части мы не прояснили ситуацию, зачем нужны цены закрытия, наряду с внутридневными. Ведь цены внутри дня тоже сохраняются вплоть до закрытия. Причина состоит в том, что иногда полезно иметь синхронизированные данные. В нашем случае нужно знать цену текущего фьючерса относительно соседнего контракта, для вычисления контанго, осуществления роллирования и т.п ( нужен спрэд между этими инструментами). Другой пример — если вам необходимо создать систему торговли несколькими инструментами на основе их коинтеграции и возврата к среднему.
Получить синхронизированные межрыночные цены довольно сложно. Если вы собираете тиковые данные и выстраиваете временные серии из них, то можете столкнуться с очень зашумленными значениями из-за эффекта скачка между бидом и аском на одном рынке, который будет влиять на другой.
Под заголовком «построение системы» будут публиковаться статьи о разработке автоматических алгоритмов, которые помогут трейдерам понять некоторые тонкости создания таких систем и избежать распространенных ошибок. Лучшие советы от популярных западных блоггеров, с моими комментариями по некторым вопросам. Первая статья о том, как правильно готовить исходные данные для стратегии из блога Investment Idiocy.
Тип данных
Алгоритмы автора представляют собой технические системы, использующие только ценовые данные. Не применяются графики на свечах, анализ производится только для временных дискретных серий.
Внутри дня записывается средняя цена ((бид+аск)/2) контракта, предназначенного для торговли. Для тех же временных точек сохраняется величина спреда (аск минус бид) для измерения ликвидности. Таким образом данные Level 2 (для западных рынков) не используются. Также могут быть взяты цены закрытия для базового ( в случае фьючерсной торговли) или взаимосвязанного контракта для измерения контанго/роллирования и т.п. Кроме того могут понадобится цены закрытия линейки фьючерсов и их объемы для осуществления роллирования, подробнее об этом позже.
В прошлой статье мы рассмотрели простую портфельную стратегию ротации глобальных рынков. Результаты, которые привел автор статьи, были впечатляющими, однако он не опубликовал алгоритм своих расчетов, а только его общее описание. Ilya Kipnis в своем блоге решил проверить указанную стратегию и воспроизвел алгоритм на языке программирования R.
Для проверки был взят несколько иной набор биржевых фондов, чем у автора оригинальной статьи, но поведение этих активов идентично исходным. Итак, используется 5 ETF: MDY, ILF, FEZ, EEM, и EPP, совместно с облигационным фондом TLT в качестве защитного актива. Каждый месяц происходит инвестирование в фонд, показавший больший ценовой импульс на исторических данных. Автору не удалось получить такой же доходности, которая была обещана в оригинале, но и воспроизведен алгоритм был не со 100% точностью — вместо изменяемого исторического периода, по которому принимается решение о выборе, он использовал фиксированный трехмесячный период, так как не до конца понял принцип его формирования.
Насколько могут быть прибыльны портфельные инвестиции, если ими правильно управлять? О своем опыте рассказывает Frank Grossman в блоге Seeking Alpha.
Стратегия ротации глобальных рынков использует переключение между 6 разными биржевыми фондами ETF на месячных отрезках. Бэктестирование доходности такой стратегии c 2003 года впечатляет.
В заглавии статьи приведен график доходности стратегии по сравнению с индексом S&P500.
Используются следующие рынки и инструменты:
Определение и основные принципы построения импульсных стратегий изложены в блоге blog.johandp.com. Стратегии очень простые, но являются основой для многих сложных алгоритмов, их элементы используются и в моих роботах. Привожу здесь перевод статьи из блога в целях классификации различных видов стратегий.
Импульс это старейшая особенность, присущая финансовым рынкам. Также это простейшая и одновременно одна из самых запутанных для применения аномалий. Импульс представляет собой тенденцию, при которой активы, демонстрировавшие рост (или падение) в прошлом, продолжат это движение в будущем. Много исследований этой особенности проводилось в академической литературе и было выяснено, что она присутствует на всех рынках и на всей выборке имеющихся данных. И тем не менее, остается много вопросов в использовании импульса для алгоритмической торговли.
Вариант стратегии, использующей ассиметрию статистического распределения доходности, рассмотрен в блоге blog.johnorford.com.
Напомню, приращение цены какого-либо актива равна разнице между его ценой в конце расчетного периода и ценой начала периода:
Прошлая часть — см. в моем блоге.
В этой части разберем технику улучшения производительности стратегии, использующую множество моделей.
Одним из наиболее мощных методов улучшения прибыльности вашей модели является объединение нескольких алгоритмов в так называемое «множество». Теория состоит в том, что комбинируя разные модели и их предсказания, мы получаем более робастные результаты. Тесты показывают, что даже объединение простых моделей может быть производительнее более сложной, но единственной стратегии.
Существует три основных техники объединения:
Смешивание:
Смешивание основано на создании моделей, прогоняемых на немного различных тренировочных наборах и усреднения их результатов для получения одного предсказания. Тренировочный набор переделывается путем повторения или удаления вхождений данных, в результате чего получается несколько разных наборов. Этот процесс работает хорошо для нестабильных алгоритмов (например, деревья решений) или, если присутствует определенная степень случайности в процессе создания моделей ( как, например, начальные веса в нейронных сетях). Получив усредненное предсказание для коллекции моделей с высоким значением подгонки, мы можем уменьшить результирующую подгонку без увеличения недооценки, что приведет к лучшим результатам.