Skip to content
All strategies

Strategies

OKX Alt-Perp Volume-Breakout Second-Wave: Skip the First-4h Absorption Retrace, Ride the 4h-18h Continuation (6 OKX USDT swaps, 1H, long-short, fixed clock, flat ~65% of the time)

Outcome: Abandoned

OkxAltVolumeBreakoutSecondWaveLS

Outcome Summary

The hypothesis claimed that volume-confirmed breakouts on liquid OKX alt perps keep moving in the breakout direction after an initial absorption retrace, and that the gain peaks around 18h. The initial backtest showed real per-trade economics: 0.394% per trade on 1,880 trades and a +227% total return. However, the edge was fragile: Sharpe was 0.79, max drawdown 37.7% against a 25% pre-registered limit, PnL came from the right tail and DOGE longs, and the calm and stressed volatility regimes lost money. The analyst sent it to optimization anyway, where nested walk-forward validation found no parameter candidate that passed in window 5, and the strategy was abandoned.

Hypothesis

Event-driven, long-short, multi-instrument trade on 6 OKX USDT perpetual swaps: ETH, SOL, DOGE, LINK, ADA and SUI. It uses 1-HOUR bars and pure OHLCV. Each coin is traded independently with a 1/6-equity sleeve. TRIGGER (a market observation, not a calendar date): a closed 1H bar that meets three conditions. Its close breaks the prior 72-bar high (or low). Its volume is >= 3x the prior 72-bar median volume. Its 1h log return is >= 2.5 sigma (or <= -2.5 sigma) of the prior 720-bar std of 1h returns. THE NEW CLAIM……Show moreShow less

Event-driven, long-short, multi-instrument trade on 6 OKX USDT perpetual swaps: ETH, SOL, DOGE, LINK, ADA and SUI. It uses 1-HOUR bars and pure OHLCV. Each coin is traded independently with a 1/6-equity sleeve. TRIGGER (a market observation, not a calendar date): a closed 1H bar that meets three conditions. Its close breaks the prior 72-bar high (or low). Its volume is >= 3x the prior 72-bar median volume. Its 1h log return is >= 2.5 sigma (or <= -2.5 sigma) of the prior 720-bar std of 1h returns. THE NEW CLAIM IS THE TIMING, not breakout-following itself. A pre-study on our own OKX catalog (2021-01 to 2026-09, non-overlapping events) measured the forward return in the breakout direction. It is flat to negative over the first 1-4 hours (SOL -0.24% and DOGE -0.21% at h4), because liquidity providers and stop-run absorption fade the first impulse. It then rises to a peak around 18h: ETH +0.62%, DOGE +0.75%, LINK +0.59%, ADA +0.59%, SUI +0.55%, SOL +0.33%. It decays by 36-48h. So the trade waits 4 bars after the trigger and then holds 14 bars, exiting at trigger+18h. Per lesson L166, the clock is set at the measured peak, not at a time-in-market target. PRE-STUDY SETUP: rolling statistics are point-in-time. A 0.05% taker fee is charged on every position change. Each coin gets 1/6 of equity at 1x. PRE-STUDY RESULTS: - Trades: 1,781 (~310/yr). - Average gross return: 0.56% per trade, against a 0.10% OKX round trip (5.6x). Net: 0.46% per trade. - Calendar Sharpe 1.05, max drawdown -23%. - Sharpe was positive in every calendar year: 2021 1.14, 2022 1.13, 2023 0.30, 2024 1.67, 2025 1.10, 2026 0.51. ROBUSTNESS (a plateau, not one tuned point): spot checks across the grid (lookback 48/72/96, volume multiple 2/3/4, sigma 2/2.5/3) gave Sharpe 0.51-1.11, with nearly all years positive in each cell. The same rule on the same coins' Binance USD-M bars gives Sharpe 1.12. Those are the same coins traded on a different venue, so it is not an independent price series. HONEST CAVEAT: on 7 OTHER OKX coins (AVAX, DOT, ATOM, NEAR, FIL, TRX, BCH) the rule reaches only Sharpe 0.45. The edge is concentrated in the most liquid, most retail-traded alts. The 6-name universe was fixed up front: names with OKX history from 2023 or earlier and the fewest catalog gaps. BNB was dropped for having the shortest history and 19 missing bars. VENUE RATIONALE: OKX is 1.5% of the corpus against a >=5% target, while BINANCE is 63%. OKX USDT-swap 1H history is long (ETH from 2019-12, LINK and ADA from 2020-03, DOGE 2020-07, SOL 2021-01, SUI 2023-05). Lesson L168's short-history objection to non-Binance venues therefore does not apply. DATA AND COMPUTE: OkxCollector USDT-swap OHLCV in the ParquetDataCatalog (<BASE>USDT.OKX), with no supplementary feeds. The universe is capped at 6 names per lesson L173. There is no cross-sectional ranking. Each coin's rule is independent, so per-bar work is O(1) per instrument using rolling buffers.

