Skip to content

View translation

BtcAdaptiveKamaTrendLS

Hypotheses

BTC Adaptive-Trend (KAMA) Directional, Long-Short (Single-Instrument BTCUSDT.BINANCE Perp, 4H Bars — Kaufman Adaptive Moving Average That Self-Speeds by Efficiency Ratio, Trade KAMA Slope Direction, ATR-Trailing, 3-Parameter)

Hypotheses

A LONG-SHORT, single-instrument, pure-OHLCV trend strategy on BTCUSDT.BINANCE USD-M perpetual built on Kaufman's Adaptive Moving Average (KAMA) — a genuinely different TREND CONSTRUCTION from everything in my pending book (dual/triple-timeframe momentum confluence, false-breakout fade, trend-aligned reversion, vol-regime-gated momentum). Unlike a fixed-lookback moving average or an externally-gated momentum signal (external filters — volume, ADX, vol-regime — have repeatedly reduced edge this session), KAMA builds chop-resistance INTO the indicator: it computes an Efficiency Ratio (directional travel ÷ total path) and adapts its smoothing constant continuously — moving FAST when price trends efficiently and going nearly FLAT when price chops sideways. This directly targets the failure mode that killed the momentum horizon variants (whipsaw in low-conviction chop) via the indicator's own adaptivity rather than a bolt-on regime gate. It trades the KAMA's direction: long when KAMA is rising (and price above it), short when falling. It stays on BTC (the one instrument with demonstrated directional tradability — every alt died 'no edge'), pure OHLCV (the only reliably measurable, coverage-complete data — grids, supplementary, relative-value, vol-target all failed on execution/coverage/DD/measurability), single-instrument, developer-safe with a standard incremental indicator, and measurable at 4H (~100-200 KAMA-direction changes over multi-year history — avoiding the sub-measurable trap that killed the daily vol-target). It fills the under-target LONG-SHORT bucket (13.6% vs 86.4% long-only). 3 parameters.

Hypotheses

The hypothesis's argument is that chop resistance belongs INSIDE the indicator rather than in a bolt-on gate, and KAMA delivers that honestly: the smoothing constant is squared, so a mediocre efficiency ratio barely moves the average at all and the slope simply cannot get large in chop — the filter is the mechanism, not an extra condition. I built the rest around three specific lessons that cost sibling strategies a Layer-4 cycle each, because they are the failure modes this construction would otherwise walk straight into. First, the 'price above KAMA' condition is implemented as a small directional FLOOR (0.1 ATR), not as a co-equal leg: combining two readings with a signed minimum imposes the full entry threshold on both and collapsed the macro-confirmed sibling to 9 trades before it had to be rebuilt exactly this way. Second, the blocked branch clips strictly BELOW the exit level rather than at it — a branch that saturates at the exit threshold turns the exit into a hair trigger on the gate flickering rather than on price, which is the defect I had to fix on that same sibling. Third, the entry is a fresh threshold cross evaluated on EVERY bar with no coarser arming filter: a 1-in-4 arming filter on another sibling silently discarded every cross that developed between armed bars and produced 5 trades where ~100/year were modelled. The slope is normalized in random-walk sigma (ATR x sqrt(n)) so the single threshold keeps its meaning if the optimizer moves er_period, and both exits use hysteresis because KAMA flattens whenever efficiency drops, which would otherwise close trades on the indicator going quiet during ordinary consolidation. Sizing is anchored to the same distance as the trailing stop, so every trade risks a fixed 2% of equity regardless of volatility and size never grows with the equity path — the guard against the >50% drawdowns now disqualifying strategies. Only Kaufman's classic fast=2/slow=30 endpoints, the slope window, the floor and the risk policy are locked, leaving exactly three tunables, and I deliberately did not make the fast/slow constants tunable: they are the published definition of the indicator, and opening them would turn a documented adaptive average into a four-parameter curve fit. Per-bar cost is O(1) throughout with internally maintained history, so the 4H sandbox cannot time out the way a sibling did at 1H. One honest caveat for the Analyst: KAMA is a trend follower, so the expected profile is a sub-40% hit rate carried by a long right tail, and the on_stop log reports the average realized efficiency ratio alongside the gate and exit mix — if that average sits near the low end (~0.2-0.3) the indicator spent most of the sample nearly frozen, which would mean the sample is dominated by a handful of efficient stretches and the result should be read as regime-dependent rather than as a stable edge.

