Insights from ChartsWatcher
What Is Backtesting? A Practical Guide to Rules, Costs and Bias
Backtesting applies predefined rules to historical data to examine what would have happened under stated assumptions. It can reveal weaknesses in an idea, but a profitable historical result is not proof that the idea will work in live trading.
Reviewed September 17, 2026.
Distinguish an alert test from a trading simulation
An alert test asks, “When would these conditions have triggered?” A trading simulation also needs position sizes, entries, exits, execution assumptions, and costs. Finding historical signals is not the same as calculating an achievable account return.
ChartsWatcher’s backtesting feature is described as a way to check configured alert strategies over a recent historical window. Confirm the available dates and controls in the product. Do not assume it provides ten years of data, arbitrary portfolio simulations, or every performance metric discussed in general backtesting literature.
Write the rules before looking at results
A testable plan specifies:
- The eligible symbols, trading session, and date range.
- The exact signal, timeframe, and whether a candle must close first.
- When an order could be submitted and how its fill is estimated.
- Position sizing, exit conditions, and treatment of overlapping signals.
- Commissions, spread, slippage, and any relevant borrowing costs.
For example, a breakout rule that uses a candle’s closing price cannot assume an entry at that candle’s earlier opening price. That would use information unavailable at the decision time. TradingView’s look-ahead bias explanation illustrates this problem.
A simple example: why win rate is insufficient
Imagine 100 hypothetical trades: 40 gain $150 each and 60 lose $80 each.
The gross result is 40 × $150 − 60 × $80 = $1,200, despite a win rate of only 40%. If total round-trip costs average $15 per trade, costs become $1,500 and the net result becomes −$300.
This is arithmetic, not a tested strategy or a claim about ChartsWatcher results. It shows why average wins, average losses, and costs must be considered together. Platform fill assumptions matter too; see TradingView’s broker-emulator documentation.
Check the weaknesses a good-looking result can hide
Overfitting: repeatedly changing settings to improve the same historical sample can fit noise. Reserve data you did not use to choose the rules, and document each experiment.
Survivorship bias: a test using only today’s surviving stocks can omit securities that disappeared. Check whether the historical universe reflects what was actually available at the time.
Execution uncertainty: a candle touching a limit price does not establish that your order would have filled. Fast moves, spreads, and available liquidity can change the outcome.
Concentrated results: examine trade count, average outcome after costs, peak-to-trough drawdown, and whether a few trades account for most of the result. There is no universal “good” win rate or profit factor.
Use the result to choose the next experiment
First verify that signals occur when your rules say they should. Then review execution assumptions and test unchanged rules on a separate period. Forward observation or paper trading can reveal practical issues, while still differing from real execution.
The opening-range breakout workflow provides documented configuration building blocks. Treat it as a setup to investigate—not a performance-tested trading system.
Educational information only. Historical and simulated results do not guarantee future performance.