Lookahead bias
A strategy that reads today's close to trade at today's close is not tradable. Scout fills orders on the next bar and treats only the bar's open as known at decision time.

Scout by Polarline
Describe a trading strategy in plain English. Scout writes inspectable Python, backtests it on historical data, and then tries to break it with walk-forward, Monte Carlo, and parameter checks before you trust the result.
State the market, timeframe, entry and exit rules, and risk limits in plain English. Scout can research the market first so the premise is grounded in the data you will test on.
Scout writes the strategy as a Python class with an on_bar method into a versioned workspace folder. Nothing is hidden behind a chat reply: you can open, edit, and diff the file.
The strategy contract is checked before a backtest counts. Orders fill on the next bar, and only the current bar's open is safe to use at decision time, so indicators are built from prior closes.
The engine reports returns, risk, drawdown, trade, and exposure metrics, then optional walk-forward, Monte Carlo, regime, benchmark, and per-symbol blocks show whether the edge survives.
Generating strategy code is the easy part. Most backtests fail later, quietly, when the code peeks at data it could not have had or when one parameter set happens to fit the past. Scout's engine is built around those failure modes.
A strategy that reads today's close to trade at today's close is not tradable. Scout fills orders on the next bar and treats only the bar's open as known at decision time.
Walk-forward analysis splits history into folds (70/30 in-sample to out-of-sample by default) and reports deflated and probabilistic Sharpe ratios. A strategy that only works in-sample is flagged as overfit.
Monte Carlo resampling shuffles or block-bootstraps trades and reports p5, p50, and p95 outcomes, so one lucky sequence does not pass for a durable result.
Parameter sweeps test up to 27 combinations read through self.params.get, so you can see whether neighbouring settings hold up or the result depends on one magic number.
A data-quality block reports coverage, gaps, and OHLC violations, so a missing month or a broken bar does not quietly become performance.
A regime breakdown reports return, Sharpe, drawdown, and win rate separately for low, mid, and high volatility periods instead of one blended number.
Every run reports more than 60 metrics across return, risk, ratio, drawdown, trade, exposure, and stability categories, with optional benchmark, Monte Carlo, walk-forward, regime, data-quality, and per-symbol attribution blocks. The full trade log and a JSON report are written into the strategy's versioned workspace folder, so results stay attached to the exact code that produced them.
Strategies are plain Python using a small broker API: buy, sell, position, cash, equity, and price.
Each meaningful change gets its own version folder, so you can compare runs instead of overwriting them.
Switch modes with Tab: build a strategy, research a market, or ask questions without touching code.
Use Claude, OpenAI, Gemini, or a local model. Switch providers with /init.
The Free plan is $0 and covers the CLI with unlimited local strategies and backtests on macOS and Linux. Plus ($20 per month) adds Scout Research, scheduled watchers, and three cloud-hosted live runs. Pro ($50 per month) adds more live runs, TradingView webhooks, a Telegram bot, and a metered model allowance. Teams that need a private deployment can talk to us about Scout Private or Scout Managed.
Go deeper on the engine, the data, and how Scout compares with other tools.
Scout is research software. Backtests and verdicts are not investment advice, and past performance does not guarantee future results.