myTestFreqAI/doc/strategy_improvements.md
zhangkun9038@dingtalk.com 2d4494f490 revert+2
2026-02-03 21:37:05 +08:00

7.6 KiB
Raw Blame History

策略改进文档

概述

本文档记录了FreqaiPrimer策略的改进内容包括趋势判断逻辑优化、"火苗"策略实现、以及各种动态调整机制。

主要改进内容

1. 趋势判断逻辑优化

1.1 多维度趋势判断

  • EMA趋势不仅看EMA50/EMA200交叉还考虑EMA斜率
  • 价格动量:短期价格变化趋势
  • 趋势强度EMA斜率大小衡量趋势强度
  • 趋势一致性:多指标投票机制

1.2 高级市场状态评估

  • 趋势强度-1.0到1.0的连续值,衡量趋势强弱
  • 趋势可信度0.0到1.0的值,衡量趋势判断的可靠性
  • 价格动量:衡量价格变化速度
  • 趋势一致性:短期与长期趋势的一致性

1.3 市场状态分类

  • strong_bull:市场得分 > 70
  • weak_bull:市场得分 50-70
  • neutral:市场得分 30-50
  • weak_bear:市场得分 10-30
  • strong_bear:市场得分 ≤ 10

2. "火苗"策略实现

2.1 动态入场策略

  • 在下跌趋势中strong_bear, weak_bear提高入场门槛提高10-30%
  • 在上升趋势中strong_bull, weak_bull降低入场门槛降低5-15%
  • 根据趋势强度和可信度动态调整入场阈值

2.2 积极的出场策略

  • 在下跌趋势中降低出场阈值降低10-30%),更容易触发出场
  • 在下跌趋势中缩短最大持仓时间24小时
  • 在下跌趋势中持仓超过1小时且有小幅盈利时考虑提前出场

2.3 积极的止损策略

  • 在下跌趋势中采用更保守的止损策略
  • 在下跌趋势中更快地锁定利润如利润超过3%时使用更小的止损幅度)
  • 在下跌趋势中小幅亏损时更积极地止损

2.4 价格保护机制

  • 在强熊市中只有当价格比上次卖出价格低1.5%时才允许再次入场
  • 根据趋势强度和可信度动态调整价格保护阈值
  • 防止在下跌趋势中频繁交易和追高的情况

3. 动态参数调整

3.1 入场阈值动态调整

  • 根据趋势强度和可信度动态调整入场阈值
  • 在下跌趋势中,根据趋势强度和可信度调整入场门槛
  • 在上升趋势中,根据趋势强度和可信度调整入场门槛

3.2 出场阈值动态调整

  • 根据趋势强度和可信度动态调整出场阈值
  • 在下跌趋势中,根据趋势强度调整出场阈值

3.3 止损策略动态调整

  • 根据趋势强度调整止损激进程度
  • 在下跌趋势中,根据趋势强度和可信度调整止损策略

4. 代码变更详情

4.1 市场状态计算逻辑改进

  • 修改了 populate_any_indicators 方法中的趋势计算逻辑
  • 增加了趋势强度、价格动量、趋势一致性等指标
  • 添加了MACD和RSI趋势强度计算

4.2 高级市场状态评估方法

  • 新增 get_advanced_market_state 方法
  • 返回包含状态、强度、可信度、动量、一致性等信息的字典

4.3 入场逻辑改进

  • 修改了 confirm_trade_entry 方法
  • 使用高级市场状态信息进行决策
  • 实现了动态阈值调整

4.4 出场逻辑改进

  • 修改了 confirm_trade_exit 方法
  • 使用高级市场状态信息进行决策
  • 实现了动态阈值调整

4.5 止损逻辑改进

  • 修改了 custom_stoploss 方法
  • 使用高级市场状态信息进行决策
  • 实现了动态止损调整

