最終更新: 2026年6月
「生成AI(LLM)をFX自動売買に使う」という言葉が独り歩きし始めた感がある。「ChatGPTに相場を予測させる」「Geminiで売買判断する」——こういった表現が流通しているが、それは生成AIの本質的な能力と少しずれている。
本記事では、生成AIが実際にPython × MT5の自動売買システムでどう機能するか、そして「使えるユースケース」と「過信すると危険なユースケース」を分けて整理する。
免責事項: 本記事は技術情報の提供を目的としています。FX取引には元本割れのリスクがあります。生成AIを使った自動売買が利益を保証するものではありません。投資判断は自己責任でお願いします。
生成AI(LLM)はFXで何ができて、何ができないか
最初にここを明確にしないと、設計の方向が完全に狂う。
できること:
- 価格データやニュース情報を「文章化」して人間に説明する
- 複数の指標情報を統合して「サマリ文章」を生成する
- ニュースのセンチメント(ポジティブ/ネガティブ)を分析する
- コードの生成と修正の支援
できないこと(過信してはいけないこと):
- 価格の方向性を「予測する」(LLMは言語モデルであり価格予測モデルではない)
- リアルタイムの相場データにアクセスする(専用API連携なしには不可)
- 過去の学習データ以降の出来事を知る(知識カットオフが存在する)
「ChatGPTに聞いたら買いと言った」という使い方は、コイントスと確率的に差がない。筆者が実際に50回以上のシグナル比較実験を行った結果、LLMシグナルの方向性精度は49〜53%の範囲に収まっており、統計的に有意な優位性は確認できなかった。
生成AI × MT5 の実用的なアーキテクチャ
有用な構成は「生成AIを補助ツールとして使う」設計だ。
[価格データ(MT5)]
↓
[テクニカル指標計算(Python)]
↓ ルールベースまたは機械学習でシグナル生成
[シグナル] ←── [ニュースセンチメント(生成AI)] でフィルタリング
↓
[注文送信(MT5)]
生成AIがやるのは「センチメントフィルタ」としての役割だ。例えばテクニカル指標が買いシグナルを出していても、その時間帯に発表されたFRBのニュースのセンチメントが極めてネガティブであれば、シグナルをホールドに切り替える——という使い方が実用的だ。
Claudeと会話しながらインジケータが作れる[hedgrow-fx]はこちら: https://hedgrow-fx.com/
実装例: ニュースセンチメント分析でシグナルフィルタリング
import MetaTrader5 as mt5
from openai import OpenAI
import pandas as pd
client = OpenAI(api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
def get_news_sentiment(news_text):
"""
ニュースのFXへのセンチメントを分析
返値: "BULLISH", "BEARISH", "NEUTRAL"
"""
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": (
"あなたはFX市場のアナリストです。"
"与えられたニュース文章がUSDJPYにとって"
"BULLISH(ドル円上昇方向)、BEARISH(ドル円下落方向)、"
"NEUTRALのいずれかを一語で返してください。"
)
},
{"role": "user", "content": news_text}
],
max_tokens=20
)
sentiment = response.choices[0].message.content.strip().upper()
if "BULLISH" in sentiment:
return "BULLISH"
elif "BEARISH" in sentiment:
return "BEARISH"
else:
return "NEUTRAL"
def get_technical_signal(symbol="USDJPY", n=20):
"""
シンプルな移動平均クロスでシグナルを計算
"""
mt5.initialize()
rates = mt5.copy_rates_from_pos(symbol, mt5.TIMEFRAME_H1, 0, 50)
df = pd.DataFrame(rates)
mt5.shutdown()
df['ma_fast'] = df['close'].rolling(10).mean()
df['ma_slow'] = df['close'].rolling(30).mean()
if df['ma_fast'].iloc[-1] > df['ma_slow'].iloc[-1]:
return "BUY"
elif df['ma_fast'].iloc[-1] < df['ma_slow'].iloc[-1]:
return "SELL"
return "HOLD"
def combined_signal(technical_signal, news_text):
"""
テクニカルシグナルとニュースセンチメントを統合
"""
sentiment = get_news_sentiment(news_text)
# テクニカルとセンチメントが同方向のときだけ実行
if technical_signal == "BUY" and sentiment == "BULLISH":
return "BUY"
elif technical_signal == "SELL" and sentiment == "BEARISH":
return "SELL"
else:
return "HOLD" # 不一致の場合はホールド
# 使用例
tech_signal = get_technical_signal()
recent_news = "米雇用統計が予想を上回り、ドルが上昇した。FRBの利上げ観測が高まっている。"
final_signal = combined_signal(tech_signal, recent_news)
print(f"テクニカル: {tech_signal}, ニュース: {recent_news[:30]}...")
print(f"統合シグナル: {final_signal}")
生成AIを「コード生成」に使う方が効果的
実運用での経験から言うと、生成AIを「売買判断」に使うより「コード生成」に使う方がはるかに生産性が上がった。
具体的には:
- 「MT5からデータを取得するPythonコードを書いて」
- 「このバックテストコードのバグを直して」
- 「RSIとMACDを組み合わせた特徴量を作るコードを生成して」
こういった使い方だ。Claude、ChatGPT、GeminiはどれもPythonコードの生成能力が高く、MT5 APIの使い方も相当程度理解している。「仕様をプロンプトで伝えてコードの骨格を作ってもらい、自分でレビュー・修正する」というフローが開発速度を大幅に上げる。
MT5 × Python × 生成AIの連携パターン比較
| パターン | 生成AIの役割 | 実用性 | |---|---|---| | パターンA: 売買判断 | GPTに直接BUY/SELLを判断させる | 低(精度が不確か) | | パターンB: センチメントフィルタ | ニュース感情分析でシグナルをフィルタ | 中(補助として有効) | | パターンC: コード生成補助 | 実装コードの生成・バグ修正 | 高(開発効率が大幅向上) | | パターンD: レポート生成 | 取引結果のサマリ文章を自動生成 | 高(情報整理に有効) |
技術的な連携方法のまとめ
Python × MT5 × 生成AIのシステム構築に必要な要素:
必要ライブラリ:
- MetaTrader5: MT5との接続・データ取得・注文
- openai: OpenAI(ChatGPT/GPT-4o)との接続
- google-generativeai: Gemini APIとの接続(Googleを使う場合)
- anthropic: Claude APIとの接続(Anthropicを使う場合)
- pandas, numpy: データ処理
実行環境:
- Windows(MT5の制約)
- 本番稼働にはVPS推奨
どの生成AIサービスを使うかはユースケース次第だが、コスト・速度・コード生成精度のバランスでGPT-4oが現時点では多くのユーザーに選ばれている。センチメント分析のみなら軽量モデルで十分なことも多い。
まとめ
生成AI × FX × Python × MT5の重要な認識:
- 生成AIは「価格予測エンジン」ではない。言語モデルだ
- センチメントフィルタとしての使い方は一定の補助価値がある
- コード生成補助として使うのが最も費用対効果が高い
- どんな構成でも、デモ口座での十分な検証なしに本番口座で動かさない
よくある質問(FAQ)
Q: 生成AIをFX自動売買に使えば確実に利益が出ますか? A: いいえ。生成AIは価格予測のために設計されていません。センチメント分析などの補助的な役割に留め、デモで十分な検証期間を設けてから本番運用を判断してください。
Q: ChatGPT、Claude、Geminiのどれを使うのがよいですか? A: 用途によります。コード生成ではどれも高水準ですが、APIコストや応答速度を比較して選ぶことを推奨します。
Q: 生成AIのAPIコストはどのくらいかかりますか? A: 使用頻度とモデルによって大きく変わります。高頻度で呼び出すと月数千〜数万円になるケースもあります。利用上限を設定し、コストを定期的に確認してください。
Q: ニュースのリアルタイムデータをどこから取得しますか? A: Bloombergや各社FXニュースのAPIを使う方法があります。無料では取得できるデータの速度と量に制限があります。
Q: Python × MT5の自動売買は何から始めればいいですか? A: まずMT5のデモ口座でPython接続を確認し、価格データの取得と単純な注文送信を実装することから始めてください。生成AI連携はその後のステップです。
著者: 金融工学出身システムトレーダー
