mirror of
https://github.com/NoFxAiOS/nofx.git
synced 2026-07-16 09:11:03 +08:00
Design for enhanced market state recognition with: - Multi-dimensional indicators (ATR, Bollinger, EMA, MACD, RSI) - Multi-period box indicators (72/240/500 1h candles) - 4-level ranging classification - Breakout detection and handling - Frontend risk control panel
4.8 KiB
4.8 KiB
网格策略市场状态识别与风控设计
概述
增强网格策略的市场状态识别能力,实现震荡/趋势的精准判断,并根据不同震荡级别自动调整网格参数和风控策略。
一、市场状态识别
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 后端新增
-
箱体指标计算 (
market/data.go)- 新增
calculateDonchian(klines, period)函数 - 返回 upper(最高价), lower(最低价)
- 支持72/240/500三个周期
- 新增
-
市场状态评估 (
kernel/grid_engine.go)- 更新AI prompt,加入箱体指标和K线序列
- AI输出震荡级别判断
-
网格参数动态调整 (
trader/auto_trader_grid.go)- 根据震荡级别自动调整:网格密度、范围、仓位、杠杆
- 实现有效杠杆上限控制
-
突破处理逻辑 (
trader/auto_trader_grid.go)- 实现三级箱体突破检测
- 实现3根K线确认逻辑
- 实现降级恢复机制
5.2 前端新增
- 风控面板组件
- 杠杆信息展示
- 仓位信息展示
- 爆仓信息展示
- 市场状态展示
- 箱体状态可视化
5.3 数据模型更新
-
GridConfigModel 新增字段:
EffectiveLeverageLimit- 有效杠杆上限ShortBoxPeriod- 短期箱体周期 (默认72)MidBoxPeriod- 中期箱体周期 (默认240)LongBoxPeriod- 长期箱体周期 (默认500)
-
GridInstanceModel 新增字段:
CurrentRegimeLevel- 当前震荡级别 (narrow/standard/wide/volatile)ShortBoxUpper/Lower- 短期箱体上下沿MidBoxUpper/Lower- 中期箱体上下沿LongBoxUpper/Lower- 长期箱体上下沿BreakoutStatus- 突破状态 (none/short/mid/long)BreakoutConfirmCount- 突破确认K线计数
六、风险控制总结
| 控制点 | 机制 |
|---|---|
| 仓位控制 | 根据震荡级别限制总仓位上限 (30-70%) |
| 杠杆控制 | 根据震荡级别限制有效杠杆 (2-4x) |
| 突破保护 | 三级箱体突破分级处理 |
| 假突破恢复 | 50%仓位降级恢复 |
| 爆仓预防 | 前端展示爆仓距离,系统自动限制杠杆 |