Strategies
Perp-Discount Spot Accumulation Rotation: Long-Only BINANCE_SPOT on the Alts Whose USD-M Perp Trades at the Deepest Persistent Discount to Spot (10-Alt Universe, Daily Bars, Weekly Rebalance, Perp Bars Signal-Only)
Outcome: Abandoned
PerpDiscountSpotAccumulationRotation
Outcome Summary
PerpDiscountSpotAccumulationRotation used the perp-vs-spot basis on 10 alts as a signal-only input to a weekly long-only spot rotation, gated by a 50-day SMA trend filter. Its initial backtest looked strong (Sharpe 1.30, 7.82% average trade, 191 trades), so the backtest review sent it to optimization despite a 44.5% drawdown. Walk-forward results were erratic (OOS Sharpe mean about 0.52, 4 of 10 windows negative, IS/OOS about 7.8x), and the strategy underperformed the equal-weight alt basket (IR -0.27). After 2 iterations, the analyst abandoned it for breaching its own 35% drawdown limit, uneven yearly results, and no evidence that basis selection added value.
Hypothesis
This adds to under-represented buckets: cross-venue (7.5% against a target of at least 15%), BINANCE_SPOT (11% against at least 15%) and multi-instrument, and it avoids BTC/ETH. Long-only is already over-represented, but spot can only go long and spot has the best survival rate (L192). Leverage is left out of the plan because the venue caps spot at 1x. There are only two tunable parameters, to limit overfitting.
Low statistical significance alone would only make this inconclusive. It is abandoned for three measured failures that a low-confidence paper slot cannot waive. (1) It breaks its declared risk limit: max drawdown 44.5% against the pre-registered 35%, and no robust parameter region in the nested search stays under it. (2) Results are not consistent across years: 3 of 6 calendar years are positive, and 2021 carries 78% of the profit. (3) The premise's central claim does not show up: information ratio is -0.27 against the equal-weight alt basket, and the alpha comes from the SMA cash filter, not from basis selection. Walk-forward OOS is erratic: mean about 0.52, 4 of 10 windows negative, IS/OOS about 7.8x. Fees are not the problem (7.82% against the 0.25% floor). Code: overfit / premise not supported. No QA edge concern was filed.
Implementation
Long-only, unleveraged BINANCE_SPOT weekly rotation over 10 alts (SOL, ADA, AVAX, LINK, DOGE, XRP, DOT, LTC, ATOM, NEAR). Daily same-timestamp basis = perp_close/spot_close - 1 from USD-M perp bars (signal-only). Every 7 calendar days (days_since_epoch % 7 == 0), rank by mean basis over basis_lookback_days, hold the top_n deepest-discount coins that are above their 50-day spot SMA, equal-weight at 0.98/top_n of portfolio value, with 25% drift tolerance on held names and a -15% catastrophic stop on the daily close.
Iteration 2 fix for Layer 1.5: top_n is a categorical domain {2,3,4} in the optimization_plan, and the platform rejects any _param_bounds entry for a categorical parameter. Removed top_n from _param_bounds and dropped its code clamp (all three choices are used as given). basis_lookback_days keeps its declared [3,14] bounds, which match the plan. Fixed values (stop_pct 0.15, rebalance_days 7, trend_sma_days 50, drift_rebalance_tolerance 0.25) are unchanged and match the plan's types. The strategy logic is otherwise identical.
Verification Results
None required. An intrabar stop would be a change to the hypothesis.
The catastrophic stop is checked on the daily close, and the exit is a market order at that close. A gap through -15% fills worse than the stop. This matches the hypothesis ('-15% catastrophic stop on the daily close'), so it is informational only.
No code change. The analyst should check that the metric's exposure definition matches.
Reported exposure_pct is 123.8%, but the sizing logic cannot exceed 100% gross. Per-leg target = equity*0.98/top_n, and every buy is capped at the running USDT cash after an estimated 0.3% fee buffer, with sales booked before buys. The figure is most likely a metric artifact from same-bar sell-then-buy legs being counted together. It is not a sizing defect.
Sandbox result: +1736% over 1624 days with Sharpe 1.30 and PF 1.43 on 191 closed spot legs, at an average of +7.8% per leg. But daily returns have skew 5.1 and kurtosis 81, max drawdown is 44% (CI up to 73%), and the drawdown lasted 668 days. That pattern suggests the result comes from a few huge alt-season wins (largest win $831k against a mean of $18k), probably SOL/NEAR/AVAX in 2021, not a steady basis edge. The information ratio against the equal-weight basket is -0.27, so over this window the basket itself beat the strategy. Stress windows are mostly negative or flat. The full backtest should check: (1) PnL with the top 5 trades removed; (2) the IC of the basis rank on 7-day forward relative return; (3) the result without the 50-day SMA filter, to separate the basis signal from trend-following beta. exposure_pct is reported as 123.8% on a CASH account whose gross is capped at 0.98. This is probably same-bar exit/entry overlap in the metric, but it is worth a look.
Backtest Review
- Sharpe
- 1.30
- Total return
- 1736.40%
- Max drawdown
- 44.48%
- Trades
- 191
- Win rate
- 42.9%
- Profit factor
- 1.43
Functioning weekly rotation: 191 closed positions across 117 distinct entry dates over 1624 days; all trades are long spot legs, consistent with the intended direction and signal-only perps.
Net average trade return 7.823% comfortably exceeds the 0.25% spot review floor; PF 1.430 and Sharpe 1.302 justify evaluating the registered two-parameter search.
Removing the five largest dollar winners leaves +$379,319 in recorded closed-trade PnL. This is a descriptive subtraction, not a counterfactual compounded backtest.
QA's concentration concern is partly confirmed: the five largest winners contribute 89.1% of closed-trade PnL. Four occurred in 2024, so attribution primarily to 2021 is unsupported.
Drawdown is 44.48% versus the registered 35% constraint. This needs attention during optimization but does not alone justify abandonment at initial review.
Exposure of 123.8% needs reconciliation against actual simultaneous holdings and the 98% target; its cause is unverified.
The reported IC 0.145 (t=2.21) measures the executed primary forecast, not the requested cross-sectional discount-rank prediction of relative returns. Basis attribution remains unproven.
Reported information ratio is -0.271 despite positive alpha. Benchmark normalization and matched dates need verification before concluding basket underperformance.
Analysis
Real fee headroom: avg_trade_return_pct is 7.82% against the 0.25% BINANCE_SPOT floor. Commissions are 2.4% of gross, impact is 5.8% of gross, and capacity is about $29M.
No sensitivity cliffs: Sharpe stays between 1.26 and 1.70 across top_n {2,3,4} x lookback {6,7,8}. The 3.90 at top_n=4, lookback=8 is a single outlier, not a plateau.
The executed signal has an IC of 0.145 (t=2.2).
Trades match the hypothesis: long-only spot, perps used only as a signal, weekly rotation, 191 closed legs, end_unrealized_pct 0.
Walk-forward OOS Sharpe by window is 2.07, 0.59, -2.45, 0.65, -0.47, 2.29, -0.34, -1.32, 3.25 and 0.88. The mean is about 0.52 and 4 of the 10 windows are negative. In-sample Sharpe is about 4.0, so IS/OOS is about 7.8x, above the 3.0 threshold. HAC significance is inconclusive.
Max drawdown is 44.5%, above the hypothesis's own pre-registered 35%. The longest drawdown lasted 668 days. In almost every window the inner search rejected candidates with drawdowns of 36-51%.
Only 3 of 6 calendar years are positive. That floor becomes HARD after the soak, so I treat it as hard. 2021 carries 78% of the profit.
Information ratio is -0.27 against the equal-weight 10-alt basket. The alpha comes from the 50-day SMA cash filter avoiding the 2022 bear market, not from the basis ranking.
Missed its own predictions: 191 trades vs 200, win rate 0.429 vs 0.45, drawdown 44.5% vs a 35% maximum.
The basis signal read about -280 bps during FTX (Nov 2022). That is a stress dislocation, not short crowding.
Reporting oddities flagged for review, not decisive: exposure_pct is 123.8% and avg_holding_bars is 0.0.
marginal / HAC inconclusive
Iteration History
Verification failed (Layer 1.5 — hypothesis/config consistency) [class=hypothesis_mismatch]: - optimization_plan bounds for top_n differ from strategy bounds
Outcome Summary
Before crediting a filtered rotation's alpha to its ranking signal, check it against the equal-weight universe basket and an SMA-filter-only baseline, because here the trend filter that avoided the 2022 bear market drove the returns.
The backtest review said 'optimize', but the post-optimization analyst verdict was 'abandon' on three failures: the 44.5% drawdown broke the pre-registered 35% limit, results were inconsistent across years (3 of 6 positive, 78% of profit in 2021), and the alpha came from the SMA cash filter rather than the basis ranking. Fees were not the issue.
A long-only, unleveraged BINANCE_SPOT weekly rotation across 10 alts that held the top_n coins whose USD-M perp traded at the deepest persistent discount to spot, but only if spot was above its 50-day SMA, on the thesis that crowded leveraged shorts unwind over days to weeks.
The initial backtest (Oct 2020 to Mar 2025) returned 1736% total with Sharpe 1.30, profit factor 1.43 and 191 closed trades averaging 7.82% per trade, but max drawdown was 44.5% and the information ratio against the equal-weight alt basket was -0.27. After optimization, walk-forward OOS Sharpe averaged about 0.52 across 10 windows, 4 of them negative, with an IS/OOS ratio of about 7.8x.
Backtest and paper results are hypothetical. Trading involves risk of loss.