Broker — IC Markets EU + cTrader Open API
Decision
IC Markets EU (icmarkets.eu) is the chosen broker for mi-casa. It covers all five tracked symbols under a single account and exposes a fully open, WebSocket-capable API (cTrader Open API) suited for programmatic trade execution and real-time tick data streaming.
Why IC Markets EU
| Criterion | Detail |
|---|---|
| Single broker for all 5 symbols | EUR/USD, XAU/USD (Gold), WTI/USD (Oil), BTC/USD, and ETH/USD are all available as CFDs — no split-broker approach needed |
| EU-regulated (CySEC) | Strong investor protections, €20,000 compensation fund per client, negative balance protection |
| cTrader platform | The only major platform with a fully open, WebSocket-capable API (cTrader Open API by Spotware) for programmatic execution and real-time streaming |
| ECN/STP execution | No dealing desk, tight spreads, ~66ms average execution |
| No local gateway | Unlike IBKR’s TWS API, no local process required |
Symbol coverage
| Symbol | Supported | Notes |
|---|---|---|
| EUR/USD | ✅ | Forex pair |
| XAU/USD | ✅ | CFD (Gold) |
| WTI/USD | ✅ | CFD (Oil) |
| BTC/USD | ✅ | CFD (Crypto) |
| ETH/USD | ✅ | CFD (Crypto) |
Account Type — Raw Spread
The Raw Spread account is the lowest-cost option for algorithmic/frequent trading.
| Account type | Spread (from) | Commission per lot (round-turn) | Minimum deposit |
|---|---|---|---|
| Raw Spread ✅ | 0.0 pips | $7 per lot | $200 |
| Standard | 0.8 pips | None | $200 |
The Raw Spread account has lower effective cost per trade at any reasonable volume because the zero spread offsets the flat commission. It is the standard choice for algo traders.
Live Tick Data — cTrader Open API (WebSocket)
IC Markets EU runs on the cTrader platform, which exposes the cTrader Open API (by Spotware) for live tick streaming.
Connection details
| Property | Value |
|---|---|
| WebSocket endpoint | wss://live1.p.ctrader.com:5035 |
| Auth | OAuth2 via connect.spotware.com — register an app to get a Client ID + Client Secret |
| Demo endpoint | Available for development/testing before going live |
Tick subscription flow
- Authenticate via OAuth2 — exchange credentials for an access token
- Open WebSocket to
wss://live1.p.ctrader.com:5035 - Send
ProtoOASubscribeSpotsReq(Protobuf message) with target symbol ID(s) - Listen for
ProtoOASpotEventmessages — bid/ask per symbol, real-time
Resources
- Full docs: https://help.ctrader.com/open-api/
- Official SDKs: OpenApiPy (Python), OpenApiNet (C#)
Production note: The cTrader Open API is now the sole market data source for both live ticks and historical backfill (see OHLC Service — Candle Data Flow).
Previous Options Evaluated
The following options were evaluated before settling on IC Markets EU:
| Option | Reason not chosen |
|---|---|
| Oanda | Crypto (BTC/ETH) coverage is region-dependent; not guaranteed for EU accounts |
| Interactive Brokers (IBKR) | TWS API requires a local gateway process; Client Portal API auth is more complex; higher account requirements |
| Split approach (Oanda + Binance) | Two broker integrations to maintain; dual credentials and error-handling surface; added operational complexity |
Related
- OHLC Feature Enhancements — BTC/ETH symbols, live alerts
- OHLC Phase 2 — Actionability & Observability — paper portfolio feature
- OHLC Service — Candle Data Flow — how live ticks flow from source through ohlc-service
- Database Schema — TimescaleDB tables relevant to OHLC ingestion