Back to Nofx

网格策略市场状态识别与风控设计

docs/plans/2026-01-17-grid-market-regime-design.md

latest4.8 KB
Original Source

网格策略市场状态识别与风控设计

概述

增强网格策略的市场状态识别能力,实现震荡/趋势的精准判断,并根据不同震荡级别自动调整网格参数和风控策略。


一、市场状态识别

1.1 识别维度(3个)

维度指标作用
价格波动ATR14 + Bollinger带宽判断震荡幅度
趋势强度EMA20/50距离 + MACD判断是否有趋势
动量RSI14 + 1h/4h涨跌幅判断超买超卖

1.2 箱体指标(新增)

基于1小时K线的多周期Donchian通道:

箱体级别周期覆盖时间用途
短期箱体72根1小时3天日内波动边界
中期箱体240根1小时10天周级别震荡区间
长期箱体500根1小时~21天大级别趋势边界

1.3 判断方式

由AI综合分析以上指标 + 原始K线序列 + 箱体位置,输出市场状态判断。


二、震荡分级与网格策略

2.1 四级震荡分类

级别特征判断依据
窄幅震荡价格在短期箱体内小幅波动Bollinger带宽 < 2%,ATR低
标准震荡价格在中期箱体内正常波动Bollinger带宽 2-3%,ATR正常
宽幅震荡价格接近中期箱体边缘Bollinger带宽 3-4%,ATR较高
剧烈震荡价格接近长期箱体边缘Bollinger带宽 > 4%,ATR高

2.2 各级别对应的网格策略

级别网格密度网格范围单格仓位总仓位上限有效杠杆上限
窄幅震荡密集30-40%2x
标准震荡正常中等正常60-70%3-4x
宽幅震荡稀疏正常50-60%3x
剧烈震荡最稀疏最宽30-40%2x

核心原则:

  • 窄幅震荡:单格仓位小 + 总仓位上限低(防击穿风险)
  • 剧烈震荡:同样保守(随时可能变趋势)
  • 标准震荡:才是放量的最佳时机

三、突破处理与恢复机制

3.1 突破判断与处理

确认方式: 收盘价突破箱体后,持续3根1小时K线不回箱体

箱体级别突破处理
短期箱体突破降低仓位到 50%
中期箱体突破暂停网格 + 取消挂单
长期箱体突破暂停网格 + 取消挂单 + 平掉所有持仓

3.2 假突破恢复

价格回到箱体内 → 以50%仓位恢复网格


四、前端风控面板

4.1 需要展示的信息

类别显示内容
杠杆信息当前杠杆、有效杠杆、系统推荐杠杆
仓位信息当前仓位、最大仓位、仓位占比
爆仓信息爆仓价格、爆仓距离(%)
市场状态当前震荡级别(窄幅/标准/宽幅/剧烈)
箱体状态短期/中期/长期箱体上下沿、当前价格位置

五、实现要点

5.1 后端新增

  1. 箱体指标计算 (market/data.go)

    • 新增 calculateDonchian(klines, period) 函数
    • 返回 upper(最高价), lower(最低价)
    • 支持72/240/500三个周期
  2. 市场状态评估 (kernel/grid_engine.go)

    • 更新AI prompt,加入箱体指标和K线序列
    • AI输出震荡级别判断
  3. 网格参数动态调整 (trader/auto_trader_grid.go)

    • 根据震荡级别自动调整:网格密度、范围、仓位、杠杆
    • 实现有效杠杆上限控制
  4. 突破处理逻辑 (trader/auto_trader_grid.go)

    • 实现三级箱体突破检测
    • 实现3根K线确认逻辑
    • 实现降级恢复机制

5.2 前端新增

  1. 风控面板组件
    • 杠杆信息展示
    • 仓位信息展示
    • 爆仓信息展示
    • 市场状态展示
    • 箱体状态可视化

5.3 数据模型更新

  1. GridConfigModel 新增字段:

    • EffectiveLeverageLimit - 有效杠杆上限
    • ShortBoxPeriod - 短期箱体周期 (默认72)
    • MidBoxPeriod - 中期箱体周期 (默认240)
    • LongBoxPeriod - 长期箱体周期 (默认500)
  2. GridInstanceModel 新增字段:

    • CurrentRegimeLevel - 当前震荡级别 (narrow/standard/wide/volatile)
    • ShortBoxUpper/Lower - 短期箱体上下沿
    • MidBoxUpper/Lower - 中期箱体上下沿
    • LongBoxUpper/Lower - 长期箱体上下沿
    • BreakoutStatus - 突破状态 (none/short/mid/long)
    • BreakoutConfirmCount - 突破确认K线计数

六、风险控制总结

控制点机制
仓位控制根据震荡级别限制总仓位上限 (30-70%)
杠杆控制根据震荡级别限制有效杠杆 (2-4x)
突破保护三级箱体突破分级处理
假突破恢复50%仓位降级恢复
爆仓预防前端展示爆仓距离,系统自动限制杠杆