わたねこコーリング

野良プログラマ発、日々のアウトプット

Pandas 演習としてのテクニカル指標計算 〜 ボリンジャーバンドの巻

シリーズ3回めはボリンジャーバンドを。個人的には最も使用頻度が高い指標かも。

日経平均プロフィルさんから株価データ取得のコードはここでは割愛。シリーズ第1回目を参照ください。

まずバンドの中心ラインとなる単純移動平均を算出し、同日数での株価標準偏差を算出してプラスとマイナスそれぞれの3本バンドを算出、という流れです。

# 計算期間(日数)
BB_DAYS = 25

# 株価移動平均を計算
df['ma'] = df.close.rolling(BB_DAYS).mean()

# 株価標準偏差を計算
df['sigma'] = df.close.rolling(BB_DAYS).std()

# ボリンジャーバンドを計算
for n in range(1, 4):
  df[f"bb_h{n}"] = df.ma + df.sigma * n
  df[f"bb_l{n}"] = df.ma - df.sigma * n

株価(終値)とボリンジャーバンドを重ね書きした可視化(↓)。

f:id:mariyudu:20190414141548p:plain
ボリンジャーバンドの図(全期間)

全期間だとごちゃごちゃして分かりづらいので、2018年ぶんだけ作画してみます(↓)。

f:id:mariyudu:20190414141644p:plain
ボリンジャーバンドの図(2018年)

今回も、コード一式と実行結果は Google Colaboratory で公開しておきます(↓)。

colab.research.google.com