鉄は熱いうちに打て
=============================

FXのデータをテクニカル分析してみる(移動平均線)

2020-12-16

この記事は PyLadies Japan Advent Calendar 2020 の16日目の投稿です。

Advent Calenda駆動でこれまで学んだことを復習しています。

いよいよテクニカル分析してみましょう。

テクニカル分析の本を読むと 移動平均線MACD が「よく知られている、わかりやすい、一般的」な指標と書いてあります。

移動平均線 とは、ある一定期間の終値の平均値を計算し、線で表したグラフです。 過去5日間の平均だと5日線というそうです。その日を含む過去5日間の終値の平均値を出すそうです。

昨日の終値はどうやって出しましょう。pandas.DataFrame.shift()を使うとデータをずらせます。 df["close"].shift(1) で1日前の終値を今日の終値と同じ行に表示できます。

# 毎日の終値の平均値を抜き出す
df_5 = df.resample("D").mean()

# 4日分の終値を同じ行に並べる
df_5["1day ago"] = df_5["close"].shift(1)
df_5["2day ago"] = df_5["close"].shift(2)
df_5["3day ago"] = df_5["close"].shift(3)
df_5["4day ago"] = df_5["close"].shift(4)
df_5.head()
../_images/20201216_1.png

5日分の値を足して5で割れば、5日線用の値が計算できます。計算してグラフを表示しました。

# 5日の平均を求める
df_5["mean5"] = (df_5["close"] + df_5["1day ago"] + df_5["2day ago"] + df_5["3day ago"] + df_5["4day ago"])/5
df_graph_5 = df_5[["close", "mean5"]][2:-1]
df_graph_5.plot(grid=True, figsize=(15, 5));
../_images/20201216_2.png

まぁ、めんどくさいですね。

実際は、 rolling() を使って移動平均線は出すみたいです。25日線とか上の方法で計算してられないですしね。

df_25 = df.resample("D").mean()
df_25["mean25"] = df_25["close"].rolling(25).mean()
df_graph_25 = df_25[["close", "mean25"]][2:-1]
df_graph_25.plot(grid=True, figsize=(15, 5));
../_images/20201216_3.png

FXのデータを使っているだけでもはや何のことやらですが、移動平均線を表示することができました。

前やったはずなのに結構忘れてたし、前回は有識者と一緒にハンズオンしたので、自分で考えていませんでした。 あまり身についてなかったことに気が付きました。 復習するの大切ですね。

この記事は PyLadies Japan Advent Calendar 2020 の16日目の投稿です。