From 34bec934a6f7729239860b497c7e447de2283b3f Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Wed, 30 Jul 2025 22:01:14 +0800 Subject: [PATCH] =?UTF-8?q?log=E5=A2=9E=E5=BC=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .output.log.swp | Bin 24576 -> 16384 bytes freqtrade/templates/freqaiprimer.py | 31 ++++++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/.output.log.swp b/.output.log.swp index 939ce876c06fee7e9a6af5d3af1e4a4b7b8cbb52..95c7a511610ed8d943e3a6fda4cdf0ca62bb7910 100644 GIT binary patch literal 16384 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 literal 24576 zcmeI4dypJO9miKtA&E!?{{ZCCgi39&vXj}}yW8w(tV%AAN_m&W1$J+g~7Bt5WO&${~_mpkF%)#g% z+ZuB0(US!9j4;C)y{>tR?;3e?hEw)SWnU{eePa-hl0+7WEU;G=I3$)%C3T*~2~&<| zhac9pSGh&Pkp&_PL>7oF5LqCyKxBc)0+9tG3%tK9;Fk`Fok>MLP!#)9hlURy5WnU3 z2gUDpk?;iI|9vO?953SAfd5DEV?=x&_}hXXC*s!u-y`_3BK~sVZvnp@_?wXbF5v$L z`8~kj0Dhz}jI__cfMce{&j`*$`5y=V2atag_|w3T z5Cev+|5Jj?`elIc0{JfBPXhOWKLPn)4E%B6*8zVF_=CWIFSzvImx2EdYzYX|zfbRnSZQy%=Zw7wUM^yWK3wRdz zH-WDJz6tnh;NJkg5%@;IrTuOKehKi0fe!d@b$po0e+U?Vp$$L7T)7Uv(~+ik-$6scZXiPha!Yeek`xIWKIc_6`gD7mK`94YE zE?O6Tfx-j|D`}0mk=D_3C_F|5Z=-NGy;sema1)h>mnkk6&^0Ch|3;+rRC7YlB=juP zGp$Wct?8!enPf9du*zu$%{4uzu*!5j&7`H}x!TDd9ekh|%BZxi>lEdbcpe_5IW3+ydyR6z?<6;(-*K(h3F&Lo;=)-O?GVda9k+85o?x8_wzNwQ`nG zC=4;LTq-%PZ{}Ig5cB&@#z(i{6d=o+tIUE^Dw?*>eAB2mr1Ro5H}IWC#cAWkLu6$PF19>Y;W}31sd??Zr{4tYB&D8aMr+SH; zFj*pzGpGq>*^X^eQ~G9(H*#ZJzlVB`RMz8~#z5X#ZI4Blx;|4{Qgq82n}+R59o1lY znyYiZ;|{fsTndyu)9vPbM(`K8`Y4rs&jsLG5@RVvW94bJ`;MvhBQ4FRw7{7vmTurx z`>zPSX4R#pGtczH0h(fcr{_j?c@!-v8WbvXhU!-8 zFC08ZtWK7R7Y0^voPlzQ)}wyE;&qh;X#FmnRtrG~s{8m_w({1o+;n>!&+=&;HffM` zSc9P;$j5aYzbe}9^znC($^>OLm~zue#SS$^n8#OKd^pZI1;?d1IM2lK@A_3rWtIF? z_bt%6o#yc1&8Skzu%Iy}5<=V7pv22TQJ2_N~GQqb@2J z=TS6uk6=y6>qeGMrf7PjL5fxzbtzkW_pAP&{;HLq99r&rh52v#ZBkMN=JOz9Z z_~(GH23`Wb3iyS<%fPPz?gQTm+ynj+a2NQbkE!)P1^6d{mw+z>?f~xxZUa9DcoFzk z;056K0v`bW9PpC`KRT>-?7+j+`dfm3T=3(7_X{qfV`<=hf+vOiJmBIubWF;x0xra& zugC(C1tJSX7KkhmSs=1NWP!*6kp&_P>^BSW^Z!%nEdB-x{QSRsKe>nApUL(uHZ|0S-Jr|!eJ^w#FEDYkp~tl)%x<^Bd1Ne+(&)V7hzOQwp)-paePmoBt)()Rh$P*eOSkHk6v-f0J@|VjW67kJ4AQo= zXiY82;KmzcX)T?a%A;euhqvq=UN_c1mz>iuuHZ|0S-Jr|!eJ^w!DY zYHE`8LF-ixG4qH{{vSMh)MV?~>{WeiiR<)QKI3gjjLsK}2!5dv#^~G@|u85CIYX2p! zl&9{)xb)WMaB-~KQsaJF*12?c=ez|g*|M&Vj@e6Bjyr>@KuliiqC@E6_05(m# zoi;m{bLc", volume_z_score_threshold, cond2.iloc[-1]), + ("rsi", rsi_value, "<", rsi_threshold, cond3.iloc[-1]), + ("close <= bb_lowerband", bb_close_value, "<=", bb_lower_value, cond4.iloc[-1]), + ("stochrsi_k", stochrsi_value, "<", stochrsi_threshold, cond5.iloc[-1]), + ("非熊市", None, None, None, cond6.iloc[-1]), + ("STOCHRSI未持续超买", None, None, None, cond7.iloc[-1]), + ] + + # 输出每个条件的状态 + logger.info(f"[{pair}] === 买入条件检查 ===") + satisfied_conditions = [] + for name, value, operator, threshold, result in conditions_summary: + status = "✅" if result else "❌" + if value is not None and threshold is not None: + logger.info(f"[{pair}] {status} {name}: {value:.6f} {operator} {threshold:.6f}") + else: + logger.info(f"[{pair}] {status} {name}") + if result: + satisfied_conditions.append(name) + + # 总结满足的条件 if combined_condition.any(): - logger.info(f"[{pair}] 买入信号触发,趋势得分:{trend_score:.2f}") + logger.info(f"[{pair}] ✅ 买入信号触发,满足条件: {', '.join(satisfied_conditions)},趋势得分:{trend_score:.2f}") else: - logger.info(f"[{pair}] 买入条件未满足") + logger.info(f"[{pair}] ❌ 买入条件未满足") + else: logger.info(f"[{pair}] 无有效买入条件") + # 记录各条件触发率 logger.info(f"[{pair}] 各条件触发率 - " f"cond1: {cond1.mean():.2%}, " f"cond2: {cond2.mean():.2%}, "