How 1-ken/cpp-fx works
cTrader Plus is a C++ market-observation API: clients request snapshots, historical bars, account features, alerts, or live WebSocket updates; the server obtains broker data, shapes market responses, evaluates alerts, and persists user and alert state. The graph preserves the documented HTTP, streaming, history, authentication, administration, and notification capabilities. Sampled source confirms startup wiring, cTrader frame conversion, WebSocket enrichment, and alert persistence; links for unsampled controller and market internals follow documented responsibilities only where indicated.
Main entry points: AlertManager.cc Alert manager · Routes.cc HTTP routes · CTraderClient.cc cTrader client · MarketHub.cc Market hub
Components 22
API and access
- Server startup
src/main.cc - HTTP routes
src/controllers/Routes.cc - Auth routes
src/controllers/AuthRoutes.cc - Admin routes
src/controllers/AdminRoutes.cc - Observe WebSocket
src/controllers/WsObserveController.cc - Dashboard response
src/controllers/Dashboard.cc - Authentication
src/core/Auth.cc
Market data
- cTrader client
src/ctrader/CTraderClient.cc - Symbol registry
src/ctrader/SymbolRegistry.cc - Subscription planner
src/market/SymbolSubscriptionPlanner.cc - Market hub
src/market/MarketHub.cc - Historical bars
src/ctrader/CTraderClient.cc - Market structure
src/market/StructureEngine.cc
Alerts and notifications
- Alert manager
src/alerts/AlertManager.cc - Candle monitor
src/alerts/CandleAlertMonitor.cc - Notification queue
src/services/NotificationQueue.cc - Notifier
src/services/Notifier.cc
Persistence and services
- PostgreSQL
src/services/PostgresService.cc - Redis
src/services/RedisService.cc
Other components
- API clients
- cTrader Open API
- Notification providers
Connections 33
- API clients → HTTP routes: HTTP requests
- API clients → Observe WebSocket: opens stream
- Server startup → HTTP routes: registers routes
- Server startup → cTrader client: starts client
- Server startup → Market hub: starts hub
- Server startup → Alert manager: configures manager
- Server startup → Notification queue: starts queue
- HTTP routes → Authentication: checks identity
- Auth routes → PostgreSQL: reads and writes users
- Admin routes → PostgreSQL: queries admin data
- Observe WebSocket → Market hub: reads live data
- Observe WebSocket → Alert manager: reads alert state
- Observe WebSocket → API clients: streams updates
- HTTP routes → Market hub: serves snapshots
- HTTP routes → Historical bars: requests OHLC
- HTTP routes → Alert manager: manages alerts
- HTTP routes → Dashboard response: serves dashboard
- cTrader client → cTrader Open API: TLS Protobuf
- cTrader Open API → cTrader client: market events
- cTrader client → Symbol registry: loads symbols
- Subscription planner → Symbol registry: selects instruments
- Subscription planner → cTrader client: subscribes symbols
- cTrader client → Market hub: spot updates
- Historical bars → cTrader Open API: requests trend bars
- Market hub → Alert manager: provides market updates
- Candle monitor → Alert manager: checks candle triggers
- Alert manager → Market structure: analyzes candles
- Alert manager → PostgreSQL: persists alerts
- Alert manager → Redis: queues alert events
- Notification queue → Redis: reads retry queue
- Notification queue → Notifier: dispatches notifications
- Notifier → Notification providers: sends alerts
- Market hub → PostgreSQL: archives snapshots