Skip to content
All strategies

Strategies

Absorbed-Flush Rule, Fourth Breadth Replication on a Name-Disjoint Bybit Panel with a Same-Date Concurrency Cap: buy a Bybit USDT perp at the close of a down day whose range blew out (>=2x its 60-day return std) but closed at >=0.55 of its range, fixed 3-day clock, 10% per leg, max 2 new entries per date and max 4 open (28 names sharing none with the Bybit/HL/spot panels, 1-DAY, long-only, unlevered)

Outcome: Backtesting

BybitDisjointAbsorbedFlushCappedPanel

Absorbed-Flush Rule, Fourth Breadth Replication on a Name-Disjoint Bybit Panel with a Same-Date Concurrency Cap: buy a Bybit USDT perp at the close of a down day whose range blew out (>=2x its 60-day return std) but…

Hypothesis

Original Research Lead hypothesis (not seeded). It is a frozen-rule breadth replication of the absorbed-flush rule (lesson L262). That rule was promoted on iteration 1 on 13 Bybit perps (200 trades, PF 1.72, Sharpe 0.82, DD 10.2%) and on 15 Hyperliquid perps (151 trades, PF 1.70, Sharpe 0.73, DD 9.1%). It ended underpowered on a 24-name Binance SPOT panel (PF 1.44, but DD 22.7% and Sharpe 0.48 with up to 8 concurrent legs). Two things are new here. (1) UNIVERSE: 28 Bybit USDT linear perps that share NO names with……Show moreShow less

