Core Concepts
A node graph builds a trading strategy from small boxes — data flows from left to right. Each node takes a value in, transforms it, and passes it on. Every node evaluates "per bar" (it computes one value for every bar in the backtest range).
Ports come in 2 types, distinguished by color: numeric = a per-bar number (price, EMA, ATR, SL distance), and boolean = a per-bar true/false (a condition, a trigger).
- Wiring rule: numeric ↔ numeric and boolean ↔ boolean only — connecting across types fails validation
- Every strategy needs exactly 1 OHLCV (the price source) and ends in at least 1 Signal (which takes a boolean trigger + SL distance) — no Signal means it can't run
- The graph must be a DAG (flowing one way, forward only) — a loop-back connection fails validation
- The Validate button on the toolbar checks all of these rules before save/run — failing nodes get a red border with the error list shown below
- Ctrl+S always saves the editable Draft only — it never creates a Version, no matter how many times you press it. Running a backtest (or Ctrl+Shift+S, to freeze one without running) turns the Draft into a permanent, unchangeable Version. Open History on the toolbar to browse past Versions, diff one against the Draft, or Restore it back into the Draft — the Version itself is never touched.
Recommended path for newcomers: open the EMA Cross (Long) template from the dropdown ▾ next to the + button on Builder, then read through it node by node alongside the Recipes section below.