戻る

線形回帰系ののmt4インジケータを作ってみる

線形回帰という数学手法を使ってFXインジケータを作ってみる。


線形回帰というのは、数値グラフを解析する上で最も基本的な手法の一つである。
数学上合理的な近似直線の求め方が線形回帰の理論で定式化されているのだがFXではそれほど使われていない。
FXで通常使われる移動平均を利用したインジケータは役に立たないことが多い。
このページでは線形回帰を使ったインジケータを作るための手法を説明する。

基本用語
インジケータとは、テクニカル分析に使う指標。FXチャート(値動きをグラフ化したもの)に追加表示する折れ線グラフのようなもの。
オシレータとは、値動きとは異なる数値系を持ち、値動きとは別のサブウィンドウに表示されるインジケータ。


1次の線形回帰の公式


時間をx軸、終値をy軸、傾きをa、y軸切片をb、分散をS、標準偏差をσとして、以下で表すことが出来る。

求める直線を y=ax+b
グラフ上の各点を
x1,y1,x2,y2, ... , xi,yi
として
a=Nxiyi-xiyiNxi2-xi2b=xi2yi-xixiyiNxi2-xi2S=yi-axi-b2σ=SN

参考:最小二乗法 -Wikipedia


公式を時系列に展開

上記の公式を使って一般的なMT4チャートで分析するために、時系列で連続したN個の点で考えて変形していく。

a=Nxiyi-xiyiNxi2-xi2mt4xi=0,-1,-2,...,-N+1=Nk=0N-1-kyk-k=0N-1-kk=0N-1ykNk=0N-1k2-k=0N-1k2Nk=0N-1-kyk+NN-12i=0N-1ykNNN-12N-16-NN-122k=0N-1N-12-kykNN-12N-16-NN-124k=0N-1N-12-kyk2NN-12N-1-3NN-121212k=0N-1N-12-kykNN-14N-2-3N+312k=0N-1N-12-kykNN-1N+1b=xi2yi-xixiyiNxi2-xi2同様mt4=K=0N-1-k2k=0N-1yk-k=0N-1-kk=0N-1-kykN2N-1N+112=NN-12N-16k=0N-1yk-NN-12k=0N-1kykN2N-1N+112=2N-16k=0N-1yk-12k=0N-1kykNN+112=6k=0N-12N-13-kykNN+1S=yi-axi-b2=yi2-2axiyi-2byi+a2xi2+2abxi-Nb2=yi2-2axiyi-2byi+NN-12N-16a2+NN-1ab-Nb2σ=SN

bについて、折れ線グラフにすれば「Time Series Forecast」というインジケータになる。
「Time Series Forecast」は平均移動線より使い勝手のよいインジケータである。
終値が「Time Series Forecast」より上か下かでどちらに加速しているか推測するのに使うことが出来る。
一方、(b-終値)を終値で割って%表示すれば「Forecast Oscillator」というオシレータ系インジケータになる。
これはトレンドが大きいと大きく動いた後にトレンドと逆側になって見難くて使えないのだが、どの程度使えないかが分かりにくい。

そこで、近似直線の傾き=トレンドと考えて、トレンドを同時表示するオシレータや線形回帰によるボリンジャーバンドっぽいインジケータを作ることにした。

  1. メインウィンドウに「Time Series Forecast」(b)とそのボリンジャーバンド(b±σ)を表示
  2. 「Forecast Oscillator」((b-終値)/終値×100)と新オシレータ(a/終値)、および「Forecast Oscillator」に対する線形回帰の切片をバランスよくサブウィンドウに同時表示
    (バランスのために新オシレータに掛ける数値は31?くらいのようだが、この数が何を意味するか考えてみるのもいいかもしれない)
  3. オシレータは、時間足や期間が変わっても同じような数値が出るように調整。

    時間足については、1Tleg
    期間については、1lnN-e
    Tlegは5分足なら5、1時間足なら60
    N(>e)は線形回帰を行う期間(足の数)、lnは自然対数、eはネイピア数(自然対数の底)
    を使うと何故かうまく行くようだ


黄緑:Time Series Forecast(短期)
赤紫:線形回帰のボリンジャーバンド(短期)
薄緑:Time Series Forecast(長期)
水色:位置(ほぼForecast Oscillator、終値数列に対する線形回帰直線の切片と終値の相対位置)
 :シグナル(位置に対する線形回帰直線の切片)
 :トレンド(線形回帰直線の傾き)

通常のボリンジャーバンドより役に立ちそうだし、移動平均を使ったオシレータよりは、予測が容易だ。うまく取引すれば儲けることができそうだ。
個人的な感想だと、作成したオシレータとGMMAチャートのイワシ・クジラを併用するとかなり勝てる。
配布の予定は今のところありません、各自プログラミングしてね。


意見のある方、間違いの指摘などはこちら⇒



2019/08/16 かねやん
2019/08/25 Last update