<HELP> for explanation

Блог им. vito2000

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, а не проводить анализ рынка.

 

Вот это я понимаю, по теме! Отлично!
avatar

XAT

На каком таймфрейне посчитана корреляция?
Alex, в данных примерах использован дневной таймфрейм и дневная доходность. А так, можно любую корреляцию посчитать. Хоть на уровне тиков.
avatar

vito2000

vito2000, суперреспект
avatar

Vlаdimi®

Отлично! Побольше бы такого на SL. 
Возможно с помощью R анализировать что-то экселеподобное? CSV например. 
Есть какой-то толковый FAQ по R(не нужно по-русски)? (и да, я знаю про гугол)
Спасибо!
avatar

dip

dip, 
Возможно с помощью R анализировать что-то экселеподобное? CSV например. 
Без проблем. Грузится в R и потом анализируется как угодно. 
Есть какой-то толковый 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/
avatar

vito2000

А как сделать это? как написать код?
avatar

INTELLEKTTRADE

Очень круто, спасибо!
avatar

shprots

Кластеризация по диагонали не очень понятно. :(
avatar

shprots

Супер!
avatar

Nick N

цель одна у всех- заработать денег…
avatar

Pobeditel

Ну да, крутяк. Не то что я, всё «на глаз».)
avatar

waldhaber

Подскажите не слишком искушенному в администрировании R человеку, как действовать, если при попытках установить пакет rusquant появляется следующее:

> install.packages(«rusquant», repos=«R-Forge.R-project.org»)
Installing package into ‘C:/Users/Sergey/Documents/R/win-library/3.2’
(as ‘lib’ is unspecified)
Warning in install.packages :
package ‘rusquant’ is not available (for R version 3.2.3)
> install.packages(«rusquant», repos=«R-Forge.R-project.org», type=«source»)
Installing package into ‘C:/Users/Sergey/Documents/R/win-library/3.2’
(as ‘lib’ is unspecified)
Warning in install.packages :
package ‘rusquant’ is not available (for R version 3.2.3)
>

avatar

Sergey Pavlov

Нужно его скачать и установить из архива
avatar

robokot

robokot, или установить последнюю версию R. Сорри за минус: пальцы — сардельки.
avatar

r0man

r0man, R последняя 3.2.3, разве нет? https://cran.r-project.org/ Мне только локальная установка помогла.
avatar

robokot

robokot, все правильно. Тогда странно, что install.packages ругается, пакет собран также по 3.2.3.
avatar

r0man

Большое спасибо за анализ, очень много полезной информации. 
avatar

saturn-capital.info

Всегда удивляли люди которые делают такое в Excel… Когда существует R. Любит наш народ усложнять себе жизнь. Плюсую, делал такое тоже )
avatar

evgen000

evgen000, 

кластеры можно и в экселе, spss, R — кому что привычнее.
люто плюсую за Р, люблю его
avatar

MTrader

крутая статья, за такое бабки платят дай краба пожму.
avatar

юрий савин

Сейчас все начнут это использовать и финам заблокирует эту возможность.
avatar

SciFi

SciFi, могут и прикрыть, все возможно. Есть запасной вариант - mfd.ru. Например:
getSymbols('Аэрофлот',src='mfd',period='day',from='2016-01-01')
Только в отличие от Финама у них названия тикеров на русском. 
avatar

vito2000

vito2000, мне интересны тесты на автокорреляцию, гомоскедастичность. Такое на R можно делать с помощью этой библиотеки? 
avatar

SciFi

SciFi, да. Для этого есть библиотека MissMech. Описание с примерами тут.
Вообще, на официальном сайте проекта R https://cran.r-project.org/ 8038 библиотек на все случаи жизни: 
avatar

vito2000

vito2000, спасибо

avatar

SciFi

Б.лин… Че, за R садиться???
avatar

facevalue

facevalue, почитал, да похоже придется освоить. 
Опа, это что за зверь такой????? Я в екселе + VBA все делаю (((
Макеев Евгений, 
Через специальную библиотеку все функции R доступны в VBA и наоборот. Т.е. Excel и R как бы дополняют друг друга.
avatar

vito2000

Вот тетя популярно объясняет про R

www.youtube.com/watch?v=4bd34XDdijY

загрузка среды

www.r-project.org/
 Большая статья про К (русский язык)

www.ibm.com/developerworks/ru/library/bd-learnr/
Автор, а можно «Пример 2. Расчет корреляции по 80 тикерам за 2016» — в плакатном размере?

На стенку повешу для медитации)
avatar

Гденьги ☭

Что-то с сервером Финама перестало коннектиться
avatar

shprots


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
Регистрация
UPDONW