【Pythonテクニカル分析】ローソク足と移動平均線の描画
Pythonで移動平均とローソクチャートを同時に描画するコードについて記載していきます。
ライブラリ
データの取得と移動平均の計算にはpandas_datareaderを使用します。また、チャートの描画にはmplfinanceを使用します。
描画はmatplotlibを使用しても良いのですが、ローソク足と合わせて描画したかったため、mplfinanceで、addplotを使用して実現しました。
コード
日経平均を取得して移動平均を計算し描画するコードになります。T1, T2, T3で移動平均の期間を定義し、rolling.mean()を使用して移動平均を計算しています。
# ライブラリの読み込み
import pandas_datareader as pdr
from datetime import datetime, timedelta
import mplfinance as mpf
# データ取得期間設定
current_date = datetime.now()
two_years_ago = current_date - timedelta(days=365) # 1年前を設定
formatted_date = two_years_ago.strftime("%Y-%m-%d")
df = pdr.DataReader('^NKX', 'stooq',start=formatted_date) # データの取得
df.sort_values('Date', inplace=True) # 日付順にソート
# 期間指定
T1 = 5
T2 = 25
T3 = 75
# 移動平均計算
df['short'] = df['Close'].rolling(T1).mean()
df['middle'] = df['Close'].rolling(T2).mean()
df['long'] = df['Close'].rolling(T3).mean()
# mplfinanceでグラフ化
adds = [
mpf.make_addplot(df['short'], label='Short '+str(T1), color='g', width=1, alpha=0.5),
mpf.make_addplot(df['middle'], label='Middle '+str(T2), width=0.5),
mpf.make_addplot(df['long'], label='Long '+str(T3), width=0.5),
]
mpf.plot(df[df.columns], type='candle', volume=True, style='yahoo', figsize=(11,8), addplot=adds)
mpf.show()
描画した結果はこちらです。