Classic strategies across ten markets, after costs
Facts, not advice. Data and method for research and education; not investment advice or a recommendation about any security.
43 tests of 12 well-known rule sets on a standard group of instruments in each of 10 markets, run on StratLab's own backtester with each market's costs applied. Every test is published in the strategy library with its rules, its result and its verdict; this post puts the results side by side. In the tables, After costs is the rule set's return with the market's costs applied, and Passive is the return of owning the same instruments for the whole period.
What the tests show
- 3 of 43tests ahead of the passive returnafter costs
- 40 of 43tests behind itafter costs
- 18 of 43tests that traded lost moneyafter costs
- 17 of 43passed their checksthe verdict of the four checks
AheadBehindNot compared
- India0100
- United States090
- United Kingdom030
- Europe030
- Japan030
- Crypto210
- Forex030
- Indian commodities030
- Indian currency futures120
- Global commodities030
The four checks
| Check | Passed | Warning | Failed | Not run |
|---|---|---|---|---|
| Unseen data | 22 | 1 | 20 | 0 |
| Nearby settings | 0 | 0 | 0 | 43 |
| Bad-luck drawdown | 12 | 20 | 11 | 0 |
| Enough trades | 41 | 2 | 0 | 0 |
India
10 tests
Group: 25 most liquid F&O stocks, NIFTY 50 stocks.
| Rule set | After costs | Passive | Difference | Trades | Checks |
|---|---|---|---|---|---|
| 20/50 EMA cross | +47.5% | +71.8% | −24.3 pts | 197 | Lost money on the unseen years |
| 52-week breakout with ATR stop | −3.0% | +71.8% | −74.8 pts | 223 | Lost money after costs |
| Bollinger squeeze breakout | −9.1% | +71.8% | −81.0 pts | 350 | Lost money after costs |
| Donchian 20/10 (turtle-style) | −23.8% | +71.8% | −95.6 pts | 500 | Lost money after costs |
| Golden cross | +25.8% | +71.8% | −46.0 pts | 53 | Lost money on the unseen years |
| MACD signal cross | −32.0% | +71.8% | −103.9 pts | 859 | Lost money after costs |
| Opening-range breakout (intraday)Tested 28 Apr 2026 to 23 Oct 2026 | −25.4% | −6.5% | −18.9 pts | 638 | Lost money after costs |
| RSI(2) mean reversion | −32.4% | +71.8% | −104.2 pts | 1,301 | Lost money after costs |
| Stage 2 + Supertrend | −3.0% | +71.8% | −74.9 pts | 334 | Lost money after costs |
| Supertrend flip | +12.8% | +71.8% | −59.0 pts | 263 | Lost money on the unseen years |
United States
9 tests
Group: 20 of the largest US companies.
| Rule set | After costs | Passive | Difference | Trades | Checks |
|---|---|---|---|---|---|
| 20/50 EMA cross | +68.1% | +148.2% | −80.1 pts | 167 | 3 of 4 checks run · 2 passed |
| 52-week breakout with ATR stop | +30.1% | +148.2% | −118.0 pts | 148 | 3 of 4 checks run · 2 passed |
| Bollinger squeeze breakout | +15.2% | +148.2% | −132.9 pts | 210 | 3 of 4 checks run · 2 passed |
| Donchian 20/10 (turtle-style) | +82.2% | +148.2% | −66.0 pts | 373 | 3 of 4 checks run · 2 passed |
| Golden cross | +89.0% | +148.2% | −59.2 pts | 38 | 3 of 4 checks run · 2 passed |
| MACD signal cross | +39.5% | +148.2% | −108.7 pts | 622 | Lost money on the unseen years |
| RSI(2) mean reversion | +35.3% | +148.2% | −112.8 pts | 711 | 3 of 4 checks run · all 3 passed |
| Stage 2 + Supertrend | +38.1% | +148.2% | −110.1 pts | 230 | 3 of 4 checks run · 2 passed |
| Supertrend flip | +48.4% | +148.2% | −99.8 pts | 248 | 3 of 4 checks run · all 3 passed |
United Kingdom
3 tests
Group: 12 large UK companies.
| Rule set | After costs | Passive | Difference | Trades | Checks |
|---|---|---|---|---|---|
| Golden cross | +20.3% | +59.7% | −39.5 pts | 36 | 3 of 4 checks run · 2 passed |
| MACD signal cross | −6.0% | +59.7% | −65.7 pts | 339 | Lost money after costs |
| RSI(2) mean reversion | −22.7% | +59.7% | −82.4 pts | 369 | Lost money after costs |
Europe
3 tests
Group: 12 large European companies.
| Rule set | After costs | Passive | Difference | Trades | Checks |
|---|---|---|---|---|---|
| 20/50 EMA cross | +28.4% | +64.7% | −36.4 pts | 144 | 3 of 4 checks run · 2 passed |
| 52-week breakout with ATR stop | −4.6% | +64.7% | −69.3 pts | 98 | Lost money after costs |
| RSI(2) mean reversion | +8.1% | +64.7% | −56.6 pts | 410 | 3 of 4 checks run · 2 passed |
Japan
3 tests
Group: 12 large Japanese companies.
| Rule set | After costs | Passive | Difference | Trades | Checks |
|---|---|---|---|---|---|
| Donchian 20/10 (turtle-style) | +31.7% | +149.3% | −117.6 pts | 280 | 3 of 4 checks run · 2 passed |
| RSI(2) mean reversion | +7.9% | +149.3% | −141.3 pts | 426 | 3 of 4 checks run · 2 passed |
| Supertrend flip | +59.5% | +149.3% | −89.8 pts | 232 | 3 of 4 checks run · 2 passed |
Crypto
3 tests
Group: 10 large coins.
| Rule set | After costs | Passive | Difference | Trades | Checks |
|---|---|---|---|---|---|
| 20/50 EMA cross | +4.6% | −47.0% | +51.5 pts | 106 | Lost money on the unseen years |
| Bollinger band reversion | −52.1% | −47.0% | −5.1 pts | 361 | Lost money after costs |
| Donchian 20/10 (turtle-style) | +51.3% | −47.0% | +98.2 pts | 181 | Lost money on the unseen years |
Forex
3 tests
Group: 7 major currency pairs.
| Rule set | After costs | Passive | Difference | Trades | Checks |
|---|---|---|---|---|---|
| 20/50 EMA cross, long and short | −0.1% | +0.9% | −1.0 pts | 83 | Lost money after costs |
| Bollinger band reversion | −3.2% | +0.9% | −4.1 pts | 152 | Lost money after costs |
| Donchian 20/10 (turtle-style) | −3.5% | +0.9% | −4.5 pts | 113 | Lost money after costs |
Indian commodities
3 tests
Group: 7 MCX mini contracts (metals and energy).
| Rule set | After costs | Passive | Difference | Trades | Checks |
|---|---|---|---|---|---|
| 20/50 EMA cross | +30.0% | +84.1% | −54.1 pts | 52 | 3 of 4 checks run · 2 passed |
| Bollinger band reversion | −4.1% | +84.1% | −88.2 pts | 91 | Lost money after costs |
| Donchian 20/10 (turtle-style) | +9.1% | +84.1% | −74.9 pts | 123 | 3 of 4 checks run · 2 passed |
Indian currency futures
3 tests
Group: 4 rupee currency pairs.
| Rule set | After costs | Passive | Difference | Trades | Checks |
|---|---|---|---|---|---|
| 20/50 EMA cross, long and short | −1.0% | +0.5% | −1.5 pts | 19 | Lost money after costs |
| Bollinger band reversion | +1.7% | +0.5% | +1.1 pts | 32 | 3 of 4 checks run · all 3 passed |
| Donchian 20/10 (turtle-style) | −1.5% | +0.5% | −2.1 pts | 27 | Lost money after costs |
Global commodities
3 tests
Group: 14 global commodity futures.
| Rule set | After costs | Passive | Difference | Trades | Checks |
|---|---|---|---|---|---|
| Bollinger band reversion | −7.0% | +33.4% | −40.4 pts | 319 | Lost money after costs |
| Donchian 20/10 (turtle-style) | +0.5% | +33.4% | −33.0 pts | 334 | Mixed check results |
| Golden cross | +18.2% | +33.4% | −15.2 pts | 55 | Mixed check results |
The headline figures in words
- Against the passive return, after costs: ahead in 3 of 43 tests, behind in 40.
- 18 of the 43 tests that traded lost money after costs.
- Verdicts as the tests' checks gave them: 17 passed their checks, 2 with mixed check results, 6 that failed a robustness check, 18 that lost money after costs.
- Periods: tests run between 28 Oct 2021 and 26 Oct 2026; each table gives its own.
How these tests were run
- Data: daily candles from each market's public price data (exchange data for shares and futures, public price feeds for coins and currency pairs); the intraday rule set uses 15-minute candles. Each test covers about five years of daily candles, or what the market has.
- Each rule set runs on every instrument of its group as one pot of capital. Starting capital is 500,000 in the market's own money (more for Japan, Indian commodities and Indian currency futures, whose contracts cost more); a position risks 1% of capital and takes at most 10% of it, with a stop (an exit when the price falls a set distance) where the rule set has one.
- Costs: each market's own charges are applied to every order (in India brokerage, STT, exchange and SEBI fees, stamp duty and GST; in the US the SEC and FINRA fees; stamp duty in the UK; trading fees on coins; spreads on currency pairs and commodity futures), plus 0.05% slippage on every fill. Brokerage is a flat amount per order in the market's currency: 20 in India, none in the markets where trading is free.
- The four checks: unseen data (the period is split 70/30 and the last part is traded with fresh capital), nearby settings (indicator lengths nudged up and down; not run on a group of instruments), bad-luck drawdown (the order of the trades reshuffled 1,000 times) and enough trades (under 15 is too few to tell skill from luck, 30 or more is a fair sample).
- The rule sets, with their exact rules, are in the strategy library: Bollinger band reversion, Bollinger squeeze breakout, 52-week breakout with ATR stop, Donchian 20/10 (turtle-style), 20/50 EMA cross, 20/50 EMA cross, long and short, Golden cross, MACD signal cross, Opening-range breakout (intraday), RSI(2) mean reversion, Stage 2 + Supertrend, Supertrend flip.
Limits
- These are results on past prices. They say nothing about what a rule set will do next, and a check passed in the past is not a promise.
- The groups are each list's members on the day the test ran, so earlier years leave out companies that were dropped from a list before then, which can flatter older results.
- The passive return is the price return of the same instruments over the same dates. Dividends are not added in every market.
- One period per test: a different start date can change a result a lot, and a strategy that trades rarely is judged on few trades.
- Prices are the data sources' own and can differ from an exchange's final figures; coins, currency pairs and futures have no single official close.
Open the strategy library to read each rule set and its checks, or test your own idea on past prices.