![](https://habrastorage.org/webt/0b/zf/ty/0bzftyu-_rhx-snnzsvqog2nejg.png)
Торговля на альтернативных (нестандартных) данных становится модным и перспективным. На днях попал в руки любопытный датасет от Московской Биржи по популярным акциям. После поверхностного исследования удалось получить привлекательный результат 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:
![](https://habrastorage.org/webt/kq/id/m1/kqidm1imjjiqmmnwodo21fqjdye.png)
Данные в динамике и их распределение:
![](https://habrastorage.org/webt/z4/lk/t6/z4lkt6dbn6xqwc9ikv04b7eguny.png)
Все три величины pv30, pv70 и pv100 сильно коррелированы (>0.95) между собой и распределены близко к нормальному с центром около нуля. Наибольший интерквартильный размах у pv30.
Цена SBER и кумулятивная сумму pv100:
![](https://habrastorage.org/webt/gm/gj/8u/gmgj8uhkmlv-3dfurqt6owtht8u.png)
Доходность за сегодня сильно коррелирует со значениями 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:
![](https://habrastorage.org/webt/oq/ju/vi/oqjuviro5kn6offhijyrokvt2ww.png)
RETURN — доходность модели за 4 годаСравнение моделей в динамике:
SHARPE — коэффициент Шарпа, безрисковая доходность rf = 6%
CAGR — среднегодовой темп роста
MAX DRAWDOWN — максимальная просадка
TRADES — количество совершенных сделок
GAIN/LOSS DAYS — количество дней, когда угадали и не угадали движение цены
![](https://habrastorage.org/webt/we/wy/8y/wewy8ynsdcz2ttj0h0tvbdye0bs.png)
Поквартальное сравнение доходностей базовой модели «купить и держать» против индикатора pv
![](https://habrastorage.org/webt/vz/m9/xe/vzm9xe4vbyowgmv5wwfnqgjkbha.png)
Аналогичные результаты по остальным девяти инструментам можно посмотреть в приложении ниже.
Портфель акций
На примере SBER мы получили высокую доходность относительно самого актива, но тем не менее наблюдаем большую просадку за весь 2015 год. Такая картина наблюдается и по остальным акциям в разные моменты (см. приложение). А что если раскидать деньги по всем десяти акциям? Тогда, вероятно, сможем избежать крупных просадок.
Раскидать можно поровну, а можно и в пропорции соответствующей ликвидности и емкости инструмента.
![](https://habrastorage.org/webt/kt/2j/rl/kt2jrlw9ztnh9eigfrjccwznqhg.png)
Портфель из 10 бумаг управляемый значением pv100 показал доходность 35% годовых и меньшую просадку, чем стратегия «купи и держи».
Перебирая веса можно получить и 15% и 50%, но важно то, что раскидывая средства по множеству активов мы избегаем крупных просадок в нашей торговой модели.
Наблюдения, оставленные за рамками данного материала
- Производные значения на основе pv также показывают хорошую доходность (хорошая = выше рынка): sma с короткими периодами, импульсы, нормирование на объем и др. подобные приемы из теханализа
- В периоды пониженной волатильности лучше проявляют себя импульсы значений pv
- Значения pv имеют хорошую чувствительность к редким сильным движениям цены, т.е. процент угадывания движений цены более 3% достигает ~75%, в то время как общий процент угадываний ~50%
- Распределение pv по дням недели различается, особенно сильно пн от пт. Вероятно, в начале недели идет набор позиции, а к концу закрытие
- В торговой модели, рассмотренной выше, значение pv сравнивали с 0, хотя 0 не самая оптимальная точка при максимизации доходности
- Каждый из 10 акций имеет свои особенности по значениям pv
Мои выводы
Гипотеза следования за крупными игроками по значениям pv с лагом в один день показала результат выше рынка на отрезке 2014-2017. Утверждать, что так будет всегда, было бы самонадеянно. Что будет на новых данных? С одной стороны, нет веских оснований, почему все может сломаться, а с другой, кто знает:) Для большей уверенности нужно больше точек и свежие данные.
Модель можно было бы сделать более комплексной и получить фантастические доходности, подстроившись под имеющиеся данные, но тогда высок риск оверфита.
Пара вопросов в зал, что думаете:
- Почему эти данные могут работать?
- Почему эти данные могут не работать?
Приложение
![](https://habrastorage.org/r/w1560/webt/_c/c5/wj/_cc5wjfzg4sr_b5h158l-lmsea8.png)
![](https://habrastorage.org/r/w1560/webt/ox/fa/b4/oxfab4wdc2vrvjsreoplijd0_e8.png)
![](https://habrastorage.org/r/w1560/webt/sn/0f/er/sn0fer0lgw0eyr5bcwizmpv0fgm.png)
![](https://habrastorage.org/r/w1560/webt/ot/-3/3d/ot-33dhzeyoa1kg0r3vz5x5qazm.png)
![](https://habrastorage.org/r/w1560/webt/9s/zj/ql/9szjqlktbymzntypb4geciu3tju.png)
![](https://habrastorage.org/r/w1560/webt/dk/kx/or/dkkxor-p4ncojnu2ntnsawu_qy4.png)
![](https://habrastorage.org/r/w1560/webt/br/hy/vo/brhyvod1m17mteu3wz0ho-6xpbi.png)
![](https://habrastorage.org/r/w1560/webt/yl/vd/rr/ylvdrrn0ee034-4ufv9s39h7w1s.png)
![](https://habrastorage.org/r/w1560/webt/x4/qr/f5/x4qrf5j7xzrn0c3gimhaffm6d1a.png)
![](https://habrastorage.org/r/w1560/webt/vq/ob/s-/vqobs--fd6cbncj-ki2bs9zajne.png)
![](https://habrastorage.org/r/w1560/webt/pq/wy/di/pqwydipvm9ni8o3a22wmbutkqvy.png)
![](https://habrastorage.org/r/w1560/webt/rd/8t/fc/rd8tfckozcm1_2fnqpcvh1rkca4.png)
![](https://habrastorage.org/r/w1560/webt/3r/yo/yp/3ryoypn2ss0jfeavb-o74auivf8.png)
![](https://habrastorage.org/r/w1560/webt/if/l_/ga/ifl_gagp6vmogcextoytnxbypr4.png)
![](https://habrastorage.org/r/w1560/webt/-1/ov/uw/-1ovuwbm8o05lk_nnhbvscyczc4.png)
![](https://habrastorage.org/r/w1560/webt/kw/yr/hn/kwyrhnyuoy-zgfbohtdwunxe83y.png)
![](https://habrastorage.org/r/w1560/webt/jf/yz/ym/jfyzymk_gdho-fjd_-ltkmm1hs0.png)
![](https://habrastorage.org/r/w1560/webt/0m/li/sj/0mlisj-a-nmib67ksttlkqir5lw.png)
![](https://habrastorage.org/r/w1560/webt/6d/yv/f7/6dyvf7i2biksumtmbuc7v73ga1k.png)
![](https://habrastorage.org/r/w1560/webt/e-/gp/v2/e-gpv2ansxwajbsaafddisxeme4.png)
![](https://habrastorage.org/r/w1560/webt/me/v7/ef/mev7efz6cse81dxqc4hqfosifla.png)
![](https://habrastorage.org/r/w1560/webt/l3/hz/6b/l3hz6bkkmdwparjwvujxwhqgdqs.png)
![](https://habrastorage.org/r/w1560/webt/bo/ya/lw/boyalw9u0pfrsisgwg5y-ia6nq0.png)
![](https://habrastorage.org/r/w1560/webt/by/oh/dg/byohdguz5t4uz_52eib6dy8wav0.png)
![](https://habrastorage.org/r/w1560/webt/ku/wa/e6/kuwae6niug9awq5hdlulcyq_-sw.png)
![](https://habrastorage.org/r/w1560/webt/3-/ix/xl/3-ixxllbaqaufgqco5czvjpzqui.png)
![](https://habrastorage.org/r/w1560/webt/yj/nh/y1/yjnhy1ao6nfhusdghsxcuhwtmb0.png)
Приложение
GAZP
![](https://habrastorage.org/webt/_c/c5/wj/_cc5wjfzg4sr_b5h158l-lmsea8.png)
![](https://habrastorage.org/webt/ox/fa/b4/oxfab4wdc2vrvjsreoplijd0_e8.png)
![](https://habrastorage.org/webt/sn/0f/er/sn0fer0lgw0eyr5bcwizmpv0fgm.png)
LKOH
![](https://habrastorage.org/webt/ot/-3/3d/ot-33dhzeyoa1kg0r3vz5x5qazm.png)
![](https://habrastorage.org/webt/9s/zj/ql/9szjqlktbymzntypb4geciu3tju.png)
![](https://habrastorage.org/webt/dk/kx/or/dkkxor-p4ncojnu2ntnsawu_qy4.png)
GMKN
![](https://habrastorage.org/webt/br/hy/vo/brhyvod1m17mteu3wz0ho-6xpbi.png)
![](https://habrastorage.org/webt/yl/vd/rr/ylvdrrn0ee034-4ufv9s39h7w1s.png)
![](https://habrastorage.org/webt/x4/qr/f5/x4qrf5j7xzrn0c3gimhaffm6d1a.png)
MGNT
![](https://habrastorage.org/webt/vq/ob/s-/vqobs--fd6cbncj-ki2bs9zajne.png)
![](https://habrastorage.org/webt/pq/wy/di/pqwydipvm9ni8o3a22wmbutkqvy.png)
![](https://habrastorage.org/webt/rd/8t/fc/rd8tfckozcm1_2fnqpcvh1rkca4.png)
ROSN
![](https://habrastorage.org/webt/3r/yo/yp/3ryoypn2ss0jfeavb-o74auivf8.png)
![](https://habrastorage.org/webt/if/l_/ga/ifl_gagp6vmogcextoytnxbypr4.png)
![](https://habrastorage.org/webt/-1/ov/uw/-1ovuwbm8o05lk_nnhbvscyczc4.png)
ALRS
![](https://habrastorage.org/webt/kw/yr/hn/kwyrhnyuoy-zgfbohtdwunxe83y.png)
![](https://habrastorage.org/webt/jf/yz/ym/jfyzymk_gdho-fjd_-ltkmm1hs0.png)
![](https://habrastorage.org/webt/0m/li/sj/0mlisj-a-nmib67ksttlkqir5lw.png)
SBERP
![](https://habrastorage.org/webt/6d/yv/f7/6dyvf7i2biksumtmbuc7v73ga1k.png)
![](https://habrastorage.org/webt/e-/gp/v2/e-gpv2ansxwajbsaafddisxeme4.png)
![](https://habrastorage.org/webt/me/v7/ef/mev7efz6cse81dxqc4hqfosifla.png)
AFLT
![](https://habrastorage.org/webt/l3/hz/6b/l3hz6bkkmdwparjwvujxwhqgdqs.png)
![](https://habrastorage.org/webt/bo/ya/lw/boyalw9u0pfrsisgwg5y-ia6nq0.png)
![](https://habrastorage.org/webt/by/oh/dg/byohdguz5t4uz_52eib6dy8wav0.png)
VTBR
![](https://habrastorage.org/webt/ku/wa/e6/kuwae6niug9awq5hdlulcyq_-sw.png)
![](https://habrastorage.org/webt/3-/ix/xl/3-ixxllbaqaufgqco5czvjpzqui.png)
![](https://habrastorage.org/webt/yj/nh/y1/yjnhy1ao6nfhusdghsxcuhwtmb0.png)