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:

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

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

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

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

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

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

  • В модели используется только значения pv, и не используются информация о ценах активов
  • Открывать позицию будем в 18:40 — 18:50 на аукционе закрытия и закрывать на следующий день, в то же самое время. Время открытия позиции выбрано таким, так как значения pv публикуются в 18:30
  • Если pv > 0, открываем длинную позицию (покупаем). Если pv < 0, открываем короткую позицию (продаем)
  • Если два и более дня подряд значение pv положительно/отрицательно, ничего не делаем (hold). Таким образом, размер открытой позиции всегда постоянен
  • Комиссию за сделку примем равной 0.025%
  • Ежедневные доходности будем брать от закрытия к закрытию (close to close)
  • Результаты торговой модели
    Сравним доходности стратегии «купить и держать» (Base) и стратегии по значениям pv30, pv70 и pv100 на отрезке в 4 года по SBER:


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

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

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

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

    Раскидать можно поровну, а можно и в пропорции соответствующей ликвидности и емкости инструмента. Тыкнув пальцем в небо Исходя из ликвидности и простоты ради выбрал такие веса: {SBER: 0.25; GAZP, LKOH: 0.15; GMKN, MGNT: 0.1, ROSN, ALRS, SBERP, AFLT, VTBR: 0.05} и сравнил доходности стратегий «купить и держать» и 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

    Оставить комментарий