diff --git a/archive/copytrade.py b/archive/copytrade.py index 087b3214..2a7df67d 100644 --- a/archive/copytrade.py +++ b/archive/copytrade.py @@ -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 diff --git a/live/copybot.paper.json b/live/copybot.paper.json index 97a0e0f5..d0fcbb81 100644 --- a/live/copybot.paper.json +++ b/live/copybot.paper.json @@ -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 } } \ No newline at end of file diff --git a/live/portfolio.json b/live/portfolio.json index 20c1e21e..fd8b23a2 100644 --- a/live/portfolio.json +++ b/live/portfolio.json @@ -1 +1 @@ -{"started":1780286400.0,"updated":1783003918.6936169,"bank":1000.0,"stake":150.0,"stake_pct":0.04,"event_cap":2,"hwm":5514.03,"dd_threshold":0.8,"capped_count":26,"fee_rate":0.03,"slip":0.005,"lag_est_s":90,"fees_paid":151.98,"equity":5255.5,"liquid":5068.69,"invested":186.8,"realized":4230.92,"pnl":4255.5,"unreal":24.57,"resolved_count":214,"wins":181,"losses":33,"open_count":4,"missed_count":45,"wallets":[{"name":"Kruto2027","wallet":"0xe8ca3f758c93f44f3ec210542ab78afb7c0bcccb","bets":32,"invested":150.04,"realized":939.82,"conv_thr":123},{"name":"shisan888","wallet":"0xf3488e52ac2d7f0628b04481db5a5b0446f0e543","bets":42,"invested":0.0,"realized":1390.25,"conv_thr":727},{"name":"fortuneking","wallet":"0x86c878cde72660ec52f5e6f0f0438b76de8fc867","bets":44,"invested":36.77,"realized":388.11,"conv_thr":990},{"name":"LSB1","wallet":"0x41558102a796ba971c7567cad41c307e59f8fa41","bets":100,"invested":0.0,"realized":1512.74,"conv_thr":231}],"current":[{"title":"Washington Spirit vs. Houston Dash: Washington Spirit 2nd Half O/U 0.5","name":"Kruto2027","outcome":"Over","stake":40.0,"val":67.22,"pnl":26.56,"end":"2026-07-04"},{"title":"Washington Spirit vs. Houston Dash: 2nd Half O/U 1.5","name":"Kruto2027","outcome":"Over","stake":40.0,"val":51.62,"pnl":10.88,"end":"2026-07-04"},{"title":"ITF Ajaccio: Robin Catry vs Clement Lemire","name":"fortuneking","outcome":"Robin Catry","stake":40.0,"val":36.77,"pnl":-3.72,"end":"2026-07-09"},{"title":"Spread: Club ABB (-1.5)","name":"Kruto2027","outcome":"Bamin Real Potos\u00ed","stake":40.0,"val":31.2,"pnl":-9.14,"end":"2026-05-14"}],"resolved":[{"title":"Parma: Laslo Djere vs Chun-Hsin Tseng","name":"fortuneking","won":false,"stake":139.04,"pnl":-141.51,"date":1782360000},{"title":"ICC T20 World Cup, Women: Australia vs Bangladesh","name":"Kruto2027","won":false,"stake":86.12,"pnl":-88.33,"date":1782273600},{"title":"Royan: Leo Raquillet vs Pavel Kotov","name":"Kruto2027","won":false,"stake":129.55,"pnl":-133.14,"date":1782273600},{"title":"Mees Rottgering vs. Kyrian Jacquet: Total Sets O/U 2.5","name":"Kruto2027","won":true,"stake":129.55,"pnl":121.31,"date":1782273600},{"title":"Bellucci vs. Bublik: Match O/U 21.5","name":"Kruto2027","won":true,"stake":95.62,"pnl":42.38,"date":1782187200},{"title":"Egypt to score first vs. New Zealand?","name":"LSB1","won":true,"stake":150.0,"pnl":25.23,"date":1782108000},{"title":"Argentina vs. Austria: 1st Half O/U 0.5","name":"LSB1","won":true,"stake":150.0,"pnl":76.09,"date":1782108000},{"title":"Will France win on 2026-06-22?","name":"LSB1","won":true,"stake":150.0,"pnl":10.19,"date":1782108000},{"title":"Halle Open: Nuno Borges vs Felix Auger-Aliassime","name":"fortuneking","won":true,"stake":86.12,"pnl":4.96,"date":1782100800},{"title":"","name":"fortuneking","won":false,"stake":94.61,"pnl":-96.57,"date":1782100800},{"title":"ITF Tauste: Belle Thompson vs Celia Anson Sanchez","name":"fortuneking","won":false,"stake":94.61,"pnl":-95.4,"date":1782100800},{"title":"New Zealand vs. Egypt: O/U 7.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":30.49,"date":1782100800},{"title":"Argentina vs. Austria: O/U 6.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":27.81,"date":1782100800},{"title":"Will Japan win on 2026-06-21?","name":"LSB1","won":true,"stake":150.0,"pnl":41.2,"date":1782021600},{"title":"Exact Score: Tunisia 0 - 1 Japan?","name":"LSB1","won":true,"stake":150.0,"pnl":12.41,"date":1782021600},{"title":"","name":"LSB1","won":true,"stake":150.0,"pnl":13.17,"date":1782021600},{"title":"Exact Score: Belgium 2 - 0 IR Iran?","name":"LSB1","won":true,"stake":150.0,"pnl":19.08,"date":1782021600},{"title":"Exact Score: Uruguay 0 - 2 Cabo Verde?","name":"LSB1","won":true,"stake":150.0,"pnl":6.18,"date":1782021600},{"title":"Exact Score: Uruguay 3 - 1 Cabo Verde?","name":"LSB1","won":true,"stake":150.0,"pnl":58.93,"date":1782021600},{"title":"Ecuador vs. Cura\u00e7ao: O/U 9.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":79.89,"date":1782014400},{"title":"Ecuador vs. Cura\u00e7ao: O/U 7.5 Total Corners","name":"shisan888","won":false,"stake":150.0,"pnl":-150.67,"date":1782014400},{"title":"Tunisia vs. Japan: O/U 9.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":124.15,"date":1782014400},{"title":"Tunisia vs. Japan: O/U 8.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":36.7,"date":1782014400},{"title":"Tunisia vs. Japan: 1st Half O/U 4.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":0.3,"date":1782014400},{"title":"Spain vs. Saudi Arabia: O/U 7.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":28.82,"date":1782014400},{"title":"Belgium vs. IR Iran: O/U 9.5 Total Corners","name":"shisan888","won":false,"stake":150.0,"pnl":-152.42,"date":1782014400},{"title":"Uruguay vs. Cabo Verde: O/U 9.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":1.6,"date":1782014400},{"title":"Netherlands leading at halftime?","name":"LSB1","won":true,"stake":150.0,"pnl":13.63,"date":1781935200},{"title":"Exact Score: Netherlands 2 - 1 Sweden?","name":"LSB1","won":true,"stake":150.0,"pnl":22.94,"date":1781935200},{"title":"Exact Score: Any Other Score?","name":"LSB1","won":true,"stake":150.0,"pnl":66.3,"date":1781935200},{"title":"Will Germany win on 2026-06-20?","name":"LSB1","won":true,"stake":150.0,"pnl":50.54,"date":1781935200},{"title":"Germany to score first vs. C\u00f4te d'Ivoire?","name":"LSB1","won":true,"stake":150.0,"pnl":26.17,"date":1781935200},{"title":"UD Almer\u00eda vs. M\u00e1laga CF: M\u00e1laga CF O/U 0.5","name":"LSB1","won":true,"stake":150.0,"pnl":29.15,"date":1781935200},{"title":"Exact Score: Germany 0 - 1 C\u00f4te d'Ivoire?","name":"LSB1","won":true,"stake":150.0,"pnl":43.04,"date":1781935200},{"title":"Exact Score: Germany 1 - 1 C\u00f4te d'Ivoire?","name":"LSB1","won":true,"stake":150.0,"pnl":26.98,"date":1781935200},{"title":"Brazil vs. Haiti: O/U 10.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":104.9,"date":1781928000},{"title":"Brazil vs. Haiti: O/U 9.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":56.09,"date":1781928000},{"title":"T\u00fcrkiye vs. Paraguay: O/U 10.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":103.47,"date":1781928000},{"title":"T\u00fcrkiye vs. Paraguay: O/U 11.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":102.21,"date":1781928000},{"title":"Netherlands vs. Sweden: O/U 7.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":125.18,"date":1781928000},{"title":"Netherlands vs. Sweden: O/U 6.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":29.06,"date":1781928000},{"title":"Germany vs. C\u00f4te d'Ivoire: O/U 9.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":131.81,"date":1781928000},{"title":"Germany vs. C\u00f4te d'Ivoire: O/U 8.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":144.34,"date":1781928000},{"title":"Germany vs. C\u00f4te d'Ivoire: O/U 10.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":232.43,"date":1781928000},{"title":"","name":"LSB1","won":true,"stake":150.0,"pnl":21.14,"date":1781848800},{"title":"Exact Score: United States 0 - 0 Australia?","name":"LSB1","won":true,"stake":150.0,"pnl":6.91,"date":1781848800},{"title":"Exact Score: United States 1 - 0 Australia?","name":"LSB1","won":true,"stake":150.0,"pnl":17.13,"date":1781848800},{"title":"Exact Score: Scotland 0 - 0 Morocco?","name":"LSB1","won":true,"stake":150.0,"pnl":8.8,"date":1781848800},{"title":"Exact Score: Scotland 1 - 0 Morocco?","name":"LSB1","won":true,"stake":150.0,"pnl":6.91,"date":1781848800},{"title":"Ismael Saibari: 1+ goals","name":"LSB1","won":true,"stake":150.0,"pnl":33.43,"date":1781848800},{"title":"Mexico vs. Korea Republic: O/U 6.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":56.81,"date":1781841600},{"title":"United States vs. Australia: O/U 11.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":87.47,"date":1781841600},{"title":"United States vs. Australia: O/U 8.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":23.96,"date":1781841600},{"title":"Scotland vs. Morocco: O/U 6.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":3.88,"date":1781841600},{"title":"Colombia leading at halftime?","name":"LSB1","won":true,"stake":135.27,"pnl":104.94,"date":1781762400},{"title":"Will Colombia win on 2026-06-17?","name":"LSB1","won":true,"stake":135.27,"pnl":37.48,"date":1781762400},{"title":"Will Czechia vs. South Africa end in a draw?","name":"LSB1","won":true,"stake":139.04,"pnl":86.15,"date":1781762400},{"title":"Exact Score: Canada 0 - 0 Qatar?","name":"LSB1","won":true,"stake":144.38,"pnl":5.12,"date":1781762400},{"title":"Exact Score: Canada 1 - 0 Qatar?","name":"LSB1","won":true,"stake":148.75,"pnl":11.79,"date":1781762400},{"title":"Canada vs. Qatar: 1st Half O/U 1.5","name":"LSB1","won":true,"stake":149.22,"pnl":22.88,"date":1781762400}],"missed":[{"title":"Exact Score: New Zealand 2 - 2 Egypt?","name":"LSB1","won":true,"stake":150.0,"capped":true,"pnl":6.91,"date":1782108000},{"title":"Exact Score: New Zealand 1 - 2 Egypt?","name":"LSB1","won":true,"stake":150.0,"capped":true,"pnl":29.08,"date":1782108000},{"title":"New Zealand vs. Egypt: O/U 6.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"capped":true,"pnl":64.97,"date":1782100800},{"title":"Tunisia vs. Japan: 2nd Half O/U 0.5","name":"LSB1","won":true,"stake":150.0,"capped":true,"pnl":30.0,"date":1782021600},{"title":"Exact Score: Any Other Score?","name":"LSB1","won":true,"stake":150.0,"capped":true,"pnl":162.53,"date":1782021600},{"title":"Exact Score: Tunisia 0 - 3 Japan?","name":"LSB1","won":true,"stake":150.0,"capped":true,"pnl":31.63,"date":1782021600},{"title":"Ecuador vs. Cura\u00e7ao: O/U 6.5 Total Corners","name":"shisan888","won":false,"stake":150.0,"capped":true,"pnl":-151.24,"date":1782014400},{"title":"Ecuador vs. Cura\u00e7ao: O/U 8.5 Total Corners","name":"shisan888","won":false,"stake":150.0,"capped":true,"pnl":-151.19,"date":1782014400},{"title":"Exact Score: Brazil 0 - 0 Haiti?","name":"LSB1","won":true,"stake":150.0,"capped":true,"pnl":5.84,"date":1781935200},{"title":"Haiti to score first vs. Brazil?","name":"LSB1","won":true,"stake":150.0,"capped":true,"pnl":10.19,"date":1781935200},{"title":"Brazil vs. Haiti: Brazil 1st Half O/U 1.5","name":"LSB1","won":true,"stake":150.0,"capped":true,"pnl":93.59,"date":1781935200},{"title":"Exact Score: Brazil 3 - 1 Haiti?","name":"LSB1","won":true,"stake":150.0,"capped":true,"pnl":9.0,"date":1781935200},{"title":"Brazil vs. Haiti: 2nd Half O/U 0.5","name":"LSB1","won":true,"stake":150.0,"capped":true,"pnl":3.76,"date":1781935200},{"title":"Brazil vs. Haiti: O/U 11.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"capped":true,"pnl":13.63,"date":1781928000},{"title":"Brazil vs. Haiti: 1st Half O/U 4.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"capped":true,"pnl":0.59,"date":1781928000},{"title":"Brazil vs. Haiti: O/U 7.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"capped":true,"pnl":62.13,"date":1781928000},{"title":"ITF Kayseri: Ustiniya Lekomtseva vs Sofiia Bielinska","name":"Kruto2027","won":true,"stake":59.17,"capped":false,"pnl":23.26,"date":1781755200},{"title":"Set 1 Winner: Arias/Ingildsen vs Forcano/Vervoort","name":"fortuneking","won":true,"stake":58.77,"capped":false,"pnl":4.14,"date":1781755200},{"title":"Tucuman: Federico Coria vs Andrea Collarini","name":"fortuneking","won":true,"stake":58.77,"capped":false,"pnl":43.07,"date":1781755200},{"title":"Exact Score: Argentina 2 - 1 Algeria?","name":"LSB1","won":true,"stake":117.03,"capped":true,"pnl":9.22,"date":1781676000},{"title":"ITF Merzig: Sonja Zhenikhova vs Leonie Schuknecht","name":"Kruto2027","won":false,"stake":61.17,"capped":false,"pnl":-61.88,"date":1781668800},{"title":"Cirstea vs. Raducanu: Set 1 Games O/U 8.5","name":"Kruto2027","won":true,"stake":58.77,"capped":false,"pnl":55.03,"date":1781668800},{"title":"Exact Score: IR Iran 1 - 3 New Zealand?","name":"LSB1","won":true,"stake":94.82,"capped":true,"pnl":10.68,"date":1781589600},{"title":"Exact Score: IR Iran 2 - 3 New Zealand?","name":"LSB1","won":true,"stake":94.82,"capped":true,"pnl":1.62,"date":1781589600},{"title":"","name":"Kruto2027","won":false,"stake":58.77,"capped":false,"pnl":-59.26,"date":1781582400},{"title":"Exact Score: Sweden 3 - 0 Tunisia?","name":"LSB1","won":true,"stake":88.35,"capped":true,"pnl":7.75,"date":1781503200},{"title":"Sweden vs. Tunisia: Sweden O/U 2.5","name":"LSB1","won":true,"stake":88.35,"capped":true,"pnl":38.24,"date":1781503200},{"title":"Haiti to score first vs. Scotland?","name":"LSB1","won":true,"stake":79.45,"capped":true,"pnl":22.83,"date":1781416800},{"title":"Exact Score: Australia 1 - 1 T\u00fcrkiye?","name":"LSB1","won":true,"stake":86.57,"capped":true,"pnl":23.74,"date":1781416800},{"title":"Netherlands vs. Japan: Japan O/U 2.5","name":"Kruto2027","won":true,"stake":61.17,"capped":false,"pnl":55.0,"date":1781409600},{"title":"Netherlands vs. Japan: Japan O/U 1.5","name":"Kruto2027","won":false,"stake":61.17,"capped":false,"pnl":-62.51,"date":1781409600},{"title":"Australia vs. T\u00fcrkiye: Australia O/U 2.5","name":"Kruto2027","won":true,"stake":61.17,"capped":false,"pnl":44.39,"date":1781409600},{"title":"Australia vs. T\u00fcrkiye: Australia O/U 1.5","name":"Kruto2027","won":false,"stake":61.17,"capped":false,"pnl":-62.47,"date":1781409600},{"title":"Folarin Balogun: 1+ goals","name":"LSB1","won":true,"stake":60.45,"capped":false,"pnl":115.27,"date":1781330400},{"title":"Exact Score: United States 2 - 0 Paraguay?","name":"LSB1","won":true,"stake":60.45,"capped":false,"pnl":9.88,"date":1781330400},{"title":"Exact Score: United States 3 - 0 Paraguay?","name":"LSB1","won":true,"stake":60.45,"capped":false,"pnl":2.99,"date":1781330400},{"title":"Qatar vs. Switzerland: 1st Half O/U 1.5","name":"Kruto2027","won":true,"stake":61.17,"capped":true,"pnl":59.65,"date":1781323200},{"title":"Exact Score: Korea Republic 2 - 0 Czechia?","name":"LSB1","won":true,"stake":58.77,"capped":false,"pnl":2.95,"date":1781244000},{"title":"Exact Score: Korea Republic 1 - 0 Czechia?","name":"LSB1","won":true,"stake":58.77,"capped":false,"pnl":10.78,"date":1781244000},{"title":"Will CR Brasil win on 2026-06-12?","name":"LSB1","won":false,"stake":60.45,"capped":false,"pnl":-60.76,"date":1781244000},{"title":"Mexico vs. South Africa: South Africa O/U 2.5","name":"Kruto2027","won":true,"stake":61.17,"capped":true,"pnl":43.01,"date":1781150400},{"title":"Mexico vs. South Africa: South Africa O/U 1.5","name":"Kruto2027","won":true,"stake":61.17,"capped":true,"pnl":124.87,"date":1781150400},{"title":"Bolivia vs. Algeria: Bolivia O/U 2.5","name":"Kruto2027","won":true,"stake":61.17,"capped":false,"pnl":49.82,"date":1781150400},{"title":"Iraq vs. Venezuela: Iraq O/U 1.5","name":"Kruto2027","won":true,"stake":61.17,"capped":false,"pnl":82.52,"date":1781064000},{"title":"Portugal vs. Nigeria: Portugal O/U 1.5","name":"Kruto2027","won":false,"stake":61.17,"capped":false,"pnl":-62.67,"date":1781064000}],"missed_pnl":692.59} \ No newline at end of file +{"started":1780286400.0,"updated":1783005654.067296,"bank":1000.0,"stake":150.0,"stake_pct":0.04,"event_cap":0,"hwm":5823.55,"dd_threshold":0.8,"capped_count":0,"fee_rate":0.03,"slip":0.005,"lag_est_s":90,"fees_paid":170.38,"equity":5649.03,"liquid":5461.19,"invested":187.84,"realized":4623.42,"pnl":4649.03,"unreal":25.61,"resolved_count":237,"wins":202,"losses":35,"open_count":4,"missed_count":22,"wallets":[{"name":"Kruto2027","wallet":"0xe8ca3f758c93f44f3ec210542ab78afb7c0bcccb","bets":32,"invested":148.71,"realized":946.85,"conv_thr":123},{"name":"shisan888","wallet":"0xf3488e52ac2d7f0628b04481db5a5b0446f0e543","bets":48,"invested":0.0,"realized":1234.52,"conv_thr":727},{"name":"fortuneking","wallet":"0x86c878cde72660ec52f5e6f0f0438b76de8fc867","bets":44,"invested":39.13,"realized":391.22,"conv_thr":990},{"name":"LSB1","wallet":"0x41558102a796ba971c7567cad41c307e59f8fa41","bets":117,"invested":0.0,"realized":2050.82,"conv_thr":231}],"current":[{"title":"Washington Spirit vs. Houston Dash: Washington Spirit 2nd Half O/U 0.5","name":"Kruto2027","outcome":"Over","stake":40.0,"val":65.89,"pnl":25.24,"end":"2026-07-04"},{"title":"Washington Spirit vs. Houston Dash: 2nd Half O/U 1.5","name":"Kruto2027","outcome":"Over","stake":40.0,"val":51.62,"pnl":10.88,"end":"2026-07-04"},{"title":"ITF Ajaccio: Robin Catry vs Clement Lemire","name":"fortuneking","outcome":"Robin Catry","stake":40.0,"val":39.13,"pnl":-1.36,"end":"2026-07-09"},{"title":"Spread: Club ABB (-1.5)","name":"Kruto2027","outcome":"Bamin Real Potos\u00ed","stake":40.0,"val":31.2,"pnl":-9.14,"end":"2026-05-14"}],"resolved":[{"title":"Parma: Laslo Djere vs Chun-Hsin Tseng","name":"fortuneking","won":false,"stake":146.15,"pnl":-148.75,"date":1782360000},{"title":"ICC T20 World Cup, Women: Australia vs Bangladesh","name":"Kruto2027","won":false,"stake":89.96,"pnl":-92.26,"date":1782273600},{"title":"Royan: Leo Raquillet vs Pavel Kotov","name":"Kruto2027","won":false,"stake":136.09,"pnl":-139.86,"date":1782273600},{"title":"Mees Rottgering vs. Kyrian Jacquet: Total Sets O/U 2.5","name":"Kruto2027","won":true,"stake":136.09,"pnl":127.43,"date":1782273600},{"title":"Bellucci vs. Bublik: Match O/U 21.5","name":"Kruto2027","won":true,"stake":100.43,"pnl":44.51,"date":1782187200},{"title":"Egypt to score first vs. New Zealand?","name":"LSB1","won":true,"stake":150.0,"pnl":25.23,"date":1782108000},{"title":"Exact Score: New Zealand 2 - 2 Egypt?","name":"LSB1","won":true,"stake":150.0,"pnl":6.91,"date":1782108000},{"title":"Exact Score: New Zealand 1 - 2 Egypt?","name":"LSB1","won":true,"stake":150.0,"pnl":29.08,"date":1782108000},{"title":"Argentina vs. Austria: 1st Half O/U 0.5","name":"LSB1","won":true,"stake":150.0,"pnl":76.09,"date":1782108000},{"title":"Will France win on 2026-06-22?","name":"LSB1","won":true,"stake":150.0,"pnl":10.19,"date":1782108000},{"title":"Halle Open: Nuno Borges vs Felix Auger-Aliassime","name":"fortuneking","won":true,"stake":89.96,"pnl":5.18,"date":1782100800},{"title":"Nottingham 2: Felix Gill vs Hugo Gaston","name":"fortuneking","won":false,"stake":98.83,"pnl":-100.87,"date":1782100800},{"title":"ITF Tauste: Belle Thompson vs Celia Anson Sanchez","name":"fortuneking","won":false,"stake":98.83,"pnl":-99.65,"date":1782100800},{"title":"New Zealand vs. Egypt: O/U 7.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":30.49,"date":1782100800},{"title":"New Zealand vs. Egypt: O/U 6.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":64.97,"date":1782100800},{"title":"Argentina vs. Austria: O/U 6.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":27.81,"date":1782100800},{"title":"Will Japan win on 2026-06-21?","name":"LSB1","won":true,"stake":150.0,"pnl":41.2,"date":1782021600},{"title":"Exact Score: Tunisia 0 - 1 Japan?","name":"LSB1","won":true,"stake":150.0,"pnl":12.41,"date":1782021600},{"title":"Exact Score: Tunisia 1 - 2 Japan?","name":"LSB1","won":true,"stake":150.0,"pnl":13.17,"date":1782021600},{"title":"Tunisia vs. Japan: 2nd Half O/U 0.5","name":"LSB1","won":true,"stake":150.0,"pnl":30.0,"date":1782021600},{"title":"Exact Score: Any Other Score?","name":"LSB1","won":true,"stake":150.0,"pnl":162.53,"date":1782021600},{"title":"Exact Score: Tunisia 0 - 3 Japan?","name":"LSB1","won":true,"stake":150.0,"pnl":31.63,"date":1782021600},{"title":"Exact Score: Belgium 2 - 0 IR Iran?","name":"LSB1","won":true,"stake":150.0,"pnl":19.08,"date":1782021600},{"title":"Exact Score: Uruguay 0 - 2 Cabo Verde?","name":"LSB1","won":true,"stake":150.0,"pnl":6.18,"date":1782021600},{"title":"Exact Score: Uruguay 3 - 1 Cabo Verde?","name":"LSB1","won":true,"stake":150.0,"pnl":58.93,"date":1782021600},{"title":"Ecuador vs. Cura\u00e7ao: O/U 9.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":79.89,"date":1782014400},{"title":"Ecuador vs. Cura\u00e7ao: O/U 7.5 Total Corners","name":"shisan888","won":false,"stake":150.0,"pnl":-150.67,"date":1782014400},{"title":"Ecuador vs. Cura\u00e7ao: O/U 6.5 Total Corners","name":"shisan888","won":false,"stake":150.0,"pnl":-151.24,"date":1782014400},{"title":"Ecuador vs. Cura\u00e7ao: O/U 8.5 Total Corners","name":"shisan888","won":false,"stake":150.0,"pnl":-151.19,"date":1782014400},{"title":"Tunisia vs. Japan: O/U 9.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":124.15,"date":1782014400},{"title":"Tunisia vs. Japan: O/U 8.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":36.7,"date":1782014400},{"title":"Tunisia vs. Japan: 1st Half O/U 4.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":0.3,"date":1782014400},{"title":"Spain vs. Saudi Arabia: O/U 7.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":28.82,"date":1782014400},{"title":"Belgium vs. IR Iran: O/U 9.5 Total Corners","name":"shisan888","won":false,"stake":150.0,"pnl":-152.42,"date":1782014400},{"title":"Uruguay vs. Cabo Verde: O/U 9.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":1.6,"date":1782014400},{"title":"Exact Score: Brazil 0 - 0 Haiti?","name":"LSB1","won":true,"stake":150.0,"pnl":5.84,"date":1781935200},{"title":"Haiti to score first vs. Brazil?","name":"LSB1","won":true,"stake":150.0,"pnl":10.19,"date":1781935200},{"title":"Brazil vs. Haiti: Brazil 1st Half O/U 1.5","name":"LSB1","won":true,"stake":150.0,"pnl":93.59,"date":1781935200},{"title":"Exact Score: Brazil 3 - 1 Haiti?","name":"LSB1","won":true,"stake":150.0,"pnl":9.0,"date":1781935200},{"title":"Brazil vs. Haiti: 2nd Half O/U 0.5","name":"LSB1","won":true,"stake":150.0,"pnl":3.76,"date":1781935200},{"title":"Netherlands leading at halftime?","name":"LSB1","won":true,"stake":150.0,"pnl":13.63,"date":1781935200},{"title":"Exact Score: Netherlands 2 - 1 Sweden?","name":"LSB1","won":true,"stake":150.0,"pnl":22.94,"date":1781935200},{"title":"Exact Score: Any Other Score?","name":"LSB1","won":true,"stake":150.0,"pnl":66.3,"date":1781935200},{"title":"Will Germany win on 2026-06-20?","name":"LSB1","won":true,"stake":150.0,"pnl":50.54,"date":1781935200},{"title":"Germany to score first vs. C\u00f4te d'Ivoire?","name":"LSB1","won":true,"stake":150.0,"pnl":26.17,"date":1781935200},{"title":"UD Almer\u00eda vs. M\u00e1laga CF: M\u00e1laga CF O/U 0.5","name":"LSB1","won":true,"stake":150.0,"pnl":29.15,"date":1781935200},{"title":"Exact Score: Germany 0 - 1 C\u00f4te d'Ivoire?","name":"LSB1","won":true,"stake":150.0,"pnl":43.04,"date":1781935200},{"title":"Exact Score: Germany 1 - 1 C\u00f4te d'Ivoire?","name":"LSB1","won":true,"stake":150.0,"pnl":26.98,"date":1781935200},{"title":"Brazil vs. Haiti: O/U 10.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":104.9,"date":1781928000},{"title":"Brazil vs. Haiti: O/U 9.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":56.09,"date":1781928000},{"title":"Brazil vs. Haiti: O/U 11.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":13.63,"date":1781928000},{"title":"Brazil vs. Haiti: 1st Half O/U 4.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":0.59,"date":1781928000},{"title":"Brazil vs. Haiti: O/U 7.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":62.13,"date":1781928000},{"title":"T\u00fcrkiye vs. Paraguay: O/U 10.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":103.47,"date":1781928000},{"title":"T\u00fcrkiye vs. Paraguay: O/U 11.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":102.21,"date":1781928000},{"title":"Netherlands vs. Sweden: O/U 7.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":125.18,"date":1781928000},{"title":"Netherlands vs. Sweden: O/U 6.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":29.06,"date":1781928000},{"title":"Germany vs. C\u00f4te d'Ivoire: O/U 9.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":131.81,"date":1781928000},{"title":"Germany vs. C\u00f4te d'Ivoire: O/U 8.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":144.34,"date":1781928000},{"title":"Germany vs. C\u00f4te d'Ivoire: O/U 10.5 Total Corners","name":"shisan888","won":true,"stake":150.0,"pnl":232.43,"date":1781928000}],"missed":[{"title":"ITF Kayseri: Ustiniya Lekomtseva vs Sofiia Bielinska","name":"Kruto2027","won":true,"stake":59.17,"capped":false,"pnl":23.26,"date":1781755200},{"title":"Set 1 Winner: Arias/Ingildsen vs Forcano/Vervoort","name":"fortuneking","won":true,"stake":58.77,"capped":false,"pnl":4.14,"date":1781755200},{"title":"Tucuman: Federico Coria vs Andrea Collarini","name":"fortuneking","won":true,"stake":58.77,"capped":false,"pnl":43.07,"date":1781755200},{"title":"ITF Merzig: Sonja Zhenikhova vs Leonie Schuknecht","name":"Kruto2027","won":false,"stake":61.17,"capped":false,"pnl":-61.88,"date":1781668800},{"title":"Cirstea vs. Raducanu: Set 1 Games O/U 8.5","name":"Kruto2027","won":true,"stake":58.77,"capped":false,"pnl":55.03,"date":1781668800},{"title":"IR Iran vs. New Zealand: Both Teams to Score in First Half","name":"Kruto2027","won":false,"stake":58.77,"capped":false,"pnl":-59.26,"date":1781582400},{"title":"Netherlands vs. Japan: Japan O/U 2.5","name":"Kruto2027","won":true,"stake":61.17,"capped":false,"pnl":55.0,"date":1781409600},{"title":"Netherlands vs. Japan: Japan O/U 1.5","name":"Kruto2027","won":false,"stake":61.17,"capped":false,"pnl":-62.51,"date":1781409600},{"title":"Australia vs. T\u00fcrkiye: Australia O/U 2.5","name":"Kruto2027","won":true,"stake":61.17,"capped":false,"pnl":44.39,"date":1781409600},{"title":"Australia vs. T\u00fcrkiye: Australia O/U 1.5","name":"Kruto2027","won":false,"stake":61.17,"capped":false,"pnl":-62.47,"date":1781409600},{"title":"Folarin Balogun: 1+ goals","name":"LSB1","won":true,"stake":60.45,"capped":false,"pnl":115.27,"date":1781330400},{"title":"Exact Score: United States 2 - 0 Paraguay?","name":"LSB1","won":true,"stake":60.45,"capped":false,"pnl":9.88,"date":1781330400},{"title":"Exact Score: United States 3 - 0 Paraguay?","name":"LSB1","won":true,"stake":60.45,"capped":false,"pnl":2.99,"date":1781330400},{"title":"Qatar vs. Switzerland: 1st Half O/U 1.5","name":"Kruto2027","won":true,"stake":61.17,"capped":false,"pnl":59.65,"date":1781323200},{"title":"Exact Score: Korea Republic 2 - 0 Czechia?","name":"LSB1","won":true,"stake":58.77,"capped":false,"pnl":2.95,"date":1781244000},{"title":"Exact Score: Korea Republic 1 - 0 Czechia?","name":"LSB1","won":true,"stake":58.77,"capped":false,"pnl":10.78,"date":1781244000},{"title":"Will CR Brasil win on 2026-06-12?","name":"LSB1","won":false,"stake":60.45,"capped":false,"pnl":-60.76,"date":1781244000},{"title":"Mexico vs. South Africa: South Africa O/U 2.5","name":"Kruto2027","won":true,"stake":61.17,"capped":false,"pnl":43.01,"date":1781150400},{"title":"Mexico vs. South Africa: South Africa O/U 1.5","name":"Kruto2027","won":true,"stake":61.17,"capped":false,"pnl":124.87,"date":1781150400},{"title":"Bolivia vs. Algeria: Bolivia O/U 2.5","name":"Kruto2027","won":true,"stake":61.17,"capped":false,"pnl":49.82,"date":1781150400},{"title":"Iraq vs. Venezuela: Iraq O/U 1.5","name":"Kruto2027","won":true,"stake":61.17,"capped":false,"pnl":82.52,"date":1781064000},{"title":"Portugal vs. Nigeria: Portugal O/U 1.5","name":"Kruto2027","won":false,"stake":61.17,"capped":false,"pnl":-62.67,"date":1781064000}],"missed_pnl":357.09} \ No newline at end of file diff --git a/live/portfolio.py b/live/portfolio.py index eacde190..7f0d708a 100644 --- a/live/portfolio.py +++ b/live/portfolio.py @@ -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