Skip to content

View translation

UsLargeCapMaxLotteryDemandSkewPremiumLS

Hypotheses

US Large-Cap Lottery-Demand (MAX) Skew-Premium Harvest — Dollar-Neutral Cross-Sectional Long/Short Across 30 Sector-Diverse USEQ Single Stocks, Vol-Scaled MAX Ranking, 21-Session Rebalance on DAILY Bars (2 core parameters + 1 blow-up stop)

Hypotheses

A DOLLAR-NEUTRAL, LONG-SHORT, CROSS-SECTIONAL single-stock strategy on the commission-free USEQ venue, built on the lottery-demand / preference-for-positive-skewness anomaly (Bali-Cakici-Whitelaw 'MAX effect'), NOT on momentum, not on cumulative-return reversal, and not on ETF regime rotation. Every 21 trading sessions the strategy ranks a FIXED universe of 30 sector-diverse, pre-1992-listed S&P large caps by their VOL-SCALED MAX score: the average of the two largest single-day returns over the trailing 21 sessions, divided by that stock's own 21-session return volatility. Stocks that have just printed outsized single-day pops relative to their own noise level are the ones retail/lottery demand crowds into; they are the systematic UNDERPERFORMERS of the next month. The book goes SHORT the 5 highest-score names and LONG the 5 lowest-score (boring, no-jackpot) names, equal-weighted, ~8% of equity notional per name (gross ~80%, net ~0). Dividing MAX by the stock's own vol is what makes this a pure SKEWNESS bet rather than a disguised short-high-beta bet: both books end up with similar realized vol, so the strategy is not simply short beta the way a raw-MAX or low-vol sleeve would be. Why this framing and not another crypto momentum re-skin: (1) it lives on the ONE venue where the factory's #1 killer does not exist — USEQ charges ZERO commission (~0.02-0.05% round-trip spread+impact on these mega-caps) against a per-position expectancy measured in whole percent, so the 489 fee_edge deaths do not apply; (2) it uses the freshest instrument estate we own — 30 individual S&P names with 30+ years of split-adjusted daily bars each, none of them BTC; (3) it is BREADTH-driven, which is precisely what the dead USEQ family (L99: daily ETF macro/regime rotation) lacked — those died overfit on 35-77 rebalances of a single macro timeline, whereas this produces ~10 independent cross-sectional bets per rebalance, ~120/year, several thousand over the available history, so walk-forward windows and the holdout all carry real trade counts; (4) the mechanism is a documented BEHAVIORAL preference (investors overpay for jackpot-shaped payoffs), not a curve-fitted price pattern. Explicitly distinguished from the abandoned 'US Large-Cap Short-Term Reversal, weekly, ~20 names': that one ranked on CUMULATIVE past-week return (a liquidity-provision/reversal bet, weekly turnover), this ranks on the TAIL of the return distribution (the two biggest single-day prints), normalizes by idiosyncratic vol, and holds a full month. The ranking vectors are only weakly correlated — a stock can be flat on the month and still be top-ranked here if it jumped 9% on one day, and a steadily-drifting-down stock that never popped is a LONG here but would be a long in a reversal book too only by coincidence.

Hypotheses

