Rover Configuration File
RoverConfig.json is the JSON configuration file Rover reads at startup. It defines the “factory defaults” that back the Settings dialog’s Reset to Defaults button.
For the NATS server configuration file, see NATS Configuration.
File Location
Section titled “File Location”| File | Purpose | Location |
|---|---|---|
RoverConfig.json | Rover analyzer and web UI defaults | Application directory |
RoverConfig.json
Section titled “RoverConfig.json”Controls Rover’s TWS connections, HTTP/web server, monitoring grid, and global pricing parameters. NATServerURL, MsgProcessingInterval, and IBKRConnections are required; all other fields are optional and fall back to the defaults listed below. Invalid or missing required fields cause Rover to exit with an error dialog.
{ "AccountIdMaskChars": 4, "AngularDistDir": "./dist", "HttpBindAddress": "0.0.0.0", "HttpPort": 5000, "IBKRConnections": [ { "AccountId": "YOUR_ACCOUNT_ID", "ClientId": 1, "GatewayIPAddress": "localhost", "GatewayPort": 7496 } ], "MonitoringColumns": [ { "field": "NET_LIQ_CALC", "width": 199 }, { "field": "PNL", "width": 138 }, { "field": "THETA", "width": 102 }, { "field": "THETA2_ORT", "width": 164 }, { "field": "VEGA", "width": 164 } ], "MonitoringShowAllFields": false, "MsgProcessingInterval": 100, "NATSLocal": true, "NATServerURL": "nats://localhost:4222", "NatsPort": 4222, "NatsWsPort": 9222, "RiskFreeRate": 0.036, "ThroughputBaselineBytes": 50000, "WebConfigDir": "./WebConfiguration"}Web Server Settings
Section titled “Web Server Settings”Rover hosts an embedded HTTP server that serves the Angular web UI.
| Field | Type | Description |
|---|---|---|
HttpBindAddress | string | IP address the HTTP server binds to. 0.0.0.0 listens on all interfaces; 127.0.0.1 restricts access to the local machine. Default: 0.0.0.0 |
HttpPort | integer | Port for the HTTP server that serves the web UI. Default: 5000 |
AngularDistDir | string | Path to the Angular web UI dist directory, relative to the Rover executable. Default: ./dist |
WebConfigDir | string | Directory where Rover stores per-component perspective and settings files served via the REST API. Created if missing. Default: ./WebConfiguration |
Messaging Settings
Section titled “Messaging Settings”| Field | Type | Description |
|---|---|---|
NATSLocal | boolean | Controls whether Rover starts its own NATS server. When true (default), Rover automatically spawns nats-server.exe at startup using the local nats.config, and shuts it down on exit. When false, Rover only connects to NATS at NATServerURL and never spawns one — used for institutional deployments where NATS runs as a centrally-managed service. Default: true |
NATServerURL | string | Required. NATS server URL. Rover itself connects here, and passes it to each analyzer as --nats-url |
NatsPort | integer | NATS client port reported to the web UI via /api/info. Must match port in nats.config. Default: 4222 |
NatsWsPort | integer | NATS websocket port reported to the web UI via /api/info so browser clients can connect. Must match the websocket port in nats.config. Default: 9222 |
MsgProcessingInterval | integer | Required. Analyzer clock rate in milliseconds. Rover passes this to each OptionsRealTimePublisher.exe as --msg-interval; analyzers use it as their cadence for sending message batches to subscribers |
IBKRConnections Array
Section titled “IBKRConnections Array”Required. Must contain at least one entry. Each entry defines a connection to a TWS instance and is passed to an analyzer as command-line arguments (--host, --port, --client-id, --account).
| Field | Type | Description |
|---|---|---|
AccountId | string | IBKR account identifier (e.g., U1234567 for live, DU1234567 for paper). Normalized on load: trimmed, internal whitespace removed, uppercased |
GatewayIPAddress | string | Host running TWS. Use localhost for local installations |
GatewayPort | integer | TWS API port (1-65535). Typically 7496 for live, 7497 for paper |
ClientId | integer | Unique client ID for this connection. Multiple accounts on the same TWS instance require different client IDs |
Monitoring Grid
Section titled “Monitoring Grid”Controls the columns displayed in Rover’s monitoring grid.
| Field | Type | Description |
|---|---|---|
MonitoringColumns | array | Ordered list of columns to display. Each entry has a field (Excel field name, required) and a width (pixel width, default 100). Entries missing field or with a non-string field are skipped with a warning |
MonitoringShowAllFields | boolean | Persisted state of the field-selector “Select All” checkbox. Set automatically when every field is checked in the field-selector dialog; cleared when any field is unchecked. Does not itself drive what the grid displays; MonitoringColumns is always the source of truth. Default: false |
Common field values include PNL, NET_LIQ_CALC, NET_LIQ_PCT_CHANGE, THETA, THETA_ORT, THETA2_ORT, VEGA, VEGA_ORT, and TIME.
Display Settings
Section titled “Display Settings”| Field | Type | Description |
|---|---|---|
AccountIdMaskChars | integer | Number of characters to mask from the right in account IDs. Clamped to 0-10. 4 shows U264****. Default: 4 |
ThroughputBaselineBytes | integer | Sets the 100% reference for throughput bar charts (bytes/second). Default: 204800 |
Pricing Parameters
Section titled “Pricing Parameters”| Field | Type | Description |
|---|---|---|
RiskFreeRate | float | Annualized risk-free interest rate (e.g., 0.045 = 4.5%). Rover passes this to each analyzer as --risk-free-rate; analyzers apply it uniformly across all accounts and expirations. Default: 0.045 |
Editing the File
Section titled “Editing the File”- Stop Rover before editing
- Open
RoverConfig.jsonin a text editor - Make changes, ensuring valid JSON syntax
- Save the file
- Restart Rover
Changes take effect on the next application start. Invalid syntax or a missing required field (NATServerURL, MsgProcessingInterval, or a non-empty IBKRConnections) causes Rover to show an error dialog and exit. Optional fields fall back to the defaults listed above when missing.
Resetting to Defaults
Section titled “Resetting to Defaults”The Settings dialog includes a Reset to Defaults button that restores values from RoverConfig.json.