Strategies
LINK OKX Volatility-Squeeze Expansion Breakout, Long-Short (LINKUSDT.OKX Perp, 4H Bars, Bollinger-Bandwidth Compression Percentile Gate, ATR Intrabar Trailing Stop, 3-Parameter)
Outcome: Abandoned
LinkOkxSqueezeExpansionBreakout
Outcome Summary
LinkOkxSqueezeExpansionBreakout tested compression-gated long and short breakouts with ATR-based risk management in one iteration. Its 280 closed trades produced -8.31% return, Sharpe -0.085 and negative average trade returns despite 25.18% exposure matching the hypothesis's projected range. Backtest review abandoned the implementation for negative net expectancy, so optimization and later reviews were not reached.
Hypothesis
Fills the most under-represented quota buckets I can serve with a robust pure-OHLCV mechanism: OKX venue (2.4% vs >=5%) and long-short direction (18% vs a <=55% long-only target). LINK on OKX is effectively unused in the corpus. The compression-gated breakout is a mechanism not yet in the pipeline list (existing breakout entries are Donchian/Keltner/Dual-Thrust on other symbols and venues). It targets multi-percent moves, so fee drag is small (~0.10% RT vs ~0.8% expected capture). No supplementary feed is needed (L189).
negative_expectancy: decline optimization of this LINK OKX compression-breakout implementation. A substantial executed sample loses after commissions, modeled impact and credited funding, with PF below 1 and negative per-trade returns. No verified code defect or demonstrated viable parameter region supports iteration. This rejects this implementation on LINK OKX, not squeeze-breakout mechanisms generally; drawdown and missed research predictions are not the rejection basis.
Implementation
LINKUSDT.OKX perp, 4H, long/short. Bollinger(20,2) bandwidth is ranked against its own trailing bw_lookback distribution; when the percentile has been <= squeeze_pct within the last squeeze_memory_bars bars, the first 4H close outside the band (prior close inside) enters in the breakout direction with a market order at the close. Signal is the continuous Bollinger z (close-mid)/(bb_std*std); |z|>1 = outside band. Risk: 1.5% of equity per trade at atr_stop_mult*ATR14 stop distance, notional capped at min(max_notional_mult, leverage)*equity. Protection: platform-matched reduce-only STOP_MARKET placed on fill at entry +/- atr_stop_mult*ATR, ratcheted each bar from the running high/low since entry (chandelier). Exits also on failed breakout (close back through the mid band within failed_breakout_bars bars), time stop at max_hold_bars, cooldown_bars after any exit.
Implements the squeeze-expansion hypothesis directly: compression state = bandwidth percentile gate, direction = first decisive band-exit close, multi-day trailing ATR stop to capture 6-12% expansions vs ~0.10% OKX round trip. Uses the plan's exact parameter names; fixed values as specified (bb 20/2, ATR14, risk 1.5%, cap 1.5x, leverage 2, cooldown 3, hold 42, memory 6, failed-breakout 3), tunables bw_lookback/squeeze_pct/atr_stop_mult at mid-range baselines. Interpretation choices: 'failed breakout' = close back through the BB midline within 3 bars of entry; hold/cooldown counted from bar timestamps; percentile ranks the current bandwidth against the prior bw_lookback values. Leverage is consumed in the sizing cap (binds at 1.5x).
Verification Results
On a later non-reduce-only fill while held, compare the resting stop's quantity to position.quantity and modify_order(quantity=...) when they differ.
The protective stop is sized from the position quantity at the FIRST entry fill. Later fills of the same entry order return early because held_side != 0. If an entry market order ever fills in several partial fills (possible in paper/live, rare in bar backtests), the reduce-only stop covers only the first partial quantity.
Optional: require bars_since_squeeze >= 1, i.e. a squeeze on a prior bar, if the stricter reading is wanted.
The squeeze flag and the breakout can happen on the same bar: bars_since_squeeze is set to 0 on the current bar before should_enter runs. The hypothesis does not require a strictly later bar ('first decisive close outside the compressed band'), so this is acceptable. Note that a bar can count as both 'compressed' and 'breaking out'.
No change needed. The analyst should know these exits exist when comparing results with the hypothesis's 'stop out at -1.0 to -1.5 ATR' arithmetic.
The failed-breakout exit (close back through the BB midline within 3 bars) and the 42-bar time stop are not in the hypothesis text. The developer says they come from the optimization plan. They only add exits and do not change the core mechanism, but they shape the trade distribution.
The unoptimized sandbox (2188 days, 280 closed positions, about 47 a year against the 20-30 a year the hypothesis projects) averaged -0.127% of notional per trade, with PF 0.96 and win rate 35%. The win/loss asymmetry is there (avg win $1421 vs avg loss $809), but not enough to cover the hit rate. The hypothesis claims about +0.8% net per trade. The sandbox does not support that yet, although it is a single parameter draw. Check these first on the full backtest: (1) per-trade return split by atr_stop_mult. A 2.5 ATR(4H) chandelier may give back most of a 6-12% expansion. (2) Firing rate. Twice the projected count suggests the squeeze gate (bw_pct<=0.2 within 6 bars) is looser than 'compression state'. (3) Costs. The report shows funding_folded=false with 0 funding events, so OKX perp funding over the ~2-day average hold is not modeled. capacity_usd is only ~$5.3k and impact_cost_pct is 435, which suggests LINK-on-OKX impact is material at this size. The analyst should judge net edge with funding and impact included.
Backtest Review
- Sharpe
- -0.09
- Total return
- -8.31%
- Max drawdown
- 27.45%
- Trades
- 280
- Win rate
- 34.6%
- Profit factor
- 0.94
280 closed trades across 2,188 days provide a substantial executed sample; 138 longs and 142 shorts match the intended direction balance.
Code implements compression-gated band breakouts and ATR-relative sizing; exposure of 25.18% matches the projected 25–35%. Accounting reconciles, with no open-position unrealized gains.
Net expectancy is negative: average trade return -0.1495% versus the brief's 0.15% futures review floor and predicted +0.8%; PF 0.944, total return -8.31%, and Sharpe -0.085.
Approximately 47 trades annually exceed the projected 20–30; the 34.64% win rate and $1,447 average win versus $813 average loss yield -$29.68 expectancy per trade.
QA's economic concern is borne out. Its funding omission is superseded: this report includes funding, with detail trades totaling -$2,151.47, and $7,456.89 modeled impact. Capacity and impact-share metrics are unavailable.
Buy-and-hold returned +144.17%, with approximately 89.60% drawdown on the stored sampled curve; strategy alpha is negative.
The requested outbox file could not be written because the filesystem is read-only.
Outcome Summary
This LINK OKX implementation failed to deliver the predicted compression-breakout edge after costs, without establishing that squeeze-breakout mechanisms generally fail.
Backtest review voted abandon because expectancy remained negative after commissions, modeled impact and funding, with no verified code defect or demonstrated viable parameter region supporting iteration. Optimization and subsequent analyst and risk reviews were not reached.
Trade long and short LINKUSDT.OKX perpetual breakouts on 4-hour bars after Bollinger-bandwidth compression, using ATR-based sizing and trailing stops.
Across 280 closed trades over 2,188 days, it returned -8.31% with Sharpe -0.085 and maximum drawdown 27.45%. Average trade return was -0.1495% of notional, with profit factor 0.944 and win rate 34.64%.
Backtest and paper results are hypothetical. Trading involves risk of loss.