剧烈拉升检查器逻辑修复
This commit is contained in:
parent
9f9777008d
commit
295b7b6982
@ -750,24 +750,23 @@ class FreqaiPrimer(IStrategy):
|
||||
# 剧烈拉升检测参数
|
||||
H1_RAPID_RISE_LOOKBACK = 200 # 检查最近200根K线
|
||||
H1_RAPID_RISE_THRESHOLD = 5 # 价格拉升阈值(百分比)
|
||||
H1_MAX_CANDLES = 2 # 最多连续检查的K线数量
|
||||
H1_UNSTABLE_REGION_THRESHOLD = 60 # 不稳定区域阈值(百分比,超过60%认为是中上部分)
|
||||
H1_MAX_CANDLES = 3 # 最多连续检查的K线数量修改为3
|
||||
|
||||
def detect_h1_rapid_rise(self, dataframe: DataFrame, metadata: dict) -> tuple[bool, float]:
|
||||
"""
|
||||
检测最近K线中是否发生了剧烈拉升情况
|
||||
检测最近K线中是否发生了剧烈拉升情况(200根1h k线范围内,最多3个周期内抬升至少5%)
|
||||
|
||||
参数:
|
||||
dataframe: 当前时间框架的数据
|
||||
metadata: 币对元数据
|
||||
|
||||
返回:
|
||||
tuple: (是否发生剧烈拉升, 当前价格在最近价格范围中的百分比)
|
||||
tuple[bool, float]: (是否处于不稳固区域(布尔值), 当前价格在最近价格范围中的百分比(浮点数))
|
||||
"""
|
||||
pair = metadata.get('pair', 'Unknown')
|
||||
|
||||
try:
|
||||
# 使用当前时间框架的数据,而不仅仅是1小时框架
|
||||
# 获取数据
|
||||
current_timeframe_data = dataframe.copy()
|
||||
|
||||
if len(current_timeframe_data) < self.H1_RAPID_RISE_LOOKBACK:
|
||||
@ -781,7 +780,7 @@ class FreqaiPrimer(IStrategy):
|
||||
rapid_rise_detected = False
|
||||
max_cumulative_change = 0
|
||||
|
||||
# 检查最多连续2根K线内的累计涨幅
|
||||
# 检查最多连续3根K线内的累计涨幅
|
||||
for i in range(1, len(recent_data)):
|
||||
# 计算从i-n到i的累计涨幅
|
||||
for n in range(1, self.H1_MAX_CANDLES + 1):
|
||||
@ -795,6 +794,7 @@ class FreqaiPrimer(IStrategy):
|
||||
|
||||
if cumulative_change >= self.H1_RAPID_RISE_THRESHOLD:
|
||||
rapid_rise_detected = True
|
||||
logger.info(f"[{pair}] 检测到剧烈拉升: 从{i-n}到{i}根K线,累计涨幅{cumulative_change:.2f}% >= {self.H1_RAPID_RISE_THRESHOLD}%")
|
||||
break
|
||||
if rapid_rise_detected:
|
||||
break
|
||||
@ -811,10 +811,11 @@ class FreqaiPrimer(IStrategy):
|
||||
else:
|
||||
price_position_pct = 0.0
|
||||
|
||||
# 判断当前是否处于不稳固区域(剧烈拉升后价格处于中上部分)
|
||||
is_unstable_region = rapid_rise_detected and (price_position_pct >= self.H1_UNSTABLE_REGION_THRESHOLD)
|
||||
# 判断当前是否处于不稳固区域(检测到剧烈拉升后,直接判定为不稳固区域)
|
||||
# 只要检测到剧烈拉升(3根K线内涨幅≥5%),就判定为不稳固区域,阻止入场
|
||||
is_unstable_region = rapid_rise_detected
|
||||
|
||||
logger.info(f"[{pair}] 剧烈拉升检测 - 最大{self.H1_MAX_CANDLES}根K线累计涨幅: {max_cumulative_change:.2f}%, 阈值: {self.H1_RAPID_RISE_THRESHOLD}%, 不稳固区域: {is_unstable_region}")
|
||||
logger.info(f"[{pair}] 剧烈拉升检测 - 最大{self.H1_MAX_CANDLES}根K线累计涨幅: {max_cumulative_change:.2f}%, 阈值: {self.H1_RAPID_RISE_THRESHOLD}%, 价格位置: {price_position_pct:.2f}%, 不稳固区域: {is_unstable_region}")
|
||||
|
||||
return is_unstable_region, price_position_pct
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user