【初心者向け】Python×MT5でFXローソク足チャートを作成する方法|USDJPYの日足を自動描画

MT5

はじめに

FXトレードで過去データを活用した分析は、勝率を高める上でとても重要です。PythonとMT5を組み合わせて、FXデータを自由に扱えるようになりたい方に最適な内容です。この記事では、MetaTrader5(以下MT5)とPythonを使って、USDJPYの1分足データを取得し、日足ローソク足チャートとして描画する方法を初心者向けにわかりやすく解説します。


準備編|必要なライブラリとMT5のセットアップ

PythonでMT5を扱うための前提

まず、PythonからMT5のデータを扱うにはMetaTrader5ライブラリが必要です。これはMetaQuotes社が公式提供しているライブラリで、MT5がインストールされ、実行中のPC上でのみ使用可能です(別のPCからは接続できません)。

必要なライブラリ

以下のコマンドでライブラリをインストールできます:

pip install MetaTrader5 pandas pytz matplotlib mplfinance

MT5の準備

  • MT5をインストールし、対象の証券会社の口座にログインしておきます。
  • Pythonスクリプトと同じPCにMT5をインストールしてください。

データ取得編|MT5から1分足データを取り込む

以下のコードで、USDJPYの1分足データを2021年1月1日から2025年5月5日まで取得します:

import MetaTrader5 as mt5
import pandas as pd
from datetime import datetime
import pytz

# タイムゾーン設定
utc = pytz.UTC

# MT5起動
mt5.initialize()

# 通貨ペアと時間足設定
symbol = "USDJPY"
timeframe = mt5.TIMEFRAME_M1
from_date = utc.localize(datetime(2021, 1, 1, 0, 0, 0))
to_date   = utc.localize(datetime(2025, 5, 5, 23, 59, 0))

# データ取得
rates = mt5.copy_rates_range(symbol, timeframe, from_date, to_date)

# MT5切断
mt5.shutdown()

データ取得後に得られる情報を理解しておくと、後の処理がスムーズです。 取得されるデータには、以下のカラムが含まれています:

  • time(UNIX時間)
  • open, high, low, close
  • tick_volume(ティック数を基にした出来高の指標)など

データ処理編|日足データへの変換と整形

MT5から得た1分足データは、そのままだと扱いにくい場合があります。ここでは、日足(1日単位)のローソク足に変換する方法を紹介します。

# DataFrameに変換
import matplotlib.pyplot as plt
import mplfinance as mpf

df = pd.DataFrame(rates)
df['time'] = pd.to_datetime(df['time'], unit='s')
df.set_index("time", inplace=True)

# 日足にリサンプリング
df_day = df.resample('1D').agg({
    'open': 'first',
    'high': 'max',
    'low': 'min',
    'close': 'last',
    'tick_volume': 'sum'
})

# 欠損値の除去
df_day.dropna(inplace=True)

# カラム名調整
df_day = df_day.rename(columns={"tick_volume": "volume"})

この処理によって、1日ごとのOHLC(始値・高値・安値・終値)と出来高がまとまった形になります。


描画編|ローソク足チャートを表示しよう

リサンプリングして整形した日足データを使って、mplfinanceライブラリでローソク足チャートを描画します。

mpf.plot(df_day, type='candle', style='charles', volume=True, title="USDJPY Daily Chart")

ローソク足

ポイント:

  • type='candle'でローソク足指定
  • style='charles'で視認性の高いスタイル
  • volume=Trueで出来高も表示

応用編|データの保存と再利用(Pickle)

毎回データを取得するのは時間がかかるので、処理済みのデータは保存しておくと便利です。Pickle形式はPythonでの高速保存形式です。

# 保存(必要なら)
df.to_pickle('USDJPY_1m_20210101_20250505.pkl')

次回からはpd.read_pickle()で即時読み込みできます。


まとめ・結論

この記事では、MetaTrader5とPythonを連携させて、FXの1分足データを日足ローソク足チャートに変換・描画する方法を紹介しました。

今回の学び:

  • FXデータの取得方法(MT5とPython連携)
  • データの加工(Pandasによる整形とリサンプリング)
  • チャート描画(mplfinanceでの可視化)
  • MT5 × Pythonの環境構築方法
  • FXデータの取得・加工・可視化の流れ
  • Pandasでの時間集約とmplfinanceによる描画

この基礎ができると、より高度な分析へと発展できます。

今後の応用例:

  • テクニカル指標(移動平均線、MACD、RSIなど)の追加
  • 自動売買システム(EA)との連携
  • AIや機械学習を活用した価格予測モデルの構築

まずはこのチャート作成を習得し、自動分析の第一歩を踏み出しましょう!

コメント

タイトルとURLをコピーしました