Tuesday, September 13, 2011

Геомагнитные бури на фондовом рынке


Сегодняшняя тема немного несерьезная. А может быть наоборот очень серьезная. Так сложилось, что во времена моей прыщавой юности, когда рухнул совок и было не во что больше верить, люди начали слушать всяких Чумаков, Кашпировских и прочих телепузиков. Кажется именно тогда особой популярностью пользовались геомагнитные бури и бабушки у подъезда с радостью списывали очередной приступ остеохондроза на повышенную геомагнитную активность. Наверное, именно такое отношение и привело в последствии к предвзятому взгляду на прогнозы геомагнитной активности (я то её влияние никогда не чувствовал). Тем не менее, явление то существует и объективно регистрируется.

Есть масса исследований, утверждающих, что геомагнитные бури влияют на настроение людей. Люди склонны пессимистичней оценивать происходящее вокруг них во время и после бури, нежели в спокойные дни. Теперь подумаем, если люди глядят на вещи с пессимизом, причем это люди по всей земле. Значит, это должно непременно сказываться на фондовом рынке. Логично предположить, что магнитные бури должны приводить к сокращению вложений в рискованные активы, такие как акции. А раз так, то этим можно было бы воспользоваться для построения собственной торговой стратегии. И вот, в статье "Playing the Field: Geomagnetic Storms and the Stock Market" такое исследование уже проводилось и результаты мне показались достаточно интересными чтобы проверить их на практике.



Итак, сила магнитной бури измеряется двумя величинами Kp и Ap. Какой за ними тайный смысл я не вникал, создалось ощущение, что в любом случае они очень сильно взаимосвязаны. И не важно, какую из них взять за основу. Данные по геомагнитным бурям аж с 1932 года доступны всем желающим на публичном ftp сервере: ftp://ftp.ngdc.noaa.gov/STP/GEOMAGNETIC_DATA/INDICES/KP_AP/ Но мы, не для того столько времени посвятили языку программирования R, чтобы качать вручную и разбирать их экселем. Напишем маленькую программку, которая эти данные соберет и представит нам в удобоваримом формате:

"getGeomagnetic" <-
function(year){
    require(xts)
    url <- paste("ftp://ftp.ngdc.noaa.gov/STP/GEOMAGNETIC_DATA/INDICES/KP_AP/", year, sep='')
    tmp <- tempfile()
    download.file(url, destfile=tmp, quiet=TRUE)
    fr <- readLines(con = tmp, warn=FALSE)
    unlink(tmp)
    date <- as.Date(strptime(substr(fr,1,6), "%y%m%d"))
    apIndex <- as.numeric(substr(fr, 56, 58))
    kpIndex <- as.numeric(substr(fr, 29, 31))
    result <- xts(as.matrix(cbind(apIndex, kpIndex)), date)
    result <- result[complete.cases(result)]
    return(result)
}
Совместим, для начала, графики геомагнитной обстановки и индекса RTS (нам понадобится модуль rusquant о котором я уже писал в одной из прошлых статей):
gm <- c(getGeomagnetic(2010),getGeomagnetic(2011))

library(rusquant)
getSymbols("RTSI", from="2010-01-01", src="Finam")
data <- cbind(RTSI, gm)

chartSeries(data, TA=NULL, name="RTSI")
addTA(data$kpIndex, legend="Геомагнитная обстановка")

Из графиков видно, что два самых больших пика находятся аккурат перед обвалами рынка.
Значит ли это, что обвалы можно спрогнозировать по геомагнитным бурям или нет? Для начала повторим эксперимент, проведенный в статье, в применении к Российскому рынку. А именно, посмотрим на среднее изменение величины индекса РТС в день геомагнитной бури и в течении 6 дней после нее. Будем считать магнитной бурей такие дни, когда значение величины Ap больше 29 (именно такое значение использовалось в оригинальной работе).
library(rusquant)
getSymbols("RTSI", from="2002-01-01", src="Finam")
gm <- getGeomagnetic(2002)
for(i in (2003:2011)){
	gm <- c(gm, getGeomagnetic(i))
}

GMS <- ifelse(gm$apIndex>29, 1, 0)
GMS <- apply(Lag(GMS, k=(0:6))>0, 1, any)
data <- cbind(GMS, ROC(Cl(RTSI)))
names(data) <- c("GMS", "RTSI")
mean(data[data$GMS==1]$RTSI, na.rm=TRUE)
mean(data[data$GMS==0]$RTSI, na.rm=TRUE)
Получается, что в случае спокойной геомагнитной обстановки среднее увеличение индекса РТС составляет 0.092% в день, в случае же магнитной бури 0.01% в день, т.е. в 9 раз меньше!

Попробуем теперь подтвердить или опровергнуть гипотезу о влиянии геомагнитных бурь математически.

Когда-то давно я рассказывал о причинном тесте Грейнджера и показал тогда, как его можно реализовать на Java. В этот раз мы проведем аналогичный тест, но на R и увидим, насколько это проще.

Причинный тест Грейнджера это, по сути, авторегрессия. Т.е. линейная регрессия временного ряда на его собственных значениях в прошлом. С точки зрения математической формулы, это выглядит так:
Yi = μi + ∑αkYi-k + ∑βkXi-k + εi
где, Yi - значение исследуемой переменной Y в момент времени i, в нашем случае, это индекс РТС
Xi - значение переменной X, влияние которой мы хотим проверить, в момент времени i. В нашем случае это сила геомагнитной бури.
k - временная задержка. Она определяет, влияние какой давности мы хотим проверить.

Мы будем проверять влияние "на следующий день" после магнитной бури. Реализация теста Грейнджера доступна в пакете lmtest.

#install.packages("lmtest")
library(lmtest)

GMS <- ifelse(gm$apIndex>29, 1, 0)
data <- cbind(GMS, ROC(Cl(RTSI)))
names(data) <- c("GMS", "RTSI")
grangertest(RTSI~GMS, data=data, order=1)

Получаем
Granger causality test

Model 1: RTSI ~ Lags(RTSI, 1:1) + Lags(GMS, 1:1)
Model 2: RTSI ~ Lags(RTSI, 1:1)
  Res.Df Df      F Pr(>F)
1   2374                 
2   2375 -1 1.3522  0.245
Значение p-value=0.245 не позволяет нам утверждать о наличии зависимости между индексом RTS и геомагнитными бурями. Однако, если немного увеличить порог критерия магнитной бури, то получим:
GMS <- ifelse(gm$apIndex>33, 1, 0)
data <- cbind(GMS, ROC(Cl(RTSI)))
names(data) <- c("GMS", "RTSI")
grangertest(RTSI~GMS, data=data, order=1)
результат:
Granger causality test

Model 1: RTSI ~ Lags(RTSI, 1:1) + Lags(GMS, 1:1)
Model 2: RTSI ~ Lags(RTSI, 1:1)
  Res.Df Df      F  Pr(>F)  
1   2374                    
2   2375 -1 2.9949 0.08366

В данном случае, значение p-value=0.08366 меньше 0.1 и значит, что с вероятностью 90% мы не можем отвергать гипотезу о влиянии геомагнитных бурь на фондовый рынок. Выходит, что все-таки влияет. Но влияют только очень сильные магнитные бури, которых с 2002 года было всего 137. Можно ли это как-то использовать? Мне тоже интересно. Буду ждать ближайшей бури, чтобы проверить.

No comments:

Post a Comment