Original Research Lead hypothesis (not seeded). It is a frozen-rule breadth replication of the absorbed-flush rule (lesson L262). That rule was promoted on iteration 1 on 13 Bybit perps (200 trades, PF 1.72, Sharpe 0.82, DD 10.2%) and on 15 Hyperliquid perps (151 trades, PF 1.70, Sharpe 0.73, DD 9.1%). It ended underpowered on a 24-name Binance SPOT panel (PF 1.44, but DD 22.7% and Sharpe 0.48 with up to 8 concurrent legs). Two things are new here. (1) UNIVERSE: 28 Bybit USDT linear perps that share NO names with any earlier panel. The Bybit panel used ADA/ATOM/AVAX/BCH/DOGE/DOT/ETC/FIL/LINK/LTC/NEAR/SOL/TRX/UNI/XLM/XRP; the HL panel used ARB/BLUR/CRV/DYDX/GMX/LDO/OP/RUNE/SEI/SNX/STX/SUI/TIA/WLD; the spot panel used ALGO/BAT/CHZ/COMP/EGLD/ENJ/EOS/GRT/HBAR/IOTA/KAVA/MANA/MKR/NEO/ONT/QTUM/SAND/SUSHI/THETA/VET/XTZ/YFI/ZIL/ZRX. The new names: AAVE, APE, APT, AXS, ENS, GALA, GMT, 1INCH, CAKE, DASH, BAND, CELO, COTI, CRO, CFX, ANKR, FLOW, FET, KSM, LRC, MASK, ZEC, IMX, INJ, ICX, ROSE, STORJ, SKL. The test asks whether the rule depends on the earlier names. (2) EXPOSURE DESIGN per lesson L267: the trigger fires on market-wide down days (529 qualifying name-days fell on only 152 distinct dates in the pre-study, ~3.5 names per date). So at most 2 new entries are taken per date, chosen by the largest range multiple, and at most 4 legs are open at once. Maximum gross long exposure is therefore 40% of equity, and at most 20% is added on any one date. The universe is point in time: a name is eligible only once it has >=90 daily bars on Bybit (universe_at / listed_since); later-listed names (CAKE 2023-11, CFX 2023-02, FET) join when they qualify, and a delisting closes the leg at its last price. Venue choice: BYBIT is 3.4% of the corpus against a >=5% quota, and no instrument here is above ~1% share. The 1-DAY timeframe is over-represented (41%), but this mechanism is a daily-bar event, and the earlier promotions are daily. PRE-STUDY ARITHMETIC (frozen rule, gross, close-to-close 3-day forward return, all 28 names, 2021-05 to 2026-10): 529 events on 152 distinct dates. Mean +2.00%, median +1.03%, hit rate 54%. By year: 2022 +0.61% (43 events), 2023 +2.67% (115), 2024 +2.88% (220), 2025 +2.32% (76), 2026 -1.44% (70). So the recent year is negative, and the year-to-year results are uneven. Capture against cost: about 2.0% gross minus the ~0.11% Bybit taker round trip is ~1.9% per trade, over 15x the cost. Even at half the pre-study mean, the margin is above 8x. Execution: a market order at the signal bar's close. On a 24/7 venue that price is the next bar's open (the registry's use_equivalent for next_bar_open_fill). No stop; risk route (b): a fixed time exit plus capped sizing (10% per leg, unlevered).

Bybit is under its quota (3.4% vs >=5%). The rule is the one frozen template L262 marks as worth testing for breadth, and the universe is disjoint from all three earlier panels, as L262 requires. The same-date entry cap and the open-leg cap are L267's fix for the spot panel's drawdown. Pre-registered: 152 distinct qualifying dates (529 name-events) under the frozen rule. About 230 traded legs are expected after the caps. Average trade about 1.0-1.5% after costs, Sharpe 0.6, and DD at most 15% at 40% maximum gross. The plan proposes tuning ranges around the frozen values only as an advisory proposal; the baseline run uses range_mult 2.0, close_loc_min 0.55 and hold_days 3.

Implementation

A long-only, 1-DAY event panel on 28 Bybit USDT perps that share no names with the earlier Bybit, HL or spot panels. AAVE is the primary and the other 27 are traded extra legs. The trigger is a down day whose range is at least range_mult times the prior 60-day log-return std and whose close sits at or above close_loc_min of the day's range. On a trigger the strategy buys at the signal bar's close with a market order. On a 24/7 venue that price is the equivalent of the next bar's open (next_bar_open_fill, use_equivalent). Each date's events are ranked by range/sigma. At most max_new_per_date (2) new legs open per date and at most max_concurrent (4) legs are open at once; the other events are skipped. Each leg is 10% of account equity, unlevered, and is closed by a market SELL at the close of the 3rd daily bar after entry, timed from position.ts_opened. The universe is point in time via universe_at(), and a name needs at least 90 daily bars of its own history. The base template closes a leg at its last price if the name delists.

This implements the frozen absorbed-flush rule with L267's exposure caps: at most 40% gross (4 x 10%) and at most 20% added on one date. Risk route (b) applies: a fixed time exit plus capped sizing at 10% per leg and leverage 1, so one leg can lose at most 10% of equity. An extra leg only counts when its newest bar is stamped exactly at the primary's decision instant, so there is no look-ahead. A leg that exits at today's close frees its slot for today's entries. Listing check: all 28 symbols have Bybit 1-DAY bars. FET delisted on 2024-06-08 and ICX on 2026-09-18; CAKE starts 2023-11 and CFX 2023-02. All are included and point_in_time_universe is set. Every parameter name matches the optimization plan: hold_days, range_mult and close_loc_min are tunable and the rest are fixed. The code clamps no parameter, so there is no _param_bounds.

Verification Results

Optional: return vol_lookback + 2 from min_bars_required and leave the per-leg 90-bar rule in _features, so other legs are not held back by AAVE's listing date.

min_bars_required() returns 90, and the base applies it to the PRIMARY buffer (AAVE). No leg on the panel can trade until AAVE itself has 90 daily bars. Each extra leg's own 90-bar eligibility is enforced separately and correctly in _features (len(hist) >= 90; buffers hold 500 bars). The override is deliberate and only delays the panel start by AAVE's warm-up, so it is not a correctness defect.

If optimization runs slowly, cache each leg's rolling sum and sum of squares incrementally instead of recomputing the 60-return window on every bar.

The sandbox took 287 s for 1,909 bars and was flagged runtime_review_required. The per-bar work is 28 legs x 60-return loops plus 28 x 3 cache queries, which is cheap. Most of the cost is probably the 28-leg engine itself. This is a resource concern, not a correctness one.

The pre-study's 2026 events average -1.44% over 70 events, and 2024 supplies 220 of the 529 events. The effective sample is about 152 distinct dates, not the leg count. Ranking by the largest range multiple may select the most toxic flushes. In the full backtest, the analyst should check the per-year split and the per-date (not per-leg) significance. Fees are not the risk: the ~0.11% Bybit round trip is small against the claimed ~2% gross. Long funding over a 3-day hold is small but not zero.

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