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

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

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

スポンサーリンク

今更ですがカルマン・フィルターなどを勉強中。

ひさびさのブログ更新となりました。
ここのところ、以前から「やんなきゃなー」と感じていたことの2、3個を着手しているのですが、どれもやりかけの状態なのでブログの方も後回しになっておりました。

その中に「相場環境の認識用に何かつくる」というのがあって、いろいろ決めかねていたのですが、「モデルを観測しながら推定するならカルマン・フィルターで出来るよ」とどこかにあったので、これを今勉強しているところです。

もちろん「ディープ・ラーニング」などの方が時流にはあっているし、関心も持ってはいるのですが、とりあえず自分のモノに出来そうなこちらを選ぶことにしました。

 相場環境の認識

これまで様々なEA等を見てきましたが、システムに相場環境を把握するしくみを組み入れないと人間が納得できるようなトレードは出来ないんじゃないかと感じています。

相場環境には「トレンド、レンジ、ボラティリティ」等のいろいろな要素がありますが、これらを扱うモデルとしてAR、ARMA、ARIMA等の統計モデルがあります。相場環境はどんどん変化するので、それらを動的に適応させられないか考えていたら、そういうものはカルマン・フィルターがやってくれるのだそうです。

勉強したことのメモ

カルマン・フィルターの雰囲気を掴むのに次のサイトが役立ちました。

  1. モノを作りたくなるブログ: カルマンフィルタの勉強
  2. KalmanFilter の動きを可視化する 一次元版
  3. [mixi]カルマンフィルタ - Rで経済時系列

カルマンフィルタには2つの方程式があって、これが基本になるとのこと。

f:id:fxborg:20170414002650p:plain

上が状態方程式、下が観測方程式と呼ぶそうです。

こんな風にBtutがGwtとなっている方程式もあり様々です・・・。

f:id:fxborg:20170414014112p:plain
(http://www.kumst.kyoto-u.ac.jp/kougi/time_series/ex1218.html より)

状態方程式でF、Gは何だろうと考えていたらMIXIのコミュニティでこんな説明を見つけました。

まず上の式ですがxtが状態。xt+1は、一期先の状態。つまりこの式は
一期先の状態は、今の状態をF倍したものにG倍したWt(これがノイズ)
を加えたものだよ。と言っているわけです。

ここでFとかGとかは、何なのかと言えば、早い話が自分の推定したい
状態に、ツジツマが合うような物を作って勝手に入れておけ、という意味。

つまり、どういう状態を知りたいのか?という話が先にあってそれに
合わせて決めてくださいってこと。

例えばFの行列にはARIMAモデルのパラメータをセットしたりできるようです。

附録 4 状態空間モデル - Leihcrev's memo

最後に

今回はカルマンフィルターを取り上げました。今まで「カーナビに使われる」程度にしか理解してなくて、「観測データからモデルの内部の状態を推定する」みたいな視点が欠けていました。

mqlのインジにもありますが、あちらも位置と速度しか使ってないようですね。(これだとあまり意味は無いような・・・)

ライブラリーは結構あるので簡単なサンプルから試してみようと思います。