This fills the most under-represented buckets that are achievable: venue OKX (1.5% against a >=5% target, with BINANCE at 63%), long-short (only 15.6% of experiments are long-short; long-only is 84% against a <=55% cap), and multi-instrument. I ran three pre-studies on our own catalog. Two ideas were rejected before writing anything. The Binance alt spot-perp premium convergence was sub-fee and existed only in 2020-21. The BTC-shock residual fade lost 0.07% per trade net. A third idea, shorting newly listed perps, had already been tried and died on missing data. This one clears costs (gross 5.6x the round trip), is positive in every year, holds across a parameter plateau and replicates on Binance bars. Per L166, the clock is set at the measured forward-return peak, and the pre-study calendar Sharpe is about 1.0.

optimization_rejected:nested_validation_incomplete: nested validation incomplete: window 5: no candidate passed inner validation and neighborhood risk checks

Implementation

Six independent OKX USDT-swap sleeves (ETH, SOL, DOGE, LINK, ADA, SUI) on 1H bars, each sized at 1/6 of equity at 1x. A trigger is a closed bar whose close breaks the prior 72-bar high or low, whose volume is at least 3x the prior 72-bar median, and whose log return is at least 2.5 sigma of the prior 720-bar return std, in the same direction. The strategy waits entry_delay=4 bars to skip the first-impulse absorption retrace, then enters in the breakout direction (long or short). It exits at trigger + entry_delay + hold_bars (18h), or earlier on a bar-close adverse move of 3x the entry-time ATR(24). No new trigger is accepted while a coin has a pending or open trade.

Implements the hypothesis's timing claim directly: the trigger is recorded at the breakout bar and the trade is anchored to the trigger bar's TIMESTAMP, so the 4h wait and the 18h exit are pure functions of time and survive restarts. ETH runs through the base primary path (should_enter fires when the delayed trigger comes due). The other five coins run the same helpers in on_extra_bar, using _submit_entry_instrument and _submit_exit_position, so each leg is booked as its own position. The base same-timeframe……Show moreShow less

Implements the hypothesis's timing claim directly: the trigger is recorded at the breakout bar and the trade is anchored to the trigger bar's TIMESTAMP, so the 4h wait and the 18h exit are pure functions of time and survive restarts. ETH runs through the base primary path (should_enter fires when the delayed trigger comes due). The other five coins run the same helpers in on_extra_bar, using _submit_entry_instrument and _submit_exit_position, so each leg is booked as its own position. The base same-timeframe alignment barrier is deliberately disabled. Coins are independent, so the barrier would only stall ETH until SUI listed (2023-05) and drop every coin's bar whenever one leg has a gap (L182). Rolling state is incremental: running sums for the 720-bar std, deques capped at the lookback for highs, lows and volume, and a 72-element sort for the median. Per-bar cost is O(1) in the backtest span. Max gross notional is 6 x 0.1667 x equity x 1.0 = 1.0x equity. That is within the leverage cap, so leverage stays at 1. The per-coin bookkeeping (trigger side, trigger ts, held side, entry price, entry ATR) is kept as scalars in a dict so restarts persist it. Signal = the bar's return z-score (continuous). Parameter names match optimization_plan: fixed leverage/atr_period/sleeve_pct/vol_window/stop_atr_mult, tunable sigma_k/vol_mult/hold_bars/entry_delay/breakout_lookback. No clamps, so no _param_bounds. Expected ~300 entries/yr across the 6 coins, per the pre-study.

Verification Results

Either document the stop as a deliberate risk overlay or widen it so it acts only as a tail guard. Compare stop-hit frequency against the pre-study's no-stop number at backtest review.

The hypothesis and its pre-study exit only on the fixed clock (trigger+18h). The code adds a bar-close adverse-move stop at 3 x ATR(24), fixed at stop_atr_mult=3.0 in the optimization plan. This is protective and does not remove any exit the hypothesis names, but the measured strategy is not the pre-studied one. A 3-ATR(1h) stop can be hit within the 14-bar hold, right after the very volatility spike that caused the trigger, which may truncate the second-wave continuation the hypothesis is betting on.

Optional: mark the entry only after a fill (on_position_opened), or check notional inside should_enter.

should_enter() commits _mark_entered() before the base template applies its min-notional check. If the base drops the order, the event is silently discarded on the next bar: calculate_signal sees no position with side!=0 and calls _mark_flat, which also clears trig_side. On the extra legs the same pattern applies when _submit_entry_instrument drops the order (market not ready, entry in flight). The effect is benign (the event is lost, no phantom position), and at a 1/6-equity sleeve min-notional cannot realistically bind.

No change required.

