Commit Graph

2935 Commits

Author SHA1 Message Date
jaxperro fb631e7ba4 live: 2026-07-20 reconcile — settle empty-cond Odyssey auto-redeem, fold $0.05 rounding (refs #18)
CASH≠CHAIN -$1.75 root-caused: the 07-16 BikesAreTheBikes copy booked with
empty title/outcome/cond, so settle_resolved could never resolve it; the
venue auto-redeemed $1.694914 on-chain (tx 0x4f303e0e…) while the book
held it open. Hand-settled exactly as settle_resolved would (won @ 1.0,
pnl +$0.68, my_pos/conds cleaned, metadata backfilled from the venue
record) and folded the +$0.050314 fill-rounding remainder as an
adjustments entry (non-trading income, zeroes CASH≠CHAIN, cash credited).
Post: cash == chain $49.324270 (3 RPCs agree), raw drift +0.0003 (0.00).
Machine stopped + heartbeats watched to cessation per the HANDOFF ops
procedure; root cause filed as #18.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 19:01:22 -04:00
jaxperro 16d8deb878 docs: tape-era findings + research silo across FINDINGS/HANDOFF/README
FINDINGS: 'The tape era opens' section (sharp screen 742/742 proxy
validation, Study A identity-null, Study B winner's curse, crater refill
clock) + scorecard rows for the two forward-window studies + research/ in
repo layout. HANDOFF: #16/#17 in the open queue, research silo + nightly
launchd in snapshot/ops. README: research/ directory row.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 18:39:19 -04:00
copybot[bot] 0f2368f049 copybot: live paper feed [skip ci] 2026-07-20 22:24:39 +00:00
copybot[bot] c5a08c7024 copybot: live paper feed [skip ci] 2026-07-20 21:45:54 +00:00
jaxperro 377192c4bf copybot: per-niche FAK re-quote waits from measured crater-refill times
The flat 10s retry was calibrated to nothing; the tape now says craters
refill at very different speeds (research requote_timing, 775k crater
prints): crypto 94% within 4s, esports 83% within 10s, sports only 70% at
10s but 76% by 25s, geo/politics tails run minutes (price guard is the
protection there, not the retry). Waits move to FAK_RETRY_NICHE_DEFAULT
{crypto 4, esports 10, sports/geo/politics/other 25}, classified by the
validated research niche patterns (esports before sports so 'LoL: A vs B'
doesn't fall through on ' vs '). cfg fak_retry_niche_s overrides per key;
fak_retry_s stays the fallback (tennis: no measurement yet) and 0 still
disables the feature. Paper-parity: same map both bots. test t8 covers the
map, first-match classing, fallback, and config override.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 17:45:32 -04:00
copybot[bot] 83d1d8397a copybot: live paper feed [skip ci] 2026-07-20 21:40:48 +00:00
copybot[bot] 528a926e7e copybot: live paper feed [skip ci] 2026-07-20 21:39:55 +00:00
copybot[bot] d8ae11624f copybot: live paper feed [skip ci] 2026-07-20 21:35:40 +00: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
copybot[bot] 832e768e75 copybot: live paper feed [skip ci] 2026-07-20 21:08:51 +00:00
copybot[bot] 3017a5831d copybot: live paper feed [skip ci] 2026-07-20 21:03:13 +00:00
copybot[bot] a9901f3fa3 copybot: live paper feed [skip ci] 2026-07-20 21:02:21 +00:00
copybot[bot] 61e66b7929 copybot: live paper feed [skip ci] 2026-07-20 20:47:54 +00:00
copybot[bot] 63f8659a99 copybot: live paper feed [skip ci] 2026-07-20 20:47:13 +00:00
copybot[bot] 20a42c8fc1 copybot: live paper feed [skip ci] 2026-07-20 20:41:22 +00:00
copybot[bot] 1ff789da99 copybot: live paper feed [skip ci] 2026-07-20 20:40:48 +00:00
copybot[bot] 545b3910fd copybot: live paper feed [skip ci] 2026-07-20 20:32:09 +00:00
jaxperro 008b3138cc tape research: first sharp screen over the RTDS firehose (#2)
live/tape_sharps.py — insider.py's improbability z transplanted onto the
3-day tape (13.8M fills, ALL wallets, no survivorship bias): proxy-resolve
tokens from terminal-VWAP convergence (0.97/0.03, 2h quiet, sibling veto),
net held positions per wallet-token, z = (W - Σp)/sqrt(Σp(1-p)) over
proxy-resolved held bets, then payouts.py chain-truth overlay on the
shortlist (refunds count as neither). Copyable/algo split: discrete-entry
conviction bettors (<= 6 fills/bet, <= 90 bets, med >= $50) vs continuous
flow accounts that score huge but can't be mirrored at 3-17s lag.

First run (tape through 2026-07-20 16:59): 2,360 wallets screened, 561
score z >= 2 with pnl > 0, 25 copyable candidates at z 4.0-5.5 — chain
validation 742 payout vectors, ZERO proxy flips. Benchmark sanity: benched
sharps (LSB1 +3.28, EdwardIN +2.38) land positive, benched losers negative.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 15:36:01 -04:00
copybot[bot] d35d960254 copybot: live paper feed [skip ci] 2026-07-20 19:25:29 +00:00
copybot[bot] 7e91b56590 copybot: live paper feed [skip ci] 2026-07-20 19:25:16 +00:00
copybot[bot] 35d9b7d96c copybot: live paper feed [skip ci] 2026-07-20 18:53:15 +00:00
copybot[bot] 497de4427f copybot: live paper feed [skip ci] 2026-07-20 18:52:53 +00:00
jaxperro 01687f4a44 copybot: one-shot 10s re-quote retry for FAK no-match OPENs
'no orders found to match with FAK order' is the #1 miss class (13 of the
last 48h's misses) — the copy lands in the crater the sharp just swept,
before makers requote. Instead of recording the miss at the first
rejection, hand the OPEN to Copybot.fak_requote_retry: sleep fak_retry_s
(default 10, 0 disables) OUTSIDE the bot lock, then re-run the whole gated
buy path (fresh quote, price guard, depth gate) exactly once, mirroring
the webhook call site's fill drain so a retry fill books lag + bet rows.
A second rejection records the miss tagged 'twice (re-quote retry)'.
Paper-parity: the hook is installed in both modes, and PaperExecutor's
FAK model re-decides on the fresh book. tests/test_fak_retry.py covers
hook scheduling, no-double-count sizing (their_size=0 re-entry), ADD and
non-FAK bypasses, and the end-to-end retry thread.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 14:52:16 -04:00
copybot[bot] 57b549abb0 copybot: live paper feed [skip ci] 2026-07-20 18:49:14 +00:00
copybot[bot] cb3aba3911 copybot: live paper feed [skip ci] 2026-07-20 18:49:08 +00:00
copybot[bot] 8e741d715c copybot: live paper feed [skip ci] 2026-07-20 18:38:24 +00:00
copybot[bot] b0b48c4168 copybot: live paper feed [skip ci] 2026-07-20 18:38:18 +00:00
jaxperro 6f6bd81cb1 fix tape ingest data loss + daily digest send
ingest: sftp needs stdin=DEVNULL under launchd (no tty) — without it, empty/partial files decoded to 0 lines and the missing integrity guard MARKED+DELETED them (36 segments lost). Guard: a >200B gz that yields 0 lines is a failed fetch, left on box to retry.
digest: retry+backoff moved INTO _post so the digest send (not just the start ping) survives the post-wake DNS gap; ingest ping gets the same.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 13:19:59 -04:00
jaxperro 8987bceb42 live: daily refresh — skilled + sharp wallets [skip ci] 2026-07-20 13:19:59 -04:00
copybot[bot] 3d04b9b875 copybot: live paper feed [skip ci] 2026-07-20 16:42:23 +00:00
copybot[bot] a719d9c3ce copybot: live paper feed [skip ci] 2026-07-20 16:38:59 +00:00
copybot[bot] 3ece385df6 copybot: live paper feed [skip ci] 2026-07-20 16:27:18 +00:00
copybot[bot] d0ad184f6d copybot: live paper feed [skip ci] 2026-07-20 16:25:48 +00:00
copybot[bot] 08e2e3fa97 copybot: live paper feed [skip ci] 2026-07-20 16:12:20 +00:00
copybot[bot] 1938f3f392 copybot: live paper feed [skip ci] 2026-07-20 16:10:51 +00:00
copybot[bot] cbcd724a80 copybot: live paper feed [skip ci] 2026-07-20 15:59:15 +00:00
copybot[bot] ed1e8de1de copybot: live paper feed [skip ci] 2026-07-20 15:57:51 +00:00
copybot[bot] ca3e2cc1a9 copybot: live paper feed [skip ci] 2026-07-20 15:46:59 +00:00
copybot[bot] 547838bc7a copybot: live paper feed [skip ci] 2026-07-20 15:46:30 +00:00
copybot[bot] 8e207416d0 copybot: live paper feed [skip ci] 2026-07-20 15:40:39 +00:00
copybot[bot] 907d2002df copybot: live paper feed [skip ci] 2026-07-20 15:38:25 +00:00
copybot[bot] 842b01e70a copybot: live paper feed [skip ci] 2026-07-20 15:10:18 +00:00
copybot[bot] bcb5ade5ee copybot: live paper feed [skip ci] 2026-07-20 15:09:56 +00:00
copybot[bot] 05c54242d7 copybot: live paper feed [skip ci] 2026-07-20 14:33:22 +00:00
copybot[bot] ef2817b881 copybot: live paper feed [skip ci] 2026-07-20 14:31:03 +00:00
copybot[bot] 8303bf3427 copybot: live paper feed [skip ci] 2026-07-20 14:29:05 +00:00
copybot[bot] a7aa4eff00 copybot: live paper feed [skip ci] 2026-07-20 14:24:36 +00:00
copybot[bot] b958a1cb3b copybot: live paper feed [skip ci] 2026-07-20 14:24:33 +00:00
copybot[bot] a2caa77cf5 copybot: live paper feed [skip ci] 2026-07-20 14:22:26 +00:00
copybot[bot] d194685596 copybot: live paper feed [skip ci] 2026-07-20 14:22:22 +00:00