Strategies
ETH Bybit Daily Time-Series Momentum, Long-Short with Inverse-Vol Sizing and Chandelier Exit (Single-Instrument ETHUSDT.BYBIT Perp, DAILY Bars, Sign of ~50-Day Trailing Return, Vol-Scaled Size, 3-Parameter) — Venue-Diversification of the Factory's One Surviving Mechanism onto a Deep-Liquidity Major on the Empty Bybit Venue
Outcome: Abandoned
EthBybitDailyTsmomInverseVolChandelierLS
Outcome Summary
Hypothesis
Iteration 2 fixes ONLY the reported leverage_set_but_unused failure: previously leverage was used merely as an exposure CAP (max_exposure), so with target_daily_vol/realized_vol rarely exceeding 1.0 the notional never consumed the extra margin and the backtest was identical to 1x. position_size() now reads self.config.leverage explicitly and sizes notional = equity * inverse_vol_fraction * leverage, with the inverse-vol fraction clamped to [min_exposure, max_exposure_frac=1.0]. Everything that already passed Layers 1-2 is unchanged: identical imports, class structure, continuous t-stat signal, deadband entries, Chandelier + momentum-flip exits, three tuned parameters.
Implementation
Long-short daily time-series momentum on ETHUSDT.BYBIT linear perp. Signal = ~50-day trailing log return normalised by trailing realized-vol scale (a continuous momentum t-stat, computed every bar). Entry when |t| exceeds a deadband; size = inverse-vol equity fraction (target daily vol / 20d realized vol, clamped) multiplied by the configured 1.5x leverage; exit on a Chandelier trailing stop (22-bar extreme -/+ 3*ATR) or a confirmed momentum flip that lets the book stop-and-reverse.
Verification Results
If the base template intends min_bars_required to be overridable (typical for these strategies), no action needed. Otherwise rename to a strategy-private helper and feed it into whatever the base uses.
min_bars_required(self) overrides a framework method (base_shadow static warning). The override returns max(51,21,23,22,20)=51, which is a sane warmup for a 50-day lookback, so behavior is correct — but confirm the base template honors the override rather than its own default for warmup gating.
No change required; note that the inverse-vol sizing only bites when realized vol exceeds target (de-risking), not when it is below target (capped).
Inverse-vol fraction is clamped at max_exposure_frac=1.0 and then multiplied by leverage 1.5, so in calm regimes (target_daily_vol/realized_vol >= 1.0) the position is effectively a flat 1.5x-equity notional rather than continuously vol-scaled. avg_position_pct 109% is consistent with this. This is a reasonable structural choice and matches the hypothesis's 'clamped inverse-vol' language, not a defect.
Sandbox shows a faithful but fragile edge: profit_factor only 1.07 and Sharpe 0.47 with CI [-0.40, 1.25] straddling zero, and regime attribution is heavily concentrated — the book LOSES in both the calm (-62%) and stressed (-71%) vol terciles and makes ALL of its money in the 'normal' tercile (+1017%, only_one_regime=true). Max drawdown 81.6% with a 1521-day underwater duration. Per-trade return (0.29%) clears the Bybit round-trip and capacity ($5.5M, impact 13.5%) confirms the venue-diversification thesis (fixes the prior ATOM impact/capacity death), but the analyst should weigh whether a single-regime TSMOM edge on one asset survives full-history optimization before promoting. Advisory only.
Backtest Review
- Sharpe
- 0.47
- Total return
- 24.05%
- Max drawdown
- 81.63%
- Trades
- 190
- Win rate
- 40.5%
- Profit factor
- 1.01
Faithful implementation: 190 signaled = 190 submitted, balanced 89 long / 101 short, no drop diagnostics — a fair test of the mechanism.
Decisive sample: 190 trades over 2000 days (5.5 years), metrics_reliable=true.
Nominal avg_trade_return_pct 0.293% clears the Bybit round-trip on paper.
The venue-diversification THESIS is falsified on full history: impact_cost_pct is 66.2% (not the sandbox's 13.5%) and capacity_usd is only $227,945 (not $5.5M) — the exact ATOM-Bybit impact/capacity death this hypothesis claimed to fix. Impact consumes two-thirds of gross PnL, so the edge is real only at toy scale.
profit_factor 1.0056 sits at breakeven inside the [0.85,1.10] fee/impact-drag band (L18) — gross edge barely exists once impact is folded in.
Sharpe 0.470 with CI [-0.426, 1.196] straddling zero; Sortino 0.70, information_ratio -0.09 (negative alpha vs the risk taken).
max_drawdown 81.6% with a 1521-day (4.2-year) underwater duration; recovery_factor 0.02, Calmar 0.004 — far past the L19 >50% hard-abandon line.
only_one_regime=true: loses in calm (-62%) and stressed (-71%) terciles, all profit from the normal tercile (+1014%); QA's single-regime concern borne out.
Loses in 4 of 6 calendar years (2021 -41%, 2022 -34%, 2023 -41%, 2024 -17%); headline total_return is leverage/MTM concentrated in a handful of huge daily prints (e.g. 2024-12-20 +226%, 2025-04-24 +130%).
Single-name OHLCV momentum clone (L93) sitting far below the only surviving tier (PF>=2.0, Sharpe>=1.5, DD<20%).
Iteration History
Verification failed (leverage_set_but_unused): config sets leverage=1.5 but the strategy never references leverage in sizing. Size positions on it — notional = equity * fraction * leverage / price (read self.config.leverage) — or set leverage=1.0. As written the leverage is inert and the backtest is identical to 1x.
Outcome Summary
Moving a proven mechanism to a nominally deeper venue does not guarantee tradeable capacity — flattering sandbox impact/capacity figures must be confirmed on full history before claiming an impact problem is solved, and a PF~1.0 single-name TSMOM clone whose edge is already eaten by impact cannot be rescued by tuning three parameters.
Abandoned at the pre-optimization backtest-review gate: the analyst ruled it cost-fragile with no deployable edge, since profit_factor sat at breakeven, impact ate two-thirds of gross PnL (>50% hard line) and capacity collapsed to ~$228k — falsifying the venue-diversification thesis on full history rather than showing it tunable.
A long-short daily time-series momentum strategy on ETHUSDT.BYBIT perps, sizing inversely to realized vol with a Chandelier trailing stop, deliberately moved onto the deep-liquidity ETH major on the near-unused Bybit venue to escape the impact/capacity death that killed a prior thin-instrument Bybit clone.
Over a 190-trade, 5.5-year backtest (2021-2026) it returned a nominal avg_trade_return_pct of 0.293% but a Sharpe of only 0.470 (CI [-0.426, 1.196]) and profit_factor 1.0056, with an 81.6% max drawdown and a 1521-day underwater stretch. Impact costs consumed 66.2% of gross PnL and capacity was only ~$228k, and it lost money in 4 of 6 calendar years and in both the calm and stressed vol regimes.
Backtest and paper results are hypothetical. Trading involves risk of loss.