Вчера на СмартЛабе был размещен пост Как построить корреляционную матрицу (для парной торговли) в Excel, собравший аж 150 "+".
Решил тоже попрактиковаться и написать под эту задачу код в R. Важным преимуществом R является наличие пакета rusquant, который позволяет автоматически получать котировки с Финам в любом таймфрейме (в т.ч. в тиках), что существенно экономит время по сравнению с ручной обработкой в Excel.
Код на R приведен ниже:
- Файл c кодом можно скачать тут.
- Файл с названиями тикеров: для примера 1 тут, для примера 2 тут. Эти файлы используется для ввода тикеров в программу, т.к. прописывать тикеры вручную непосредственно в коде при их большом количестве не удобно.
- Время загрузки данных с Финам по 79 тикерам составило 84 секунды, т.е. примерно по 1 сек. на тикер. А сколько бы ушло на ручную загрузку для Excel сложно представать.
Результаты:
Пример 1. Расчет корреляции по 13 тикерам за: 2013, 2014, 2015, 2016 годы
Выводы из таблиц:
- К 2016 году ММВБ на 52% превратился в производное от нефти (т.е. не сильная, но корреляция есть). В 2013, 2014 зависимость была нулевой.
- USDRUB зависит от нефти на 80%. В 2013 было 16% -т.е. почти не было корреляции. Как будто сейчас другой экономики кроме нефти нет.
- Сбер больше, чем другие фишки контр коррелирует с USDRUB.
- В целом, голубые фишки хотят вместе (сорри, за банальность).
- РТС — производное от USDRUB на 89%. Смысла торговать фРТС нет.
- Торговать Газпром, Лукойл, Роснефть - почти тоже самое, что индекс ММВБ.
- ВТБ в 2014-2015 мало коррелировал с ММВБ, в 2016 корреляция увеличилась.
- ED и Золото ходят сами по себе, ни от кого не завися. Хотя слабая корреляция (30%) между ними есть. Очевидно, если доллар падает, то Евро и Золото по отношению к нему растут.
- Есть акции, например, Транснефть, которые ходят в контртренде к ММВБ. Когда всем плохо — им хорошо и наоборот.
Пример 2. Расчет корреляции по 80 тикерам за 2016 (янв-фев)
R позволяет сделать такую вот красоту. В таблице 79 тикеров.
К сожалению, добиться лучшего качества картинки не получилось. Так, что эта картинка просто для демонстрации возможностей R.
Выводы из таблицы:
- На глаз 70% рынка ходят синхронно — большая синяя область в центре.
- Тор10 акций имеют наибольшую корреляцию друг с друг с другом.
- R позволяет разбить акции на кластеры по корреляции — квадраты по диагонали. На основе акций из разных кластеров можно сформировать низкокоррелированный портфель (если кому нужно), который не будет быстро падать вместе с ММВБ, но и не будет быстро расти как ММВБ.
- Есть акции (СеверСталь, Транснефть, Полиметалл, Селидар) — бенефициары роста доллара. Входят в один кластер с долларом. Включение их в портфель — защита от девальвации.
На этом конец, т.к. у меня цель показать возможности R, а не проводить анализ рынка.
Возможно с помощью R анализировать что-то экселеподобное? CSV например.
Есть какой-то толковый FAQ по R(не нужно по-русски)? (и да, я знаю про гугол)
Спасибо!
https://mran.revolutionanalytics.com/documents/getting-started/#begin
http://www.cookbook-r.com/
http://profitraders.com/Rlang/R.html
http://tryr.codeschool.com/
кластеры можно и в экселе, spss, R — кому что привычнее.
Вообще, на официальном сайте проекта R https://cran.r-project.org/ 8038 библиотек на все случаи жизни:
Через специальную библиотеку все функции R доступны в VBA и наоборот. Т.е. Excel и R как бы дополняют друг друга.
www.youtube.com/watch?v=4bd34XDdijY
загрузка среды
www.r-project.org/
www.ibm.com/developerworks/ru/library/bd-learnr/
На стенку повешу для медитации)