- Added support for a detailed chart mode in plot_converging_triangles.py, allowing users to visualize all pivot points and fitting lines. - Improved pivot fitting logic to utilize multiple representative points, enhancing detection accuracy and reducing false positives. - Introduced a new real-time detection mode with flexible zone parameters for better responsiveness in stock analysis. - Updated README.md and USAGE.md to reflect new features and usage instructions. - Added multiple documentation files detailing recent improvements, including pivot point fitting and visualization enhancements. - Cleaned up and archived outdated scripts to streamline the project structure.
6.5 KiB
6.5 KiB
实时模式使用指南
快速上手方案4(混合策略)实时模式。
什么是实时模式?
实时模式使用混合枢轴点检测策略,能够捕获最近几天的价格转折点,解决标准模式15天确认滞后的问题。
两种模式对比
| 特性 | 标准模式 | 实时模式 |
|---|---|---|
| 枢轴点类型 | 仅确认枢轴点 | 确认 + 候选枢轴点 |
| 检测滞后 | 15天 | 无滞后 |
| 枢轴点质量 | 高 | 高(确认)+ 中(候选) |
| 适用场景 | 历史回测 | 实时选股 |
| 误报风险 | 低 | 中(候选点需确认) |
快速启用
方法1:配置文件(推荐)
编辑 scripts/triangle_config.py:
# 实时模式配置
REALTIME_MODE = True # 改为 True
FLEXIBLE_ZONE = 5 # 最近5天使用降低标准
然后正常运行:
python scripts/pipeline_converging_triangle.py
方法2:临时启用(命令行)
保持配置文件为标准模式,临时启用实时模式:
# 待实现:命令行参数支持
# python scripts/run_converging_triangle.py --realtime
参数说明
REALTIME_MODE
- False(默认):标准模式,仅使用确认枢轴点
- True:实时模式,使用确认 + 候选枢轴点
FLEXIBLE_ZONE
灵活区域大小(最近N天使用降低标准):
- 3天:保守,候选点更少,质量更高
- 5天(推荐):平衡,适合大多数场景
- 7天:激进,更早发现信号,但噪音多
使用场景
场景1:历史回测(标准模式)
# triangle_config.py
REALTIME_MODE = False
特点:
- 枢轴点完全确认,质量高
- 有15天滞后,但不影响回测结果
- 适合策略验证、绩效分析
场景2:实时选股(实时模式)
# triangle_config.py
REALTIME_MODE = True
FLEXIBLE_ZONE = 5
特点:
- 能捕获当前突破信号
- 候选枢轴点需要人工或规则确认
- 适合盘中/盘后快速筛选
场景3:保守实时(降低误报)
# triangle_config.py
REALTIME_MODE = True
FLEXIBLE_ZONE = 3 # 更严格
特点:
- 候选点更少,质量更高
- 依然比标准模式提前12天
- 适合对质量要求高的实盘
检测结果解读
标准模式输出
stock_code,date,is_valid,breakout_dir,detection_mode,has_candidate_pivots
SH600000,20260120,True,up,standard,False
detection_mode: "standard"has_candidate_pivots: False(无候选点)
实时模式输出
stock_code,date,is_valid,breakout_dir,detection_mode,has_candidate_pivots,candidate_pivot_count
SH600000,20260120,True,up,realtime,True,3
detection_mode: "realtime"has_candidate_pivots: True(包含候选点)candidate_pivot_count: 3(候选枢轴点总数)
注意:
- 如果
has_candidate_pivots=True,说明检测结果依赖候选枢轴点 - 候选枢轴点置信度较低,可能随后续数据变化
- 建议次日复核或设置更严格的过滤条件
验证测试
运行对比测试脚本:
python scripts/test_realtime_mode.py
测试内容:
- 枢轴点检测对比(标准 vs 实时)
- 三角形检测对比(标准 vs 实时)
- FLEXIBLE_ZONE 参数影响测试
实盘应用建议
步骤1:批量筛选(实时模式)
# 启用实时模式
# 编辑 triangle_config.py: REALTIME_MODE = True
python scripts/pipeline_converging_triangle.py
步骤2:人工复核
查看 outputs/converging_triangles/report.md,重点关注:
### 强突破股票(向上)
| 股票 | 突破强度 | 候选枢轴点 | 建议 |
|------|---------|-----------|------|
| SH600000 | 0.68 | 否 | 可信度高 ✓ |
| SH600001 | 0.65 | 是(3个) | 需确认 ⚠️ |
候选枢轴点=否:完全基于确认枢轴点,可信度高候选枢轴点=是:包含候选枢轴点,建议次日复核
步骤3:次日确认
对于包含候选枢轴点的股票:
- 次日重新运行检测
- 查看候选点是否转为确认点
- 确认三角形形态是否稳定
常见问题
Q1: 实时模式会增加多少候选股票?
A: 通常增加10-20%。具体取决于:
- FLEXIBLE_ZONE 大小(越大,候选越多)
- 市场波动(波动大,候选点多)
- 检测参数(shrink_ratio 等)
Q2: 候选枢轴点会导致误报吗?
A: 可能。候选枢轴点的"右边确认窗口"不完整,可能随后续数据变化。建议:
- 使用较小的 FLEXIBLE_ZONE(如3)
- 设置更严格的突破强度阈值(如 > 0.6)
- 次日复核确认
Q3: 标准模式和实时模式可以同时运行吗?
A: 可以。两次运行:
- 设置
REALTIME_MODE=False,运行一次(保存为all_results_standard.csv) - 设置
REALTIME_MODE=True,运行一次(保存为all_results_realtime.csv) - 对比两份结果,找出实时模式新增的候选
Q4: 什么时候应该用标准模式?
A: 以下场景用标准模式:
- 历史回测和策略验证
- 生成研究报告
- 对质量要求极高的场景
- 不急于当日决策
配置示例
保守配置(低误报)
REALTIME_MODE = True
FLEXIBLE_ZONE = 3
DETECTION_PARAMS = ConvergingTriangleParams(
shrink_ratio=0.5, # 更严格的收敛要求
break_tol=0.01, # 更明显的突破
vol_k=1.5, # 更强的放量要求
)
平衡配置(推荐)
REALTIME_MODE = True
FLEXIBLE_ZONE = 5
DETECTION_PARAMS = ConvergingTriangleParams(
shrink_ratio=0.6,
break_tol=0.005,
vol_k=1.3,
)
激进配置(早发现)
REALTIME_MODE = True
FLEXIBLE_ZONE = 7
DETECTION_PARAMS = ConvergingTriangleParams(
shrink_ratio=0.8, # 更宽松的收敛
break_tol=0.001, # 更敏感的突破
vol_k=1.2, # 更低的放量门槛
)
延伸阅读
docs/方案4-混合策略详解.md- 完整技术说明docs/枢轴点边界问题分析.md- 边界盲区问题scripts/test_realtime_mode.py- 对比测试代码
总结
实时模式通过混合枢轴点检测策略,实现了质量和实时性的平衡:
- ✅ 无15天滞后,捕获最新突破
- ✅ 区分确认和候选枢轴点
- ✅ 灵活调整激进程度(FLEXIBLE_ZONE)
- ⚠️ 候选枢轴点需要人工或规则确认
推荐用法:
- 历史回测:
REALTIME_MODE=False - 实时选股:
REALTIME_MODE=True, FLEXIBLE_ZONE=5 - 次日复核包含候选枢轴点的结果