Parametric sweeps
Declare ranges on your strategy's variable_params;
the engine cartesian-products them and runs each combo
deterministically. Results land in a single SQLite store
ready for cross-run analysis.
Tick-by-tick futures backtesting · live since 2026
Replay an entire year of footprint-grade order flow before your coffee cools. Sweep hundreds of parameter sets in a single job, validate the winner, then export it straight to NinjaTrader or TradingView and trade it live.
01 · Speed
This is the whole point. A tick-by-tick, footprint-grade replay of an entire year of futures data returns before you've switched tabs — so you iterate at the speed of thought, not the speed of a progress bar.
Declare ranges on your strategy's variable_params;
the engine cartesian-products them and runs each combo
deterministically. Results land in a single SQLite store
ready for cross-run analysis.
A multi-process worker pool runs the bar loop across cores, and per-trade chart rendering fans out the same way. Orderflow backtests with thousands of trades and PNGs finish in seconds, not minutes.
Per-day bars are stored with mtime + MD5
invalidation. A warm run skips
CSV → parquet → bar reconstruction entirely
and goes straight to the strategy loop.
02 · Optimization
Optimization shouldn't mean babysitting a hundred runs. Declare a range on any knob and the engine cartesian-products them, runs every combo deterministically, and lands the results in one place — ranked, charted, and ready to compare.
min /
max / step on a parameter and the sweep
builds itself — no loop to write, no jobs to queue by hand.class MyStrategy(BaseStrategy):
name = "vwap_pullback"
variable_params = {
"vwap_window": {"default": 60, "min": 15, "max": 240, "step": 15},
"stop_loss_pts": {"default": 20, "min": 5, "max": 80, "step": 5},
}
# → 16 × 16 = 256 combos, one job, ranked on submit.
The same declaration auto-renders as sliders in the dashboard — the schema is the UI. No separate config form to maintain, ever.
03 · Visual feedback, automatic
Tick the box, run your backtest, walk away. Each trade comes back as its own annotated PNG with entry, stop, target and exit rendered on the candles — winners, losers, stop-outs, time-outs. All of them.
Recent standouts
Big winners look obvious in retrospect. Each one of these came out of a single overnight sweep — annotated, archived, downloadable.
04 · Native orderflow
Bid × ask volumes, delta, point-of-control, absorption — code orderflow strategies as naturally as price-action ones. Every trade gets a footprint rendering in the same dashboard, alongside the candle view.
Your strategy receives the orderflow object alongside the bar. Imbalance scans, delta confirmations, point-of-control breaks — one method call away.
def on_bar(self, bar) -> Signal | None:
fp = bar.footprint # bid/ask vol per level
if fp.delta > self.delta_threshold and \
fp.poc_at_low and fp.bid_absorbed:
return Signal(direction="LONG", action="ENTRY",
stop_loss=fp.value_area_low,
reason="bid_absorption")
05 · Go live
A backtest you can't act on is just trivia. Once a strategy proves itself, export it as ready-to-run code for the platform you actually trade on — no manual re-coding, no translation drift.
Download a compiled NT8 strategy that mirrors your validated rules and runs under a per-machine license key. The same logic you backtested, executing on your live NinjaTrader.
Export a Pine Script version of your strategy, drop it onto any TradingView chart, and run it with the exact entries, stops and targets you validated in the engine.
Not a coder?
Describe your rules in plain language and our quant team writes, runs and reports on the strategy for you. No Python, no installs.
In the wild
A real trader putting the engine through its paces: sweeping parameters, validating ideas tick-by-tick, and taking the winners live. Follow along on Instagram to see EdgeQuantX in real hands.
Follow @france.agnelloEarly access
EdgeQuantX is opening up in stages. Add your name for priority access and we'll reach out when your spot is ready.
Questions?
Want to know if EdgeQuantX fits your workflow, or have a strategy in mind? Drop us a line and we'll get back to you.
06 · Pricing
Cost is fully known before you press submit. The platform never bills you for actual CPU time — only for the run you asked for.
base + days × per-day + images × per-image-day
cpu_seconds.
Optimisations on our side are not your problem.Backtest a full year in seconds, optimize in one job, and take the winner live. Join the waiting list for priority access.
Join the waitlist