【MT5 API入門⑤】Pythonでローソク足チャートを表示する方法
この記事では、Pythonでローソク足チャートを表示する方法を解説します。
チャートを表示する前にチャートデータを取得しておく必要があるため、ここではMT5 APIでUSDJPYの日足のデータを取得するPythonコードを掲載しておきます。
以前の記事「【MT5 API入門③】PythonでMT5からデータを取得する方法」で、データの取得方法を詳しく説明しています。
※この記事はAPIトレードに関する知識を提供することを目的としています。技術的なお問い合わせは受け付けておりません。技術的な課題はお客様ご自身で解決をお願いいたします。
import pandas as pd
import MetaTrader5 as mt5
from datetime import datetime
# MT5に接続
if not mt5.initialize():
print("MetaTrader5 initialize failed")
quit()
# レート情報を取得
rates = mt5.copy_rates_range("USDJPY", mt5.TIMEFRAME_D1, datetime(2025, 1, 1), datetime(2025, 12, 31))
# MT5との接続を切断
mt5.shutdown()
rates_df = pd.DataFrame(rates, columns=["time", "open", "high", "low", "close", "tick_volume", "spread", "real_volume"])
rates_df['time'] = pd.to_datetime(rates_df['time'], unit='s')
rates_df = rates_df.set_index("time")
このコードで取得したデータは、下記のように日時と4本値のデータにティックボリュームやスプレッドなどの情報が追加された形式となります。

普段よく目にするローソク足チャートは、このような形式のデータから形成されています。
今回は、このデータを使って可視化、つまりチャート表示を行っていきます。
matplotlibを用いた可視化
matplotlibとは
matplotlibはPythonで最も一般的な可視化ライブラリです。
折れ線グラフ、棒グラフ、散布図など金融の分野に限らず、よく分析で用いられるグラフを多く取り扱う汎用的なツールです。
pandasをすでに使用している場合は、pandasとセットでインストールされています。
Pythonを使用できる環境があるPCでは、ほとんどの場合で新たにインストールする必要なく使用できます。
使用例
では、記事の冒頭で取得したデータ(rates_df)を可視化してみましょう。
import matplotlib.pyplot as plt
plt.plot(rates_df.index, rates_df["close"])
plt.show()

plt.plot(rates_df.index, rates_df["close"])
このコードは折れ線グラフを表示するので、実行すると終値を単純に線でつないだラインチャートが出力されます。
(rates_df.index, rates_df["close"])
引数となるこの箇所は、グラフを作成する対象として、横軸と縦軸に該当するデータを指定しています。
ここでは、rates_dfの日次データを横軸に、終値を縦軸にして、グラフを作成しています。
次は、もう少し細かな設定を反映させてみましょう。
import matplotlib.pyplot as plt
plt.figure(figsize=(12, 6)) # グラフのサイズ
plt.plot(rates_df.index, rates_df["close"], label="Close", color="green") # データラベルと色
plt.title("USDJPY Close") # タイトル
plt.xlabel("Date") # x軸ラベル
plt.ylabel("Price") # y軸ラベル
plt.legend() # 凡例としてデータラベルを表示
plt.grid(True) # グリッド線
plt.show()

- ●グラフのサイズ
- ●データラベルと色
- ●タイトル
- ●x軸(横軸)ラベル
- ●y軸(縦軸)ラベル
- ●凡例としてデータラベルを表示
- ●グリッド線
といった設定をコード内に書き加えて、出力しています。
この記事ではmatplotlibの一部の機能を紹介していますが、他にもさまざまな種類のグラフ作成や詳細な設定などを行うことが可能です。
公式ページに詳しい使用方法がまとめられています。
mplfinanceを用いた可視化
mplfinanceとは
mplfinanceはmatplotlibをベースにして開発された金融専用の可視化ライブラリです。
終値だけを反映した折れ線グラフではなく、4本値を反映したローソク足チャートなどを可視化できます。
使用するためには、事前にインストールが必要です。
pip install mplfinance
使用例
import mplfinance as mpf
mpf.plot(
rates_df,
type='candle', # ローソク足
title='USDJPY Daily', # タイトル
figsize=(12, 8) # サイズ
)

