ADL Vol Ratio Pine UVOL/DVOL >22 fidelity re-audit
Rejected qm-kdnj.2 · 2026-08-18
Does the Pine-verbatim ADL Volume Ratio daily UVOL/DVOL >22 (request.security D close, timeframe=5 unused) reproduce signal dates tick-for-tick and does the corrected signal predict capitulation (S&P 500 recovery beyond buy-and-hold or generic defensive) on maximal native span?
Pine semantics frozen and tick-for-tick correct (strict >22 daily raw ratio, 0 mismatches vs prior qm-4bx.17/22: both 24 triggers 259 active hw20 on 1996-04-19→2026-08-11 7616 ratios; sum5 max 5.08 never hits 22, MA 3/5/10/20 collapse to 0, evaluator vs direct delta 0, pinned 15-row fixture with DVOL-zero/22-edge/sum5 cases passes). Re-audit on maximal native span shows no date drift — prior already Pine-correct. Signal is sparse buy-only (0.8/yr, 3.4% native, 2.97% unified 8709), not a persistent regime. Walk-forward both halves +25% (1996-2016 9 trig 1.93→2.43, 2016-2026 15 trig 4.34→5.46), falsification passes (random 10 trig 7.94 < true 13.39, inverted 48 trig 9.67 < true), extra lag not destructive (+8.3% 14.50 vs 13.39). Generic-exit harness (one-way buy) reports head-to-head generic-only vs signal+generic on same window/costs/lag: SMA200 8.11→13.39 +65% Sharpe 0.63→0.73, SMA50 9.02→12.85 +42%, 50/200 cross 7.85→11.02 +40%, 10% trailing-stop 9.45→13.10 +38%, B&H 19.28→19.28 0% (already max long). Brittleness retained: threshold 15 best 13.42 vs 22 13.39 vs 30 9.27 vs 40 8.34, holding monotonic 60d 18.62 >20d 13.39, consensus 0, COVID 0%, 2022 +0.13%. Synthetic pre-1996 NO-GO. Economics exist vs defensive but brittle; do not promote to strategy catalog/Meta, retain as risk-signals/v1 sparse signal.
Provenance
Research narrative
Generic exit harness
ADL Volume Ratio buy-only impulse Pine request.security USI:UVOL/USI:DVOL D close ratio >22 strict level hw20 fixed, blended with generic defensive via OR override (long if either generic long or ADL active) — each head-to-head generic-only vs signal+generic on same window/costs/lag via BacktestConfig.allocatesmartly() next_close 10bps; deltas SMA200 65.09% (CAGR +1.81% Sharpe +0.10), SMA50 23.43%, cross 66.32%, trailing 50.7%, BH 0.0% — window 1996-04-19→2026-07-24 same window/costs/lag next_close +10bps L20 UVOL/DVOL 7616/8643 tradingview close_only
Generic opposite-signal harness (Δ head-to-head)
Window: 1996-04-19→2026-07-24 same window/costs/lag next_close +10bps — same window/costs/lag via BacktestConfig.allocatesmartly() next_close 10bps
| Generic | Generic-only | Signal+Generic | Δ% | ΔCAGR | ΔSharpe |
|---|---|---|---|---|---|
| sma50 | 2.8243 | 3.4858 | 23.43% | +0.73% | +0.04 |
| sma200 | 10.01 | 16.52 | 65.09% | +1.81% | +0.10 |
| cross_50_200 | 15.43 | 25.66 | 66.32% | +1.86% | +0.10 |
| trailing_10pct | 5.8122 | 8.7591 | 50.70% | +1.45% | +0.08 |
| bh | 19.28 | 19.28 | 0.00% | +0.00% | +0.00 |
ADL Volume Ratio buy impulse daily UVOL/DVOL >22 (request.security D close, timeframe=5 input unused vs D) blended with generic defensive via OR override (long if either generic long or ADL active hw20); BH blended near BH itself; deltas vs generic-only on same window/costs/lag BacktestConfig.allocatesmartly() next_close 10bps, offline tradingview UVOL/DVOL 7616/8643 rows
ADL Volume Ratio buy-only impulse Pine request.security USI:UVOL/USI:DVOL D close ratio >22 strict level hw20 fixed, blended with generic defensive via OR override (long if either generic long or ADL active) — each head-to-head generic-only vs signal+generic on same window/costs/lag via BacktestConfig.allocatesmartly() next_close 10bps; deltas SMA200 65.09% (CAGR +1.81% Sharpe +0.10), SMA50 23.43%, cross 66.32%, trailing 50.7%, BH 0.0% — window 1996-04-19→2026-07-24 same window/costs/lag next_close +10bps L20 UVOL/DVOL 7616/8643 tradingview close_only
Equity vs S&P (aligned, rebased to 1.0)
Aligned window, both rebased to 1.0 at start — Aligned window, both rebased to 1.0 at start for fair comparison · S&P dashed, experiment solid. X = Date, Y = Equity (rebased to 1.0).
Signal driver & thresholds (x-aligned)
Signal timeline (sparse triggers)
Triggers when overlay takes over base strategy
Stats
| CAGR | 0.00% | Sharpe | 0.00% |
|---|---|---|---|
| Sortino | 0.00% | maxDD | 0.00% |
Disposition
Rejected for risk-off-indicators/v1 and strategy promotion — fidelity verified (pinned fixture + 0 date mismatches) but brittle/optimization risk and sparse power; publish as qm-kdnj experiment with frozen Pine semantics, parity metrics, and generic-exit harness. Retain as risk-signals/v1 SHIP as signal (buy-signals-v1.json adl-vol-ratio, signals/history.json, docs/signals.html).
Follow-on work
- No explicit follow-on; file new issue if needed
Errors & data gaps
Native UVOL starts 1996-04-19; pre-1996 insufficient_history without licensed NYSE constituent share volume — no synthetic invented; __SYNTH_ADLVOL_RATIO__ NO-GO; daily/monthly correlation N/A Threshold 22 is within but not alone best (15 at 13.42 narrowly beats); 30/40 materially worse — high-threshold brittle; sum5 at 22 impossible (max 5.08) and MA smoothing at 22 collapses to 0 — document brittle and freeze daily raw Holding window monotonic 60d 18.62 dominates 20d 13.39 — optimization risk; 20 frozen per best-practice not 60; decay/retrigger boolean identical to fixed for sparse Consensus overlay 0 vs SMA200 (needs base bullish); additive +29% smaller — override/suppress only add value; B&H zero marginal already max long Recent crisis benefit small (COVID 0% no trigger, 2022 +0.13%) — episodic not recent dominant; DB ends 2026-08-11 ~1 week stale as of 2026-08-18; offline replay on committed snapshot passes, live update via fetch_tradingview_history+upsert_ohlcv when needed DB 104,275,968 bytes near 95 MB soft limit but under 100 MB hard; sidecar data/sim_daily.sqlite not used for ADL per qm-zl9.1; close-only store Volume=0 cannot rebuild pre-1996 Signal is sparse (24 triggers, 0.8/yr) limited power despite 30y span; ensemble 8/12/15 voting could reduce brittleness but not blended
Follow-up
gh issue create --title "Follow-up ADL Vol Ratio Pine UVOLDVOL 22 fidelity re-audit" --body "Follow-up to qm-kdnj.2: Does the Pine-verbatim ADL Volume Ratio daily UVOL/DVOL >22 (request.security D " --label "priority:p2" --label "pipeline:research" --label "agent:ready"# deep-link