@@ -24,7 +24,7 @@ def clear_local_dbs(self) -> None:
2424 except :
2525 pass
2626
27- def one_best_trade (self ) -> None :
27+ def one_best_trade (self , max_retries : int = 3 ) -> None :
2828 """
2929
3030 one_best_trade is a strategy that evaluates all events, markets, and orderbooks
@@ -34,35 +34,42 @@ def one_best_trade(self) -> None:
3434 then executes that trade without any human intervention
3535
3636 """
37- try :
38- self .pre_trade_logic ()
37+ retries_remaining = max (0 , max_retries )
38+
39+ while True :
40+ try :
41+ self .pre_trade_logic ()
42+
43+ events = self .polymarket .get_all_tradeable_events ()
44+ print (f"1. FOUND { len (events )} EVENTS" )
3945
40- events = self .polymarket . get_all_tradeable_events ( )
41- print (f"1. FOUND { len (events )} EVENTS" )
46+ filtered_events = self .agent . filter_events_with_rag ( events )
47+ print (f"2. FILTERED { len (filtered_events )} EVENTS" )
4248
43- filtered_events = self .agent .filter_events_with_rag (events )
44- print (f"2. FILTERED { len (filtered_events )} EVENTS" )
49+ markets = self .agent .map_filtered_events_to_markets (filtered_events )
50+ print ()
51+ print (f"3. FOUND { len (markets )} MARKETS" )
4552
46- markets = self . agent . map_filtered_events_to_markets ( filtered_events )
47- print ( )
48- print (f"3. FOUND { len (markets )} MARKETS" )
53+ print ( )
54+ filtered_markets = self . agent . filter_markets ( markets )
55+ print (f"4. FILTERED { len (filtered_markets )} MARKETS" )
4956
50- print ()
51- filtered_markets = self .agent .filter_markets ( markets )
52- print (f"4. FILTERED { len ( filtered_markets ) } MARKETS " )
57+ market = filtered_markets [ 0 ]
58+ best_trade = self .agent .source_best_trade ( market )
59+ print (f"5. CALCULATED TRADE { best_trade } " )
5360
54- market = filtered_markets [0 ]
55- best_trade = self .agent .source_best_trade (market )
56- print (f"5. CALCULATED TRADE { best_trade } " )
61+ amount = self .agent .format_trade_prompt_for_execution (best_trade )
62+ # Please refer to TOS before uncommenting: polymarket.com/tos
63+ # trade = self.polymarket.execute_market_order(market, amount)
64+ # print(f"6. TRADED {trade}")
65+ return
5766
58- amount = self .agent .format_trade_prompt_for_execution (best_trade )
59- # Please refer to TOS before uncommenting: polymarket.com/tos
60- # trade = self.polymarket.execute_market_order(market, amount)
61- # print(f"6. TRADED {trade}")
67+ except Exception as e :
68+ if retries_remaining == 0 :
69+ raise
6270
63- except Exception as e :
64- print (f"Error { e } \n \n Retrying" )
65- self .one_best_trade ()
71+ print (f"Error { e } \n \n Retrying" )
72+ retries_remaining -= 1
6673
6774 def maintain_positions (self ):
6875 pass
0 commit comments