How marketcalls/openalgoplugin works
OpenAlgo AmiBroker Data Plugin supplies AmiBroker with historical and realtime market data from an OpenAlgo server. The main workflow is AmiBroker requesting chart history through the plugin, which fetches and caches REST history; asynchronous refreshes update the chart when backfill completes. Separately, the plugin authenticates to WebSocket streams, builds candles from ticks, and exposes quote/depth state to AmiBroker. Configuration and status controls support connection testing and manual backfill. Module-level wiring is inferred only where the README and sampled source establish it; unsampled implementation details are not expanded.
Main entry points: OpenAlgoWebSocket.inc WebSocket Client · OpenAlgoAmiBroker.inc Chart History · OpenAlgoConfigDlg.cpp Settings Dialog · Plugin.cpp Plugin API
Components 16
AmiBroker Integration
- Plugin API
Plugin.cpp - Chart History
OpenAlgoAmiBroker.inc - Quote Window
OpenAlgoAmiBroker.inc - Chart Updates
OpenAlgoAmiBroker.inc
Historical Data
- History Fetch
OpenAlgoHistory.inc - HTTP Workers
OpenAlgoWorkers.inc - History Cache
Plugin.cpp
Realtime Streaming
- Candle Builder
OpenAlgoRealtimeBars.inc - WebSocket Client
OpenAlgoWebSocket.inc - Quote State
Plugin.cpp
Configuration
- Settings Dialog
OpenAlgoConfigDlg.cpp - Connection Settings
OpenAlgoGlobals.h - Status Controls
OpenAlgoAmiBroker.inc
Other components
- AmiBroker
- OpenAlgo REST API
- OpenAlgo WebSocket
Connections 23
- AmiBroker → Plugin API: calls exports
- Plugin API → Chart History: dispatches requests
- Chart History → History Cache: reads bars
- Chart History → HTTP Workers: queues refresh
- HTTP Workers → History Fetch: runs fetch
- History Fetch → OpenAlgo REST API: requests history
- History Fetch → History Cache: updates snapshots
- Chart History → AmiBroker: returns quotations
- Plugin API → WebSocket Client: initializes stream
- WebSocket Client → OpenAlgo WebSocket: authenticates, subscribes
- OpenAlgo WebSocket → WebSocket Client: sends frames
- WebSocket Client → Candle Builder: delivers ticks
- WebSocket Client → Quote State: updates quote state
- Candle Builder → Chart Updates: posts chart updates
- Quote State → Quote Window: provides quote data
- Quote Window → AmiBroker: serves quote/depth
- Chart Updates → AmiBroker: signals refresh
- AmiBroker → Settings Dialog: configures plugin
- Settings Dialog → Connection Settings: persists settings
- Settings Dialog → OpenAlgo REST API: tests connection
- Settings Dialog → OpenAlgo WebSocket: tests stream
- AmiBroker → Status Controls: requests backfill
- Status Controls → HTTP Workers: queues backfill