Files
Chan/README_FX_STRENGTH.md
T
2025-05-23 21:19:50 +08:00

6.6 KiB

分型强度检测功能文档

概述

本功能为缠论中的顶底分型添加了强度检测机制,通过多维度分析来量化分型的可靠性和重要性。强度分数范围为0-100分,数值越高表示分型越强、越可靠。

功能特性

1. 多维度强度评估

分型强度通过以下5个维度进行综合评估:

  • 价格差异强度 (40分):分型点与相邻K线的价格差异
  • 突破历史点位 (20分):是否突破前期重要高低点
  • 成交量确认 (15分):分型形成时的成交量放大程度
  • RSI背离确认 (15分):价格与RSI指标的背离情况
  • MACD背离确认 (10分):价格与MACD指标的背离情况

2. 强度等级分类

  • 极强 (80-100分):高可靠性分型,通常是重要转折点
  • 强 (60-79分):较高可靠性分型,值得重点关注
  • 中等 (40-59分):一般可靠性分型
  • 弱 (20-39分):较低可靠性分型
  • 极弱 (0-19分):最低可靠性分型

核心方法

ChanKLC类新增方法

def calculate_fx_strength(self):
    """计算顶底分型强度,返回0-100的强度分数"""
    
def get_fx_strength_level(self):
    """获取分型强度等级描述字符串"""
    
def is_strong_fx(self, threshold=60):
    """判断是否为强分型,可自定义阈值"""

特征数据集成

分型强度自动集成到get_feature_data()方法中:

features = klc.get_feature_data()

# 可获取以下分型强度相关特征:
- klc_fx_strength          # 强度分数 (0-100)
- klc_fx_strength_level    # 强度等级描述
- klc_is_strong_fx         # 是否为强分型 (1/0)
- klc_fx_strength_extreme  # 是否为极强分型 (1/0)
- klc_fx_strength_strong   # 是否为强分型 (1/0)
- klc_fx_strength_medium   # 是否为中等分型 (1/0)
- klc_fx_strength_weak     # 是否为弱分型 (1/0)
- klc_fx_strength_very_weak # 是否为极弱分型 (1/0)

使用示例

基本使用

from ChanKLC import ChanKLC
from ChanEnum import Chan_FX_TYPE

# 假设klc是一个已识别的分型
if klc.fx != Chan_FX_TYPE.UNKNOWN:
    strength = klc.calculate_fx_strength()
    level = klc.get_fx_strength_level()
    is_strong = klc.is_strong_fx()
    
    print(f"分型强度: {strength}分")
    print(f"强度等级: {level}")
    print(f"是否强分型: {is_strong}")

筛选强分型

def filter_strong_fractals(klc_list, min_strength=60):
    """筛选强分型"""
    strong_fractals = []
    for klc in klc_list:
        if klc.fx != Chan_FX_TYPE.UNKNOWN and klc.is_strong_fx(min_strength):
            strong_fractals.append(klc)
    return strong_fractals

# 使用示例
strong_fractals = filter_strong_fractals(klc_list, min_strength=70)

获取统计信息

def get_fractal_statistics(klc_list):
    """获取分型强度统计信息"""
    stats = {
        'total_fractals': 0,
        'extreme_strength': 0,
        'strong_strength': 0,
        'medium_strength': 0,
        'weak_strength': 0,
        'very_weak_strength': 0,
        'avg_strength': 0
    }
    
    strengths = []
    for klc in klc_list:
        if klc.fx != Chan_FX_TYPE.UNKNOWN:
            stats['total_fractals'] += 1
            strength = klc.calculate_fx_strength()
            strengths.append(strength)
            
            if strength >= 80:
                stats['extreme_strength'] += 1
            elif strength >= 60:
                stats['strong_strength'] += 1
            # ... 其他分类
    
    if strengths:
        stats['avg_strength'] = sum(strengths) / len(strengths)
    
    return stats

配置选项

通过fx_strength_config.py可以自定义分型强度检测的各项参数:

预定义配置

  • DEFAULT_CONFIG:默认配置,平衡各项权重
  • CONSERVATIVE_CONFIG:保守配置,更严格的分型识别
  • AGGRESSIVE_CONFIG:激进配置,更宽松的分型识别
  • TECHNICAL_CONFIG:技术指标配置,重视技术指标背离

自定义配置

from fx_strength_config import FxStrengthConfig

config = FxStrengthConfig()
config.price_difference_weight = 50  # 调整价格差异权重
config.strong_threshold = 70         # 调整强分型阈值
config.volume_lookback = 10          # 调整成交量回看期数

强度计算详情

1. 价格差异强度

  • 对于顶分型:计算当前高点与左右相邻点的价格差异
  • 对于底分型:计算当前低点与左右相邻点的价格差异
  • 差异越大,强度分数越高

2. 突破历史点位强度

  • 检查是否突破前N根K线的最高/最低价
  • 突破幅度越大,强度分数越高

3. 成交量确认强度

  • 比较当前K线成交量与前N根K线平均成交量
  • 成交量放大越多,强度分数越高

4. RSI背离确认强度

  • 检查价格新高/新低时RSI是否出现相反走势
  • 背离程度越大,强度分数越高

5. MACD背离确认强度

  • 检查价格新高/新低时MACD柱状图是否出现相反走势
  • 背离程度越大,强度分数越高

实际应用建议

交易策略应用

  1. 入场信号:只关注强度>=60的分型作为入场信号
  2. 重要转折:极强分型(>=80分)通常预示重要转折点
  3. 止损设置:根据分型强度调整止损距离
  4. 仓位管理:强分型可以加大仓位,弱分型减小仓位

风险控制

  1. 避免弱分型:强度<40的分型建议谨慎对待
  2. 确认机制:结合其他技术指标确认分型有效性
  3. 时间过滤:高时间周期的强分型更可靠
  4. 市场环境:在震荡市中提高强度阈值

机器学习特征

分型强度可以作为机器学习模型的重要特征:

  • 直接使用强度分数作为数值特征
  • 使用强度等级分类作为分类特征
  • 结合其他技术指标构建更复杂的特征

注意事项

  1. 数据完整性:确保KLC对象包含完整的价格和技术指标数据
  2. 时间序列:确保KLC之间的pre/next关系正确建立
  3. 参数调优:根据不同市场和时间周期调整配置参数
  4. 回测验证:在实际使用前进行充分的历史数据回测
  5. 实时更新:分型强度会随着后续K线的变化而更新

文件说明

  • ChanKLC.py:主要实现文件,包含分型强度计算逻辑
  • fx_strength_example.py:使用示例和功能演示
  • fx_strength_config.py:配置文件,支持自定义参数
  • README_FX_STRENGTH.md:本文档,详细说明功能特性

版本更新

  • v1.0:基础分型强度检测功能
  • 支持多维度强度评估
  • 集成到特征数据系统
  • 提供配置化参数调整