Web Lukes
📄

😤「MQLは書けるのにcTraderで自動売買できない!」そんなあなたへ贈る cTrader Open API × Python 入門ガイド

公開日: 2026/1/7

😤「MQLは書けるのにcTraderで自動売買できない!」そんなあなたへ贈る cTrader Open API × Python 入門ガイド

こんな悩み、ありませんか?

「MT4/MT5のEAならバリバリ書けるのに、cTraderに移行したら全然わからん...」

「cAlgoってC#なの?Pythonじゃダメなの?」

「Open APIって何?cBotと何が違うの?」

私も最初は同じでした。MQLで何本もEAを書いてきたのに、cTraderの世界に足を踏み入れた瞬間、まるで異世界転生したかのような絶望感を味わいました 😭

でも大丈夫!この記事を読めば、あなたもcTrader Open APIとPythonで自動売買の第一歩を踏み出せます。


そもそもcTrader Open APIって何?

MQLerにわかりやすく説明すると...

MT4/MT5の世界で例えると:

MT4/MT5cTrader
EA(Expert Advisor)cBot
MQL4/MQL5C#(cAlgo) or Python
MetaTrader内で動くcTrader内で動く or 外部で動く

ここで重要なのが「外部で動く」という選択肢!

cTraderには2つのAPIがあります:

1️⃣ cTrader Automate API(cAlgo)

  • cTrader内部で動く
  • C#またはPython(5.4以降)で記述
  • cBotやインジケーターを作成
  • MQLのEAに近いイメージ

2️⃣ cTrader Open API 👈 今回の主役!

  • cTrader外部で動く
  • Python、C#、Java、Go など何でもOK
  • 自分のサーバーやPCから直接ブローカーに注文
  • VPSで独自アプリを動かすイメージ

なぜOpen APIを選ぶのか?MQL経験者のメリット

🎯 Pythonが使える!

MQLを書いてきたあなたなら、きっとPythonも触ったことがあるはず。

Python
# Pythonなら機械学習も簡単!
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
# 過去データでモデル学習
model = RandomForestClassifier()
model.fit(X_train, y_train)
# 予測に基づいて売買
if model.predict(current_data) == 1:
# Open APIで買い注文!
pass

MQLで機械学習を組み込もうとした時の苦労、覚えていますか?DLL地獄、文字コード問題...あれが全部解消されます!

🎯 cTraderを起動しなくていい!

Open APIなら、あなたのPythonスクリプトが直接ブローカーのサーバーと通信します。

つまり:

  • cTraderアプリ不要
  • VPSにPythonだけ入れればOK
  • 24時間365日稼働も楽々

🎯 複数口座の一括管理

Python
# 複数口座に同時発注
for account in my_accounts:
send_order(account, "EURUSD", "BUY", 0.01)

1つのスクリプトで複数口座を管理。EAのマジックナンバー管理から解放されます!


環境構築:5分でセットアップ完了

Step 1: Pythonのインストール

Python 3.8以上が必要です。(3.12まで対応)

Bash
# Pythonバージョン確認
python --version

Step 2: 公式SDKのインストール

Bash
pip install ctrader-open-api

これだけ!Spotware公式のPython SDKがインストールされます。

📌 ポイント: このSDKはTwistedという非同期ライブラリを使っています。「非同期?難しそう...」と思うかもしれませんが、サンプルコードをコピペすれば動くので安心してください!


アプリケーション登録:これが最初の関門

なぜ登録が必要?

Open APIを使うには、Spotwareに「私はこういうアプリを作ります」と申請が必要です。

これはMQLにはなかった概念ですよね。でも考えてみてください:

  • MQL → MetaTraderが仲介役
  • Open API → あなたのアプリが直接ブローカーと通信

だから「このアプリは信頼できます」という証明が必要なんです。

登録手順

  1. cTrader IDを作成

  2. Open API Applicationsページへ

    • ログイン後、設定 → Open API Applications
  3. Add New Application をクリック

    • アプリ名:好きな名前でOK(例:MyPythonBot)
    • Redirect URI:とりあえず https://example.com/callback
    • Scope:trading(取引に必要)
  4. 申請後、24〜48時間待つ

    • Spotwareが審査してアクティベート
    • ステータスが「Active」になればOK!

Client IDとSecretを確認

アプリがActiveになったら:

  1. Applications一覧で「View」をクリック
  2. Client IDとClient Secretをメモ
