Multi-Machine Setup
For advanced setups, you can run OptionsRealTime Dashboards and Excel spreadsheets on any machine on the network. This is useful for:
- Dedicated trading workstations
- Multiple monitors across machines
- Separating broker connection from analysis
Dashboards connect to single accounts. Excel sheets connect to all accounts. We can launch as many Dashboards and as many Excel sheets and instances of the Excel application on a machine (given memory and CPU processing limits).
Basic Multi-Machine Architecture
Section titled “Basic Multi-Machine Architecture”┌─────────────────────────┐ ┌─────────────────────────┐ ┌─────────────────────────┐│ Machine A │ │ Machine B │ │ Machine C ││ (Trading Server) │ │ (Workstation) │ │ (Workstation) ││ │ │ │ │ ││ TWS Desktop │ │ OptionsRealTime │ │ OptionsRealTime ││ NATS Server │ │ Excel │ │ Excel │ ...│ Rover │ │ (multi-instance) │ │ (multi-instance) ││ OptionsRealTime | │ (multi-monitor) │ │ (multi-monitor) ││ Excel │ │ │ │ ││ (multi-instance) │ │ │ │ ││ (multi-monitor) │ │ │ │ │└───────────┬─────────────┘ └───────────┬─────────────┘ └───────────┬─────────────┘ │ │ │ └────────────────────────────┴────────────────────────────┘───────── ... LAN ConnectionRun as many OptionsRealTime Dashboards and spreadsheets as you need on any machine: multiple views, multiple accounts, multiple monitors.
Step 1: Reconfigure NATS for Network Access
Section titled “Step 1: Reconfigure NATS for Network Access”By default, NATS only listens on localhost (127.0.0.1). To allow remote connections, you need to change it to 0.0.0.0.
If NATS is Running as a Service
Section titled “If NATS is Running as a Service”If you previously installed NATS as a service, you must remove it first:
- Open Services (
Win + R, typeservices.msc) - Find NATS Server, right-click and select Stop
- Open the OptionsRealTime → Advanced folder on your desktop
- Right-click Remove NATS Service and select Run as administrator
Edit the NATS Configuration
Section titled “Edit the NATS Configuration”- Open the OptionsRealTime → Advanced folder
- Double-click Edit NATS Config
- Change
hostfrom 127.0.0.1 to 0.0.0.0:
host: 0.0.0.0port: 4222http: 0.0.0.0:8222max_payload: 67000000
jetstream { store_dir: "C:/Users/<username>/AppData/Local/OptionsRealTime/jetstream" max_memory_store: 1GB max_file_store: 50GB sync_interval: "2m"}- Save the file
Reinstall NATS Service (Optional)
Section titled “Reinstall NATS Service (Optional)”If you want NATS to run as a service with the new configuration:
- Right-click Install NATS Service and select Run as administrator
Or start NATS manually by double-clicking Start NATS.
Step 2: Configure Windows Firewall
Section titled “Step 2: Configure Windows Firewall”Windows Firewall blocks incoming connections by default. You need to allow NATS traffic from other machines on your network.
Open PowerShell as Administrator
Section titled “Open PowerShell as Administrator”- Click the Start button (Windows icon in the taskbar)
- Type PowerShell
- Right-click Windows PowerShell and select Run as administrator
- Click Yes when prompted
You’ll see a blue window with a command prompt.
Remove Any Existing Block Rules
Section titled “Remove Any Existing Block Rules”When Windows first detects NATS trying to accept connections, it sometimes creates “block” rules — especially if you clicked “Cancel” or “Block” on a Windows Security popup. These block rules override any allow rules, so we need to remove them first.
Copy and paste this command into PowerShell and press Enter:
Get-NetFirewallRule | Where-Object { ($_.DisplayName -like "*nats*") -and ($_.Action -eq "Block") } | Remove-NetFirewallRuleWhat this does: Finds and removes any firewall rules that are blocking NATS. If there are no block rules, it does nothing — that’s fine.
You won’t see any output if it succeeds. That’s normal.
Add the Allow Rule
Section titled “Add the Allow Rule”Now add a rule that allows NATS connections on your private network. Copy and paste this command and press Enter:
New-NetFirewallRule -DisplayName "NATS Server" -Direction Inbound -Protocol TCP -LocalPort 4222 -Action Allow -Profile PrivateWhat this does: Creates a firewall rule that allows incoming connections on port 4222, but only from devices on your private network (like other computers on your home Wi-Fi). It does not allow connections from the internet.
You’ll see output showing the rule was created with Enabled: True and Action: Allow.
Verify the Rule (Optional)
Section titled “Verify the Rule (Optional)”To confirm the rule exists:
Get-NetFirewallRule -DisplayName "NATS Server"You should see Enabled: True and Action: Allow.
Step 3: Configure Remote Machines
Section titled “Step 3: Configure Remote Machines”On remote machines (Machine B, C, etc.), you only need to run the OptionsRealTime UI — not NATS, not Rover. Those stay on Machine A.
Configure the OptionsRealTime UI
Section titled “Configure the OptionsRealTime UI”- Open the OptionsRealTime → Advanced folder on your desktop
- Double-click Edit UI Config
- Change
natsServerURLfrom localhost to Machine A’s IP address:
{ "natsServerURL": "nats://192.168.1.100:4222", ...}- Save the file and restart OptionsRealTime
Configure Excel RTD (if using Excel on remote machines)
Section titled “Configure Excel RTD (if using Excel on remote machines)”If you want to use the Excel RTD add-in on a remote machine:
- Open the OptionsRealTime → Advanced folder on your desktop
- Double-click Edit Excel RTD Config
- Change
NatsUrlfrom localhost to Machine A’s IP address:
[Addin]LogLevel="trace"LogPopupLevel="error"DateFormats=["%Y-%m-%d", "%Y%b%d"]
[OptionsRealTime]NatsUrl="nats://192.168.1.100:4222"RtdThrottleMs=250MaskSize=4- Save the file
- If Excel is open, close and reopen it for changes to take effect
Step 4: Test the Connection
Section titled “Step 4: Test the Connection”- Ensure NATS is running on Machine A
- Ensure Rover is publishing on Machine A
- Launch OptionsRealTime on Machine B
- Verify data is streaming
Network Requirements
Section titled “Network Requirements”| Port | Protocol | Purpose |
|---|---|---|
| 4222 | TCP | NATS messaging |
| 7496 | TCP | TWS API (Machine A only) |
Troubleshooting
Section titled “Troubleshooting”| Problem | Solution |
|---|---|
| Remote machine can’t connect | Run both PowerShell commands above, verify host: 0.0.0.0 in nats.config |
| ”Connection refused” error | NATS isn’t running on Machine A — start it first |
| No data appearing | Rover isn’t running, or natsServerURL is wrong in UI config |
| Commands don’t work | Make sure PowerShell is running as Administrator (Step 2) |
If you still have connection issues, contact support@optionsrealtime.com for assistance.
Advanced Distributed Architecture
Section titled “Advanced Distributed Architecture”OptionsRealTime is built on a true distributed architecture. Each component can run on dedicated hardware, enabling enterprise-grade trading desk deployments:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐│ TWS │ │ TWS │ │ IBKR Gateway│ │ TWS │ │ TWS │ │ IBRK Gateway││ Machine 1 │ │ Machine 2 │ │ Machine 3 │ ... │ Machine 4 │ │ Machine 5 │ │ Machine 6 │ ...└──────┬──────┘ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │ │ │ │ │ └────────────────┼────────────────┘ └────────────────┼────────────────┘ │ │ ▼ ▼ ┌───────────────────┐ ┌───────────────────┐ │ Rover Server 1 │ │ Rover Server 2 │ ... └─────────┬─────────┘ └─────────┬─────────┘ │ │ └───────────────────────┬───────────────────────────┘ │ ▼┌────────────────────────────────────────────────────────────────────────────────────────┐│ NATS Cluster ││ ┌─────────┐ ┌─────────┐ ┌─────────┐ ││ │ NATS 1 │◄─────────►│ NATS 2 │◄─────────►│ NATS 3 │ ... ││ └─────────┘ └─────────┘ └─────────┘ ││ Full Mesh / High Availability │└────────────────────────────────────────────────┬───────────────────────────────────────┘ │ ┌───────────────────────────────┼───────────────────────────────┐ │ │ │ ▼ ▼ ▼ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Workstation │ │ Workstation │ │ Workstation │ │ (multi- │ │ (multi- │ │ (multi- │ ... │ instance) │ │ instance) │ │ instance) │ └─────────────┘ └─────────────┘ └─────────────┘Architecture Capabilities
Section titled “Architecture Capabilities”- NATS can run on dedicated servers or as a high-availability cluster
- Multiple TWS/Gateway instances can run on separate machines with independent logins
- Multiple Rover servers can run on dedicated machines, each managing different sets of accounts
- Unlimited UI workstations can connect from anywhere on the network, each running multiple instances
Why This Matters
Section titled “Why This Matters”OptionsRealTime uses NATS, a messaging system used by major financial institutions for mission-critical systems. NATS supports:
- Clustering — Multiple servers with automatic failover
- JetStream — Persistent messaging with replication
- Horizontal scaling — Add servers to handle increased load
This architecture enables institutional-grade deployments: dedicated trading servers, redundant messaging, and distributed workstations across a trading floor.
Contact support@optionsrealtime.com for assistance with enterprise deployments.
What’s Next?
Section titled “What’s Next?”NATS Configuration Reference →
Complete guide to all NATS configuration options
Configuration Files Reference →
Complete guide to all configuration options