vito2000
vito2000 личный блог
04 марта 2016, 03:23

R. Считаем корреляцию.

Вчера на СмартЛабе  был размещен пост Как построить корреляционную матрицу (для парной торговли) в Excel, собравший аж 150 "+".
Решил тоже попрактиковаться и написать под эту задачу код в R. Важным преимуществом R является наличие пакета rusquant, который позволяет автоматически получать котировки с Финам в любом таймфрейме (в т.ч. в тиках), что существенно экономит время по сравнению с ручной обработкой в Excel.

Код на R приведен ниже:

R. Считаем корреляцию.

  • Файл c кодом можно скачать тут.
  • Файл с названиями тикеров: для примера 1 тут, для примера 2 тутЭти файлы используется для ввода тикеров в программу, т.к. прописывать тикеры вручную непосредственно в коде при их большом количестве не удобно. 
  • Время загрузки данных с Финам по 79 тикерам составило 84 секунды, т.е. примерно по 1 сек. на тикер. А сколько бы ушло на ручную загрузку для Excel сложно представать.

 

Результаты:

Пример 1. Расчет корреляции по 13 тикерам за: 2013, 2014, 2015, 2016 годы
R. Считаем корреляцию.  R. Считаем корреляцию.

 R. Считаем корреляцию.R. Считаем корреляцию.

Выводы из таблиц:

  • К 2016 году ММВБ на 52% превратился в производное от нефти (т.е. не сильная, но корреляция есть). В 2013, 2014 зависимость была нулевой.
  • USDRUB зависит от нефти на 80%. В 2013 было 16% -т.е. почти не было корреляции. Как будто сейчас другой экономики кроме нефти нет.
  • Сбер больше, чем другие фишки контр коррелирует с USDRUB. 
  • В целом, голубые фишки хотят вместе (сорри, за банальность).
  • РТС — производное от USDRUB на 89%. Смысла торговать фРТС нет.
  • Торговать Газпром, Лукойл, Роснефть - почти тоже самое, что индекс ММВБ.
  • ВТБ в 2014-2015 мало коррелировал с ММВБ, в 2016 корреляция увеличилась.
  • ED и Золото ходят сами по себе, ни от кого не завися. Хотя слабая корреляция (30%) между ними есть. Очевидно, если доллар падает, то Евро и Золото по отношению к нему растут.
  • Есть акции, например, Транснефть, которые ходят в контртренде к ММВБ. Когда всем плохо — им хорошо и наоборот.


Пример 2. Расчет корреляции по 80 тикерам за 2016 (янв-фев)

R позволяет сделать такую вот красоту. В таблице 79 тикеров. 
К сожалению, добиться лучшего качества картинки не получилось. Так, что эта картинка просто для демонстрации возможностей R. 
R. Считаем корреляцию.
Выводы из таблицы:

  • На глаз 70% рынка ходят синхронно — большая синяя область в центре.
  • Тор10 акций имеют наибольшую корреляцию друг с друг с другом. 
  • R позволяет разбить акции на кластеры по корреляции — квадраты по диагонали. На основе акций из разных кластеров можно сформировать     низкокоррелированный портфель (если кому нужно), который не будет быстро падать вместе с ММВБ, но и не будет быстро расти как ММВБ. 
  • Есть акции (СеверСталь, Транснефть, Полиметалл, Селидар) — бенефициары роста доллара. Входят в один кластер с долларом. Включение их в портфель — защита от девальвации. 


На этом конец, т.к. у меня цель показать возможности R, а не проводить анализ рынка.

38 Комментариев
  • XAT
    04 марта 2016, 03:48
    Вот это я понимаю, по теме! Отлично!
  • Алекс Ма
    04 марта 2016, 04:12
    На каком таймфрейне посчитана корреляция?
  • dip
    04 марта 2016, 04:15
    Отлично! Побольше бы такого на SL. 
    Возможно с помощью R анализировать что-то экселеподобное? CSV например. 
    Есть какой-то толковый FAQ по R(не нужно по-русски)? (и да, я знаю про гугол)
    Спасибо!
  • INTELLEKTTRADE
    04 марта 2016, 05:12
    А как сделать это? как написать код?

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн