diff --git a/bitmart/三分之一策略交易.py b/bitmart/三分之一策略交易.py index 7b6bb07..55b08f8 100644 --- a/bitmart/三分之一策略交易.py +++ b/bitmart/三分之一策略交易.py @@ -1,3 +1,4 @@ +import random import time from tqdm import tqdm @@ -445,24 +446,28 @@ class BitmartFuturesTransaction: def action(self): """主循环""" - # 启动时设置全仓高杠杆 - if not self.set_leverage(): - logger.error("杠杆设置失败,程序继续运行但可能下单失败") - return - - # 打开浏览器 - if not self.openBrowser(): - self.ding("打开浏览器失败!", error=True) - return - logger.info("浏览器打开成功") - - # 进入交易页面 - self.page.get("https://derivatives.bitmart.com/zh-CN/futures/ETHUSDT") - time.sleep(3) logger.info("开始运行三分之一策略交易...") while True: + + # 启动时设置全仓高杠杆 + if not self.set_leverage(): + logger.error("杠杆设置失败,程序继续运行但可能下单失败") + return + + # 打开浏览器 + for i in range(5): + if self.openBrowser(): + logger.info("浏览器打开成功") + break + else: + self.ding("打开浏览器失败!", error=True) + return + + # 进入交易页面 + self.page.get("https://derivatives.bitmart.com/zh-CN/futures/ETHUSDT") + try: # 1. 获取K线数据(当前K线和上一根K线) prev_kline, current_kline = self.get_klines() @@ -497,13 +502,13 @@ class BitmartFuturesTransaction: else: logger.warning(f"交易执行失败或被阻止: {signal[0]}") - # 交易后等待一段时间再继续监控(无论成功失败) - time.sleep(3) - continue # 立即进入下一次循环继续监控 - # 6. 短暂等待后继续循环(同一根K线遇到信号就操作) time.sleep(3) + if random.randint(1, 11) > 7: + self.page.close() + time.sleep(5) + except KeyboardInterrupt: logger.info("用户中断,程序退出") break