Commit Graph

240 Commits

Author SHA1 Message Date
jaxperro e07ff3d305 copybot: sold legs now realize on the bet record, not just cash
Mirror-exits were correct at book level (cash/fees) but invisible per bet:
a fully mirror-sold bet went to 'closed' with pnl null, and a TRIMmed bet
that later resolved subtracted its ORIGINAL cost+fee while ignoring the
sold leg's proceeds — understating whole-bet pnl on the feed.

* _drain_fills links every SELL fill to its bet record
  (sold_shares / sold_proceeds, net of taker fee)
* write_feed: full mirror-sell -> pnl = sold_proceeds − cost − entry fee,
  plus exit_price; dashboard's existing 'mirror-sold with recorded P&L'
  branch picks it up
* settle_resolved: pnl = resolution proceeds + sold leg − original cost −
  entry fee (pos.cost is trim-reduced; bet.cost is the original)

Sandbox-tested: TRIM cash+record, TRIM->WIN whole-bet truth, full EXIT
feed reconcile all agree to the cent.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 21:58:06 -04:00
jaxperro 034e128281 copybot: whale class follows ALL trades — no conviction floor
Whale-class wallets bypass min_their_usd and per-wallet floors entirely:
both current whales win ~92% across their ENTIRE book (Stavenson 469-39,
0x4bFb 862-72 all-time trusted; 99.2% last 30d for the whale), so
size-filtering them only costs flow. The 0.95 entry cap stays (execution
guard, validated). Floors removed from the paper config for both.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 21:45:45 -04:00
copybot[bot] 58975e515b copybot: live paper feed [skip ci] 2026-07-06 01:43:42 +00:00
copybot[bot] b8f3e5ac2b copybot: live paper feed [skip ci] 2026-07-06 01:37:24 +00:00
copybot[bot] 1e8d62ae73 copybot: live paper feed [skip ci] 2026-07-06 01:31:06 +00:00
jaxperro f8a0f0caee copybot: stop following shisan888
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 21:30:28 -04:00
copybot[bot] 09a0b09a83 copybot: live paper feed [skip ci] 2026-07-06 00:22:51 +00:00
copybot[bot] 2cdad828ba copybot: live paper feed [skip ci] 2026-07-06 00:18:37 +00:00
copybot[bot] cf83a424db copybot: live paper feed [skip ci] 2026-07-06 00:08:05 +00:00
copybot[bot] 45e21f7c97 copybot: live paper feed [skip ci] 2026-07-06 00:03:50 +00:00
copybot[bot] e2b98ebe58 copybot: live paper feed [skip ci] 2026-07-05 23:57:29 +00:00
copybot[bot] 666e19c44a copybot: live paper feed [skip ci] 2026-07-05 23:46:55 +00:00
copybot[bot] c574f6e244 copybot: live paper feed [skip ci] 2026-07-05 23:44:48 +00:00
copybot[bot] d9cf038c92 copybot: live paper feed [skip ci] 2026-07-05 23:19:40 +00:00
copybot[bot] 1fc8d28323 copybot: live paper feed [skip ci] 2026-07-05 22:29:21 +00:00
copybot[bot] 5a5fac6cb5 copybot: live paper feed [skip ci] 2026-07-05 22:27:13 +00:00
copybot[bot] 50be9a3a80 copybot: live paper feed [skip ci] 2026-07-05 22:22:59 +00:00
copybot[bot] 297aa457dc copybot: live paper feed [skip ci] 2026-07-05 21:42:47 +00:00
copybot[bot] a2be73f439 copybot: live paper feed [skip ci] 2026-07-05 21:25:53 +00:00
copybot[bot] c53f004e1f copybot: live paper feed [skip ci] 2026-07-05 20:05:56 +00:00
copybot[bot] d0df03972c copybot: live paper feed [skip ci] 2026-07-05 17:36:56 +00:00
jaxperro 306fece6a7 live: daily refresh — skilled + sharp wallets [skip ci] 2026-07-05 12:57:42 -04:00
copybot[bot] 2ef0e194c1 copybot: live paper feed [skip ci] 2026-07-05 15:48:17 +00:00
copybot[bot] 34476dc3d7 copybot: live paper feed [skip ci] 2026-07-05 15:44:05 +00:00
copybot[bot] af4e894dce copybot: live paper feed [skip ci] 2026-07-05 11:54:09 +00:00
copybot[bot] 1a56539e52 copybot: live paper feed [skip ci] 2026-07-05 11:45:44 +00:00
jaxperro 971204d58d live: daily refresh — skilled + sharp wallets [skip ci] 2026-07-04 19:29:22 -04:00
copybot[bot] 72fa74dc90 copybot: live paper feed [skip ci] 2026-07-04 23:25:49 +00:00
copybot[bot] cac894be96 copybot: live paper feed [skip ci] 2026-07-04 23:19:30 +00:00
jaxperro 0b625c994a README: July test now 8 wallets in two stake classes (volume 4% / whale 12%)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 19:18:51 -04:00
jaxperro 5c0e50efb2 copybot: wallet classes replace raw multipliers — 'volume' 4% / 'whale' 12%
follow.wallet_class marks each wallet (default: volume); follow.class_pct
maps class -> equity fraction. Stavenson + 0x4bFb-whale are whales at 12%,
everyone else rides volume at 4%. Drawdown brake, stake cap, and the
base-fraction sweep threshold unchanged. Verified: $120 whale / $40 volume.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 19:14:46 -04:00
copybot[bot] b6b2e6baf6 copybot: live paper feed [skip ci] 2026-07-04 23:12:13 +00:00
copybot[bot] 1a969745ca copybot: live paper feed [skip ci] 2026-07-04 23:10:02 +00:00
jaxperro b1b6246883 copybot: per-wallet stake multiplier — Stavenson + 0x4bFb-whale bet 3x (12% of equity)
follow.stake_mult ({address: mult}) scales the equity fraction for that
wallet's signals; drawdown brake and stake cap still apply, and the
profit-ratchet sweep threshold stays on the BASE fraction so which wallet
happens to trade doesn't change when profits get banked. Verified: $40
base stake -> $120 for the two, $40 for everyone else, case-insensitive.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 19:09:31 -04:00
copybot[bot] 35bd95be1b copybot: live paper feed [skip ci] 2026-07-04 23:01:39 +00:00
jaxperro 6d02cbb40e Revert "sharps: 30-day activity floor — >=50 trusted conviction bets in the last 30d"
This reverts commit d4596c7a28.
2026-07-04 18:57:08 -04:00
jaxperro d4596c7a28 sharps: 30-day activity floor — >=50 trusted conviction bets in the last 30d
The list is for wallets a copier gets real flow from; dormant or
low-frequency edges (however good) don't belong on it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 18:50:04 -04:00
jaxperro 8c07343735 discord: retire per-trade pings, add daily sharp digest; trust: v2 self-certify + invalidated-wallet fallback
* per-trade Discord pings removed everywhere: copybot placement/settle/startup
  alerts silenced (engine.webhook forced off), webhook_receiver.py archived,
  Procfile removed. The ONLY Discord output is now live/discord_daily.py at the
  end of the daily pipeline: one embed listing every watch_sharps wallet with a
  Polymarket profile link + 30D conviction win% / record / P&L.

