Commit Graph

186 Commits

Author SHA1 Message Date
copybot[bot] b7a1f2e9b2 copybot: live paper feed [skip ci] 2026-07-04 02:50:11 +00:00
jaxperro 6c3c966418 live: daily refresh — skilled + sharp wallets [skip ci] 2026-07-03 21:40:57 -04:00
copybot[bot] 0824bc0c90 copybot: live paper feed [skip ci] 2026-07-04 01:09:07 +00:00
copybot[bot] 22850ec16c copybot: live paper feed [skip ci] 2026-07-04 01:07:00 +00:00
jaxperro 6fa1ba94bf sizing discipline binds per market: adds capped at the current stake size
Proportional add-mirroring was unbounded after max_position_usd was lifted -
fortuneking doubling into his own bet took one game to $90 on a $42-stake
book (2.15 stakes). Adds now only top a position up to stake_usd(); the
backtest was already one-market-one-stake, so bot and model agree again.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 21:06:25 -04:00
copybot[bot] d11dcf11bd copybot: live paper feed [skip ci] 2026-07-04 00:18:00 +00:00
copybot[bot] 304b254458 copybot: live paper feed [skip ci] 2026-07-03 22:14:53 +00:00
copybot[bot] 300b7cf85b copybot: live paper feed [skip ci] 2026-07-03 22:06:39 +00:00
copybot[bot] 0521ee87b3 copybot: live paper feed [skip ci] 2026-07-03 21:21:33 +00:00
copybot[bot] 530b1b8c74 copybot: live paper feed [skip ci] 2026-07-03 18:13:02 +00:00
copybot[bot] 6ef06f15d5 copybot: live paper feed [skip ci] 2026-07-03 05:18:39 +00:00
copybot[bot] 167b6088b5 copybot: live paper feed [skip ci] 2026-07-03 04:49:59 +00:00
jaxperro 7e9ccdf5c8 profit ratchet: stakes pin at $250, surplus swept to a banked reserve
Once working equity exceeds stake_cap/pct ($6,250 at 4%), surplus cash sweeps
to state["reserve"]/portfolio reserve - banked, never bet, immune to drawdown
- keeping stakes at the $250 level where marketable fills sit inside typical
book depth. Feed/summary gain reserve; realized = cash+exposure+reserve-bank.
June backfill: equity $15,684 (+1468%), $9,185 banked, next stake pinned $250.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 00:49:22 -04:00
copybot[bot] beb7e9d22c copybot: live paper feed [skip ci] 2026-07-03 04:41:57 +00:00
jaxperro 132793a166 follow imwalkinghere (5th wallet): top fee-adjusted sharp
+$2,454 copy P&L, 72.4% conviction win (144-55), $257 avg bet, 2.1h median
lead. Added to bot configs (p80 floor $115.27) + backtest set. June backfill
with him: +2677% (in-sample selection bias + compounding, next stake $1,070 -
treat as a ceiling; depth-aware fills become necessary at these clip sizes).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 00:41:25 -04:00
jaxperro 87d13385dc docs: current realism rules + maintainer gotchas section
Realism section updated (0.95 entry cap, asymmetric guard, measured lag);
new gotchas list leads with the CLOB winner=False semantics that caused the
2026-07-02 settle bug.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 00:08:34 -04:00
jaxperro b9ed4b1d2b portfolio: per-wallet win/loss records in the feed's allocation rows
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 23:48:54 -04:00
copybot[bot] 117092b95f copybot: live paper feed [skip ci] 2026-07-03 03:36:37 +00:00
jaxperro b6db6f3833 asymmetric price guard (better prices never blocked) + 0.95 entry cap
- guard: by rule, a price BELOW the sharp's fill always passes (strictly
  better odds; the symmetric guard once skipped a 0.70->0.51 improvement that
  won +$36). Only adverse drift is gated by price_guard_pct.
