From 470758912956f3768f6a912931f685f499dfbc4f Mon Sep 17 00:00:00 2001 From: Administrator Date: Mon, 12 Jan 2026 09:34:55 +0800 Subject: [PATCH] =?UTF-8?q?bitmart=E4=BC=98=E5=8C=96=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- telegram/8619211027341.session | Bin 45056 -> 45056 bytes telegram/bot_session.session | Bin 57344 -> 61440 bytes telegram/gpt1.py | 2 +- telegram/sign.db | Bin 45056 -> 45056 bytes 交易/bitmart-趋势策略交易.py | 2 +- 交易/weex-结构优化.py | 12 ++++++------ 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/telegram/8619211027341.session b/telegram/8619211027341.session index 2225e318e50f75482bfa955b62a97d15f0f8942c..cec63298b36a171e62e324dad5c01818cbd8949c 100644 GIT binary patch delta 75 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 diff --git a/telegram/gpt1.py b/telegram/gpt1.py index 03dc0ae..d7d18cd 100644 --- a/telegram/gpt1.py +++ b/telegram/gpt1.py @@ -642,7 +642,7 @@ async def send_price_periodically(bot, chat_id): print(f"[price] Failed to send price update: {e}") # 等待下一小时整点(保持每小时推送一次) now = datetime.datetime.now(LOCAL_TZ) - next_hour = (now.replace(minute=0, second=0, microsecond=0) + datetime.timedelta(hours=1)) + next_hour = (now.replace(minute=0, second=0, microsecond=0) + datetime.timedelta(hours=2)) wait_seconds = (next_hour - now).total_seconds() await asyncio.sleep(wait_seconds) diff --git a/telegram/sign.db b/telegram/sign.db index c44a4fec2ddd36956923543926b4fcc36ed8aed9..3bb072293a3deefdaaff72d02657ac853182a301 100644 GIT binary patch delta 3373 zcmaJ@Yiu0V6`oytXJ=nCR^xZ#^*S}d#M#Nccb<0|$FWI5ph_E>MTw%8*mRTFU9*98 zLu{nVnW{p75ZK(1q)kA$X{69bQ5{3o(5ld+szgQAmeRtHsv%M(BB0b%Af>GkJ+r&> ziqm>5OLOmcUf((A8y|TmdgPtxY-cpOb8giz{9PECm%91qxDkG+O*kZW2yY~{%!Ifl zW5-Wqt_bt#)BLwsu4zr5v@5=izaV`l{bi|LT%Re3-;bXYJ{SLeQjpB#rFbg!nDAuc zUj8&2Yg*I94<#QG-;zE^J)8Vd>bLwo?0ZdFoQXDNeJ@>Dc^&&p#zcw_znp6ibG z2$KhjqlYmuOzs##M9(9fN4m6~i+z+hdHUn$CwOiJ*xol@UU}j-S1u)LMuozPyLVuO zOr3kev(nffTMIjzJ5T=b*B3WJV&J@Z@av_0mC1eF^FFHW#N{^^C?px_5vC68A3IEm zcS$>rAAkREX)uP%(&+faI5kbe9&Y<$|5guVc6|5ZGaubw0~IItkBzIQ(d=I**;3o( z)E@s}@fYo98d81~m6cbW-PqT5{KdzwLVZpmJ4P#zsBc3%kDdMLTPvVixE!vGk5+U7 znRq@mR_Gc@^#$Hv>AIfU;k_H|Qno*p_1<-MJ$p}%3=xS;!y5PdZuM-W2`5_MULMx z^>@#M8O=;_o1J5Javq0|^F0YJa`^H~yZmDSw>jX4zWw75{L^Ujo!}b4j~;5j=pEB2 zB$oHkJ?`vO&s!aM@#ySQ0M4GuZ)p|Vx$0dgg2CR)2YbB#EZWYXT`6IeVLCluV$Xe?9TM2 zm(u6c6X~_7YpEAgl@v;Tm^_!9N^VXzCH|5)o7kV|6_$jb3y%r~As7E^{8W5Tyq*6u zf0Q5L*Tt^KeiHj;j5IDao^PCJT-$JM!JcYp7_>LBcT3q`#cer81xzf2;8(`FsZb-2 zGK~{ED~f556J%81Z`3)oRoIHU)qLaH{7~aoW`DwM&J0E1OaB{Cs8 zHavD^*QPoXp@xBtY9VZ?ij2{aZuni!yGF}f0!E6Z5KGl$L{(Mu0#C|i32WroiL#)MK3zS=I|R&9b$SpbNziuAfi zZ1=Gx=7u$#)Df&Gl98$E*h~G^YU*%}En-@lBI~NAx_W@^HBRa?wZ*7{uxVjaHYoNo z!uBoyn=-J0DF(+>hJPSHc-?;Xx;BpDhx@4)2qc3nOl9b%s_89m>7RFu9GQ6J<%G%} zEVbTO%S`vVB8rLJ^&7NTy9WEjeil-N8+0Y$0c#qeiW{>mI1xrS1q@eJD&F*nmzt`z)IjHq#rjHg@&t zfMW!k>ui964b80ci|tm|@p6?=9c58K)+snviB{i1Y`3txN1MB9%?1#t0yrizY=y4X LYhUa;|90fRZUR8+ delta 837 zcmZp8z|`=7X@V3J@-sf1z zvzYzDWCZ~=C3X*fU;Y*ze|`x*eclkhMeJ)hgt$2PEw~P`b8~lc^l`>b&J$46<0|93 z&i{scF4t=Avz$g8&TN;tjkr8{8HcZIv}9wDWK`s+NKeZs zx0HiP8ktH?pZ@v@4^T5uGCMIdC)3ixLSu53xVJW3k+GrFv?Z4o7O*kM0~HmgrzDme z8kt)}!3{B+{6YLMw-JnQY`A%!#8PH%4VZwD>Et|_6?Sss)3>yF zx(0^21}0L|R_wSg46(zhC^NCh%*et5?gk^{$sw`{+;G03;pF|YKe%n+R#;9xB&W?S z0^=K+PW~YmsvtGv)cr%85JN*k0s{;U3@pql5SC8Pl}|vp)7W704S7v=J_!a%-hP(J z916OuSNL4`^fn7Rgz`@A*L4*WF=Am=LsA7D-}HWV>| zsD_F{Jt|@h5iR=li3iDyD7{L)^21xh;o1#0Kh#rTwB#2Cy5=MU|5QG1zTJH0e7<~@ ze98Q;`PKPt`B(C1^7ZrY=ljdIl=md>eZJ@X_58tnihLJ&zw%!Ny1JiNM-*roBizBz z6k&iW3U!## bool: """平仓所有持仓(闪电平仓)""" try: - self.page.ele('x://*[contains(text(), "闪电平仓")]').scroll.to_see(center=True) + self.page.ele('x:(//span[normalize-space(text()) = "闪电平仓"])').scroll.to_see(center=True) time.sleep(1) - self.page.ele('x://*[contains(text(), "闪电平仓")]').click() + self.page.ele('x:(//span[normalize-space(text()) = "闪电平仓"])').click() time.sleep(3) logger.success("成功执行平仓操作") return True @@ -370,7 +370,7 @@ class TradingExecutor: try: self.page.ele('x://input[@placeholder="请输入数量"]').input(amount) time.sleep(1) - self.page.ele('x://*[contains(text(), "买入开多")]').click() + self.page.ele('x://*[normalize-space(text()) ="买入开多"]').click(by_js=True) logger.success(f"成功开多,金额:{amount}") return True except Exception as e: @@ -382,7 +382,7 @@ class TradingExecutor: try: self.page.ele('x://input[@placeholder="请输入数量"]').input(amount) time.sleep(1) - self.page.ele('x://*[contains(text(), "卖出开空")]').click() + self.page.ele('x://*[normalize-space(text()) ="卖出开空"]').click(by_js=True) logger.success(f"成功开空,金额:{amount}") return True except Exception as e: @@ -810,7 +810,7 @@ class WeexTransaction: MessageSender.send_dingtalk_message("获取可用余额失败", is_error=True) return - amount = balance / Config.POSITION_RATIO + amount = int(balance / 100) # 执行交易 trade_executed = self.trading_executor.execute_trade(