最終更新: 2026年6月
「GPT-EAを使いたい」「ChatGPT(OpenAI API)をMT5の自動売買に組み込みたい」という問い合わせが増えている。実際にどういう構成で動くのかを理解しないまま設定を始めると、思わぬところで詰まることが多い。
本記事では、GPT(OpenAI API)をMT5のEAに連携させる仕組みの全体像と、具体的な設定手順を解説する。
免責事項: 本記事は技術情報の提供を目的としています。FX取引には元本割れのリスクがあります。GPT連携自動売買が利益を保証するものではありません。投資判断は自己責任でお願いします。
GPT-EA × MT5の仕組み:3層アーキテクチャ
GPT(生成AI)をMT5のEAに組み込む場合、以下の3層構成が標準的だ。
[MT5のEA(MQL5)]
↓ ファイルまたはソケット経由でシグナル要求
[Pythonスクリプト(中間層)]
↕ HTTP API
[OpenAI API(GPTモデル)]
MT5のMQL5から直接OpenAI APIを叩くことは仕様上困難なため、Pythonが中間層として機能するのが一般的な実装パターンだ。MT5側のEAがバッチファイルやソケット通信でPythonスクリプトを呼び出し、PythonがOpenAI APIにリクエストを送り、返ってきた回答をMT5側に戻すという流れになる。
Claudeと会話しながらインジケータが作れる[hedgrow-fx]はこちら: https://hedgrow-fx.com/
必要な準備
1. OpenAI APIキーの取得
- https://platform.openai.com/ にアクセス(ChatGPTアカウントと共通)
- 右上のメニューから「API Keys」を選択
- 「Create new secret key」でAPIキーを発行
- Billing設定でクレジットカードを登録し、利用残高を入金する
注意: GPT-EAが稼働するたびにOpenAI APIへのリクエストが発生し、その分の料金が課金される。GPT-4oの場合、入力トークン1,000件あたり約$0.005(2026年6月時点の参考値。変更される場合があります)。トレード頻度によっては月の利用料が積み上がるため、使用量の上限設定を必ず行うこと。
2. Pythonライブラリのインストール
pip install openai MetaTrader5 pandas
Step 1: PythonとOpenAI APIの接続確認
まずPythonからOpenAI APIへの接続テストを行う。
from openai import OpenAI
client = OpenAI(api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": "あなたはFXトレーダーのアシスタントです。"
},
{
"role": "user",
"content": "現在のUSDJPYの価格が155.20円です。直近20期間の移動平均が154.80円。買いサインか売りサインかを一言で答えてください。"
}
],
max_tokens=50
)
print(response.choices[0].message.content)
これがエラーなく動けば、Python ↔ OpenAI APIの接続は完了だ。
Step 2: MT5から価格データを取得してGPTに渡す
実際の連携では、MT5から最新の価格データを取得し、それをGPTへのプロンプトに組み込む。
import MetaTrader5 as mt5
import pandas as pd
from openai import OpenAI
from datetime import datetime
def get_market_context(symbol="USDJPY", n_bars=20):
"""MT5から直近の価格データを取得してGPT用の文章に変換"""
mt5.initialize()
rates = mt5.copy_rates_from_pos(symbol, mt5.TIMEFRAME_H1, 0, n_bars)
df = pd.DataFrame(rates)
latest_close = df['close'].iloc[-1]
ma20 = df['close'].mean()
price_change = df['close'].pct_change().iloc[-1] * 100
mt5.shutdown()
return f"""
通貨ペア: {symbol}
現在価格: {latest_close:.3f}
直近20本移動平均: {ma20:.3f}
直近変化率: {price_change:.2f}%
"""
def get_gpt_signal(market_context):
"""GPTにシグナル判断を依頼"""
client = OpenAI(api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": "あなたはFXシステムトレードのアシスタントです。与えられた市場データに基づいて、BUY・SELL・HOLDのいずれかを一語で返してください。"
},
{
"role": "user",
"content": market_context
}
],
max_tokens=10
)
return response.choices[0].message.content.strip()
# 実行
context = get_market_context()
signal = get_gpt_signal(context)
print(f"GPTシグナル: {signal}")
Step 3: MT5の注文送信と統合
GPTからのシグナルをMT5の注文に変換する。
def execute_signal(symbol, signal, lot_size=0.01):
mt5.initialize()
if signal == "BUY":
order_type = mt5.ORDER_TYPE_BUY
price = mt5.symbol_info_tick(symbol).ask
elif signal == "SELL":
order_type = mt5.ORDER_TYPE_SELL
price = mt5.symbol_info_tick(symbol).bid
else:
print("HOLD: 注文なし")
mt5.shutdown()
return
request = {
"action": mt5.TRADE_ACTION_DEAL,
"symbol": symbol,
"volume": lot_size,
"type": order_type,
"price": price,
"deviation": 10,
"magic": 99999,
"comment": "GPT_signal",
}
result = mt5.order_send(request)
print(f"注文結果: {result.retcode}")
mt5.shutdown()
GPT連携の限界と注意点
実装して動かしてみて感じた問題点を正直に記録しておく。
限界1: GPTは価格の方向性を「知らない」 GPTは言語モデルであり、価格予測のために訓練されていない。プロンプトに価格データを渡しても、その回答は統計的な学習ではなく「それらしい言葉を生成する」に過ぎない。筆者の検証では、GPTシグナルの方向性精度はランダムとほぼ変わらない水準だった。
限界2: APIコストが継続的に発生する EA稼働中は毎回GPT APIを呼び出すため、トレード頻度が高いとコストが積み上がる。月数千円〜数万円になるケースもある。
限界3: レスポンス遅延 GPT APIの応答時間は通常1〜3秒程度。スキャルピングのような短期トレードでは遅延が致命的になる。スイングトレードや日足以上の時間軸での使用が現実的だ。
有用なユースケース:
- テクニカル指標のシグナルを「人間に分かりやすい言葉」で説明させる
- 複数の指標情報を統合したサマリの生成
- リスク警告の文章生成
純粋な「売買判断」をGPTに委ねるのは慎重であるべきで、補助的・説明的な役割として使う方が現実的だ。
MT5側のEAでPythonを呼び出す設定
MQL5のEAからPythonスクリプトを実行するには、ShellExecuteW() または WinExec() 関数を使う方法とソケット通信を使う方法がある。
最もシンプルなのはバッチファイル経由だ:
// MQL5コード内でPythonスクリプトを起動
string bat_path = "C:\\trading\\run_gpt.bat";
ShellExecuteW(NULL, "open", bat_path, NULL, NULL, SW_HIDE);
run_gpt.bat の内容:
@echo off
python C:\trading\gpt_signal.py
信号の受け渡しはファイルやレジストリ、またはTCPソケットを使う。シンプルさを優先するならテキストファイル経由が実装しやすい。
まとめ
GPT-EA × MT5 × Python連携のポイント:
- GPTは直接MT5から呼び出せないため、Python中間層が必要
- OpenAI APIキーの取得と課金設定が前提
- GPTの売買判断は補助的に使うべきで、予測精度は過信しない
- APIコストとレスポンス遅延を考慮した時間軸で使う
よくある質問(FAQ)
Q: GPTを使ったEAは必ず利益が出ますか? A: いいえ。GPTは価格予測のために設計された言語モデルではありません。シグナルの精度はデモ口座で十分に検証してから本番利用を判断してください。
Q: OpenAI APIの料金はどのくらいかかりますか? A: 使用モデルとトークン数によって変動します。GPT-4oの場合、1回のリクエストは数円〜数十円程度ですが、EAが頻繁に呼び出すと月数千円以上になります。利用上限を必ず設定してください。
Q: GPT-4とGPT-4oのどちらを使うべきですか? A: FXシグナル補助用途ではコスト効率の良いGPT-4oを推奨します。処理速度も速く、レスポンス遅延が小さい点でEA連携に向いています。
Q: MT5のMQL5から直接OpenAI APIを叩けますか? A: 技術的には不可能ではありませんが、MQL5のHTTPリクエスト機能の制限とデバッグの困難さから、Python中間層を使う構成が現実的です。
Q: デモ口座でGPT-EAをテストできますか? A: できます。MT5のデモ口座でもPython連携・OpenAI API呼び出しは動作します。本番前に必ずデモで十分な期間テストしてください。
著者: 金融工学出身システムトレーダー