- entry cap: June sweep (0.75-1.0) peaked at max_entry 0.95 - >95c favorites
  added ~23 wins yet lowered final equity (slip+fee eat 1-3% payouts, capital
  compounds better elsewhere); deep caps cut real winners. Set in all configs
  + portfolio MAX_ENTRY (env-overridable for sweeps; PORTFOLIO_OUT added).
  Canonical June backfill: +716%, 219W/52L, $374 fees.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 23:35:51 -04:00
copybot[bot] 099c2cf737 copybot: live paper feed [skip ci] 2026-07-03 03:28:23 +00:00
jaxperro 46a3557abf repair missed-bet ledger: same winner=False bug hit the hypothetical settles
All 7 missed entries were insta-settled as losses under the pre-fix semantics.
Chain-verified reality: 4 won, 2 lost, 1 still unresolved (reopened). Missed
P&L -249.17 -> -18.36.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 23:27:53 -04:00
copybot[bot] 37f63e50d0 copybot: live paper feed [skip ci] 2026-07-03 03:16:46 +00:00
jaxperro 6e09e7bb71 CRITICAL settle fix: CLOB winner=False means unresolved, not lost
The CLOB reports winner=False on EVERY token of an unresolved market; only a
True winner anywhere means resolved. resolution_price treated False as "lost",
so the 60s poller settled live in-play positions as instant losses 1-3 min
after entry (June's ~2h Actions cadence masked it - markets had genuinely
resolved by the next check). Same semantics fixed in _market's resolved-cache
gate and validate_timing._clob_winner (unresolved held bets were counted as
losses, biasing copy_pnl selection downward).

Also: _record_lag now AGGREGATES fills per token (ADD used to overwrite the
display record, showing one fill's cost against the whole position's P&L -
the Cost $20.84 vs P&L -$57.30 confusion).

