Do not trade. The edge does not survive out-of-sample + costs.
A classic Donchian channel breakout strategy. It calculates the highest and lowest close over the past 20 bars (explicitly excluding the current bar via [1] offset). When the current close exceeds the prior 20-bar high it enters long; when it falls below the prior 20-bar low it enters short. It holds the position until the opposite signal fires, making it a trend-following system suited to trending market regimes.
| Metric | Original | Improved +none+flat ★ |
|---|---|---|
| OOS Sharpe | -0.045 | -0.045 |
| Stress Sharpe (3x cost) | -0.149 | -0.149 |
| Ann return | -0.7% | -0.7% |
| Max drawdown | -34.9% | -34.9% |
| Ann turnover | 14.9 | 14.9 |
| PSR (P[Sharpe>0]) | 0.453 | 0.453 |
| Bootstrap p(mean<=0) | 0.554 | 0.554 |
Recommended: improved — OOS Sharpe -0.045, PSR 0.453, bootstrap p 0.554.
| Asset | Sharpe | Stress |
|---|---|---|
| SPY | 0.55 | 0.42 |
| QQQ | 0.94 | 0.85 |
| IWM | -0.14 | -0.20 |
| EEM | -0.02 | -0.10 |
| EWZ | 0.25 | 0.21 |
| GLD | -0.05 | -0.15 |
| AAPL | 0.61 | 0.55 |
| MSFT | 0.71 | 0.63 |
| Timeframe | Sharpe | Stress |
|---|---|---|
| D | -0.05 | -0.15 |
| W | 0.63 | 0.62 |
| M | 0.27 | 0.26 |
Out-of-sample, net of cost. PSR / bootstrap / stress-test robustness is what a TradingView backtest cannot show. Not investment advice.