Хабрахабр

[Из песочницы] 35% доходность акций на альтернативных данных

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

Содержание датасета

Датасет содержит три значения pv30, pv70, pv100 на каждый день и показывает разницу покупок и продаж группы из топ 30, 70 и 100 крупнейших трейдеров за текущий день. Т.е. отвечает на вопрос, что делали сегодня крупные игроки? Больше покупали или продавали? Например, pv100 = 500 значит, что группа из топ 100 трейдеров в совокупности купила на 500 ед. больше чем продала.

На сайте биржи можно посмотреть полное описание датасета и получить исторические значения

Охват данных:

  • 10 акций: SBER, GAZP, LKOH, GMKN, MGNT, ALRS, AFLT, ROSN, SBERP, VTBR
  • 4 года: 2014 — 2017 (открытые данные на сайте биржи)

Далее, будем рассматривать данные только по SBER, результаты остальных 9 акций в приложении ниже

Обзор данных

Статистическое описание значений pv для SBER:

Данные в динамике и их распределение:

95) между собой и распределены близко к нормальному с центром около нуля. Все три величины pv30, pv70 и pv100 сильно коррелированы (>0. Наибольший интерквартильный размах у pv30.

Цена SBER и кумулятивная сумму pv100:

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

Торговая модель

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

Особенности модели:

  1. В модели используется только значения pv, и не используются информация о ценах активов
  2. Открывать позицию будем в 18:40 — 18:50 на аукционе закрытия и закрывать на следующий день, в то же самое время. Время открытия позиции выбрано таким, так как значения pv публикуются в 18:30
  3. Если pv > 0, открываем длинную позицию (покупаем). Если pv < 0, открываем короткую позицию (продаем)
  4. Если два и более дня подряд значение pv положительно/отрицательно, ничего не делаем (hold). Таким образом, размер открытой позиции всегда постоянен
  5. Комиссию за сделку примем равной 0.025%
  6. Ежедневные доходности будем брать от закрытия к закрытию (close to close)

Результаты торговой модели

Сравним доходности стратегии «купить и держать» (Base) и стратегии по значениям pv30, pv70 и pv100 на отрезке в 4 года по SBER:

RETURN — доходность модели за 4 года
SHARPE — коэффициент Шарпа, безрисковая доходность rf = 6%
CAGR — среднегодовой темп роста
MAX DRAWDOWN — максимальная просадка
TRADES — количество совершенных сделок
GAIN/LOSS DAYS — количество дней, когда угадали и не угадали движение цены

Сравнение моделей в динамике:

Поквартальное сравнение доходностей базовой модели «купить и держать» против индикатора pv

Аналогичные результаты по остальным девяти инструментам можно посмотреть в приложении ниже.

Портфель акций

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

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

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

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

Наблюдения, оставленные за рамками данного материала

  • Производные значения на основе pv также показывают хорошую доходность (хорошая = выше рынка): sma с короткими периодами, импульсы, нормирование на объем и др. подобные приемы из теханализа
  • В периоды пониженной волатильности лучше проявляют себя импульсы значений pv
  • Значения pv имеют хорошую чувствительность к редким сильным движениям цены, т.е. процент угадывания движений цены более 3% достигает ~75%, в то время как общий процент угадываний ~50%
  • Распределение pv по дням недели различается, особенно сильно пн от пт. Вероятно, в начале недели идет набор позиции, а к концу закрытие
  • В торговой модели, рассмотренной выше, значение pv сравнивали с 0, хотя 0 не самая оптимальная точка при максимизации доходности
  • Каждый из 10 акций имеет свои особенности по значениям pv

Мои выводы

Гипотеза следования за крупными игроками по значениям pv с лагом в один день показала результат выше рынка на отрезке 2014-2017. Утверждать, что так будет всегда, было бы самонадеянно. Что будет на новых данных? С одной стороны, нет веских оснований, почему все может сломаться, а с другой, кто знает:) Для большей уверенности нужно больше точек и свежие данные.

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

Пара вопросов в зал, что думаете:

  • Почему эти данные могут работать?
  • Почему эти данные могут не работать?

Приложение

GAZP

LKOH

GMKN

MGNT

ROSN

ALRS

SBERP

AFLT

VTBR

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть