Volume-Clock (Equal-Dollar-Bar) Time-Series Momentum on XRPUSDT.BINANCE USD-M — Resample the Tape So Every Bar Contains the SAME Amount of Traded Value, Then Take the Sign of Trailing Momentum in That Clock; Always-In Long-Short, Never Flat, Pure OHLCV, No Gate, No Supplementary Feed
Hypothesis
A SINGLE-INSTRUMENT, SINGLE-LEG, always-in long-short directional strategy on XRPUSDT.BINANCE USD-M perpetual. The novelty is NOT the instrument, the venue, the indicator or a confirmation gate — it is the CLOCK the signal is measured on. Every prior momentum/TSMOM hypothesis in this factory (1,371 of them) measures the trend over a fixed span of CALENDAR time: a 56-day return, a 4H-vs-1D confluence, a 10-week sign. This hypothesis discards calendar time entirely and rebuilds the price series in TRANSACTION time: the 15-minute tape is accumulated into synthetic bars that each close after the SAME amount of traded dollar value has changed hands, and the position is the sign of the trailing return measured over a fixed number of those equal-value bars.
CONSTRUCTION (deterministic, no look-ahead):
1. Subscribe to XRPUSDT.BINANCE-15-MINUTE-LAST-EXTERNAL (catalog verified: continuous coverage 2020-01-06 -> 2026-09-17, ~235k bars, 9.1 MB; this is the primary and ONLY data stream).
2. Per 15m bar compute dollar volume dv = bar.volume.as_double() * bar.close.as_double(). Accumulate dv into a running total, and track running open/high/low/close of the in-progress synthetic bar.
3. When the running total >= V*, EMIT a synthetic dollar bar (open = first 15m open since last emission, high/low = extremes over the span, close = the closing 15m bar's close, timestamp = that 15m bar's ts_init) and reset the accumulator with the overflow carried forward.
4. V* is ADAPTIVE and strictly trailing, which is essential over a 6.7-year span in which XRP's daily turnover grew by more than an order of magnitude: once per UTC day, at the first bar of the day, set V* = (median daily dollar volume over the trailing 30 completed UTC days) / bars_per_day_target. A fixed constant threshold would emit almost no bars in 2020 and hundreds per day in 2025 and would make the study meaningless. With bars_per_day_target = 6, a synthetic bar spans ~4 hours of MEDIAN activity, but completes in 15-45 minutes during a repricing burst and can take a full day or more during a dormant tape.
5. SIGNAL: s = sign(log(C_t / C_{t-L})) over the last L = 72 synthetic dollar bars (~12 days at median activity). Position = +1 (long) if s > 0, -1 (short) if s < 0. Always in the market; there is no flat state, no regime filter, no volatility deadband, no supplementary confirmation and no rarity gate.
6. SIZING: inverse-volatility. realized_vol is the stdev of the last 72 synthetic-bar log returns, annualized using the MEASURED average calendar duration of those bars (not an assumed one). notional = equity * clamp(0.20 / realized_vol_ann, 0.25, 1.5). Hard cap 1.5x leverage, max 30% of equity at risk via the stop.
7. EXIT: reverse on signal flip (the normal path), plus a chandelier stop at 4 x ATR(20 synthetic bars) from the favourable extreme to cap tail losses. The stop exits to FLAT and the book re-enters on the next synthetic bar whose signal is non-zero.
DECLARED FITTED CHOICES (per lesson 122 — these are stated, not hidden behind a '3-parameter' claim): bars_per_day_target = 6 (chosen so the synthetic bar is on the same order as the 4H bar the factory's surviving momentum strategies use, making the clock the ONLY changed variable), L = 72 (chosen to equal ~12 median-activity days, the same order as the surviving ETH/ADA confluence horizon), ATR multiple 4 (wide, tail-capping only, not a profit mechanism). Instrument, venue and base timeframe are justified economically below rather than swept.
Backtest and paper results are hypothetical. Trading involves risk of loss.