Theses Trades Testing — Results & Strategy Review

Scalp framing (local levels) vs extended-hold (HTF thesis levels) on the daily DMA theses book

Overview

Two questions about the daily thesis trades (production levels: entry = base range, SL = opposing trigger or ±2%, TP = 2R):
1. Can the same direction be traded as a short-hold scalp with local 24h swing levels + local targets? · 2. Held past the 24h reconcile window, does the TP eventually hit — and how long does it take, given the SL isn't hit first?

Which framing for which job? (24h, same theses)

The PULL 1R scalp (limit at last 24h swing low/high, SL 0.5×ATR15, TP 1R) is the standout: 78% win rate on filled trades, +0.56R, TP hits a median ~2h after anchor. The HTF thesis trade is a low-hit-rate / big-R swing that misses ~half its eventual winners inside 24h. They are complementary — run PULL scalps on the direction while the HTF limit order keeps working underneath.

Test 1 — Scalp framing (local 24h swing levels + local targets)

For every tradable thesis, structure (swing points, ATR15) is computed only from the 24h of 15m bars before the anchor — no lookahead. Variants: MARKET = enter next bar open (SL ±1×ATR, TP 1R/2R); PULL = limit at last swing low (LONG) / high (SHORT), SL ±0.5×ATR, TP 1R/2R; BREAK = limit at last swing high (LONG) / low (SHORT), SL ±1×ATR, TP 1R/2R. Each evaluated at hold caps 2/4/6/12/24h with production first-touch semantics.

Summary (selected filters)

Outcome by hold cap

Per-coin leaderboard (n ≥ 5, selected filters)

Test 2 — Extended hold (past the 24h reconcile window)

The exact production levels walked forward from each thesis As-Of anchor over horizons 1/2/3/5/7/10/14/21/30 days. Outcome semantics identical to production reconcile: fill = price trades through entry, then first of TP/SL touched wins; OPEN = neither in window; STALE = entry never filled. Same-15m-bar ties count as WON (production TP-first).

Outcome by horizon

How long until TP hits? (WON trades, from fill)

How long until SL hits? (LOST trades, from fill)

24h-OPEN trades — what happens if you hold longer?

LONG vs SHORT

Conviction buckets (7d horizon)

Realistic fills — trade entries & exits modeled as orders

Fills the gap between the original exact-level walk (fill at the thesis level; TP/SL at the level — conservative) and the simulator's touched-price fills (optimistic) with how limit/stop orders actually fill on 15m OHLC: realistic = gap-aware limit entries (fill at the level, or the bar open when it gaps through), TP gap-improved, and SL slipped to the crossing bar's adverse extreme (stop-market behavior). Tolerance models place the entry limit ±1% / ±2% from the level, matching production's limit-low ±2%.

Model × horizon — resolved win % / avgR

Headline (1d)

Read: win rate is a resolution property (identical for exact / touched / realistic — fill price only changes R). Realistic fills roughly double avgR vs exact-level fills (+0.38 → +0.92 at 1d full book); SL adverse-extreme slippage costs ~0.2–0.3R. The production ±2% tolerance entry is the real win-rate story — 74.9% win / +0.43R (more frequent small winners) — and reproduces the theses-portfolio simulator's 70.8% headline. Touched-price fills inflate avgR absurdly (+5.1R full book, +11R TOP-5) — the simulator's R arithmetic, not a tradeable number.

Strategies & Potential Applications

Specifications of every framing tested, with measured performance and how the pieces fit together.

Thesis HTF 2R — production trade baseline

entry = base.rangeLo (LONG) / rangeHi (SHORT)SL = opposing trigger or ±2%TP = 2Rsource: market-profile key levels
  • 24h: fill 48%, WON 15.5% of all / 46.0% of resolved, avgR +0.38
  • 14d: fill 67%, WON 29.2% of all / 47.8% of resolved, avgR +0.43 — the gain is fill rate, not quality
  • LONG leg carries it (+0.57R at 7d); SHORT theses bleed (−0.31R)

Scalp PULL 1R best scalp

direction from thesislimit = last 24h swing low (LONG) / high (SHORT)SL = entry ∓ 0.5×ATR15TP = 1Rhold ≤ 24h
  • 24h: fill 77%, WON 60.1% of all / 78.1% of resolved, avgR +0.56, avg% +0.42%
  • TP hits median ~1.9h after anchor; edge present even at 2h (70.3% win / +0.41R)
  • Works LONG (+0.58R) and SHORT (+0.45R) — the tight local stop rescues the short leg
  • Fee-sensitive: +0.42% avg% vs ~0.07–0.11% round-trip fees → net still positive, but use maker fills

Scalp PULL 2R

