【FX, Python】Pythonでチャートに回帰直線を引く(トレンドを把握する)

今回は下図のようにチャートに回帰直線を引いてみます。

回帰直線

回帰とは

回帰とは得られたデータxを \(Y=f(X)\)という関数に当てはめることを言います。
この関数のことをモデルとも言います。

例えば、以下のようなデータ(点)があった場合、

f:id:ttt242242:20190905145606g:plain

以下のように\(Y=f(X)\)に当てはめることです。

f:id:ttt242242:20190905145716g:plain

で、この直線を回帰直線と言います。

今回はチャートに回帰直線を引いてみます。
この回帰によって簡易的にチャートのトレンドを把握するのに役立つかも知れません(主にトレンド把握には移動平均を使いますが)。

実際にはこの回帰直線の傾きを使って、トレンド具合を判断したほうが良いと思いますが、今回は単純に線を引いてみます。

実装

では、実装してみます。

データの取得

まずチャートデータを取得します。
例によってOANDA APIを用います。

OANDA APIを使うためには以下の記事を参考にしてください。

以下のコードでデータを取得できます。

上記のコードを実行すると、下記のようなグラフをプロットします。

回帰直線を引く

では、先程のチャートに回帰直線を引いてみます。

回帰直線はscikit-learnというライブラリを使えば簡単に引くことができます。

scikit-learnをインストールしていない人は下記のコマンドでインストールしてください。

回帰直線を求めるためにlinear_modelモジュールを用います。

では、回帰直線を求めてみましょう。

回帰直線はfitメソッドを使って求めることができます。

回帰直線の傾きはcoef_に、切片はintercept_に格納されています。

では、プロットしてみます。

うまく引けていますね!傾きだけ知りたければ、aを標準出力してみましょう。

タイトルとURLをコピーしました