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>
This commit is contained in:
jaxperro
2026-07-02 23:35:51 -04:00
parent 099c2cf737
commit b6db6f3833
4 changed files with 23 additions and 5 deletions
+7 -2
View File
@@ -365,8 +365,13 @@ class CopyTrader:
def _price_guard_ok(self, current, their_price):
if their_price <= 0:
return True
drift = abs(current - their_price) / their_price
return drift <= self.cfg["price_guard_pct"]
# ASYMMETRIC by rule: a better price than the sharp paid is never blocked
# (paying less for the same outcome is strictly better odds — the guard
# once skipped a 0.70→0.51 improvement that went on to win). Only adverse
# drift — chasing the price UP — is gated by price_guard_pct.
if current <= their_price:
return True
return (current - their_price) / their_price <= self.cfg["price_guard_pct"]
def _handle_their_buy(self, wallet, token, their_size, their_price,
label, title, outcome, event=None, cond=None):