Files
Hermes-Skills/intraday-regime-detector/SKILL.md
T
mike e23f8d38c0 feat(strategy-management): exit_levels.py - 港美股做T 出场点位算法 (混合公式)
方法 2 (百分比波动率) + 方法 3 (关键价位) 混合算法

feat(intraday-regime-detector): 新 skill - 日内市场状态判别

来源: DeepSeek chat share 26iikphv8h94feze9q
核心: R² + ADF + 历史波动率, 识别趋势市 / 震荡市 / 混乱
推荐: 趋势跟踪 / 网格交易 / 布林带回归 / NO_TRADE
2026-07-18 21:26:14 +08:00

204 lines
8.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: intraday-regime-detector
description: "港美股日内做T 元策略 - 根据 5min K 线自动判别市场状态 (趋势/震荡/混乱) 并推荐匹配策略 (趋势跟踪/网格/布林带回归)。来源 DeepSeek 分享, 决策树: R² > 0.75 趋势; R² < 0.30 + ADF 平稳 + 低波动 = 网格; 高波动 = 布林带; 其他 NO_TRADE。⚠️ 仅识别市场状态, 不替代 longbridge-t-monitor / strategy-management 的入场/出场逻辑。"
version: 1.0.0
author: Hermes Agent + DeepSeek 分享 (26iikphv8h94feze9q)
tags: [trading, intraday, market-regime, regime-detection, deepseek, hk, us]
metadata:
hermes:
tags: [trading, intraday, market-regime, regime-detection, deepseek, hk, us]
related_skills: [longbridge-t-monitor, strategy-management]
scripts:
- intraday_regime.py: "核心: IntradayStrategySelector + MarketDiagnosis + MarketRegime + StrategyType"
- regime_scan.py: "扫描港美股 top 5 候选, 拉长桥 5min K线, 跑判别, 推报告"
references:
- decision-tree.md: "决策树详细说明 + 4 策略参数说明"
---
# Intraday Regime Detector (港美股日内做T 元策略)
**核心定位**:**不是替代** `longbridge-t-monitor``strategy-management`, 而是**在它们之前**先判断"现在适不适合做T、做哪个策略"。
```
intraday-regime-detector (本 skill) → 告诉用户 "用什么策略 + 为什么"
longbridge-t-monitor (现有) → 执行入场/出场
strategy-management (现有) → 选策略 + 算 SL/TP
```
## 🎯 解决的痛点
| 痛点 | 解决 |
|---|---|
| 趋势市用网格 = 反复止损 | R² > 0.75 → 强制趋势策略 |
| 震荡市用趋势 = 追涨杀跌 | R² < 0.30 → 强制震荡策略 |
| 混乱行情硬做 = 越做越亏 | ADF p > 0.05 → NO_TRADE |
| 不知道用宽网格还是窄网格 | 波动率高 → 布林带, 低 → 网格 |
## 📦 决策树 (DeepSeek 原始版)
```
第一步: 输入近 20-30 根 5 分钟 K 线 + 开盘缺口
第二步: 计算趋势效率 R² (线性回归)
├─ R² > 0.75: 强趋势市 → 趋势跟踪 (顺势 EMA5 支撑/阻力)
├─ R² < 0.30: 强震荡市
│ ├─ ADF p < 0.05 (平稳):
│ │ ├─ 波动率 > 30%: 布林带回归
│ │ └─ 波动率 ≤ 30%: 网格交易
│ └─ ADF p ≥ 0.05 (不平稳): 混乱 → NO_TRADE
└─ 0.30 ≤ R² ≤ 0.75: 过渡 → 暂停, 等模式清晰
```
## 🚀 快速使用
### Python API
```python
import sys
sys.path.insert(0, '/home/openclaw/.hermes/skills/trading/intraday-regime-detector/scripts')
from intraday_regime import IntradayStrategySelector
# 假设 df 是 5min K线 DataFrame, 包含 open/high/low/close
selector = IntradayStrategySelector()
diagnosis = selector.diagnose(df, open_gap_pct=0.3)
print(f"状态: {diagnosis.regime.value}")
print(f"推荐: {diagnosis.recommended_strategy.value}")
print(f"R²: {diagnosis.r_squared}, 置信度: {diagnosis.confidence}")
print(f"参数: {diagnosis.strategy_params}")
```
### CLI 扫描 (港美股 top 5)
```bash
/home/openclaw/.hermes/hermes-agent/venv/bin/python \
/home/openclaw/.hermes/skills/trading/intraday-regime-detector/scripts/regime_scan.py
```
输出示例:
```
🔲 9888.HK (HK) 现价 $110.30 (+1.21%) 置信度 85%
状态: 低波震荡 | R²=0.2363 | 波动率=3.32% | ADF p=0.01
推荐: 网格交易做T
grid_spacing: 0.500%
grid_levels: 3
base_price: 110.30
```
## 📊 输出数据结构
`MarketDiagnosis` (dataclass):
```python
@dataclass
class MarketDiagnosis:
regime: MarketRegime # 6 种状态之一
r_squared: float # 趋势效率 0-1
volatility: float # 年化波动率
adf_pvalue: float # ADF 平稳检验 p 值
recommended_strategy: StrategyType # 4 种策略之一
strategy_params: Dict # 动态参数 (SL/TP/grid 等)
confidence: float # 0-1
reasoning: str # 人话解释
```
`MarketRegime` 枚举:
- `STRONG_TREND_UP` / `STRONG_TREND_DOWN`
- `HIGH_VOL_SHAKE` (高波动震荡)
- `LOW_VOL_STABLE` (低波动震荡)
- `CHAOTIC` (混乱)
- `UNKNOWN` (过渡区间)
`StrategyType` 枚举:
- `TREND_FOLLOWING` (EMA5 顺势)
- `GRID_TRADING` (3 格 × 0.5%)
- `BOLLINGER_REVERSION` (20 期 ±2σ)
- `NO_TRADE` (暂停)
## 🔧 配置参数
```python
selector = IntradayStrategySelector(
trend_r2_threshold=0.75, # R² 高于此 = 趋势市
chaos_r2_threshold=0.30, # R² 低于此 = 震荡市
adf_significance=0.05, # ADF p < 此 = 平稳
vol_lookback=20, # 历史波动率窗口
high_vol_threshold=0.30, # 年化波动率高/低分界
grid_count=3, # 网格层数
bb_period=20, # 布林带周期
bb_std=2.0, # 布林带 σ
ema_period=5, # 趋势策略 EMA 周期
)
```
## 🔄 与现有 skill 的关系
| Skill | 关系 |
|---|---|
| `longbridge-t-monitor` | **下游** - 本 skill 决定"该不该做T + 用什么策略", 然后 longbridge-t-monitor 执行 |
| `strategy-management` | **互补** - strategy-management 有具体的 5 策略 (rsi2_revert/vwap_revert/early_bird/turtle/sma), 本 skill 是"先用元策略筛一下再用具体策略" |
| `intraday-trading` | **理论来源** - 已有 4 策略设计 + 5 步预检 + 资金管理表 |
| `crypto-t-monitor` | **独立** - 币圈用 OKX ATR 公式, 本 skill 不涉及 |
**集成路径 (建议)**:
```
盘前 cron (c3401d727f39, cfa0c1d6baa5)
↓ 生成候选池
盘中 cron (新加): regime_scan
↓ 输出 "可做 T 的票 + 推荐策略"
手动 / agent: 看推送
↓ 决定是否入场
longbridge-t-monitor: 执行
```
## ⚠️ Pitfalls
1. **ADF 是简化版** — 实际生产用 `statsmodels.tsa.stattools.adfuller`. 代码已 fallback, 有 statsmodels 就用真 ADF
2. **30 根 K 线窗口** — 跟 longbridge-t-monitor 一样的限制, period 选 5m → 2.5h 窗口
3. **网格/布林带参数是建议值** — 实盘要按资金 + 流动性 + 个人风险偏好调整
4. **本 skill 不替代风控** — 出场点位 / 仓位管理 / 单日最大亏损 → 用 longbridge-t-monitor
5. **不主动下单 (用户偏好 2026-07-16)**: 用户原话 "在跑日内交易扫描任务时使用 intraday-regime-detector, 不主动下单". 本 skill 只输出状态 + 推荐策略, **不要在 diagnose() 里加任何下单逻辑**.
6. **港股 candlesticks 不支持 `--json`**: 长桥 CLI 港股 candlesticks 只输出中文表格, 表格分隔符是 `│` (不是 `|`). `regime_scan.py` 已处理. 美股用 `--json`.
## 👤 用户偏好 (2026-07-16)
- **来源**: https://chat.deepseek.com/share/26iikphv8h94feze9q
- **要求**: 跑日内交易扫描任务时使用 intraday-regime-detector, 不主动下单
- **三段式 pipeline** (已部署):
1. 候选池 (quant-factor-mining) → top 5
2. 元策略 (本 skill) → confidence ≥ 0.6 算 actionable
3. 点位 (strategy-management/exit_levels) → SL/TP/TP2
- **部署位置**:
- `/home/openclaw/qdrant/calc_hk_levels.py` - 港股
- `/home/openclaw/qdrant/calc_us_levels.py` - 美股
- Cron `c4dc9ac8854c` (港股 */15 9-15) + `70d24624637c` (美股 */15 21-3) 周一到周五
- Wrapper: `~/.hermes/scripts/hk_t_levels.sh` / `us_t_levels.sh`
- **A 股 vs 港美股** (重要区分, 用户 2026-07-16 强调):
- A 股做T = 底仓滚动 (T+1 制度)
- 港美股做T = 直接双向交易 (T+0)
- **本 skill 只服务港美股**。A 股做T 完全用不上这个。
## 🛡️ 已知问题
| 问题 | 处理 |
|---|---|
| statsmodels 未装 | 自动 fallback 到自相关近似 |
| K 线 < 10 根 | 抛 ValueError, 跳过 |
| R² 边界值 (0.30 / 0.75) | 默认参数, 可在 __init__ 调整 |
| 大量候选 NO_TRADE | 正常, 实测 10 支 7 支 NO_TRADE. 算法价值正在于"拒绝不值得做的票" |
## 📚 参考
- **来源**: https://chat.deepseek.com/share/26iikphv8h94feze9q
- **决策树详细**: `references/decision-tree.md`
- **测试数据**: `intraday_regime.py``__main__` 跑自检
- **集成代码**:
- `~/.hermes/qdrant/calc_hk_levels.py` (港股)
- `~/.hermes/qdrant/calc_us_levels.py` (美股)
- `~/.hermes/scripts/hk_t_levels.sh` / `us_t_levels.sh` (wrapper)
## 🔄 版本历史
- **v1.0.0** (2026-07-16): 初始版本
- `intraday_regime.py` - 核心判别器 (DeepSeek 原始代码 + statsmodels fallback + dataclass)
- `regime_scan.py` - 长桥 K线集成扫描器
- 自检场景 (震荡市/趋势市) 全部通过