Commit Graph

5 Commits

Author SHA1 Message Date
jaxperro fce6f0f2de research: oraclebot — Study B real-time paper harness (wwf-oraclebot) + nightly chain grading
Mirrors forward.py::score_oracle semantics verbatim (constants frozen from
study_oracle/tape); live-only suppress-only guards; $100 FAK walks the live
asks inside p_ref*1.05; three settle layers (own-feed tick, CLOB flags,
nightly CTF re-grade via grade_oracle.py -> oracle_paper_ledger.jsonl).
Shakedown 2026-07-22: 52 events/9 fills/43 craters at p50 541ms; 30/30
event agreement vs tape scorer on the comparable set. Verdict still binds
to forward_ledger only (#17).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-22 16:51:54 -04:00
jaxperro eeeed39e22 surgebot: Study A paper harness, deploy-ready for the Friday sprint (#16)
Real-time PAPER trader of the FROZEN surge signal on its own Fly app
(wwf-surgebot, recorder-pattern image, no keys, no bot imports):
$100 paper book · 5%-of-equity daily stakes ($1 venue floor) · cash-gated
all-or-nothing · event cap 2 · paper FAK against the live CLOB book inside
p_ref*1.05 · provisional CLOB settles re-graded nightly with CTF payout
vectors (grade_surge.py -> surge_paper_ledger.jsonl). Informed set
published daily (informed_set.py -> params/informed_set.json, frozen
method). Unit-tested: fill/crater/event-cap/cash paths exact; live smoke:
dual sockets + sizing clean. Believing any of it stays gated on the #16
forward verdict.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 15:15:53 -04:00
jaxperro 3f696a2aca research: nightly lock uses an absolute path
First run exited 1 after a successful score: the exit trap's relative
rmdir ran from the repo root (post-cd) — wrong dir, stale lock left in
research/, every future night would have skipped itself.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 13:09:20 -04:00
jaxperro 01cc9e88b5 research: nightly waits for fresh tape + absolute python
2026-07-21 first firing failed two ways: launchd's bare python3 has no
duckdb (framework python does), and 09:15 preceded the sleep-delayed daily
pipeline's tape ingest, so even a clean run would have scored a stale
tape. nightly.sh now uses the framework python and polls tape max-ts until
it is <6h old (15min polls, 8h deadline, then scores anyway and logs the
staleness).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 11:26:26 -04:00
jaxperro 2f4f2ccbbe research silo: edge factory — calibrated sim, Study A/B, forward ledger (#2, #16, #17)
research/ is a hard silo (README rules): read-only tape, no bot imports,
own launchd (com.jaxperro.research-nightly 09:15, after daily ingest).

- tape.py: proxy-resolution (the 742/742-validated method), niche + crypto
  strike/expiry/sprint parsers, tick loaders
- sim.py: FAK execution replayer; hold_s=3 fitted on 29 real labeled live
  attempts (79% fill/miss classification), price noise 2-4c, measured
  OPTIMISM BIAS -2c/fill carried into every verdict threshold
- requote.py: crater refill timing per niche (crypto 94% <4s, esports 83%
  <10s, sports needs ~25s, geo/politics minutes) -> params/requote_timing.json
- study_flow.py + robustness: in-play surge momentum. Identity NULL result:
  10 pooled controls +23.85/fill == informed +23.68 -> hypothesis revised at
  freeze, surge-EV primary, identity secondary (#16)
- study_oracle.py: oracle digital fair value. 86% craters, winner's-curse
  inversion at big edges, nothing frozen (no cell at 30 fills) (#17)
- forward.py + nightly.sh: re-scores frozen studies on last 3 tape days,
  appends forward_ledger.jsonl; verdicts ONLY from post-freeze rows

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 17:34:22 -04:00