Platforms

How to Connect cTrader to a Journal via the Open API

Connect cTrader to a trade journal through the Open API — OAuth once and every fill flows in automatically, no passwords or exports required.

WM
William M. · Founder of Shibiki

Your fills already live inside cTrader with perfect fidelity — entry, exit, commission, swap, the lot. The only real question is how to get them into a journal without pasting a broker password into a third-party tool or exporting CSVs every Friday night.

cTrader’s Open API vs. MT-style bridges

If you’ve journaled from MetaTrader before, you know the drill: an EA on the chart, an investor password handed to a bridge, or a manual statement export. cTrader works differently. The Open API is a first-class, broker-sanctioned interface that exposes your account over an authenticated connection — no expert advisor sitting on a chart, no credentials leaving Spotware.

That distinction matters for prop traders in three concrete ways:

  • No password sharing. You authorize read access through OAuth; the journal never sees or stores your cTrader login.
  • No chart dependency. An MT4/MT5 bridge dies the moment your terminal closes or the VPS reboots. The Open API keeps streaming server-side.
  • Structured data, not scraped text. You get typed objects — deals, positions, commissions — instead of a parsed HTML statement that breaks when the broker tweaks its report format.

The tradeoff is that the Open API speaks a protobuf protocol over a persistent socket, which is why you want a service handling the connection rather than wiring it yourself.

Authorizing access with OAuth (demo and live)

The whole handshake happens once. You click Connect, a Spotware popup opens, you approve the scopes, and you’re done. Under the hood:

  1. The app redirects you to cTrader’s authorization URL with your requested scopes (read-only trading data is enough for journaling).
  2. You log into cTrader — not the journal — and approve.
  3. Spotware returns an authorization code, which the backend exchanges for an access token and a refresh token.
  4. The token lists your trading accounts; you pick which ones to link.

You can authorize demo and live accounts separately, which is exactly what you want during a challenge: journal the funded evaluation on its own account so its stats never get muddied by demo experiments. See the cTrader integration page for the exact scopes requested and how tokens are stored encrypted at rest.

What the API streams: positions, deals, commissions

Once linked, the connection subscribes to your account’s execution events. Each closed trade arrives as a set of deals (the individual fills) that roll up into a position with everything a journal needs:

FieldWhat it captures
Entry / exit priceVolume-weighted across partial fills
Direction & volumeBuy/sell and lot size in units
CommissionPer-side broker commission
SwapOvernight financing if held
Gross vs. net PnLNet = gross − commission − swap

Because commission and swap come through explicitly, your net PnL is the real number — not a gross figure you have to mentally discount. For funded traders that precision is the difference between thinking you’re green and actually clearing a payout threshold.

Tagging trades to strategies for live edge health

Auto-import is only half the value. The other half is attribution. When each fill lands, you tag it to a strategy — your London breakout, your mean-reversion fade, whatever you actually run. That single tag is what turns a pile of trades into an edge you can measure.

With trades grouped by strategy, the journal computes live edge health: expectancy and win rate that recompute on every close, wrapped in a confidence interval so you know whether a hot streak is signal or just a small sample. If you’re rusty on the underlying math, the trading expectancy primer walks through why expectancy — not win rate — is the number that pays you, and the expectancy calculator lets you sanity-check the figure by hand.

This is where an execution-connected journal pulls ahead of screenshot-and-spreadsheet tools. A journal like TradeZella is excellent for manual review, but if the data is entered by hand, your edge estimate is always a few days stale — and edge decay you notice a week late can cost a payout.

Troubleshooting token refresh and reconnection

Two things occasionally interrupt a healthy connection. Neither is serious if you know what you’re looking at.

  • Access token expiry. Access tokens are short-lived by design. The backend uses the refresh token to mint a new one silently, so you rarely notice. If imports stall, the usual cause is a refresh token that was revoked — either you changed your cTrader password or explicitly de-authorized the app. The fix is to re-run the OAuth connect once.
  • Socket drops. The protobuf socket can drop on broker maintenance windows or network blips. A well-built connector reconnects with backoff and replays any deals it missed, so no closed trade is lost — it just arrives a moment late.

If you ever suspect a gap, the honest check is reconciliation: compare the journal’s trade count for a session against cTrader’s own history tab. They should match to the deal. When they don’t, a manual re-sync pulls the account history fresh rather than relying on the live stream alone.

Connect once, tag as you trade, and let the closes do your bookkeeping — so your review time goes to decisions, not data entry.

Related: cTrader integration · Trading expectancy · Expectancy calculator

Related guides

Free · 90-second setup

Stop tracking your trading. Start running it.

Shibiki journals every trade, measures your real edge, and pushes hard risk limits to your broker — across every prop-firm account at once.

Connect your first account

No credit card · works with your prop firm

  • Auto-journals every fill straight from your broker
  • Live edge health with a Wilson confidence interval
  • Hard risk limits enforced at the broker — not just alerts
  • One master strategy copied across your prop accounts