QuantForge Terminal
An end-to-end quantitative research platform. Price options, backtest trading strategies on real history, optimize portfolios, measure risk, train ML models — all in your browser, no signup. Each page below explains what it does in plain English.
localStorage.qf_api_key.
| # | Strategy | Return | Sharpe | Max DD | Trades |
|---|---|---|---|---|---|
-
· ·
Options Lab
Options are contracts that give you the right to buy or sell a stock at a fixed price in the future. Type a stock + strike + expiry below to see the option's price calculated three different ways, and watch how it moves when the stock or volatility changes.
Price vanillaA standard call/put option — pays off based on the underlying stock at expiry. + AmericanLike vanilla but the holder can exercise any time before expiry, not just at expiry. + exoticsPath-dependent options (Asian = average price, lookback = best price seen, barrier = activates if a price level is hit). Priced via Monte Carlo here. side-by-side with live GreeksSensitivities of the option price: Delta = move per $1 in stock, Gamma = how Delta itself moves, Vega = move per 1% volatility, Theta = decay per day, Rho = move per 1% interest rate..
Strategy Backtest
Pick a trading idea, a stock or ETF, and a date range. The engine replays history day-by-day and tells you whether the idea would have made money — and how badly it would have hurt during the worst stretches.
Plug any of 11 strategies into real ETF data and compare against buy-and-holdJust buy on day one and never trade. The simplest baseline; most strategies should beat it after fees, or they're not worth the complexity.. Watch out for drawdownThe peak-to-trough loss during a bad period. A 20% max drawdown means at the worst point, the strategy was 20% below its all-time high. and the Sharpe ratioReturn earned per unit of risk. Sharpe > 1 is decent, > 2 is great, > 3 is too good to be true (probably overfitting)..
Full metrics ▾
Portfolio Optimizer
Given a basket of stocks, what percentage of your money should go into each one? Four academic methods give four different answers — try them side-by-side on real ETF returns and see how the recommendations diverge.
Decide what % of money goes into each stock. Max-SharpePick weights that maximize return-per-unit-of-risk. Classical Markowitz mean-variance optimization., Min-VariancePick weights that minimize portfolio volatility, ignoring expected returns. Tends to over-allocate to low-vol assets like bonds., ERCEqual Risk Contribution. Each asset contributes the same amount of risk to the portfolio total. Robust to bad return forecasts., and HRPHierarchical Risk Parity. Clusters correlated assets into a tree, then allocates risk down the tree. No matrix inversion → no instability. on real returns.
Risk Analysis
How much could you lose on a really bad day? This computes "Value-at-Risk" four different ways on real returns. The methods disagree, and that disagreement is the point — there's no single right answer to "how bad can it get?", and pretending there is gets people into trouble.
VaRValue at Risk. The loss you'd not exceed on (say) 95% of days — so a 95% 1-day VaR of 2% means: on a typical day you'll lose at most 2%. The other 5% of days can be much worse. / CVaRConditional Value at Risk (a.k.a. Expected Shortfall). The average loss on the bad days — i.e. given you exceeded VaR, how bad was it? Tail-aware where VaR isn't. across 4 methods, with histogram.
ML Training
Train a machine-learning model on real SPY price history and watch it learn — and watch it overfit (memorize noise instead of signal) when given too much freedom. The split is chronological so the model can never peek at the future.
Real SPY → 20+ featuresNumerical inputs computed from the raw price (RSI, moving averages, Bollinger position, volatility, etc.). The model sees only these, never the raw price directly. → time-ordered train/val/testIn finance you can't shuffle data — that would let the model peek at the future. The data is split chronologically: train on 2010-2018, validate on 2019-2021, test on 2022-2024.. Honest overfittingWhen a model memorises noise in the training data instead of the signal. Train accuracy goes up while validation accuracy goes down. We show both so you can see it happen live. visible.
Async Jobs
Long-running backtests and ML training don't block the page. Submit a job, get a poll URL, watch progress stream over WebSocket — same pattern any production research platform uses.
Job manager backed by an in-process thread pool with a per-owner cap, optional Redis persistence, and 1-hour GC for completed jobs.
Alerts
Set threshold rules — "alert me when drawdown exceeds 5%" — and watch them fire in real time. In demo mode, a server-side broadcaster fires plausible synthetic alerts every ~15 seconds so the feed is never empty.
Live feed of rule-engine events streamed via WebSocket. Topic alerts; severity = info / warning / critical.
Live Signals
Strategy buy/sell signals streaming in live. Each card is a fresh signal — symbol, direction, the strategy that fired it, and a confidence score. The demo broadcaster fires synthetic signals every ~3 seconds so you can watch the dashboard pulse without running a real strategy.
Strategy signal broadcasts over WebSocket /ws/events?topic=signals.
| Time | Symbol | Direction | Strategy |
|---|---|---|---|
API Reference
Every function in this UI is also a public REST endpoint. Same options pricer, same backtest engine, same risk math — accessible from any language with HTTP. Below: a copy-pasteable curl example, a 12-endpoint highlights grid, and the full Swagger UI.
22 REST endpoints + WebSocket. Auth via X-API-Key or JWT bearer.