Documentation · Section 4 of 6
Strategies: Idea to Live Signals
Write a strategy in plain English, backtest it honestly, run it live on closing bars, and route its signals to a broker or a webhook behind an explicit enable.
Writing a Strategy
Plain-English trading ideas, compiled and testable.
Open a symbol and switch the view toggle to Strategies. Describe a trading idea in plain English — for example: "Buy when the 20-day average crosses above the 50-day average, with a 5% stop loss."
Press Review: dotQuant compiles your prose into a precise, machine-readable strategy spec.
- The compiled spec is yours to inspect — view it pretty-printed, copy it, reuse it.
- The review tells you plainly whether your idea became runnable entry and exit rules.
- If it can't be compiled, you get a clear explanation rather than a silent failure.
Anonymous visitors can review strategies; running backtests requires an account.
Learn: From trading idea to testable rules
Press Review: dotQuant compiles your prose into a precise, machine-readable strategy spec.
- The compiled spec is yours to inspect — view it pretty-printed, copy it, reuse it.
- The review tells you plainly whether your idea became runnable entry and exit rules.
- If it can't be compiled, you get a clear explanation rather than a silent failure.
Anonymous visitors can review strategies; running backtests requires an account.
Learn: From trading idea to testable rules
Running a Backtest
Test the reviewed strategy on real market data.
After a successful strategy review, set a trade quantity and press Backtest this in the strategy sheet.
- The backtest runs over the visible chart range — change the chart window to test a different period.
- Entry and exit markers are drawn on the price chart and stay visible when the sheet closes.
- Results stream back live; on desktop the strategy sheet docks beside the chart so nothing is covered.
- The backtest runs over the visible chart range — change the chart window to test a different period.
- Entry and exit markers are drawn on the price chart and stay visible when the sheet closes.
- Results stream back live; on desktop the strategy sheet docks beside the chart so nothing is covered.
Reading Backtest Results
Honest numbers, not a flattering simulation.
dotQuant's backtester is deliberately conservative:
- Signals fill at the next bar's open — never at the price that generated the signal (no look-ahead).
- Max drawdown is marked to market, measured on every bar, not only on closed trades.
- Open positions are reported as unrealized P/L, separate from realized P/L.
- Trading costs are charged on every fill.
- Stop losses execute during the run, not just in the spec.
The summary card reports realized and unrealized P/L, costs, win rate, max drawdown, and a buy-and-hold comparison over the same window. If an idea only works in a frictionless simulation, you'll see it here first.
Learn: What to check before trusting a backtest
- Signals fill at the next bar's open — never at the price that generated the signal (no look-ahead).
- Max drawdown is marked to market, measured on every bar, not only on closed trades.
- Open positions are reported as unrealized P/L, separate from realized P/L.
- Trading costs are charged on every fill.
- Stop losses execute during the run, not just in the spec.
The summary card reports realized and unrealized P/L, costs, win rate, max drawdown, and a buy-and-hold comparison over the same window. If an idea only works in a frictionless simulation, you'll see it here first.
Learn: What to check before trusting a backtest
Running a Strategy Live
The chart legend's play button — evaluation on every closing bar.
A backtested strategy can be run live: press the play button in the chart legend. From then on the platform evaluates the strategy whenever the feed closes a bar and records every buy/sell transition as a signal — drawn on the chart and kept in the signal history.
- Signal-only by design: running a strategy never places an order by itself. Where its signals go is a separate, per-destination decision — see Signal Routing below. The legend badge tells you which mode you are in:
- Pause stops evaluation without losing the configuration; play resumes it. The bin removes the strategy from the chart and retires its routes.
- The running state is durable — it survives reloads and lives on your account, not in the browser.
For agents: the same lifecycle is the
- Signal-only by design: running a strategy never places an order by itself. Where its signals go is a separate, per-destination decision — see Signal Routing below. The legend badge tells you which mode you are in:
SIGNAL-ONLY (no enabled broker route) or LIVE (at least one).- Pause stops evaluation without losing the configuration; play resumes it. The bin removes the strategy from the chart and retires its routes.
- The running state is durable — it survives reloads and lives on your account, not in the browser.
For agents: the same lifecycle is the
run-a-strategy-live workflow — configure-algorithm, then run-algorithm / pause-algorithm / remove-algorithm, with decisions readable via the list-algorithm-signals query.Signal Routing
Fan a strategy's signals out to your broker or webhooks — behind an explicit enable.
Signal Routing decides where each running strategy's signals flow. A route connects one strategy to one destination:
- Broker route: signals become orders on the named broker connection. You set the entry quantity; exits close what the route holds, capped by the account's real position — never a short. Sells are sized against a fresh position read, and a signal with no position to close is recorded as skipped, not traded.
- Webhook route: signals are delivered to your own HTTPS endpoint, HMAC-signed with the webhook's secret — for your own automation, journaling, or downstream systems.
The enable is the gate. Configuring a route never starts it: signals only flow after you explicitly enable the route (broker routes ask for a danger-style confirmation — real orders, capital at risk). Disable pauses the flow keeping the configuration; archive retires it. A re-created route always comes back disabled.
Every signal's execution outcome is recorded per route — dispatched, order placed, skipped, failed — and shown in the signal history, so you can audit exactly what each signal did.
For agents:
- Broker route: signals become orders on the named broker connection. You set the entry quantity; exits close what the route holds, capped by the account's real position — never a short. Sells are sized against a fresh position read, and a signal with no position to close is recorded as skipped, not traded.
- Webhook route: signals are delivered to your own HTTPS endpoint, HMAC-signed with the webhook's secret — for your own automation, journaling, or downstream systems.
The enable is the gate. Configuring a route never starts it: signals only flow after you explicitly enable the route (broker routes ask for a danger-style confirmation — real orders, capital at risk). Disable pauses the flow keeping the configuration; archive retires it. A re-created route always comes back disabled.
Every signal's execution outcome is recorded per route — dispatched, order placed, skipped, failed — and shown in the signal history, so you can audit exactly what each signal did.
For agents:
configure-signal-route → enable-signal-route (high-impact, confirm with the user first) → outcomes on list-algorithm-signals; routes are listed by list-signal-routes.