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>
This commit is contained in:
jaxperro
2026-07-02 11:21:08 -04:00
parent ee4e1750e6
commit e1d264ddfe
4 changed files with 13 additions and 12 deletions
+3 -2
View File
@@ -61,8 +61,9 @@ DEFAULT_CONFIG = {
"daily_spend_cap_usd": 250.0,
"max_total_exposure_usd": 500.0,
"max_open_positions": 20,
"max_per_event": 2, # max concurrent positions on one real-world
# event (a game's markets are one correlated bet)
"max_per_event": 0, # >0 caps concurrent positions on one real-world
# event (a game's markets are one correlated bet);
# 0 = off — follow every conviction trade
"min_price": 0.05, # don't open longshots/near-certainties
"max_price": 0.95,
"min_order_usd": 5.0, # Polymarket min order size
+1 -1
View File
@@ -48,6 +48,6 @@
"min_price": 0.01,
"max_price": 0.99,
"min_order_usd": 5.0,
"max_per_event": 2
"max_per_event": 0
}
}
+1 -1
View File
File diff suppressed because one or more lines are too long
+8 -8
View File
@@ -43,12 +43,12 @@ GAMMA = "https://gamma-api.polymarket.com"
# Each new bet stakes PCT of CURRENT equity (cash + open cost basis) so the book
# compounds in both directions; the stake is halved while equity sits below
# DD_THRESHOLD of its high-water mark, and clamped to [STAKE_MIN, STAKE_CAP].
# EVENT_CAP limits concurrent bets whose markets belong to the same real-world
# event a game's markets settle together, so N bets on one match are one
# correlated bet, not N diversified ones.
# EVENT_CAP >0 limits concurrent bets whose markets belong to the same real-world
# event (a game's markets settle together — one correlated bet, not N diversified
# ones); 0 = off, mirror every conviction trade.
PCT = 0.04
STAKE_MIN, STAKE_CAP = 5.0, 150.0
EVENT_CAP = 2
EVENT_CAP = 0
DD_THRESHOLD, DD_FACTOR = 0.80, 0.5
# ---- realism model (matches the live copybot) -------------------------------
@@ -225,10 +225,10 @@ def main():
stake = cur_stake()
b["stake"] = round(stake, 2)
b["event"] = event_key(market_meta(b["cond"])["slug"])
# correlation cap: skip a bet when we already hold EVENT_CAP positions on
# the same real-world event (deliberate risk skip, tallied separately)
if b["event"] and sum(1 for _, _, _, r in held
if r.get("event") == b["event"]) >= EVENT_CAP:
# correlation cap (off when EVENT_CAP=0): skip a bet when we already hold
# EVENT_CAP positions on the same real-world event (deliberate risk skip)
if EVENT_CAP and b["event"] and sum(1 for _, _, _, r in held
if r.get("event") == b["event"]) >= EVENT_CAP:
b["capped"] = True; capped += 1
missed.append(b)
continue