State repaired: the four July bets all actually WON on-chain (verified by
token winner flags) - settled correctly, +$225.40 proceeds restored, book
$1,045.19 (+45.19 realized, 4W/0L).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 23:15:27 -04:00
jaxperro 2c59c2994b live: daily refresh — skilled + sharp wallets [skip ci] 2026-07-02 23:12:37 -04:00
copybot[bot] 6f9131554e copybot: live paper feed [skip ci] 2026-07-03 03:11:12 +00:00
copybot[bot] d51e1a67c2 copybot: live paper feed [skip ci] 2026-07-03 01:06:02 +00:00
copybot[bot] 7bb4a8dfa4 copybot: live paper feed [skip ci] 2026-07-03 01:03:59 +00:00
copybot[bot] a1a0bd0a94 copybot: live paper feed [skip ci] 2026-07-03 00:54:50 +00:00
copybot[bot] 06945e1ce9 copybot: live paper feed [skip ci] 2026-07-03 00:52:47 +00:00
copybot[bot] e914c6c91e copybot: live paper feed [skip ci] 2026-07-03 00:42:13 +00:00
copybot[bot] c236b1831e copybot: live paper feed [skip ci] 2026-07-03 00:40:08 +00:00
copybot[bot] 9a02780feb copybot: live paper feed [skip ci] 2026-07-03 00:19:18 +00:00
copybot[bot] 2f334dd8a0 copybot: live paper feed [skip ci] 2026-07-03 00:17:14 +00:00
copybot[bot] 9ce27cd4fd copybot: live paper feed [skip ci] 2026-07-03 00:15:08 +00:00
copybot[bot] 96805bd88f copybot: live paper feed [skip ci] 2026-07-02 23:21:39 +00:00
copybot[bot] 3b65228bb6 copybot: live paper feed [skip ci] 2026-07-02 18:22:05 +00:00
jaxperro ecb7a2183a docs: rewrite READMEs around the deployed system (July 2026)
Root README now leads with what actually runs (Mac daily pipeline, Railway
copybot worker, Discord watcher, static dashboard), the July live test, the
realism model (fees/lag/dynamic sizing/missed-bet ledger), a new-developer
quickstart, secrets map, and file map; research story condensed with current
numbers (12 fee-aware sharps, +531% in-sample backfill clearly labeled).
live/README: fee-aware selection, dynamic-sizing portfolio, three dashboard
feeds, copybot now 24/7 on Railway (was "in progress").

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 11:32:37 -04:00
copybot[bot] 627759f025 copybot: live paper feed [skip ci] 2026-07-02 15:26:55 +00:00
jaxperro e85809e8b1 uncap per-trade sizing: pure 4%-of-equity compounding
max_trade/max_position guards lifted in both paper configs; backtest STAKE_CAP
-> inf. June backfill uncapped: +531%, next stake $252, $195 fees.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 11:26:08 -04:00
copybot[bot] 5e4f8bb286 copybot: live paper feed [skip ci] 2026-07-02 15:22:12 +00:00
jaxperro e1d264ddfe event cap off: follow every conviction trade (max_per_event 0 everywhere)
Engine default + both bot configs + backtest set to 0 (cap logic stays, opt-in
via risk.max_per_event). June backfill without the cap: +465%, 237 resolved
(202W/35L), 22 missed, $170 fees.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 11:21:08 -04:00
jaxperro ee4e1750e6 live pipeline test kit: preflight checker, runbook, tiny-cap config template
preflight_live.py verifies key/auth, USDC balance, market access, and redeem
gas read-only (no orders). LIVE_TEST.md is the supervised $5-trade runbook.
config.live.json + copybot_state.live.json gitignored (key never committed).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 11:18:43 -04:00
copybot[bot] 296bf55ea9 copybot: live paper feed [skip ci] 2026-07-02 15:08:36 +00:00
copybot[bot] ac016ac68d copybot: live paper feed [skip ci] 2026-07-02 15:05:22 +00:00
jaxperro b398e5d682 live bot: record + settle missed bets, publish in feed
Engine records every blocked OPEN (no free cash, event cap, price guard) with
its would-be stake; settle_resolved marks them won/lost at CLOB resolution with
hypothetical P&L (fee-inclusive) - the live counterpart of the backtest's
Missed table. Feed gains missed[] + missed_pnl.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 11:03:32 -04:00
copybot[bot] c4709df425 copybot: live paper feed [skip ci] 2026-07-02 14:56:44 +00:00
copybot[bot] 6992bb5229 copybot: live paper feed [skip ci] 2026-07-02 14:55:51 +00:00
jaxperro 716daeccc1 dynamic sizing: 4% of equity per bet, drawdown brake, per-event correlation cap
- engine (copytrade): stake_usd() = bankroll_pct x current equity (cash + open
  cost basis) - Kelly-style compounding both directions - halved while equity
  sits below 80% of its high-water mark; new risk.max_per_event (default 2)
  blocks stacking correlated markets on one real-world event (dated-slug prefix
  grouping; LSB1 once put 6 conviction bets on a single match).
- copybot: feed/summary report the dynamic stake, stake_pct, event_cap, hwm.
- portfolio backtest mirrors the exact same rule (PCT 4%, clamp $5-$150,
  EVENT_CAP 2, brake 80%/half), with per-bet stakes in every table row and a
  persistent CLOB slug cache for event grouping. June backfill: +426% vs +168%
  flat - compounding amplifies the in-sample month; July live is the test.
  Misses fell 62 -> 19 cash-missed (+26 deliberate event-cap skips): smaller
  early stakes capture more signals.
- configs: bankroll_pct 0.04, max_trade/max_position 150 (runaway guards),
  max_per_event 2.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 10:54:07 -04:00
copybot[bot] 76c83a58da copybot: live paper feed [skip ci] 2026-07-02 14:32:32 +00:00
jaxperro fcfd41fbdd copybot: live paper feed [skip ci] 2026-07-02 10:14:02 -04:00