* trust.py fixes found on the first scheduled run (sharp list collapsed 25->7):
  - Polymarket rewrites endDate after resolution, so freshly re-pulled wallets'
    corrected res_t stopped matching the stale cross-wallet consensus
    (374/454 of iohihoo's rows wrongly distrusted). v2 rows with resolved=TRUE
    are now self-certifying (resolved=TRUE implies endDate-based res_t observed
    post-end) — consensus only gates legacy rows.
  - daily.sh invalidates watchlist wallets by DELETING their pulled row; a
    transiently failed re-pull then dropped the wallet's entire history from
    the trusted set (the 0x73afc816 whale vanished). Legacy rows of wallets
    missing from pulled now fall back to trusting markets resolved >=14d ago.
  Re-run: 85 conviction wallets, 34 copy-positive sharps — whale/iohihoo/
  Stavenson/LSB1/Kruto all recovered.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 18:31:30 -04:00
copybot[bot] 24b64ba4c1 copybot: live paper feed [skip ci] 2026-07-04 21:43:34 +00:00
copybot[bot] b997f498d1 copybot: live paper feed [skip ci] 2026-07-04 19:27:09 +00:00
copybot[bot] b7751aacb9 copybot: live paper feed [skip ci] 2026-07-04 19:02:15 +00:00
copybot[bot] 579065db66 copybot: live paper feed [skip ci] 2026-07-04 17:36:59 +00:00
copybot[bot] 2da45e83d6 copybot: live paper feed [skip ci] 2026-07-04 17:20:29 +00:00
copybot[bot] 7cd820d689 copybot: live paper feed [skip ci] 2026-07-04 17:01:59 +00:00
copybot[bot] 9a6d56bef5 copybot: live paper feed [skip ci] 2026-07-04 14:48:27 +00:00
jaxperro 0b83a5c81e live: daily refresh — skilled + sharp wallets [skip ci] 2026-07-04 10:47:44 -04:00
copybot[bot] fcb4a764b0 copybot: live paper feed [skip ci] 2026-07-04 14:08:30 +00:00
jaxperro 1d754353c2 selection: trusted-row layer + holder-gate fix — the holder blind spot
Two data bugs were hiding the best copy targets (FINDINGS 'The holder
blind spot'):

* live/trust.py (new): only score rows whose res_t matches the market's
  consensus resolution time across >=2 wallets, pulled after resolution,
  resolved != False. Kills the res_t=ts fallback poison that let scalpers
  masquerade as 99%-win holders (ArbTraderRookie's rows were 100% this).
* conviction_scan.py: trusted rows only; p80 conviction cutoff from the
  train window only (look-ahead leak); new gates z_all>2 (whole-book z,
  ~doubles pooled forward copy-ROI) and median conviction stake >=$50
  (dust filter). 55 wallets selected, forward 30/38 profitable, +21.4%
  pooled (was 284 selected, +16.0%).
* validate_timing.py: the held-edge gates now read the trailing-90d
  trusted conviction record via trust.conviction_record instead of the
  replay's held leg, which is structurally ~all-unresolved for week-lead
  holders (whale 0x73afc816 showed 'held 0-0, 21 unresolved' and was
  rejected at 100% fwd win). 25 copy-positive holders now, including
  Stavenson (51-0), the whale (112-4) and iohihoo (98-10).
* cache.py: query() helper so trust.py shares the single in-process
  connection instead of fighting the single-writer lock.
* README: gotcha 8 (fake res_t/won) + candidate next data sources
  (Goldsky pipelines, PolymarketData order books, Pinnacle CLV,
  Polysights); FINDINGS: dated section correcting the iohihoo/ArbTrader
  scalper-trap verdicts as winner=False-bug artifacts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 09:08:35 -04:00
copybot[bot] 4b05db4f4c copybot: live paper feed [skip ci] 2026-07-04 11:39:22 +00:00
copybot[bot] 683d61bafe copybot: live paper feed [skip ci] 2026-07-04 07:03:38 +00:00