Hypotheses

Overfit to a tail-driven, unmeasurable sample: two UNWAIVABLE hard gates — PBO 0.5608 > 0.5 and holdout FAILED (Sharpe 0.328, ratio 0.23 < 0.70). Deflated Sharpe 0.000 (not significant); expected-max-Sharpe 2.97 ≈ IS avg 3.15, so the selected Sharpe is best-of-N noise over 225 trials. The optimizer drove entry_thresh to 1.20 (the one cliff parameter), collapsing the sample to 28 trades over 6.5 years (below the 100-trade floor, one OOS window at 0.0); skew 9.0 / kurtosis 202 show the +101% rides ~4 huge days. Structural vise: high threshold → unmeasurable overfit; low threshold (131 trades) → Sharpe 0.69 below floor and already decaying (2025 -20%). Kaufman-efficiency trend family already died overfit this session (ETH Efficiency-Gated TSMOM).

Implementation

Long/short adaptive-trend strategy on the BTCUSDT.BINANCE USD-M perpetual, 4-HOUR bars, pure OHLCV. Kaufman's Adaptive Moving Average is computed incrementally — efficiency ratio = directional travel / total path over er_period bars, smoothing constant = (ER x (2/3 - 2/31) + 2/31) squared with the classic fast=2 / slow=30 endpoints — so the average accelerates in efficient trends and nearly freezes in chop. The signal is the KAMA slope over slope_bars, normalized as (KAMA_t - KAMA_{t-n}) / (ATR x sqrt(n)) so one threshold means the same thing across volatility regimes; price being on the correct side of KAMA acts as a small directional floor (0.1 ATR), not a second threshold, and when that gate is closed the slope is damped and clipped strictly below the exit level so it can neither open nor close a position. Entry is a fresh cross of +/- entry_thresh on every bar; exits are the slope reaching exit_frac x entry_thresh against the position (hysteresis) or an ATR trailing stop trail_atr_mult ATRs from the best close since entry. Sizing risks a locked 2% of equity to that stop, capped at 1x equity notional and floored at BTC's 0.001 step and the $100 BTCUSDT minimum. Three tunables: er_period, entry_thresh, trail_atr_mult.

Verification Results

At BACKTEST_REVIEW / walk-forward: verify avg_trade_return_pct stays positive and above the fee floor with the top 1-2 wins excluded, that the fat right tail recurs across multiple windows/years (not confined to one trending regime), that OOS Sharpe > 0 with IS/OOS ratio < 3.0, and that the holdout clears >=70% of WF-OOS Sharpe. If the positive result does not survive removal of the single largest win across the full span, abandon.

Verification Results

ONE-TRADE-DEPENDENT SANDBOX -- the No.1 item for the analyst to confirm on full data. The +5.37% total_return is carried entirely by a single trade: largest_win $7,463 exceeds the total net profit (avg_trade $316 x 17 ~= $5,369), so removing the single best trade makes the sandbox year net-NEGATIVE (7 remaining wins ~$15,905 vs 9 losses ~$18,000). return_skew 1.58, return_kurtosis 14.5, and Sharpe 0.322 with CI [-1.54, 1.87] straddling zero all confirm the result is tail-carried and, at n=17, indistinguishable from luck on the sandbox alone. This is NOT necessarily a defect: KAMA is a trend follower, and a sub-50% hit rate with a favorable RR (avg_win $2,921 vs avg_loss $2,000, ~1.46) carried by a long right tail is the EXPECTED profile (the developer flagged exactly this), not proof of overfitting. Whether the tail RECURS across years or was one lucky BTC trend is what the full multi-year backtest, walk-forward and holdout are for.

Verification Results

Confirm the true multi-year direction-change count from the on_stop diagnostics (long_entries/short_entries and gate_open_bars). Also read avg_efficiency_ratio: per the developer's own caveat, if it sits near ~0.2-0.3 the indicator spent most of the sample nearly frozen and the result is dominated by a handful of efficient stretches -- read that as regime-dependent rather than a stable edge. max_drawdown 17.0 (CI [5.9, 24.3]) plus impact_cost_pct 4.85 / capacity $42.6M are modest -- confirm net-of-impact edge at deployment size.

