Skip to content

View original

EthCmUsSessionCarryOverLS

Hypotheses

ETH COIN-M US-Session Return Carry-Over, Long-Short (ETHUSD_PERP.BINANCE_CM, Hourly Bars — Take the SIGN of the US-Session Move and Hold It Overnight; Pure Time-of-Day Seasonality, No Supplementary Feed, 2-Parameter)

Hypotheses

A LONG-SHORT, single-instrument directional strategy on the ETH-margined COIN-M inverse perpetual (ETHUSD_PERP.BINANCE_CM) driven by an intraday CALENDAR/SEASONALITY effect rather than by any of the exhausted mechanisms in the failure log. It deliberately fills the two most under-represented, lowest-risk buckets available: BINANCE_CM venue (3.4% vs 5% target, and only 0.06% round-trip taker cost so the per-trade edge floor is 0.10%, not 0.15%) and long-short direction (13.1% vs push-toward target). The idea is NOT a price-move gated by a non-price feed (L46 exhausted), NOT a momentum-confluence clone (L38), NOT a portfolio-construction basket (L48), NOT a cross-venue basis/liquidation edge (L47 data_unavailable), and NOT an options structure (the BINANCE_OPTIONS/DERIBIT engine graveyard). It uses OHLCV hourly bars ONLY — the no_supplementary_data tag family has the single best survival rate (3%). Core observation: crypto's trading day is not uniform. The US session (13:00–21:00 UTC) carries the heaviest institutional / ETF-linked flow, and its net directional impulse has documented positive continuation into the overnight/Asia window, whereas the Asia/EU sessions are comparatively mean-reverting noise. We measure ONE thing — the sign and magnitude of the US-session return — and take a position in that direction, holding overnight until the next US session opens.

Hypotheses

Implements the hypothesis exactly and only it: ONE measurement (the sign and magnitude of the US-session 13:00-21:00 UTC return) drives a same-direction overnight carry, with no supplementary feed, no confluence filters, and no cross-venue legs. All schedule logic is anchored to CALENDAR time derived from bar.ts_init (UTC hour-of-day and day index), never to a process-relative bar counter, so the schedule is identical across restarts, backtests and paper replay. Binance klines are stamped at OPEN time (verified in the collector and catalog), so the bar CLOSING at hour H carries timestamp hour H-1 — the code derives its reference/entry bar hours from the session parameters accordingly. calculate_signal returns a CONTINUOUS running return since the latched reference in natural fractional units every bar (never a gated constant); the once-a-day calendar gate lives in should_enter and is thresholded in the same units. A first-bar bootstrap reference keeps the signal live from bar one but is flagged not-a-session-reference so it can never trigger an entry. Venue is BINANCE_CM per the hypothesis: the strategy is genuinely long-short (shorts require a MARGIN venue) and COIN-M's ~0.10% round-trip taker on a ~0.4%+ session impulse leaves per-trade headroom; ETHUSD_PERP.BINANCE_CM-1-HOUR data is confirmed present in the catalog. Inverse sizing uses contracts_for_notional (whole $10-face contracts) rather than the linear equity/price formula — ~$50k notional is ~5000 contracts, far above min notional, so zero-trade/min-notional failure is not a risk. Entry frequency is one opportunity per day with a threshold that a typical 8-hour ETH session clears well over half the time (~150-250 trades/year), so the Layer-3 window cannot come up empty. leverage stays 1.0 — exposure never exceeds 0.6x equity — and per-trade risk is capped at 1.5% of equity by the stop, so no compounding blow-up path exists. Two tunable parameters (entry_threshold, stop_loss_pct) with clamps mirrored in _param_bounds so the optimizer never searches values the code silently rewrites.

Hypotheses

Falsified seasonality premise plus a total blow-up — not optimizable. The account LIQUIDATED on 2024-02-28 (total_return -100%, max_drawdown 100%), ~3.5 years into the window. The US-session return carry-over edge is not merely weak but negative in every year (2021 -37%, 2022 -38%, 2023 -21%, 2024 -13% into liquidation), with win_rate 14.3%, profit_factor 0.75, avg_trade_return_pct -0.142% (net negative), expectancy -$71/trade over 1,017 trades, and 35 consecutive losses — the continuation premise is the wrong sign and both legs lose. This is compounded by a catastrophic risk profile (avg_position_pct 91%, annualized_volatility 147%, kurtosis 297, stressed tercile -100%) and heavy costs (commission 23.7% of gross, $50.9k fees + $46.3k impact). No parameter change rescues an account that went to zero on a negative-expectancy signal in every regime. Failure pattern: risk_reject/no_edge liquidated single-instrument time-of-day seasonality, premise falsified (negative every year) + over-leveraged blow-up.

