概览
智能交易决策模块 是一个先进的交易管理系统,基于可配置规则自动关闭仓位,不依赖交易所级别的止损 (SL) 或止盈 (TP) 订单。相反,它持续监控交易,并根据以下因素做出智能退出决策:
- K线形态反转(动能变化)
- 基于时间的阈值规则(动态止损)
- 止盈倍数规则(分级盈利锁定)
- 全局安全限制(紧急退出)
配置结构
1. 主要设置 (IntelligentRuleOptions)
IntelligentRuleOptions:
IsEnabled: true # 智能退出主开关
UseOriginalTPAsBase: false # 保留供未来使用
EnableAdaptiveThresholds: false # 保留供未来使用
MinimumHoldTime: 1 # 任何退出前的最短持有时间(分钟)(防止过早关闭)
MaximumBuyHoldTime: 20 # 在N分钟后强制关闭多头仓位
MaximumSellHoldTime: 10 # 在N分钟后强制关闭空头仓位
关键参数:
IsEnabled:设置为false以禁用所有智能规则,依赖交易所的SL/TPMinimumHoldTime:防止市场噪音干扰 - 交易必须持续指定分钟数才能激活规则MaximumBuyHoldTime/MaximumSellHoldTime:终极安全措施 - 不论盈亏,强制退出
2. 基于K线的退出规则(动能反转检测)
CandleExitRules:
IsEnabled: false # 启用K线形态退出
OppositesCandlesCount: 2 # 触发退出的连续相反K线数量
ExitPercentage: 100 # 关闭仓位的百分比(100 = 完全退出,50 = 部分退出)
RuleName: "动能反转退出"
RequireMinimumProfit: null # 可选:仅当利润 >= 此百分比时退出(例如 2.0)
工作原理:
- 多头交易:当出现
OppositesCandlesCount根连续的 红色 K线时退出 - 空头交易:当出现
OppositesCandlesCount根连续的 绿色 K线时退出 - 使用场景:在动能反转变成亏损之前快速捕捉
示例:
# 在3根连续红色K线后退出50%的仓位(针对多头)
CandleExitRules:
IsEnabled: true
OppositesCandlesCount: 3
ExitPercentage: 50
RequireMinimumProfit: 1.5 # 仅当已有1.5%+利润时触发
3. 阈值规则(基于时间的止损和利润保护)
阈值规则在特定时间间隔激活,并当利润/亏损超过阈值时关闭交易。
多头交易阈值
LongTrade:
ThresholdRules:
- Minutes: 30 # 30分钟后
ThresholdPer: -80.0 # 若亏损 >= 80% 关闭(止损)
RuleName: "快速止损 - 多头"
- Minutes: 360 # 6小时后
ThresholdPer: -60.0 # 若亏损 >= 60% 关闭(更严格的止损)
RuleName: "扩展止损 - 多头"
- Minutes: 720 # 12小时后
ThresholdPer: -50.0 # 若亏损 >= 50% 关闭(利润保护)
RuleName: "利润保护 - 多头"
空头交易阈值
ShortTrade:
ThresholdRules:
- Minutes: 15
ThresholdPer: -30.0 # 空头更严格的止损(波动性更高)
RuleName: "快速止损 - 空头"
- Minutes: 60
ThresholdPer: -20.0
RuleName: "严格止损 - 空头"
- Minutes: 180
ThresholdPer: -15.0
RuleName: "利润保护 - 空头"
解释:
- 负值 = 止损保护(当利润低于阈值时关闭)
- 正值 = 锁定利润(当利润回落到阈值时关闭)
- 规则是 累积的 - 在每个时间间隔检查所有适用规则
4. 止盈规则(分级盈利锁定)
止盈规则根据 原始止盈目标的倍数 在达到利润里程碑时卖出部分仓位。
LongTrade:
TakeProfitRules:
- TpMultiplier: 0.2 # 在原始TP的20%时(例如,10% TP → 在2%触发)
SellPer: 100 # 卖出100%的仓位
RuleName: "10%目标 - 多头"
IsEnabled: true
UseMarketOrder: true
多级止盈示例:
# 假设原始止盈目标为10%
TakeProfitRules:
- TpMultiplier: 0.5 # 在5%利润时触发 (0.5 × 10%)
SellPer: 25 # 卖出25%的仓位
IsEnabled: true
- TpMultiplier: 1.0 # 在10%利润时触发 (1.0 × 10%)
SellPer: 30 # 再卖出30%(现已卖出55%)
IsEnabled: true
- TpMultiplier: 2.0 # 在20%利润时触发
SellPer: 25 # 再卖出25%(现已卖出80%)
IsEnabled: true
- TpMultiplier: 5.0 # 在50%利润时触发
SellPer: 20 # 卖出剩余20%(完全关闭)
IsEnabled: true
主要特性:
- 累积跟踪:系统会记住已卖出的部分(
tp_sold_cumulative) - 防止重复:每个止盈级别仅执行一次
- 剩余数量:始终基于剩余仓位卖出,而非原始仓位
5. 全局安全设置
IntelligentGlobalSettings:
MinProfitToEnableTP: 0.0 # 止盈规则激活前的最小利润百分比
MaxLossBeforeForceClose: -30.0 # 紧急情况:若亏损超过此值强制关闭
参数:
MinProfitToEnableTP:防止在波动市场中激活止盈规则MaxLossBeforeForceClose:终极保护 - 覆盖所有其他规则
决策优先级流程
系统按以下 严格顺序 评估规则:
- 🚨 紧急停止 (
MaxLossBeforeForceClose) - 最高优先级 - ⏳ 最小持有时间 - 防止过早退出
- 🕐 最大持有时间 - 在时间限制后强制退出
- 🕯️ K线退出规则 - 动能反转检测
- ⏱️ 阈值规则 - 基于时间的止损/利润保护
- 🎯 止盈规则 - 分级盈利锁定
- ➡️ 继续 - 若无条件满足则不采取行动
按交易风格优化的设置
⚡ 超短线交易(1-15分钟)
IntelligentRuleOptions:
IsEnabled: true
MinimumHoldTime: 1 # 非常短的持有时间
MaximumBuyHoldTime: 15 # 15分钟后退出多头
MaximumSellHoldTime: 10 # 10分钟后退出空头
CandleExitRules:
IsEnabled: true
OppositesCandlesCount: 2 # 快速反转检测
ExitPercentage: 100 # 反转时完全退出
RequireMinimumProfit: 0.5 # 仅当利润0.5%+时退出
LongTrade:
ThresholdRules:
- Minutes: 5
ThresholdPer: -15.0 # 严格止损
- Minutes: 10
ThresholdPer: -10.0
TakeProfitRules:
- TpMultiplier: 0.3 # 快速盈利(TP的30%)
SellPer: 50
- TpMultiplier: 0.6
SellPer: 50
IntelligentGlobalSettings:
MinProfitToEnableTP: 0.0
MaxLossBeforeForceClose: -20.0 # 严格的紧急停止
📊 日内交易(15分钟 - 4小时)
IntelligentRuleOptions:
IsEnabled: true
MinimumHoldTime: 5
MaximumBuyHoldTime: 240 # 最大4小时
MaximumSellHoldTime: 180 # 最大3小时
CandleExitRules:
IsEnabled: true
OppositesCandlesCount: 3
ExitPercentage: 50 # 反转时部分退出
RequireMinimumProfit: 1.0
LongTrade:
ThresholdRules:
- Minutes: 30
ThresholdPer: -30.0
- Minutes: 120
ThresholdPer: -20.0
- Minutes: 180
ThresholdPer: -15.0
TakeProfitRules:
- TpMultiplier: 0.5
SellPer: 30
- TpMultiplier: 1.0
SellPer: 40
- TpMultiplier: 2.0
SellPer: 30
IntelligentGlobalSettings:
MinProfitToEnableTP: 0.5
MaxLossBeforeForceClose: -35.0
📈 波段交易(4小时 - 3天)
IntelligentRuleOptions:
IsEnabled: true
MinimumHoldTime: 30
MaximumBuyHoldTime: 4320 # 3天
MaximumSellHoldTime: 2880 # 2天
CandleExitRules:
IsEnabled: true
OppositesCandlesCount: 5 # 需要更多确认
ExitPercentage: 40
RequireMinimumProfit: 2.0
LongTrade:
ThresholdRules:
- Minutes: 240 # 4小时
ThresholdPer: -50.0
- Minutes: 1440 # 24小时
ThresholdPer: -35.0
- Minutes: 2880 # 48小时
ThresholdPer: -25.0
TakeProfitRules:
- TpMultiplier: 0.5
SellPer: 20
- TpMultiplier: 1.0
SellPer: 30
- TpMultiplier: 2.0
SellPer: 25
- TpMultiplier: 3.0
SellPer: 25
IntelligentGlobalSettings:
MinProfitToEnableTP: 1.0
MaxLossBeforeForceClose: -50.0
🏔️ 长期交易(3+天)
IntelligentRuleOptions:
IsEnabled: true
MinimumHoldTime: 120 # 最小2小时
MaximumBuyHoldTime: null # 无时间限制(或43200分钟即30天)
MaximumSellHoldTime: null
CandleExitRules:
IsEnabled: false # 禁用 - 专注于基本面
LongTrade:
ThresholdRules:
- Minutes: 1440 # 1天
ThresholdPer: -60.0
- Minutes: 10080 # 1周
ThresholdPer: -40.0
- Minutes: 43200 # 1个月
ThresholdPer: -30.0
TakeProfitRules:
- TpMultiplier: 1.0
SellPer: 20
- TpMultiplier: 2.0
SellPer: 20
- TpMultiplier: 5.0
SellPer: 30
- TpMultiplier: 10.0
SellPer: 30
IntelligentGlobalSettings:
MinProfitToEnableTP: 5.0 # 仅在5%以上锁定利润
MaxLossBeforeForceClose: -70.0
模拟模式支持
系统完全支持 模拟模式,其中交易为模拟操作:
General:
demo_mode: true # 启用模拟模式
模拟模式功能:
- ✅ 计算理论盈亏,无需真实交易所订单
- ✅ 跟踪部分卖出和累积利润
- ✅ 记录所有决策,带
[DEMO]前缀 - ✅ 与实时模式完全一致地更新交易状态
最佳实践
- 从保守开始
- 开始时使用更宽松的止损和更长的最小持有时间
- 随着对市场行为的了解逐步收紧
- 首先在模拟模式下测试
- 始终在模拟模式下验证新配置
- 监控决策日志以发现意外行为
- 分层保护
- 结合K线退出 + 阈值规则 + 止盈规则
- 每一层捕获不同的失败模式
- 空头特定注意事项
- 对空头使用 更严格的止损(波动性更高)
- 空头使用 更短的持有时间(均值回归风险)
- 较低的止盈倍数(避免在熊市中过于贪婪)
- 监控
MinProfitToEnableTP- 设置高于典型点差 + 费用,以避免导致亏损的止盈
- 超短线交易设置较低,波段/长期交易设置较高
- 紧急停止距离
MaxLossBeforeForceClose应为“最坏情况”下可接受的亏损- 典型值:-20%(超短线),-35%(日内),-50%(波段),-70%(长期)
常见模式
激进超短线交易
MinimumHoldTime: 1
MaximumBuyHoldTime: 10
CandleExitRules: { OppositesCandlesCount: 2, ExitPercentage: 100 }
ThresholdRules: [{ Minutes: 3, ThresholdPer: -10.0 }]
保守波段交易
MinimumHoldTime: 60
MaximumBuyHoldTime: 7200 # 5天
CandleExitRules: { IsEnabled: false }
ThresholdRules: [{ Minutes: 1440, ThresholdPer: -40.0 }]
动能超短线交易
CandleExitRules: { IsEnabled: true, OppositesCandlesCount: 2, ExitPercentage: 50 }
TakeProfitRules: [
{ TpMultiplier: 0.2, SellPer: 50 },
{ TpMultiplier: 0.4, SellPer: 50 }
]
故障排除
| 问题 | 解决方案 |
|---|---|
| 交易过早退出 | 增加 MinimumHoldTime,扩大阈值百分比 |
| 交易在亏损中持有过久 | 降低阈值百分比,启用K线退出 |
| 止盈未触发 | 检查 MinProfitToEnableTP,验证倍数计算 |
| K线退出不生效 | 确保 IsEnabled: true,检查K线历史是否填充 |
| 模拟盈亏不正确 | 验证 direction 字段是否正确(多头/空头/任意) |
监控与日志
系统记录所有决策:
✅ BTCUSDT决策:部分卖出(25%) - 止盈触发(多头):12.50% 利润 >= 10.00% 阈值,卖出25% - 早期盈利锁定
📊 执行部分止盈:卖出25%(总计:25%),盈亏:125.40
🏁 ETHUSDT交易完全关闭:状态=胜利,总盈亏=543.20
关键指标:
- 🎯 决策类型(继续/全部关闭/部分卖出)
- 📊 执行确认(实时模式)
- 🤖 模拟交易的
[DEMO]前缀 - 🏁 最终关闭并附盈亏总结
总结
智能交易决策模块 提供 复杂的基于规则的交易管理,独立于交易所级别的SL/TP订单运行。通过结合动能分析(K线)、基于时间的保护(阈值)和分级盈利锁定(止盈倍数),它提供了灵活、适应性强的交易管理,适用于从超短线到长期持有的各种交易风格。