移動平均とは
移動平均とは、FXなどでよく用いられるインジケーターで、SMA(単純移動平均)、EMA(指数移動平均)などがあります。日本ではSMAが用いられることが多いようですが、海外ではEMAが用いられることが多いようです。
移動平均は言葉の通り、過去のローソク足の平均値です。過去何本分の平均をとるかで滑らかさが変わります。本数が多いほど滑らかになり、少ないとチャートの動きに近くなります。
移動平均は、移動平均の本数が多いものを、少ないものがクロスするようなポイントは、クロスが下から上に突き上げれば、上昇転換、逆が下降転換の指標として用いられるなど、いろいろな判断に用いられます。
単純移動平均の計算方法
この記事に記載したローソク足のDataframeを用いた移動平均の計算方法です。
def sma(df_candle, timeperiod=100, column='close'):
se_sma = df_candle.loc[:, column].rolling(timeperiod).mean()
return se_sma
#MT5クラスインスタンス化
mt5 = Mt5Terminal()
#ローソク足を取得
df_candle = mt5.get_candle_from("USDUPY", "M5")
#sma計算した結果を、dataframeのcolumn sma100 として保存
df_candle['sma100'] = sma(df_candle, timeperiod=100)
def sma()にローソク足のDataframeを渡すとreturnで移動平均を返します。
se_sma = df_candle.loc[:, column].rolling(timeperiod).mean()
これは、rolling(timeperiod) .mean() がtimeperiodの間の時間帯平均値を計算してくれます。
timeperiodは平均を算出するローソク足の本数です。この例では、100のsmaの計算をしています。
指数移動平均の計算方法
指数移動平均は単純移動平均より、直近のデータに足して結果に占める比重を大きくしたものです。
def ema(df_price, timeperiod=5, column='close'):
se_ema = df_price.loc[:, column].ewm(span=timeperiod).mean()
return se_ema
単純移動平均ではrollingを用いていましたが、ewm(span=timeperiod)とすることで指数移動平均になります。
コメント