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

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

スポンサーリンク

指数ウェイト回帰(Exponential Weighted Linear Regression)をMQLに移植してみた。

こちらの記事の指数ウェイト回帰をMQLに移植してみました。通常の単回帰とは違って直近のバーの影響度が大きくなります。

f:id:fxborg:20160429223442p:plain

青:価格の階差(close[i] - close[i-1])
緑:alpha=0.9 の切片
赤:appha=0.99 の切片

この指数ウェイト回帰は計算量が小さくなるように工夫されていています。
ただし、計算に行列を使用しているのでMQLではそこまで速くないかも・・・。

MQLで行列演算をどうするのかと調べてみたら「IncMatrix」というライブラリが見つかりました。

配列をそのまま行列として扱うことが出来、気軽に使えそうな感じです。


 例えばnumpyでこう書くところを

numpy.array([[1.,2.],[3.,4.],[5.,6.]]) 

「IncMatrix」ではこんな風に書きます。

double m[]={1,2,   3,4,   5,6,   3,2};

 最後の2つの数字は 行と列を表しています。

最後に

今回はHFTっぽい「オンライン指数ウェイト回帰」を実装してみました。思いがけずMQLで行列演算を行うことになりましたが、やはりこの辺はPythonの方が数倍作りやすいと思いました。それから標準偏差などはもっと簡単にOne-Pass化できるので、普段から使っていこうと思いました。

こちらからどうぞ

Include/online_regression.mqh
Indicators/online_regression.mq5