Pythonを使って日本株(今回は日本たばこ産業: 2914)のOHLCVチャートを取得し、移動平均線を追加したグラフを表示しつつ、画像として保存する方法をご紹介します。yfinance
とmplfinance
ライブラリを活用して、簡単に株価データを取得・可視化できます。
必要なライブラリのインストール
まずは、必要なライブラリをインストールします。ターミナルやコマンドプロンプトで以下のコマンドを実行してください。
pip install yfinance mplfinance matplotlib
yfinance
はYahoo Financeから株価データを取得するためのライブラリで、mplfinance
はOHLCVチャートを作成するためのライブラリです。
Pythonコード
以下が、日本たばこ産業(ティッカー: 2914.T)の株価データを取得し、移動平均線を追加したOHLCVチャートを生成・保存するコードです。
import yfinance as yf
import mplfinance as mpf
import matplotlib.pyplot as plt
# 日本株のティッカーを設定 (2914.T: 日本たばこ産業)
ticker_symbol = "2914.T"
start_date = "2023-01-01"
end_date = "2023-12-31"
# データの取得
data = yf.download(ticker_symbol, start=start_date, end=end_date)
# 移動平均線を追加 (例: 20日と50日の移動平均)
data['MA20'] = data['Close'].rolling(window=20).mean()
data['MA50'] = data['Close'].rolling(window=50).mean()
# カスタムスタイルを設定 (背景白、グリッド破線)
mc = mpf.make_marketcolors(up='green', down='red', edge='i', wick='i', volume='in', inherit=True)
s = mpf.make_mpf_style(marketcolors=mc, gridstyle="--", facecolor="white")
# 移動平均線のプロットを設定 (alphaで透明度を調整)
apds = [mpf.make_addplot(data['MA20'], color='blue', width=1.5, alpha=0.5), # 薄くする
mpf.make_addplot(data['MA50'], color='orange', width=1.5, alpha=0.5)] # 薄くする
# ファイル名にティッカー名と日付を入れる
filename = f"{ticker_symbol}_{start_date}_to_{end_date}_ohlcv_chart.png"
# OHLCVのチャートを作成 (移動平均線を追加)
mpf.plot(data, type='candle', volume=True, style=s, title=f'{ticker_symbol} OHLCV Chart',
ylabel='Price', ylabel_lower='Volume', addplot=apds,
savefig=filename) # 画像として保存
# チャートを表示
plt.show()
# 画像の保存完了のメッセージを表示
print(f"Chart saved as '{filename}'")
実行することで以下の画像が生成されます。
コードの説明
- ライブラリのインポート
必要なライブラリをインポートしています。yfinance
でデータを取得し、mplfinance
とmatplotlib
でチャートを描画・表示します。 - 株価データの取得
yf.download()
を使用して、日本たばこ産業(2914.T)の株価データを2023年の期間で取得しています。 - 移動平均線の計算
株価データに基づき、20日と50日の移動平均線を計算しています。data[‘MA20’] = data[‘Close’].rolling(window=20).mean()・data[‘MA50’] = data[‘Close’].rolling(window=50).mean() - チャートのスタイル設定
ローソク足チャートの上昇・下落を示す色や、背景を白にするためにカスタムスタイルを設定しています。 - 移動平均線を追加
make_addplot()
を使って、移動平均線を追加しています。alpha=0.5
で線を薄くしています。 - ファイル名にティッカーと日付を入れる
チャートを保存する際、ファイル名にティッカーと日付を動的に入れています。filename = f"{ticker_symbol}_{start_date}_to_{end_date}_ohlcv_chart.png"
- チャートの表示&保存
チャートを表示し、画像として保存します。
結果
このコードを実行すると、2023年の日本たばこ産業(2914.T)のOHLCVチャートが表示され、同時に 2914.T_2023-01-01_to_2023-12-31_ohlcv_chart.png
というファイル名で画像が保存されます
コメント