min_bars_required() returns 2. This is deliberate: readiness is gated per coin on 720 returns plus a full breakout window, so the first ~30 days of each coin, and of SUI from its 2023-05 listing, produce no triggers. That is correct, but the base template's below_min_bars diagnostic will not explain the quiet warmup.

The sandbox ran one unoptimized draw over 834 days with 820 closed trades: return +38.1%, PF 1.149, avg trade +0.272% of notional (about 2.7x the 0.10% OKX round trip), Sharpe 0.70. Four things should be checked at backtest review. (1) Max DD is 28.4%, above the pre-registered 25% constraint. (2) The stressed-vol tercile lost money (-12.6%, Sharpe -0.60) and the calm tercile was flat; nearly all PnL came from the 'normal' tercile, which is a soft-gate failure risk. (3) impact_cost_pct is 31.9, close to the 50%-of-gross economics ceiling. (4) funding_folded=false with 0 funding events. OKX funding is not charged on the 4h-18h holds, so short-side returns (441 of 820 trades, 51.5% win rate vs 48.5% long) may be flattered in high-funding regimes. The pre-study claimed 0.46% net per trade; the sandbox shows 0.27%. Part of that gap may be the added 3xATR stop, which the pre-study did not have.

Backtest Review

Sharpe
0.79
Total return
226.96%
Max drawdown
37.68%
Trades
1880
Win rate
48.9%
Profit factor
1.15

Large, well-spread sample: 1880 closed trades from 2020-01 to 2026-08. They fall on 919 distinct entry days, or 753 separate 24h clusters, so the L185 event-clustering worry does not apply. The event count is far above the ~100 floor.

Per-trade economics clear the floors: avg_trade_return_pct is 0.394% against the 0.10% OKX round trip and 0.15% floor, about 2x the 0.20% economics bar. Commission is 6% of gross. PF is 1.146, Sharpe 0.79, PSR 0.937.

The trades match the hypothesis: 968 longs and 912 shorts, held a mean 13h21m, which fits the 4h delay plus 14-bar clock. Every coin trades in both directions. The engine logged 411 primary entries with none dropped.

Funding IS credited: the trades carry -$14.6k of funding, so QA concern (4), that shorts are flattered by uncharged funding, does not hold for the full backtest.

5 of 7 calendar years are positive (2020 +20%, 2021 +78%, 2022 +17%, 2024 +54%, 2025 +20%). The strategy is positive in the Luna, FTX, yen-carry and tariff stress windows. end_unrealized_pct is about 0.

Max DD is 37.7%, above the pre-registered 25% (bootstrap CI 20.8 to 58.8). The longest drawdown lasted 668 days. 2023 (-12%) and 2026 YTD (-19%; Feb -17.8%, Apr -10.2%) were losing years. QA concern (1) is confirmed and worse on the full history.

Regime concentration: all PnL comes from the 'normal' vol tercile (+275%, Sharpe 1.98). The calm tercile was -3% and the stressed tercile -10% with a 44% DD. QA concern (2) is confirmed.

Impact cost is 42.3% of gross, near the 50% economics ceiling, and capacity is only $558k. QA concern (3) is confirmed.

The edge sits in the right tail and on a few legs. The top 20 trades sum to 117% of net PnL. DOGE longs alone made +$127k, 56% of the total and mostly the 2021 meme run. ADA shorts (-$32k), SOL shorts (-$18k), LINK shorts and SUI shorts lose. Signal IC is 0.030 (t=1.4) and the Sharpe CI lower bound is -0.03.

Net is 0.39% per trade against the pre-study's claimed 0.46%. Part of the gap is impact, part is the 3xATR stop the pre-study did not have.

Outcome Summary

A fat-tailed edge concentrated in a few trades and one regime (top 20 trades = 117% of net PnL, DOGE longs = 56%, all profit from the normal-vol tercile, signal IC t=1.4) is unlikely to give stable parameters across every walk-forward window.

The backtest review approved optimization despite flagged weaknesses, but optimization was rejected because nested walk-forward validation was incomplete: in window 5, no candidate passed inner validation and the neighborhood risk checks. The run was abandoned after 1 iteration, before analyst, risk review or promotion.

On 6 OKX USDT perps (ETH, SOL, DOGE, LINK, ADA, SUI, 1H), it waited for a high-volume 72-bar breakout of at least 2.5 sigma, then skipped the first 4 hours, when the initial impulse tends to be absorbed and fade, and held 14 bars in the breakout direction to capture a measured second-wave continuation that peaks around 18h.

The full backtest (2020-01 to 2026-08) returned +227% over 1,880 trades, with Sharpe 0.79 (CI -0.03 to 1.49), profit factor 1.146 and 0.394% average per-trade return against a 0.10% round trip. Max drawdown was 37.7%, above the pre-registered 25%; 2023 and 2026 YTD were losing years, and impact cost was 42.3% of gross.

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