Backtesting, data pipelines and risk controls · Oxarus Quant Pipelines that clean market data, tests purged of look-ahead bias and risk controls that protect live systems. We build them for institutions, too. Breadcrumbs: Oxarus home › Oxarus Quant › Engineering NOTICES - Interface data marked as representative is illustrative; it is not a real client, result or measurement. - Not investment advice. Trading in financial markets carries a risk of losing capital. SECTIONS - from data to live. - where backtests go wrong. - two sources, minute by minute. - five checks before every order. - we build it for you, too. - let's build your infrastructure. FROM DATA TO LIVE. QUANT · ENGINEERING Building systems that trade our own capital taught us what belongs in the infrastructure: pipelines that verify data, tests closed to look-ahead bias and risk controls that halt a live system when they have to. https://oxarus.com/en/quant/engineering - Institutional project → open_page(path="/quant/engineering", anchor="cta-heading") - Risk controls → open_page(path="/quant/engineering", anchor="breakers") - Tests guarded against look-ahead bias - Verified against two independent data sources - Automatic circuit breakers in production 1. Data 2. Test 3. Live Representative interface data · Representative flow diagram. - file: research-to-live - tag: Representative flow - data: Data - test: Test Live Broker data - detail: EURUSD · M1 Reference data - detail: independent second source Clean and compare - detail: median diff 0.20 pip Features - detail: previous bar only Backtest - detail: hourly spread distribution Walk-forward - detail: unseen period Risk gate - detail: 5 checks before every order Live - detail: order flow Monitoring - detail: event log and alerts - bars: 2.4M minutes - delta: median diff 0.20 pip - lookahead: look-ahead: 0 - breakers: 5 circuit breakers armed WHERE BACKTESTS GO WRONG. TESTING Most systems that look good on historical data are feeding on a flaw in the test itself. Pick one to see the flawed test, the corrected pipeline and the automated checks side by side. https://oxarus.com/en/quant/engineering#pitfalls-heading - Look-ahead - Flawed test: The day's close leaks into an intraday decision. - Corrected pipeline: The read window ends before the current bar; anything after it is out of reach. A value that's only known at the end of the day gets used during the day. Every calculation draws only on the previous bar and earlier. We don't leave this to code review: by design, the data access layer can't see the future. - Synthetic ticks - Flawed test: A four-point synthetic path fills at prices that never traded. - Corrected pipeline: The real tick path: every fill rests on a price that was actually seen. Fake price paths generated from minute bars create fills that never happened. We rerun critical results on real tick data and a second feed source. - Overfitting - Flawed test: One bright cell: results fall apart at neighboring settings. - Corrected pipeline: A broad, stable region: the chosen setting's neighbors hold up too. The best of hundreds of parameter combinations is picked and assumed to stay the best. We choose parameters in one period and test them in a period they've never seen. Settings that don't hold at neighboring values are discarded. - Survivorship - Flawed test: A universe built from today's list never sees delisted instruments. - Corrected pipeline: Every instrument trading on that date, including those removed later. The test only uses instruments that still exist today. The test universe is built from instruments that were actually available on that date. - Unrealistic costs - Flawed test: A fixed spread every hour: no session differences, no news widening. - Corrected pipeline: Spread distribution by hour, with spikes around news preserved. Spread, commission and slippage are assumed to be zero or fixed. We use the real spread distribution by hour and session, including widening around news. Audit suite - count: {passed} / {total} passed If any audit is red, the change does not merge into the main branch. - run all: Run all - queued: queued - passed: passed - pass: pass - fail: fail - representative: Representative output Interface labels: Symptom · How we catch it · Automated checks · running TWO SOURCES, MINUTE BY MINUTE. DATA We compare the broker feed against an independent reference source, minute by minute. 1,721 shared trading days, 2.4 million shared minutes. https://oxarus.com/en/quant/engineering#feeds-heading - Median: 0.2 - 90th percentile: 0.4 - 99th percentile: 1.8 - Largest difference: 16.8 - unit: pip Most of the time, the difference is a fifth of a pip. That's why we can verify our results without depending on any single broker's data. - overlay: Same minutes, two sources - histogram: Distribution of minute-close differences The shape of the distribution is representative; the marked percentiles and the largest difference are measured. - histogram sample: n = 2.4M · square-root scale - source a: Broker - source b: Reference - Shared trading days: 1,721 - Shared minutes: 2.4million - Daily range difference, median: 0.2pip - representative: Representative path - measured: measured - jump max: Jump to the largest gap - validated: validated Interface labels: Minute FIVE CHECKS BEFORE EVERY ORDER. RISK Every order the live system sends passes these checks. Trip one, then send a test order to see which check stops it. https://oxarus.com/en/quant/engineering#breakers - Daily loss limit Intraday loss has hit the limit No new trades open, open trades close according to the rules, and the system stays locked until the end of the day. - Spread guard Spread has widened to 4× normal Pending orders are suspended, and no entries are made until the spread normalizes. - News window High-impact release within 10 minutes No new trades open during the window, and stops are not widened. - Connection loss Server unresponsive for 20 seconds No orders are sent until the connection is restored; on reconnect, positions are reconciled with the server. - Exposure cap Total risk in one currency is at the cap No new positions involving that currency are opened. - status: System status - representative: Representative screen Test order Send an order through the gate and see which check passes and which one stops it. - send: Send test order - accepted: Order accepted - rejected: Order rejected · {name} - accepted count: accepted - blocked count: blocked Interface labels: Trip · Reset · Armed · Tripped · Order flow open · Order flow halted · Re-arming controls · Running checks WE BUILD IT FOR YOU, TOO. INSTITUTIONAL We build the infrastructure we run our own research and live systems on around your organization's data and processes. https://oxarus.com/en/quant/engineering#services-heading - Data pipelines Infrastructure that collects, cleans and stores price and news data from multiple sources. Tools used Python · Polars · Parquet · PostgreSQL DELIVERABLES - Source connectors and scheduled pulls - Dual-source comparison and quality report - Versioned, queryable data store - Testing infrastructure An environment where your team can test strategies free of look-ahead bias. Tools used Python · NumPy · pytest · Docker DELIVERABLES - Look-ahead-safe data access layer - Walk-forward and parameter robustness reports - Reproducible, containerized test environment - MetaTrader 5 tooling Robots, panels, bridges and reporting tools built for institutional use. Tools used MQL5 · C++ · MetaTrader 5 · REST DELIVERABLES - Robot, panel and indicator development - Bridges between MetaTrader 5 and external systems - Source code and setup documentation - Risk and monitoring dashboards Dashboards that show account exposure, limits and system health on a single screen. Tools used TypeScript · Next.js · WebSocket · PostgreSQL DELIVERABLES - Per-account exposure and limit view - Circuit breaker states and event log - Instant alerts on threshold breaches - representative: Representative LET'S BUILD YOUR INFRASTRUCTURE. ENGINEERING Tell us what you need, whether it's a data pipeline, a test environment or a risk dashboard, and we'll define the scope and approach together. https://oxarus.com/en/quant/engineering#cta - Send a project request → start_project_brief(topic="quant") - info@oxarus.com → contact(subject="Institutional quant project") ACTIONS - Institutional project → open_page(path="/quant/engineering", anchor="cta-heading") - Risk controls → open_page(path="/quant/engineering", anchor="breakers") - Send a project request → start_project_brief(topic="quant") - info@oxarus.com → contact(subject="Institutional quant project") - Türkçe → switch_locale(locale="tr", path="/quant/engineering") RELATED PAGES - Oxarus Quant