Files

126 lines
7.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ── POST-MORTEM (2026-07-19): EXPERIMENT CLOSED — HYPOTHESIS REFUTED ──
Killed by the pre-registered criterion, decisively: 994 resolved tickets,
**1W / 993L, 0.075x realized multiple** (paper bank $1,000 spent; 32 tickets
/ ~$32 still open at shutdown — even if ALL win, the multiple caps ~0.1x).
The v0 sub-2¢ mix AND the v0.1 1-2c band both failed live-paper despite the
cache showing 1.24-1.28x historically. Expected wins at the historical rate:
~12; observed: 1 (p ≈ 0 — not variance).
VERDICT: today's sub-2¢ asks are near-perfectly informed. The 2025-era
calibration edge no longer exists in the current market — the visible cheap
tail is pure adverse selection now. The honest FAK fill model + $1 stakes
made this a ~$1,000-paper-dollar lesson instead of a real one; the fill
model, chain settles, and silo pattern all worked exactly as designed and
are reusable for the next hypothesis (tape-derived flow signals).
Fly app destroyed 2026-07-19; feed/state/dashboard remain as the record.
# VALUE — undervalued-market bot (silo'd from the copy trader)
Status: RESEARCH + PLAN (2026-07-17). No bot code yet. USER directives:
copy-bot playbook (paper first → real money), paper must mimic reality as
closely as possible, and a HARD SILO — nothing here may touch or impact the
copy trader. Own dashboard page eventually (jaxperro.com/value).
## Phase-1 research findings (calibration study, 2026-07-17)
Data: 13.5M TRUSTED resolved bet rows (trust.py CTE — the res_t=ts poison and
stale marks excluded), 26.2M raw, read-only against live/cache.duckdb.
1. **The market is well-calibrated where the copybot lives.** 60¢–98¢
realized-vs-price gaps are ±0.3% and NEGATIVE net of the 4% fee model.
There is NO simple "buy favorites" edge. (Also independently validates the
copybot's price band: no systematic juice was left on the table.)
2. **Longshots 2¢–60¢ are systematically OVERPRICED** (gap 1.7% to 3.5%,
cluster-conservative z 9 to 42). Blanket longshot buying is a donation.
3. **THE ANOMALY: sub-2¢ contracts are UNDERPRICED.**
- Full set: n=696k bets / 291k markets, avg entry 0.82¢, realized 1.02%
→ 1.24x gross, ≈ +20%/$ net of entry fee, z≈+12 (market-clustered).
- Survives WITHOUT our skilled wallets: rows from wallets outside the
94-wallet skilled pool, on market-sides NO skilled wallet touched:
1.27x, +23%/$ net (n=648k / 286k markets).
- NOT refunds: on the payout-covered subset only 41/153k rows were 50/50
refunds (each does mark won=TRUE — the boolean lies exactly as feared,
but the frequency is negligible). Refund-aware TRUE EV on that subset:
entry 0.85¢ → EV 1.31¢/share = 1.55x gross, ~+50%/$ net. Covered
subset skews rich (it's markets our pipeline settled); the honest
global estimate stays ~1.241.27x.
- Horizon: the effect is strongest at SHORT time-to-resolution (<1h and
1h1d), i.e. in-play/near-expiry dust.
- Skilled wallets at sub-2¢ run 2.85x (n=5.5k) — the informed-niche
effect on top of the structural one; that part is signal A's business
(smart-money scanner), not this bot's.
**Interpretation**: below ~2¢ the favorite-longshot bias INVERTS — consistent
with sellers harvesting "sure" pennies (selling 99¢ completes = supplying the
1¢ side) pushing tails below fair. Per-bet payoff is 50120x with ~1% hit
rate: massive variance, only harvestable as a LAW-OF-LARGE-NUMBERS portfolio
(hundreds of independent markets), tiny per-market stakes.
**What the data CANNOT tell us (= why the paper bot exists):**
- EXECUTABILITY: cached fills are prices people actually got, but dust books
are thin (our own depth gate: ask5c<$50 = "mispriced every fill"). Whether
$15/market is fillable at ≤2¢ TODAY, at FAK, without moving the book, is
unknowable from history. This is the #1 risk and the paper bot's #1 job.
- Era drift: the cache spans months; the bias may have closed.
- Correlation: same-event dust tickets resolve together (event cap needed).
## Strategy V0 (paper only): systematic sub-2¢ portfolio
- Universe: every active market with an ask ≤ 2¢ (gamma/CLOB scan; exclude
markets resolving <X min out if the book is one-sided — parameter, not
dogma; the horizon data says near-expiry is where the edge LIVES, so no
blanket exclusion).
- Entry: FAK-modeled buy at the ask, protected band exactly like the live
executor would send. Stake: flat $12/market (venue min), hard event cap 1
(correlated dust resolves together), portfolio cap N open.
- Exit: hold to resolution (redeem is fee-free; the whole edge is terminal).
Settle at CHAIN truth via payouts.py vectors (0.5 refunds are real).
- Measurement: edge-vs-hurdle daily from day 1 (the copybot's edge.py
pattern). Break-even hit rate at 1¢ ≈ price×(1+fee drag) ≈ 1.05% — the
book needs ~2,000+ resolved tickets for a significant verdict; at ~13k
qualifying markets/day observed in cache era, ~26 weeks of paper.
Signal A (smart-money consensus scanner) is a SEPARATE later deliverable —
dashboard watchlist first, never auto-traded from this silo.
## Silo architecture (mirrors the copybot playbook, shares nothing live)
- **Code**: new files under `value/` ONLY. May import the read-only research
libs (`trust`, `payouts`, `smart_money` GETs). MUST NOT import copybot.py
or copytrade.py (book/fee helpers get duplicated into `value/` — ~40 lines
bought for total blast-radius isolation). No shared state, no shared feed,
no shared webhook, no shared Fly app.
- **Runtime**: own Fly app (`wwf-valuebot`, arn) cloning this repo at boot,
same clone-guard pattern. Poll-driven (gamma universe scan + book reads);
needs NO Alchemy/RTDS — detection latency is irrelevant to a standing
limit-universe strategy.
- **State/feed**: `value/valuebot_state.json`, feed `value/valuebot.json`,
fills `value/valuebot_fills.jsonl` — committed by ITS OWN pushes, same
pull-rebase-push discipline. Paper realism from day 1: FAK-vs-book fill
model (no ask inside band = MISS, the 2026-07-16 parity lesson), category
fee rates, depth-gated stakes, refund-aware chain settles, honest missed
ledger, daily edge row.
- **Dashboard**: later, jaxperro.com/value reading the feed — separate page,
separate feed file; the trading/live pages are untouched.
- **Ops**: HANDOFF.md stays the shared session log; this file is the value
bot's own state-of-the-world.
## Rollout gates (copybot playbook)
1. PAPER (build next): 26 weeks; verdict = realized portfolio ROI vs the
~1.05% break-even hit rate with real fill misses counted.
2. KILL criteria: fill rate <30% of attempts (the edge exists but isn't
buyable), or realized multiple <1.1x after 2k resolved tickets, or the
paper book can't deploy >$50/week at $12 stakes (too thin to matter).
3. REAL MONEY: only after paper verdict + user go; separate wallet, separate
caps conversation. Never funded from or through the copy-trader wallet.
## Open research (phase 2, before/alongside paper build)
- Maker-vs-taker split: can resting 1¢ bids harvest the same edge with
NEGATIVE fee (maker) instead of paying the taker rate? Adverse-selection
test needed (the copybot's resting-limit analysis says beware).
- Era stability: recompute the bucket table on trailing 30/60/90d windows.
- Category cut once slugs are joined (slug_cache/gamma) — is it all esports
comebacks, or broad?