继续优化
This commit is contained in:
parent
fb720324ac
commit
eaca2adbfc
@ -569,25 +569,39 @@ class FreqaiPrimer(IStrategy):
|
||||
"""
|
||||
# 获取当前交易对
|
||||
pair = trade.pair
|
||||
|
||||
# -------------------------- 减仓逻辑 --------------------------
|
||||
|
||||
# -------------------------- 减仓逻辑(进阶版:支持二次减仓) --------------------------
|
||||
if current_profit > 0:
|
||||
# 1. 首次减仓:盈利≥9.5%,直接减50%(不再触发后续减仓)
|
||||
if current_profit >= 0.095 and trade.nr_of_successful_exits == 0:
|
||||
reduce_amount = - (trade.stake_amount * 0.5)
|
||||
reduce_ratio = 0.5
|
||||
reduce_amount = - (trade.stake_amount * reduce_ratio)
|
||||
reduce_amount = max(-trade.stake_amount, min(reduce_amount, -min_stake))
|
||||
logger.info(f"[{pair}] 触发减仓: 盈利{current_profit:.2%}≥8.5%,退出50%仓位,减仓金额{abs(reduce_amount):.2f}")
|
||||
logger.info(f"[{pair}] 首次减仓: 盈利{current_profit:.2%}≥9.5%,退出{reduce_ratio*100:.0f}%仓位,减仓金额{abs(reduce_amount):.2f}")
|
||||
return reduce_amount
|
||||
# 盈利超8.5%,退出50%仓位(仅触发一次)
|
||||
elif current_profit >= 0.085 and trade.nr_of_successful_exits == 0:
|
||||
reduce_amount = - (trade.stake_amount * 0.33)
|
||||
|
||||
# 2. 首次减仓:盈利≥8.5%且<9.5%,减33%
|
||||
elif 0.085 <= current_profit < 0.095 and trade.nr_of_successful_exits == 0:
|
||||
reduce_ratio = 0.33
|
||||
reduce_amount = - (trade.stake_amount * reduce_ratio)
|
||||
reduce_amount = max(-trade.stake_amount, min(reduce_amount, -min_stake))
|
||||
logger.info(f"[{pair}] 触发减仓: 盈利{current_profit:.2%}≥8.5%,退出50%仓位,减仓金额{abs(reduce_amount):.2f}")
|
||||
logger.info(f"[{pair}] 首次减仓: 盈利{current_profit:.2%}≥8.5%,退出{reduce_ratio*100:.0f}%仓位,减仓金额{abs(reduce_amount):.2f}")
|
||||
return reduce_amount
|
||||
# 盈利超7.5%但未达8.5%,退出25%仓位(仅触发一次)
|
||||
|
||||
# 3. 首次减仓:盈利≥7.5%且<8.5%,减25%
|
||||
elif 0.075 <= current_profit < 0.085 and trade.nr_of_successful_exits == 0:
|
||||
reduce_amount = - (trade.stake_amount * 0.25)
|
||||
reduce_ratio = 0.25
|
||||
reduce_amount = - (trade.stake_amount * reduce_ratio)
|
||||
reduce_amount = max(-trade.stake_amount, min(reduce_amount, -min_stake))
|
||||
logger.info(f"[{pair}] 触发减仓: 盈利{current_profit:.2%}≥7.5%,退出25%仓位,减仓金额{abs(reduce_amount):.2f}")
|
||||
logger.info(f"[{pair}] 首次减仓: 盈利{current_profit:.2%}≥7.5%,退出{reduce_ratio*100:.0f}%仓位,减仓金额{abs(reduce_amount):.2f}")
|
||||
return reduce_amount
|
||||
|
||||
# 4. 二次减仓:已首次减仓(nr_of_successful_exits=1),且盈利≥10%,再减30%(总减仓比例≈25%+30%=55%)
|
||||
elif current_profit >= 0.10 and trade.nr_of_successful_exits == 1:
|
||||
reduce_ratio = 0.30
|
||||
reduce_amount = - (trade.stake_amount * reduce_ratio) # 注意:此处 trade.stake_amount 是减仓后的剩余金额
|
||||
reduce_amount = max(-trade.stake_amount, min(reduce_amount, -min_stake))
|
||||
logger.info(f"[{pair}] 二次减仓: 盈利{current_profit:.2%}≥10%,退出{reduce_ratio*100:.0f}%仓位,减仓金额{abs(reduce_amount):.2f}")
|
||||
return reduce_amount
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user