Verification Results

BORDERLINE MEASURABILITY -- 17 trades over 363 days projects to ~90-100 over a multi-year BTC 4H span, at (not comfortably above) the ~100 floor, and below the developer's own '~100-200' claim (KAMA direction changes clearing one sigma are rarer than modelled). For a tail-heavy trend follower the effective statistical power of ~100 trades is lower than 100 symmetric trades because a few wins dominate, so the true resolving power is at the margin. This is still materially more measurable than the vol-target sibling I failed (~50 multi-year turns) -- it clears the fee floor by 2x (0.335% vs 0.15%) and 4H gives more turns than daily -- but it is not a large sample.

Backtest Review

Strong per-trade edge well above fees: avg_trade_return_pct +1.35% (~13x round-trip cost), profit_factor 1.40, expectancy +$1039/trade

Backtest Review

Sharpe 0.689 with CI lower bound positive (0.071) and PSR 0.989 — better than most momentum candidates this session; favorable RR (avg_win $8643 vs avg_loss $4465, ~1.94x)

Backtest Review

Decisive two-sided sample (131 trades, 74 long / 57 short) on BTC (proven instrument) with a genuinely distinct KAMA construction, not another confluence port; max_drawdown 24.6% under the 50% line

Backtest Review

Recent-regime deterioration: 2025 -20% with rolling Sharpe negative through 2025-early 2026 — must confirm it generalizes in walk-forward/holdout

Backtest Review

Tail-heavy (kurtosis 47.9, skew 3.5); edge concentrated in a few big years (2020 +38%, 2023 +47%) and days, so PBO/DSR robustness is the real test

Backtest Review

Sharpe CI lower bound only marginally positive (0.071)

Outcome Summary

BtcAdaptiveKamaTrendLS traded the slope of a self-adapting Kaufman moving average long/short on BTCUSDT 4H bars, aiming to beat whipsaw with the indicator's own efficiency-based smoothing instead of a bolt-on regime gate. Its initial backtest was one of the session's stronger candidates — +160% return, Sharpe 0.689, profit factor 1.40, and a decisive 131 trades with per-trade returns ~13x fees — earning an 'optimize' verdict despite noted recent-regime decay and heavy tails. Optimization then exposed the fragility: the optimizer drove the cliff-sensitive entry threshold to 1.20, shrinking the sample to 28 tail-concentrated trades (skew 9.0, kurtosis 202) that failed both the PBO gate (0.5608 > 0.5) and the holdout (Sharpe 0.328, ratio 0.23), with a deflated Sharpe of 0.000. The analyst abandoned it as overfit best-of-N noise, echoing an earlier Kaufman-efficiency trend strategy that died the same way this session.

Outcome Summary

A Kaufman-efficiency trend edge on BTC is tail-driven and overfits under optimization — pushing the cliff-sensitive entry threshold up to chase Sharpe collapses the trade count below the measurable floor, so the family needs an edge robust at a low, high-sample threshold rather than one that only survives at high thresholds.

Outcome Summary

Backtest-review passed it to optimization ('optimize'), but the analyst abandoned it there: two unwaivable hard gates failed — PBO 0.5608 > 0.5 and holdout Sharpe 0.328 (ratio 0.23 < 0.70) — with deflated Sharpe 0.000 and expected-max-Sharpe (2.97) ≈ IS average (3.15), marking the result as best-of-N noise over 225 trials.

Outcome Summary

Trade the slope direction of Kaufman's Adaptive Moving Average (which self-tunes its smoothing by an efficiency ratio) long/short on BTCUSDT 4H perpetual bars, building chop-resistance into the indicator rather than via an external regime filter.

Outcome Summary

The initial backtest looked promising with +160.4% total return, Sharpe 0.689, profit factor 1.40 and a decisive 131-trade two-sided sample (74 long / 57 short) at avg per-trade return +1.35% (~13x round-trip fees), max drawdown 24.6%. After optimization the selected parameters collapsed the sample to 28 trades with a walk-forward OOS Sharpe of 1.43 but a holdout Sharpe of only 0.328 (ratio 0.23) and PBO 0.5608.
Strategy report

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