When a new Bybit perp’s launch-day pump exhausts (volatility contraction + breakdown below VWAP/EMA50), short it. The condition-based version nets +17.4% expectancy/trade, PF 2.73, 73% win rate over 30 trades, with 98.9% MC P(exp>0) — but only on crypto-native perps, ~2.5 trades/month.
The naive “short at day 7, hold 90 days” version raw-works (+28% avg, 82% WR over 90d) but every trade suffers 10–15%+ adverse excursion — any realistic stop erases the edge. The condition-based version (short only after the pump shows volatility contraction + breakdown below VWAP/EMA50, launch-to-date return >+30%) fixes it: +17.4% expectancy/trade, PF 2.73, 73.3% WR, stable across walk-forward splits (+17.4–17.6%), 98.9% MC P(exp>0).
Key boundary: the short edge exists only on crypto-native perps — stock-ETF perps (AAPL, TSLA, NVDA, QQQ…) trend up post-listing and shorting them loses money. With ~2.5 trades/month it is a low-frequency overlay, not a core strategy; the small sample (30 trades) and fat-tailed MAE (avg 32.6%) remain the honest risks.
New Bybit perps have market makers contractually obliged to provide liquidity (commonly 7-day TWAP over ~90 days). When the obligation ends, MMs withdraw → price/volume should drop.
Stock-ETF perps (2026 wave) trend up — shorting loses (−0.9% d7→14, −1.8% d7→30). The edge exists only on crypto-native perps.
Every trade sees adverse movement (median 15–20%, many >50%). At a 10% stop expectancy goes negative; only a 30% stop keeps +6.5%. Time-based entry cannot be risk-managed.
Launch-day pumps predict continuation, not reversal (day-0 >+10% → +51% avg over next 7 days). The fade only works AFTER the pump exhausts.
| Condition | Rule | Why |
|---|---|---|
| Volatility contraction | ATR(14) < SMA(ATR, 20) | The pump's volatility is dying |
| Below value | Close < prior-day VWAP (typical price) | Price no longer above value |
| Below trend | Close < EMA50 | Medium-term trend has turned down |
| Confirmed pump | Launch-to-date return > +30% | There IS a pump to exhaust |
| Execution | Short next day's open · stop entry + 3.0×ATR(14) trailing · max hold 30 days · 1 trade/symbol | — |
| Metric | Value | Note |
|---|---|---|
| Trades | 30 | ≈2.5/month over the studied window |
| Win rate | 73.3% | — |
| Expectancy / trade | +17.41% | +17.20% after fees |
| Profit factor | 2.73× | 2.70× after fees |
| Avg win / loss | +37.44% / −37.69% | Symmetrical fat tails; median +26.9% |
| Avg MAE / stop-hit | 32.6% / 16.7% | The MAE problem — needs the trailing stop |
| Monte Carlo (10k) | P(exp>0) = 98.9% | P(exp>5%) = 95.3% · P(exp>10%) = 84.5% |
349 new USDT perps listed in the last 365 days; 321 with ≥14 days history; daily OHLCV + turnover from Bybit public REST; split into 162 crypto-native vs 109 stock-ETF.
10k Monte Carlo (98.9% P(exp>0)); walk-forward 60/40, 70/30, 80/20 splits with stable expectancy (+17.4–17.6%); fees applied (+17.2% net).
Crypto-native only, age >50 days, exclude stock-ETF; run as signal-only overlay; the repo's full list is in the README.
Small sample (30 trades), fat-tailed MAE, listing-venue regime changes (the 2026 stock-ETF wave behaved differently).
python scripts/fetch_listings.py # pull new listings + OHLCV
python scripts/backtest_optimal.py # condition-based short backtest
python scripts/montecarlo.py # 10k sims