matplotlibではx軸とy軸にそれぞれどのデータを割り当てるかを指定していましたが、mplfinanceではデータフレームを直接引数としています。
ここではrates_dfをそのまま渡していることになりますが、mplfinanceは渡されたデータフレームの列名として”open”,”high”,”low”,”close”の4つを自動で検出してローソク足を作成しています。
つまり、”open”,”high”,”low”,”close”という名前の列があるデータを渡すことで、ローソク足を描画できるということになります。
import mplfinance as mpf
rates_df = rates_df.rename(columns={"tick_volume": "volume"})
mpf.plot(
rates_df,
type='candle', # ローソク足
style='yahoo', # Yahoo Finance風の描画スタイル
title='USDJPY Daily', # タイトル
volume=True, # Volumeの表示
figsize=(12, 8) # サイズ
)

このチャートでは、Yahoo Finance風の描画スタイルの採用とVolumeの表示を行っています。
mplfinanceでは、このように描画スタイルの変更が可能です。
また、「”open”,”high”,”low”,”close”,”volume”」という5つの列を含めたデータフレームを引数にして、「volume=True」の設定を行うことで、チャートの下部にVolumeの表示が可能になります。
MT5では、通常「tick_volume」と「real_volume」の2種類がありますが、mplfinanceでは「volume」という名称でしか扱えません。
そのため、volumeとして反映したいデータ(通常ではtick_volume)を「volume」という名称にリネームしてから実行する必要があります。
plotlyを用いた可視化
plotlyとは
plotlyはインタラクティブな可視化が可能なライブラリです。
インタラクティブとは、ユーザーの操作に反応して動くというような意味があります。
例えば、グラフにマウスカーソルを合わせると、その箇所の数値が表示され、さらにドラッグ&ドロップで拡大・縮小も行えるようになります。
使用するためには、事前にインストールが必要です。
pip install plotly
使用例
import plotly.graph_objects as go
# ローソク足チャートの作成
fig = go.Figure(
data=[
go.Candlestick(
x=rates_df.index,
open=rates_df["open"],
high=rates_df["high"],
low=rates_df["low"],
close=rates_df["close"]
)
]
)
fig.update_layout(
title="USDJPY Daily",
width=1000,
height=600
)
fig.show()

plotlyでローソク足チャートを表示するには「go.Candlestick」で日時データと4本値を指定する必要があります。
出力されたローソク足チャートにマウスカーソルを合わせると、その位置の情報が表示され、ドラッグ&ドロップで描画範囲も調整できるなど、インタラクティブな操作が可能になります。

plotlyもローソク足チャート以外に多くの使い方ができる便利なライブラリです。
公式ページでその使用方法がまとめられています。
【MT5 API入門】
- ・【MT5 API入門①】MT5 APIとPythonを接続したシステムトレードの基礎知識
- ・【MT5 API入門②】PythonとMT5を接続する方法
- ・【MT5 API入門③】PythonでMT5からデータを取得する方法
- ・【MT5 API入門④】PythonからMT5の新規注文と決済注文を実行
- ・【MT5 API入門⑤】Pythonでローソク足チャートを表示する方法
本記事の執筆者:藍崎@システムトレーダー
| 本記事の執筆者:藍崎@システムトレーダー | 経歴 |
|---|---|
![]() |
個人投資家としてEA開発&システムトレード。 トレードに活かすためのデータサイエンス / 統計学 / 数理ファイナンス / 客観的なデータに基づくテクニカル分析 / 機械学習 / MQL5 / Python |
EA(自動売買)を学びたい方へオススメコンテンツ

OANDAではEA(自動売買)を稼働するプラットフォームMT4/MT5の基本的な使い方について、画像や動画付きで詳しく解説しています。MT4/MT5のインストールからEAの設定方法までを詳しく解説しているので、初心者の方でもスムーズにEA運用を始めることが可能です。またOANDAの口座をお持ちであれば、独自開発したオリジナルインジケーターを無料で利用することもできます。EA運用をお考えであれば、ぜひ口座開設をご検討ください。
本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。