Python
# この情報を使って認証します
CLIENT_ID = "12345"
CLIENT_SECRET = "abcdefghijklmnop"

⚠️ 絶対に公開しないで! これが漏れると、あなたのアカウントで勝手に取引されてしまいます。


認証の仕組み:OAuth2を理解しよう

MQLにはなかった概念「認証」

MQLのEAは、MetaTraderにログインしていれば動きましたよね。

Open APIでは、あなたのアプリが「このユーザーの代わりに取引していいですよ」という許可を得る必要があります。

これがOAuth2認証です。

認証フローを簡単に説明

Code
┌─────────────┐ ①認証URL表示 ┌─────────────┐
│ あなたの │ ──────────────────> │ cTrader │
│ アプリ │ │ 認証ページ │
└─────────────┘ └─────────────┘
│
│ ②ユーザーが許可
▼
┌─────────────┐ ③コード取得 ┌─────────────┐
│ あなたの │ <────────────────── │ リダイレクト │
│ アプリ │ │ ページ │
└─────────────┘ └─────────────┘
│
│ ④コードをトークンに交換
▼
┌─────────────┐
│ アクセストークン │
│ 取得完了! │
└─────────────┘

Playgroundで簡単テスト

開発中はPlaygroundを使えば、すぐにトークンが取得できます:

  1. Applications → Playgroundボタン
  2. スコープを選択
  3. 「Get token」をクリック
  4. アクセストークンとリフレッシュトークンが表示

これで即座にAPIテストができます!

⚠️ 注意: Playgroundで取得したトークンは開発・テスト専用です。本番運用では正式な認証フローを実装してください。


最初のコード:接続してみよう

ついにコードを書く時が来ました!

Python
from ctrader_open_api import Client, Protobuf, TcpProtocol, Auth, EndPoints
from ctrader_open_api.messages.OpenApiCommonMessages_pb2 import *
from ctrader_open_api.messages.OpenApiMessages_pb2 import *
from twisted.internet import reactor
# 認証情報
CLIENT_ID = "あなたのClient ID"
CLIENT_SECRET = "あなたのClient Secret"
ACCESS_TOKEN = "Playgroundで取得したトークン"
ACCOUNT_ID = "あなたのアカウントID" # cTraderで確認
# クライアント作成
client = Client(EndPoints.PROTOBUF_LIVE_HOST, EndPoints.PROTOBUF_PORT, TcpProtocol)
def onConnected(client):
print("🎉 接続成功!")
# アプリ認証
request = ProtoOAApplicationAuthReq()
request.clientId = CLIENT_ID
request.clientSecret = CLIENT_SECRET
deferred = client.send(request)
deferred.addCallback(onAppAuth)
def onAppAuth(result):
print("✅ アプリ認証完了!")
# アカウント認証
request = ProtoOAAccountAuthReq()
request.ctidTraderAccountId = int(ACCOUNT_ID)
request.accessToken = ACCESS_TOKEN
deferred = client.send(request)
deferred.addCallback(onAccountAuth)
def onAccountAuth(result):
print("✅ アカウント認証完了!")
print("🚀 これでAPIが使えるようになりました!")
reactor.stop()
def onError(failure):
print(f"❌ エラー: {failure}")
reactor.stop()
# 接続開始
client.setConnectedCallback(onConnected)
client.setDisconnectedCallback(lambda client, reason: print(f"切断: {reason}"))
client.setMessageReceivedCallback(lambda client, msg: print(f"受信: {msg}"))
client.startService()
reactor.run()

動かしてみると...

Code
🎉 接続成功!
✅ アプリ認証完了!
✅ アカウント認証完了!
🚀 これでAPIが使えるようになりました!

おめでとうございます!これであなたもOpen APIユーザーです 🎊


MQLerのための用語対応表

MQL用語Open API用語説明
OrderSend()ProtoOANewOrderReq新規注文
OrderClose()ProtoOAClosePositionReq決済
OrderModify()ProtoOAAmendPositionSLTPReqSL/TP変更
AccountBalance()ProtoOATrader.balance口座残高
Symbol()symbolId通貨ペアのID
Bid / AskProtoOASpotEventリアルタイムレート

デモ口座でテストしよう

本番で試す前に、必ずデモ口座でテストしてください!

