鉄は熱いうちに打て
=============================
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()
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));
まぁ、めんどくさいですね。
実際は、 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));
FXのデータを使っているだけでもはや何のことやらですが、移動平均線を表示することができました。
前やったはずなのに結構忘れてたし、前回は有識者と一緒にハンズオンしたので、自分で考えていませんでした。 あまり身についてなかったことに気が付きました。 復習するの大切ですね。
この記事は PyLadies Japan Advent Calendar 2020 の16日目の投稿です。