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

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

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

スポンサーリンク

前回の続き。今度はT検定のP値で最適化

前回の記事のつづきで今度はT検定のP値を使って最適化を行なってみました。前回の平均絶対誤差で比較した場合は短い期間が選択されやすいという問題がありましたが、T検定ではうまく判定できているようです。

f:id:fxborg:20161208072825p:plain
トレンドラインの幅は Sqrt(残差平方和/個数)の2倍にしています。

T検定のP値 

T検定のP値はExcelで回帰分析を行った時の下の方に出力される数値です。

f:id:fxborg:20161208080139p:plain

となりにあるt値は(傾きの係数 / 標準誤差)で求まりますが、この場合では「 -0.1265 / 0.005354218998041」で -23.632となります。

Excelの場合は、ここで「T.DIST.2T(ABS(T値),自由度)」とすればP値の計算はおわるのですが、MQLにはこのような便利な関数が用意されていないので、あちこち探し回った結果こちらの記事でなんとかなりました。

このライブラリを使用してP値を計算する場合はこのようにします。

CStudenttdist N;
N.nu=自由度; N.mu=0.0; N.sig=1;
(2.0*(1.0-N.cdf(fabs(T値) ))

※これはT.DIST.2T(ABS(T値),自由度)と同じ意味です。

 こうして求めたP値を使って最適な期間のトレンドラインを表示してみました。

 さて結果はどうなったでしょうか。

※動画を再生するには、videoタグをサポートしたブラウザが必要です。

最後に 

今回はT検定のP値を使用してトレンドの期間最適化を行なってみました。MQLには統計関数が用意されていないのでしんどいですね。こちらのサイトがとても参考になりました。今後はラインブレイクの判定などを行なっていきたいと思います。

こちらからどうぞ
Indicators/SnR_TL_v1_1.mq5