4.6 量价关系指标添加

  • 成交量趋势指标

    • volume_change: 成交量变化率
    • volume_ma_ratio: 成交量移动平均比值
    • volume_std: 成交量标准差(衡量成交量波动性)
    • volume_cv: 成交量变异系数
    • volume_zscore: 成交量Z分数检测异常成交量
    • volume_trend: 成交量趋势(成交量是否在上升通道)
    • volume_ema_fast/slow: 成交量EMA趋势
  • 量价关系指标

    • price_change: 价格变化率
    • volume_price_confirmation: 量价确认度(价格和成交量同向变动)
    • volume_price_ratio: 量价比率(成交量/价格)
    • bearish_divergence: 熊市背离(价格创新高但成交量未创新高)
    • bullish_divergence: 牛市背离(价格创新低但成交量未创新低)
    • obv: OBV平衡成交量
    • volume_price_corr_short/medium: 量价相关系数(短期/中期窗口)

4.7 动态ROI实现

  • custom_roi函数实现了根据入场类型和市场状态动态调整ROI的函数
  • 入场类型识别根据entry_tag解析入场类型快进快出、短期波段、中期趋势、长期持有、套利机会、突破追涨、震荡套利
  • 市场状态调整根据市场状态strong_bull, weak_bull, neutral, weak_bear, strong_bear调整ROI目标
  • 风险等级调整:根据风险等级调整持仓时间
  • ROI阈值
    • 快进快出2%止盈
    • 短期波段4%止盈
    • 中期趋势6%止盈
    • 长期持有10%止盈
    • 套利机会3%止盈
    • 突破追涨8%止盈
    • 震荡套利2.5%止盈

4.8 入场标签传递机制

  • identify_entry_type函数:实现了入场类型识别函数,根据技术指标特征组合判断入场类型
  • confirm_trade_entry增强:在入场时生成包含类型、持仓时间、风险等级等信息的标签
  • 标签格式type:X,duration:Y,risk:Z,confidence:W,name:NAME
  • 标签传递通过enter_tag将入场类型信息传递给后续的退出回调函数
  • 特征组合识别
    • 高波动+极端RSI+动量背离 → 快进快出
    • 巨量+强动量 → 突破追涨
    • 强趋势+低波动+多头排列 → 长期持有
    • 均值回归区域+低波动 → 套利机会
    • 震荡区间+低波动 → 震荡套利
    • 中等波动+中性RSI → 中期趋势
    • 中等波动+边界RSI → 短期波段

4.9 自定义退出逻辑优化

  • custom_exit增强更新了custom_exit函数以利用入场标签信息
  • 类型特定退出策略
    • 快进快出超过建议时间1.5倍时强制退出
    • 长期持有15%利润时部分止盈,关注风险控制
    • 套利机会:达到预期收益时立即退出
    • 震荡套利:快速止盈止损策略
    • 其他类型保留原有动态ROI逻辑
  • 避免功能重叠通过明确分工减少custom_roi和custom_exit之间的功能重叠

4.10 市场形态标签与市场趋势协作机制

  • 统一市场环境管理:新增get_comprehensive_market_context函数,整合市场形态标签和市场趋势信息
  • 标签信息扩展:入场标签现在包含市场状态和趋势强度信息
  • 多维度决策各callback函数同时考虑入场类型和实时市场环境
  • 协同效应
    • confirm_trade_entry:结合市场形态识别和市场趋势,生成包含市场环境信息的标签
    • custom_roi根据入场类型、历史市场状态和实时趋势强度动态调整ROI
    • custom_exit:根据入场类型和实时市场环境调整退出策略
    • custom_stoploss:根据入场类型、市场状态和趋势强度调整止损策略
  • 智能适配:不同类型入场策略在不同市场环境下采用相应调整策略

5. 移除的逻辑

  • 移除了冷启动保护逻辑,确保回测和实盘的一致性

6. 改进效果

  • 更准确的趋势判断:通过多维度指标提高了趋势判断的准确性
  • 更灵活的策略响应:根据市场状态动态调整策略参数
  • 更好的风险控制:在不利市场条件下更积极地保护利润
  • 更高的适应性:能够更好地适应不同的市场环境

7. 注意事项

  • 这些改进旨在提高策略在不同市场环境下的表现
  • 需要在实际回测中验证改进效果
  • 可能需要进一步调整参数以达到最佳效果