ホーム » FX自動売買基礎と応用 » 【MT5 API入門⑤】Pythonでローソク足チャートを表示する方法

【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本値のデータにティックボリュームやスプレッドなどの情報が追加された形式となります。

MT5API_5_01

普段よく目にするローソク足チャートは、このような形式のデータから形成されています。
今回は、このデータを使って可視化、つまりチャート表示を行っていきます。

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()

MT5API_5_02


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()

MT5API_5_03

  • ●グラフのサイズ
  • ●データラベルと色
  • ●タイトル
  • ●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) # サイズ
)

MT5API_5_04

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) # サイズ
)

MT5API_5_05

このチャートでは、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()

MT5API_5_06

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

MT5API_5_07

plotlyもローソク足チャート以外に多くの使い方ができる便利なライブラリです。
公式ページでその使用方法がまとめられています。

【MT5 API入門】

本記事の執筆者:藍崎@システムトレーダー

               
本記事の執筆者:藍崎@システムトレーダー 経歴
藍崎@システムトレーダー個人投資家としてEA開発&システムトレード。
トレードに活かすためのデータサイエンス / 統計学 / 数理ファイナンス / 客観的なデータに基づくテクニカル分析 / 機械学習 / MQL5 / Python

EA(自動売買)を学びたい方へオススメコンテンツ

EA運用の注意点

OANDAではEA(自動売買)を稼働するプラットフォームMT4/MT5の基本的な使い方について、画像や動画付きで詳しく解説しています。MT4/MT5のインストールからEAの設定方法までを詳しく解説しているので、初心者の方でもスムーズにEA運用を始めることが可能です。またOANDAの口座をお持ちであれば、独自開発したオリジナルインジケーターを無料で利用することもできます。EA運用をお考えであれば、ぜひ口座開設をご検討ください。


本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。

この記事をシェアする