Load data
Drop in a CSV of bars or ticks from MT5, Dukascopy or your broker. It's read in the browser, never uploaded.
Quant Maker backtests your trading ideas on your own price data, then tries hard to prove them wrong with stress tests and thousands of Monte Carlo runs. Your data never leaves your computer.
Drop in a CSV of bars or ticks from MT5, Dukascopy or your broker. It's read in the browser, never uploaded.
Start from a template or write a few lines of JavaScript. Built-in indicators: SMA, EMA, RSI, ATR, highs and lows.
Spread, slippage, commission, stops, targets and risk-based sizing. Get an equity curve, trade list and full report.
Five stress tests and up to 10,000 Monte Carlo runs show how fragile or robust the result really is.
The full report appears here after a backtest.
| # | Side | Entry time | Exit time | Entry | Exit | Lots | Exit by | P&L |
|---|
Takes the trades from your last backtest and replays them thousands of times in different orders, or sampled with replacement, to show the range of drawdowns, losing streaks and outcomes you should be ready for.
Reshuffling keeps the same trades, so the final balance is always identical with compounding. It's the drawdowns and streaks that change. Resampling also varies the final result.
Re-runs your current strategy and settings under harsher conditions. A strategy that only works in one exact setup usually won't survive live trading.
Uses the data, code and settings from the Tester tab.
Load a CSV file. Quant Maker recognises:
2025.01.02 09:00, 2025-01-02T09:00:00, 02.01.2025 09:00:00.000 or Unix timestamps.Files are read by your browser and never uploaded. Get data from your broker's MT5 terminal (View › Symbols › Bars or Ticks › Export) or Dukascopy's historical data feed.
Your code runs once per bar. It decides what position you want after that bar closes, and the order fills at the next bar's open.
return 1 to be long, -1 short, 0 flat, null to keep what you have.bars[i] has t o h l c (time, open, high, low, close). Never look at bars[i+1], which would be peeking into the future.params holds the values from the Parameters box, e.g. fast=20, slow=50.ind.sma(n,i), ind.ema(n,i), ind.rsi(n,i), ind.atr(n,i), ind.highest(n,i), ind.lowest(n,i) (previous n bars), ind.hour(i), ind.weekday(i).// Trade a breakout only between 09:00 and 14:00
const h = ind.hour(i);
if (h < 9 || h >= 14) return 0;
const hi = ind.highest(params.n, i), lo = ind.lowest(params.n, i);
if (hi == null) return 0;
if (bars[i].c > hi) return 1;
if (bars[i].c < lo) return -1;
return null;
Point size is the smallest price step you measure in (0.0001 for EURUSD, 0.01 for gold or JPY pairs, 1 for indices). $ per point per lot converts points to money (about $10 for one standard EURUSD lot). Half the spread plus slippage is charged on entry and on exit. Stops are checked before targets when a bar touches both, which is the cautious assumption.
Last updated 14 November 2026
We don't collect your data. Quant Maker has no accounts, sign-ups, analytics, advertising or tracking cookies.
Under UK GDPR you have rights over personal data held about you. As we hold none, there is nothing to request. If you have questions, contact the site owner.
Quant Maker is software. It is not a broker or investment firm, is not authorised or regulated by the Financial Conduct Authority, and does not provide financial advice, recommendations or trading signals.
Backtests, stress tests and Monte Carlo simulations are hypothetical. They have built-in limitations, cannot account for every real-world cost or market condition, and past or simulated performance does not guarantee future results.
Trading forex, CFDs, futures and other leveraged products carries a high risk of losing money rapidly, and you may lose more than you deposit. Only trade with money you can afford to lose and consider independent advice.