Implementation

Long-short time-of-day seasonality strategy on the ETH COIN-M inverse perpetual (ETHUSD_PERP.BINANCE_CM, 1-hour bars, pure OHLCV, no supplementary feed). Each UTC day it latches the close at 13:00 UTC (the US-session open) as a reference, then at the bar closing at 21:00 UTC measures the US-session return (close_21/close_13 - 1). If that return's magnitude clears entry_threshold (default 0.4%) it enters in the SAME direction — LONG after an up session, SHORT after a down session — and carries the position overnight through the Asia/EU window, exiting at the next US open (the bar closing at 13:00 UTC). A stop_loss_pct (default 3%) protective exit and a 30-bar safety cap (which only binds if a 13:00 bar is missing) also close the position. Sizing risks 1.5% of equity against the stop distance, capped at 0.6x equity gross notional, converted to WHOLE inverse contracts via contracts_for_notional ($10 face per ETHUSD_PERP contract, ETH-margined/settled).

Verification Results

CLEAN RESTART 2026-09-04 — this run's verdict history and learning records were removed and it was restarted from verification. Its previous abandonment came from the pipeline, not from the market: the Layer-2 harness mis-bound @staticmethod helpers (fixed), QA issued terminal performance verdicts on an unoptimized smoke test (removed — QA now judges correctness only), and sandbox timeouts came from backtest-slot starvation (fixed). The hypothesis and the strategy code are unchanged. Verify the code on its merits; performance is decided later by the full backtest and the optimizer.

Verification Results

Analyst to abandon or route back to research to re-frame as overnight reversion (enter opposite the US-session sign); a threshold/stop sweep alone cannot fix a wrong-signed edge.

Verification Results

The hypothesis's core claim (US-session moves CONTINUE overnight) appears empirically inverted in the sandbox (~89% stop-out, 10.5% win rate = overnight reversion). Code faithfully implements the stated continuation direction, so this is a hypothesis-validity finding, not a code defect — but because direction is hard-coded, optimization cannot correct it.

Verification Results

Analyst to confirm net-of-fee per-trade edge on full history; the corrected-direction edge may still be fee-marginal.

Verification Results

High fee drag: commission_pct_of_gross 29.81%, turnover 278, frequent small stop-outs. Even sign-corrected, the ~0.06% CM round trip on frequent 3%-stopped trades erodes a meaningful share of gross; per-trade edge must clear the 0.10% CM floor with margin.

Backtest Review

Clean COIN-M inverse-contract sizing via contracts_for_notional and a genuinely under-represented venue/direction bucket; pure-OHLCV with no fragile supplementary feed

Backtest Review

Account LIQUIDATED 2024-02-28: total_return -100%, max_drawdown 100%, dead ~3.5 years into the window

Backtest Review

Premise falsified — negative in every year (2021 -37%, 2022 -38%, 2023 -21%, 2024 -13% → zero); win_rate 14.3%, profit_factor 0.75, avg_trade_return_pct -0.142% (negative), expectancy -$71/trade, 35 consecutive losses

Backtest Review

Catastrophic risk/vol profile: avg_position_pct 91%, annualized_volatility 147%, return_kurtosis 297, stressed vol tercile -100%

Backtest Review

Fee/impact heavy: commission 23.7% of gross ($50.9k fees + $46.3k impact) over 1,017 trades

Iteration History

Verification failed (Layer 4 — QA review) [class=premise_falsified]: - The US-session continuation premise is refuted by the data: the strategy is a clear net LOSER. profit_factor 0.696 (<1), total_return -45.98%, expectancy -73/trade, avg_trade_return_pct -0.147%, win_rate 10.5% over 571 trades. Taking the sign of the 13:00-21:00 UTC session move and holding it overnight loses money systematically — the overnight window does NOT continue the session impulse. Direction is implemented correctly (continuation as specified; no polarity/sequencing bug found), so this is a faithful implementation whose mechanism the sandbox refutes, not a code defect or tuning gap. - METRICS ARTIFACT — do not be misled. Sharpe 1.49 (CI [0.43, 2.52]), Sortino 2.55, omega 1.66, PSR 0.9976 are mutually inconsistent with PF 0.696, -46% return and negative expectancy. Positive-skew + volatility-drag artifact: return_skew 1.99 with a few huge wins (largest_win $9,446 vs avg_loss $269) lifts the arithmetic mean of per-bar returns while compounding ends deeply negative, max_drawdown 59.6% with a drawdown CI reaching 99.96%. Per L17's spirit, a high Sharpe on PF<1 / negative expectancy / 10.5% win rate is an artifact, not edge — PnL-based metrics are the ground truth and say loser.
Strategy report

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