Iteration 7 targets exactly the reported failure - 'metrics unreliable: Sharpe 0.04 disagrees in sign with total_return -17.23% - the Sharpe is computed from the mtm_equity_curve while the return comes from the equity curve'. The structural cause was that a leg which kept its bucket across consecutive rebalances was never closed: its PnL sat permanently in the mark-to-market series and never landed in the realized equity curve, so the two curves drifted apart across a 31.5-year run and could disagree in sign. The rotation is now FULL-BOOK: at each calendar period boundary every held leg is closed, and the new target book is established only once the book is completely flat. PnL is fully realized once per period so the two series re-converge at every boundary, and because the entire book goes at once the intermediate state is flat (net zero), never an unpaired directional stub. Nothing else changed - the vol-scaled MAX ranking, the calendar-anchored schedule, the equal-dollar whole-share sizing, the gross cap and the blow-up stop are byte-for-byte the logic that passed Layers 1-3. Honest assessment (recommendation: abandon). This fixes metric coherence, not the edge. Judged on the equity curve as the gate instructs, five completed backtests on this panel (~4,600 trades each) all lose and they bracket the parameter space rather than repeat one point: 30 names @ gross 0.90 -> -51.0% (PF 0.92); 20 names @ gross 0.45 -> -38.9% (PF 0.91); 30 names @ gross 0.45 -> -8.4% (PF 0.986); rotation-lag fix -> -17.8% (PF 0.967); iteration 6 -> -17.2%. Loss scales linearly with gross while win rate stays pinned at 50.4-51.3% and PF stays below 1 - the signature of zero drift, not of an execution bug. The iteration-3 pre-cost grid (108 configurations run directly on the catalog's daily panel, no fees/stop/impact) is negative post-2013 and negative on the holdout slice for every denominator variant, every vol window and every n_side x hold combination, and the coded configuration is already the grid's best point - so no parameter or code change can create drift that is not in the data. The MAX premium is real but lives in small, low-priced, high-idiosyncratic-vol names; on a 30-name mega-cap panel it is arbitraged out.

Hypotheses

coding_stuck_3_timeouts

Implementation

Dollar-neutral cross-sectional long/short over a fixed 30-name, sector-diverse panel of pre-1992-listed US large caps on the commission-free USEQ venue, traded on DAILY bars. Every ~21 sessions (calendar-anchored 30-day period index taken from the bar timestamp) each name is scored by its VOL-SCALED MAX statistic - the mean of its 3 largest single-day returns over the trailing 21 sessions divided by that name's own 21-session return volatility. The book goes SHORT the 5 highest scores (crowded lottery tickets) and LONG the 5 lowest (no-jackpot names), equal dollar weight, gross capped at 45% of equity, unlevered, net ~0. Rotation is full-book: at each period boundary every held leg is closed and the fresh book is established only once the book is flat, so PnL is realized once per period and exposure between rebalances is binary (full paired book or flat). A single blow-up stop: if any leg's unrealized loss exceeds 25%, the ENTIRE book is flattened until the next rebalance.

Verification Results

sandbox_timeout: Verification failed (Layer 3 — sandbox backtest): smoke test exceeded the 300s wall-clock limit on a ~20000-bar window (2400 days of AAPL.USEQ-1-DAY-LAST-EXTERNAL). This almost always means per-bar work that scales with history — e.g. rescanning the full funding/supplementary series, or rebuilding a list and calling min()/sorted() inside calculate_signal()/on_bar() on every bar. Precompute sorted timestamp arrays ONCE in __init__ and use bisect, or cache lookups keyed by timestamp, so per-bar cost is O(log n) not O(n).

Verification Results

Set n_max=2, or record the deviation so the analyst does not score a MAX(3) result against a MAX(2) prediction.

Verification Results

Hypothesis pre-registers MAX as the mean of the TWO largest daily returns; code defaults n_max=3. Structure (mean of k largest / own-vol) matches and n_max is bounded [1,5], so it is a magnitude deviation, but the tested statistic is not the pre-registered one.

Verification Results

State the de-risking in run metadata or restore gross_cap=0.90.

Verification Results

Sizing is half the stated book: hypothesis ~8%/name and gross ~80%; code per_name_pct 0.04 with gross_cap 0.45 gives ~4%/leg, gross ~45%. Structure (equal-dollar, dollar-neutral, unlevered) is correct, but returns/drawdowns are not comparable to the pre-registered numbers.

Verification Results

Log/count dropped legs; if long-leg count != short-leg count after _execute, flatten rather than run unpaired.

Verification Results

Entry submission is wrapped in a bare `except Exception: pass`, and legs sizing to 0 shares are silently skipped — either drops one side of a paired book with no log, leaving the 'dollar-neutral' book net-directional until the next rebalance (the exact defect class iterations 4 and 6 chased).

Verification Results

Un-enrol a leg stale for more than N primary bars and rank on remaining breadth, logging the drop.

Verification Results

Lazy alignment-barrier enrolment is one-way — an enrolled leg is never removed, so if any one of the 30 names stops delivering bars (tail gap, rename, delisting) the primary blocks forever and the strategy silently stops trading.

Verification Results

Acceptable as-is (bounded, documented); if sign-disagreement in metrics recurs, close+open the flip in one netting order.

Verification Results

Sign-flipping legs are flattened on the rebalance bar and entered only next session, so each rebalance carries a one-session lag and a briefly unbalanced leg count.

Verification Results

Correctness is fine; the EDGE is the problem and the analyst should treat this as a likely abandon. Sandbox PF 0.959, Sharpe -0.10, avg_trade_return_pct -0.103% on 679 positions — negative before USEQ's ~0.02-0.05% round-trip even matters, so this is a no-drift problem, not a cost problem. Win rate 50.5% is a coin flip and the long 55.7% / short 45.0% split is exactly what a dollar-neutral book in a drifting market prints with zero cross-sectional alpha. The developer's five full-history runs (31.5y, ~4,600 trades) are all PF<1 with loss scaling linearly in gross (0.90 -> -51.0%, 0.45 -> -8.4%/-17.8%) while win rate stays 50.4-51.3% — the signature of zero drift, not a plumbing bug. Most decisive: their iteration-3 108-configuration PRE-COST grid is negative post-2013 and negative on the holdout for every denominator variant, vol window and n_side x hold pair, and the coded configuration is already the grid's best point. Also structural: the 30-name panel is survivorship-selected ('pre-1992-listed and still alive in 2026'), and the MAX premium is documented in small, low-priced, high-idio-vol names — a mega-cap panel is where it is most plausibly arbitraged out. First check at backtest review: whether the pre-cost top5-minus-bottom5 next-month spread is positive anywhere in full history; if not, abandon rather than optimize.

Analysis

Backtest gate: - metrics unreliable: Incoherent: Sharpe 0.04 disagrees in sign with total_return -17.23% — the Sharpe is computed from the mtm_equity_curve series while the return comes from the equity curve. Judge on the equity curve.

Outcome Summary

UsLargeCapMaxLotteryDemandSkewPremiu-114c2d8fb0

Outcome Summary

The strategy proposed a dollar-neutral long/short book on 30 USEQ large caps ranked by a vol-scaled MAX score, betting that stocks with recent jackpot-shaped single-day pops underperform over the following month, on the commission-free venue where the factory's usual fee-edge killer does not apply. Across 8 iterations the developer reworked the rotation logic — most recently converting to a full-book rotation so the realized equity curve and the mark-to-market series would reconcile — but the code itself records five prior backtests on the 31.5-year panel, every one with a profit factor below 1 and a coin-flip win rate, plus a 108-configuration pre-cost grid that was negative in every denominator, vol-window and n_side/hold variant. This run produced no backtest report of its own and was terminated at the coding stage after three consecutive timeouts, so backtest review, optimization, analyst and risk review never ran. The developer's own recommendation in the final code was ABANDON, on the grounds that the lottery-demand premium is arbitraged out of heavily institutionally-owned mega caps.

Outcome Summary

A behavioral anomaly documented in small, low-priced, high-idiosyncratic-vol names does not survive transplant onto a 30-name mega-cap panel — and when a pre-cost parameter grid is negative everywhere, further coding iterations only burn timeouts.

Outcome Summary

The run was abandoned at the coding stage with reason 'coding_stuck_3_timeouts' after 8 iterations, so backtest review, analyst and risk review were never reached; the developer's own iteration-7 notes had already recommended abandonment after a 108-configuration pre-cost grid came out negative post-2013 and on the holdout slice.

Outcome Summary

Harvest the lottery-demand / MAX skew premium by running a dollar-neutral cross-sectional long/short book on 30 sector-diverse USEQ large caps, shorting the 5 highest and buying the 5 lowest vol-scaled MAX scores on a 21-session rebalance of daily bars.

Outcome Summary

No backtest report was produced for this run and optimization never ran, so there are no validated pipeline metrics; the strategy's own code notes five earlier completed backtests on the same 31.5-year panel (~4,600 trades each) that all lost money — -51.0% (PF 0.92), -38.9% (PF 0.91), -8.4% (PF 0.986), -17.8% (PF 0.967) and -17.2% — with win rate pinned at 50.4-51.3%.
Strategy report

Backtest and paper results are hypothetical. Trading involves risk of loss.