same entry/SL as PULL 1RTP = 2R
  • 24h: fill 77%, WON 37.4% of all / 48.7% of resolved, avgR +0.46, avg% +0.42%
  • Taking 2R on the local level trades win-rate for R — expectancy still positive but lower than 1R

Scalp MARKET 1R / 2R no edge

enter at next bar openSL = entry ∓ 1×ATR15TP = 1R / 2R
  • 24h: MARKET 1R avgR −0.03 (48.6% win), 2R −0.14 (28.6% win)
  • Paying the open immediately and using a 1×ATR stop gives up the edge — limit-fill discipline is the edge
  • Note: the original +0.09R was an artifact of pricing TP/SL from refPrice while filling at the open; fixed by the code review.

Scalp BREAK 1R / 2R loser

limit = last swing high (LONG) / low (SHORT)SL = entry ∓ 1×ATR15TP = 1R / 2R
  • 24h: BREAK 1R avgR −0.67 (16.5% win), 2R −0.74
  • Chasing the last swing break with a 1×ATR stop fails — the directional edge lives in the pull, not the break

Potential applications

  • Complementary book: run PULL 1R scalps on the thesis direction while the HTF limit order (production levels) keeps working underneath — the scalp harvests the direction intraday; the HTF trade captures the big move when the level finally triggers.
  • Intraday execution fit: TP hits a median 1.5h from fill (53% within 2h) — the thesis direction is a short-fuse signal; treat any thesis as intraday-actionable rather than 24h-passive.
  • LONG-biased exposure: extended-hold edge is LONG-only (+0.57R vs SHORT −0.31R at 7d). PULL 1R works both ways; consider LONG-only for anything held past 24h.
  • Fill discipline: limit entries only. MARKET entries (any time, next open) have no edge — wait for the local swing level.
  • SL risk is day-1: 92% of SL hits occur within 24h of fill (median 2.8h). Surviving 24h strongly predicts reaching TP — the 24h-OPEN subset resolves 24 WON / 19 LOST by 14d.
  • Fees: PULL 1R nets ~+0.3% after taker fees; use maker/limit fills and watch micro-cap spread. No funding model included — add before going live.
  • Evidence level: 23-day single-regime window — diagnostic, not deployment-grade. Re-run monthly (scripts cached) before sizing real capital.

Methodology & Caveats

Resolution semantics (identical to production reconcile)

  • fill (LONG): first 15m bar with low ≤ entry; (SHORT): high ≥ entry
  • after fill, walk bars from the fill bar onward; LONG: high ≥ TP → TP touched; low ≤ stop → SL touched (SHORT mirrored)
  • same-bar TP+SL tie → counted as WON (production checks TP first); after the first-touch fix only 45 true ties vs 1,031 "both-touched" rows in the pre-review scan
  • STALE = entry never filled in window; OPEN = neither level touched; r_mult = +2 on WON, −1 on LOST, mark-to-market for OPEN

Caveats

  • 23-day single-regime window (2026-08-18 → 09-09, 414 tradable theses). Per the house rule, treat anything under 60 days as diagnostic, not evidence.
  • No fees modeled. Bybit taker ~0.055% / maker ~0.02%. PULL 1R at +0.42% avg% is fee-sensitive.
  • Mean-vs-median: SHORT extended-hold avg% (+1.59% at 7d) is inflated by a few micro-cap winners with huge TP distances (up to −73% moves). Always read avgR as primary; the site's per-coin tables sort by avgR.
  • PUMP has no Bybit klines (17 theses) — excluded as NO-DATA, matching production (Bybit-only execution).
  • Entry gap: HTF entries sit a median −4.3% from refPrice — the levels are far from market, which is why 24h fill rates are ~half.
  • Anchors: As-Of from each thesis file's generatedAt (companion DMA file or data/theses/anchors.json), never mtime. Klines: Bybit public 15m, full-window paged (no truncation), cached in data/klines/.
Why these numbers differ from the theses-portfolio simulator (72%) and production tracking (31%): the sim trades a curated TOP subset, holds until a 3-day time-stop/rollover (no 24h cap), and fills at the actual touched 15m price with ±0–2% tolerance — re-walking the same subset with touched-price fills reproduces ~66% vs 50% at exact-level fills. Production tracking is lower (31%) due to real-execution drag (±2% tolerance fills, USE_LIVE_ENTRY, funding/slippage). This site is the conservative full-book read. Full reconciliation in FINDINGS.md.
Full data: results/extended_hold_*.json + results/scalp_framing_*.json in the repo. Regenerate everything with THESES_DATA_DIR=data/theses python3 run_extended_hold.py && python3 run_scalp_framing.py && python3 summarize.py && python3 analyze.py && python3 site/build_site.py