デモ口座の準備

  1. 対応ブローカーでデモ口座を開設

    • IC Markets
    • Pepperstone
    • FxPro
    • など、cTrader対応ブローカー
  2. cTrader IDにデモ口座を紐付け

  3. Open APIでそのアカウントIDを使用

Python
# デモ口座のIDを使う
ACCOUNT_ID = "12345678" # デモ口座のID

次のステップ

この記事で学んだこと:

  • ✅ Open APIとcAlgo(Automate API)の違い
  • ✅ なぜPython × Open APIが最強なのか
  • ✅ アプリケーション登録の方法
  • ✅ OAuth2認証の仕組み
  • ✅ 最初の接続コード

次の記事では、実際に価格データを取得してみましょう!リアルタイムでティックデータを受信する方法を解説します。


まとめ:MQLerからOpen APIerへ

MQLを書けるあなたなら、Open APIは必ず使いこなせます。

最初は「認証って何?Protobufって何?」と戸惑うかもしれません。でも、一度理解すれば、MQLでは到底できなかったことが可能になります。

  • 機械学習と連携した売買ロジック
  • Webアプリとの統合
  • 複数口座の一元管理
  • クラウドでの24時間稼働

さあ、新しい世界への扉を開きましょう!

あなたのトレーディングライフが、もっと自由になりますように 🚀


参考リンク

🎁おすすめツール・サービス

FX自動売買VPSなら50%OFF

キャンペーンで月1,790円〜。MT4/MT5プリインストール済み、自動復旧機能付き。14日間無料お試し。

シンクラウドデスクトップ for FX
ゴトー日EAを探しているならソースコード付

4年で資金4.7倍のバックテスト実績。ソースコード付きで自由にカスタマイズ可能。

ゴトー日EA Ultimate版(3,980円)

※上記リンクにはプロモーション(広告)が含まれています

🔮
MEMBERSHIP

量子相場謀略|ホソノP

ブログでは書けない本音のトレード戦略とEA開発の裏側を公開。 データに基づいた検証で、再現性のある手法だけをお届けします。

✓EAソースコード公開
✓バックテスト生データ共有
✓リアルタイム相場分析
✓メンバー限定記事
メンバーシップに参加する※ noteアカウントで簡単登録

📚あわせて読みたい

📄

🔥 cTrader Open APIで自動売買!Pythonで注文を出す完全ガイド【Market/Limit/SL/TP対応】

cTrader Open APIとPythonで実際に注文を出す方法を完全解説。成行注文、指値注文、SL/TP設定、ポジション決済まで、コピペで動くサンプルコード付き。

trading2026/1/7
📄

🎊 cTrader 5.4でPython cBotが書ける!ネイティブPythonサポート完全ガイド【Open APIとの違いも解説】

cTrader 5.4で追加されたネイティブPythonサポートを徹底解説。cBot、インジケーターをPythonで作成する方法、Open APIとの違い、MQL経験者のための移行ガイド。

trading2026/1/7
📄

🎯 cTrader Open APIでリアルタイム価格を取得!Python実践チュートリアル【コピペでOK】

cTrader Open APIとPythonでリアルタイムの為替レートを取得する方法を解説。シンボル一覧取得からティックデータの受信まで、実際に動くコードで学べます。

trading2026/1/7
📄

⚠️【非推奨】FIX API完全版①|2セッション構成→ Python cBotを使おう

【非推奨】FIX APIは17個のハマりポイントがあり初心者には推奨しません。代わりにPython cBotを使いましょう。この記事は参考資料として残しています。

trading2026/1/8
📄

🚀【神機能】cTrader Open APIはプラットフォーム不要!MT5との決定的な違いとおすすめブローカー・プロップファーム

cTrader Open APIはMT5と違ってデスクトップアプリ不要!Pythonだけで直接サーバーに接続できる革命的なAPI。VPSでヘッドレス運用したいトレーダー必見。日本人におすすめのcTraderブローカーとプロップファームも徹底解説。

ctrader2026/1/6
📄

😤「ピラミッティングで爆益!」は本当か?60日ブレイクアウトで徹底検証した結果...

60日高値安値ブレイクアウトで単ポジションとピラミッティングを比較検証。「積みながら建値ガードで安心!トレンド乗れれば爆益!」という夢は実現するのか?7年分のデータで検証した衝撃の結果をお届けします。

trading2025/12/20