読者です 読者をやめる 読者になる 読者になる

FXボーグ | テクニカル実験室

テクニカル分析を使った自動売買プログラムの開発に挑戦!

スポンサーリンク

Rでマルコフ転換モデルを触ってみた。

R言語

前回のトレンドフォロー戦略には、まだいくつかの課題が残っています。その中のひとつに「レジーム・スイッチング・モデル」があるのですが・・・

これは「どんなEAでも調子のよい時期やわるい時期があるので、状況に併せて戦略を変えて行きましょう。」というようなものです。

今回は、この中でも有望そうな「マルコフ転換モデル」を試してみました。

f:id:fxborg:20160805034359p:plain

  以下のページを参考にしました。

Rを使ったマルコフ転換モデルのテスト

使用するライブラリを入れます。

> install.packages("tseries", dependencies = TRUE)
> install.packages("MSwM", dependencies = TRUE)
> library(tseries)
> library(MSwM)

時系列データを取得します。(SPY)

> spy <- get.hist.quote(instrument = "SPY", start = "2006-01-01",quote="AdjClose") 
downloaded 192 KB
time series starts 2006-01-03
time series ends 2016-08-03
> length(spy)
[1] 2665

 説明変数(X1,X2・・・Xn)を定義します。

> x1<-ts(sin(seq(from=0,to=0.5*pi,length.out=2665)))
> x2<-ts(sin(seq(from=0,to=pi,length.out=2665)))

#上記ブログの三角関数を使用しました。

ここでマルコフ転換モデルを推定してプロットします。

> model<-lm(spy~x1+x2)
> msmModel<-msmFit(model,k=2,sw=c(T,T,T,F))

> plotProb(msmModel,1)
> plotProb(msmModel,2)

k はレジーム数

p は各レジームでの自己回帰モデルの次数
sw は 説明変数の数に合わせるっぽい。

 レジームをプロット

f:id:fxborg:20160805035144p:plain

モデルをプロット

f:id:fxborg:20160805034359p:plain

最後に

今回「R」を初めて使ってみたのですが、非常にとっつきやすい印象を持ちました。ネットでもこういう方面の情報はたいてい R で書かれているので、アンテナを張る意味でもやった方がいいなと思いました。それから、マルコフ転換モデルはまだまだ分からないことが多いので引き続き調査したいと思います。