UAT vs LIVE (PROD): Why Sandbox Testing Matters in Algo Trading¶
Algorithmic trading isn’t just about writing a strategy — it’s about safely validating that strategy before real money goes anywhere near the market.
This is why Nubra provides two fully independent environments:
- UAT (User Acceptance Testing) — a simulated sandbox
- LIVE / PROD — the real exchange-connected environment
Before deploying even a single line of automation into production, every serious algo trader, MFT/HFT engineer, or quant developer should deeply understand how these two environments differ.
Visual Difference Between UAT and LIVE¶
LIVE / PROD Environment
🟢 Green and 🔴 red dots represent real bids and asks entering the exchange order book.
Each dot is an actual order modifying market depth — inserting, updating, or being filled on the real L2 book.
- Orders go directly to the exchange
- The L2 order book updates in real time
- Your bids/offers affect liquidity & market depth
- All actions carry real financial risk
UAT (Sandbox) Environment
🔵 Blue dots represent simulated bid/ask activity.
These orders are not sent to the exchange — Nubra matches them internally.
No real trade occurs, and the exchange order book remains unchanged.
- Orders are internally matched by Nubra’s simulation engine
- The real market order book does not change
- No exchange impact, no slippage, no missed trades
- Zero financial risk — perfect for experimentation
Nubra UAT Environment¶
Nubra’s UAT environment is purpose-built for safe, high-frequency, high-volume, risk-free testing.
It mirrors the behavior of LIVE APIs while ensuring your orders never reach the exchange.
Below is everything you need to know about how UAT works, how it differs from LIVE, and why professional algo traders rely on it before deploying real capital.
Below is everything you need to know about how UAT works, how it differs from LIVE, and why professional algo traders rely on it before deploying real capital.
How UAT Differs From LIVE (PROD)¶
UAT is not just a sandbox — it is a fully isolated environment designed for complete freedom and zero consequences.
Here’s how the behavior changes:
| Aspect | UAT Environment | LIVE Environment |
|---|---|---|
| Execution Type | Simulated fills | Real exchange fills |
| Market Impact | None | Real orders affect orderbook |
| Funds | Virtual sandbox wallet | Actual trading balance |
| Order Routing | Internal matching engine | Exchange order book |
| Risk | Zero | Real financial risk |
| Order IDs | UAT-specific | Exchange + broker IDs |
| API Methods | Identical to LIVE | Identical to UAT |
| Use Case | Strategy testing & debugging | Real trading |
Why Algo Traders Should Always Start in UAT¶
Zero Financial Risk
- Test big orders safely
- Run rapid-fire cancels
- Experiment with large spreads
- No real capital at risk
No Capital Limits
- Use unlimited virtual funds
- Simulate large order sizes
- Generate high trading volume
- Run stress-test scenarios
High OPS for MFT/HFT
- Run hundreds of ops/sec
- Perfect for cancel/replace loops
- Build scalping & market-making bots
- Simulate microstructure behavior
UAT Trade Dashboard
- Track fills in real time
- Debug orders visually
- Reconcile P&L instantly
- Monitor strategy behavior
How UAT Works Under the Hood¶
- Orders are filled using Nubra’s internal matching engine
- Matching follows price–time priority, closely mirroring NSE logic
- Latency is simulated
- Liquidity is simulated
- ref_id formats differ from LIVE
UAT is designed for logical correctness, not latency benchmarking.
Switching Between UAT and LIVE in Code¶
Just change one line:
from nubra_python_sdk.start_sdk import InitNubraSdk, NubraEnv
nubra = InitNubraSdk(NubraEnv.UAT) # For UAT
nubra = InitNubraSdk(NubraEnv.PROD) # For LIVE