diff --git a/FINDINGS.md b/FINDINGS.md index 851a0e42..382e3a08 100644 --- a/FINDINGS.md +++ b/FINDINGS.md @@ -704,6 +704,50 @@ can't flatter the verdict. Either outcome is a finding: the premium median kills the mirage in three days, or the paper ledger prices the first edge that survives its own execution. +**Batch three (2026-07-23 night, while the harness deployed):** four +more questions answered on already-flowing data, plus the backtest +itself brought under the discipline. + +- **T11, the patience curve:** #20's 60-second maker TTL is already + optimal. Touches arrive in 1–2s (p90 ≤7s), fill rate flatlines by 5 + minutes, and the marginal late fills LOWER EV/signal (+$16.62 @60s vs + +$15.36 @5m+) — at 5m+ every eventual loser reaches the bid and the + 3% that never fill are winners running away. Patience past a minute + buys nothing but adverse selection. +- **T14, depth structure:** one real cross-harness regularity in 1,923 + chain-graded fills — book imbalance at fill time is a BAND, not a + dial. Extremes are adverse both ways (empty-bid books = falling + knives, bid-heavy books = the winner's curse); the balanced 0.25–0.47 + middle is least-bad in both instruments. A portable fill-quality + guard candidate for #23's thin siblings. The slope feature's + "consistent" gate was a quantile-tie artifact (books cluster at 4-5¢ + across five levels; the quartile boundary landed inside tied values) + — discarded, lesson logged: check feature variance before trusting a + quantile gate. +- **T12, unwinds:** maker-sharp inventory take-backs are NOT exit + signals. STAY on the lean after the sharp unwinds half: +$5.95/unwind + (n=265, 2.6× the pre-declared bar); FADE it: −$5.22. #21's finding + one species over — the lean's information outlives the sharp's own + profit-taking. Study C keeps no exit rule. (Concentration caveat in + the file header: top-5 assets carry the total, the tail bleeds — + decisive for the exit-rule question, not a new edge.) +- **T15, sharp half-life (first half):** the published sharp screen + churns HARD — 49% of newly detected wallets are gone within a day, + 34% survive three days, ~10% a month. Whether that is edge death or + threshold jitter awaits the EV-by-age grade (the chain-ensure over + these wallets' pre-pipeline history is the long pole). +- **The backtest now replays the paper book's execution** (portfolio.py + reads the follow flags — maker feeless entries as the DECLARED + optimistic bound, hold-through exits; flip the config back and the + backtest follows). Its first maker/hold run surfaced #21's cost side + honestly: holding to resolution locks capital — the $1k replay places + ~4× fewer bets (86 resolved vs 390 under mirror-exits) while missed + bets swell. The /trading "Profitable bench" section now scores the + 15-wallet bench on realized + would-be-missed P&L: 12 of 15 carry + their weight, several only BECAUSE of their misses (EdwardIN −$81 + realized, +$791 would-be) — and JuiceFarm is trimmed (+$33 realized, + −$72 would-be: its misses were good misses). + ## Repo layout - `insider.py` — the detector: z-score/p-value, timing/freshness/sizing signals, diff --git a/HANDOFF.md b/HANDOFF.md index 8598fd6f..56d1ae79 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -138,7 +138,25 @@ push through. T6 lean-follow → #22 (fade arm FAILED its concentration gate, report-only); T9 lead-lag → #23; T1 maker-quote Stage-1 KILL; T7 settlement-discount industrialized, parked; T8 crater-rejects were - good misses; T10 age gradient needs sample. + good misses; T10 age gradient needs sample. Batch three (same night) + — T11: #20's 60s TTL already optimal, patience past 60s = adverse + selection; T12: maker-sharp unwinds NOT exit signals (STAY + +$5.95/unwind n=265; Study C keeps no exit rule; #22 comment); T14: + balanced-book imbalance band (0.25-0.47) = portable fill-guard + candidate for #23; T15: sharp-screen churn 49%/1d, ~10%/28d + (EV-by-age grade pending its chain-ensure). +- **Backtest = paper-execution parity (2026-07-23, 004911b)**: + live/portfolio.py replays the PAPER book's follow flags (maker + feeless entries — declared optimistic bound; hold-through exits; + sold-unresolved carry as open at the exit print). The backtest is NO + LONGER a taker control — it tracks whatever copybot.paper.json runs. + First maker/hold run: equity +36%, 0 fees, 86 resolved (vs 390 under + mirror) — hold-mode LOCKS capital, misses swell to 1,588; that is + #21's cost side, visible. /trading gained a "Profitable bench" + section (realized + would-be-missed > 0): 12/15 clear it; JuiceFarm + trimmed (+$33 realized, −$72 would-be). JuiceFarm's conviction floor + pins at the next 08:00 sync_floors run (whole-book copies until + then — flagged 2026-07-23 evening). - Dashboards: jaxperro.com/{trading,live,test,value} — /test = all four studies on one page (old /surge + /oracle URLs redirect) · daily pipeline on the Mac at 08:00 (launchd, lockfile) — floors, bench forward table, diff --git a/research/README.md b/research/README.md index b91fb596..663e1314 100644 --- a/research/README.md +++ b/research/README.md @@ -84,6 +84,26 @@ Layout: m=4c/R=1s under queue-front optimism; every R=4s cell −$7-9/fill — staleness IS the adverse selection; ~31-50k graded fills/cell) + copy_maker_patience.py T11 — #20's 60s maker TTL is ALREADY OPTIMAL: + touches land in 1-2s, fill rate flat after 5m, + and the marginal late fills lower EV (loser + fill-rate 100% at 5m+ — patience past a minute + only harvests adverse selection) + maker_unwind.py T12 — maker-sharp unwinds are NOT exit signals: + STAY +$5.95/unwind (n=265, 2.6x the bar) vs + FADE -$5.22 — #21 one species over; Study C + keeps NO exit rule (concentration caveat in + the header; --grade-only re-grades the dump) + depth_imbalance.py T14 — book imbalance at fill is a BAND: extremes + adverse both ways, balanced 0.25-0.47 least-bad + in BOTH harnesses (portable #23 guard + candidate); slope "gate" = quantile-tie + artifact — check feature variance first + sharp_halflife.py T15 — published-set churn is violent: 49% of + detected sharps gone in 1 day, ~10% at 28d + (real as-of git history of watch_sharps.json); + EV-by-age = churn's meaning — pending its + 81k-cond chain-ensure requote.py crater→requote timing (feeds the bots' per-niche retry) forward.py scores frozen studies on new tape days → forward_ledger (payouts_for chain overlay mandatory; controls + sub5c