7.6 KiB
7.6 KiB
策略改进文档
概述
本文档记录了FreqaiPrimer策略的改进内容,包括趋势判断逻辑优化、"火苗"策略实现、以及各种动态调整机制。
主要改进内容
1. 趋势判断逻辑优化
1.1 多维度趋势判断
- EMA趋势:不仅看EMA50/EMA200交叉,还考虑EMA斜率
- 价格动量:短期价格变化趋势
- 趋势强度:EMA斜率大小衡量趋势强度
- 趋势一致性:多指标投票机制
1.2 高级市场状态评估
- 趋势强度:-1.0到1.0的连续值,衡量趋势强弱
- 趋势可信度:0.0到1.0的值,衡量趋势判断的可靠性
- 价格动量:衡量价格变化速度
- 趋势一致性:短期与长期趋势的一致性
1.3 市场状态分类
strong_bull:市场得分 > 70weak_bull:市场得分 50-70neutral:市场得分 30-50weak_bear:市场得分 10-30strong_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. 注意事项
- 这些改进旨在提高策略在不同市场环境下的表现
- 需要在实际回测中验证改进效果
- 可能需要进一步调整参数以达到最佳效果