DocsGetting Started

Learn the Quanthop Research Workflow

Quanthop is a systematic trading research platform built around one principle: strategies should be validated before they are trusted.

Strategies are written in QSL (Quanthop Strategy Language) — a clean JavaScript-based format designed for deterministic, reproducible backtesting.

The Research Workflow

Every strategy follows the same validation pipeline:

  Idea  ──>  Backtest  ──>  Optimize  ──>  WFA  ──>  Adaptive Flow
   │            │               │            │              │
   │        Single run      Parameter     Rolling       Continuous
   │        against         search        out-of-       performance
   │        historical      for stable    sample        monitoring
   │        data            regions       validation
   │
   Write QSL
   strategy

Each stage filters out strategies that are not robust enough for the next. Most ideas fail early — and that is by design.

Quick Start

  1. Create a project — Open the Research Lab and choose a strategy template or start from blank
  2. Write a strategy — Define parameters, indicators, and trading logic in QSL
  3. Run a backtest — Test against historical data for a single symbol and interval
  4. Optimize parameters — Search for stable parameter regions instead of peak values
  5. Validate with WFA — Run Walk-Forward Analysis to test on unseen data
  6. Monitor with Adaptive Flow — Track live performance and detect strategy degradation

What Makes Quanthop Different

The platform is designed around research integrity:

  • Results that look too good are questioned, not celebrated
  • Out-of-sample testing is mandatory, not optional
  • Rejection is a valid outcome
  • Overfitting is treated as the primary risk

Quick Example

function define(ctx) { ctx.param('period', { type: 'int', default: 14, min: 5, max: 50 }); } function init(ctx) { ctx.indicator('ema', 'EMA', { period: ctx.p.period, source: 'close' }); } function onBar(ctx, i) { const ema = ctx.ind.ema[i]; const close = ctx.series.close[i]; if (q.isNaN(ema)) return; if (close > ema && ctx.position('ASSET').qty === 0) { ctx.order.market('ASSET', 1, { signal: 'buy' }); } }

What the Engine Does

The backtest engine:

  1. Parses your strategy and extracts parameters
  2. Pre-computes all declared indicators (fast, on the host)
  3. Calls onBar() for each candle with indicator values ready
  4. Processes orders according to explicit fill rules
  5. Tracks positions, PnL, and performance metrics

Next Steps

introductionoverviewconceptsqslworkflowquick start