Хабрахабр

[Из песочницы] 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

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

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

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

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

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