PythonでSMA、EMAを算出する関数を作ってみた

テクニカルで何かと必要になるSMA(単純移動平均線)、EMA(指数平滑移動平均線)。

MT4、MT5などでは関数が用意されているのですぐに使えますが、Pythonはそうはいかないです。。

pandasをインポートすれば使えるものもありますが、バージョンに左右されるので、ちょっとって思って1からコーディングしてみた。

 

SMA(単純移動平均)

英語ではSimple Moving Average。頭文字をとってSMAと呼びます。トレンドを見る上で多用されます。

アルゴリズムは簡単で、全てのデータの平均値を計算するだけ。

SMAのPythonコード

 

EMA(指数平滑移動平均)

Exponential Moving Average(指数平滑移動平均)。MACDを算出する際に使ったり結構多用します。

過去よりも現在の方が影響が強いという考えを入れた移動平均値で、現在に近いレートほど重みをつけて計算します。

計算式は

E(t) = E(t-1) + 2/(n+1)(直近の終値 – E(t-1))

こちらのサイトによると

最初の日のEMAはSMAを使うなどルールがあってややこしいです。

これをコードに起こすと

EMAのPythonコード

n-1番目の要素は、SMAを算出する必要があるので、そこが肝かな。

たぶん合ってると思う。

トレード結果について

機械学習使った日々のトレードの結果や、細かい試行錯誤の結果はLINEで公開しています。ぜひお友達になってください。

友だち追加

ブログランキングに参加してます。この記事が少しでもお役に立ちましたら、応援ポチっとお願いします。

にほんブログ村 為替ブログ システムトレード 自作EA派へ
にほんブログ村

プログラム - python
矢野テックの投資ブログ

コメント