口径:USD 点差|原则:不预测涨跌,只做“环境位置(P几/Regime)”与可解释风控动作。
整合内容:A)历史分位数标定(Quantile Calibration) + B)半 AI 参数自适应引擎(AI+统计)。
目标
边界
已具备价差历史 K 线(spread_kline)并存储到数据库。
整合版要求补齐的关键字段
核心:用分位数替代拍脑袋阈值,生成关键分位点(P70/P80/P85/P90/P95/P97),供次日运行时加载。
核心分布(建议至少三类):
1) intraday_spread:日内常态 spread 分布(过滤开盘冲击)
2) overnight_gapAbs:隔夜/节后开盘 gapAbs = |openSpread - prevCloseSpread| 分布
3) recovery_floor:极端 gap 后 T 小时内的最小 spread(回归能力)分布
输出:spread_stats_daily(按品种/窗口/回看周期:30/60/90)
参数引擎 V1 的核心是:AI 不算涨跌,只算环境位置。运行时加载分位数表,计算当前 spread 的 p_rank(处在 P几) 并映射 Regime。
Regime 默认划分:
NORMAL : p_rank < 0.80
ELEVATED : 0.80 ≤ p_rank < 0.95
EXTREME : p_rank ≥ 0.95
注意:Regime 仅表示“环境位置”,不代表方向。
推荐 V1离线分位点表 + 在线区间判定(可选线性插值)。
粗粒度 p_rank 区间判定(示例):
if spread < P80: p_rank ≈ [0,0.80)
elif spread < P90: p_rank ≈ [0.80,0.90)
elif spread < P95: p_rank ≈ [0.90,0.95)
elif spread < P97: p_rank ≈ [0.95,0.97)
else: p_rank ≈ [0.97,1.00)
可选:在命中区间内做线性插值,输出连续 p_rank_est。
| Regime | 是否允许开仓 | StartSpread 处理 | EntryPullbackPct | 仓位/分批 |
|---|---|---|---|---|
| NORMAL | 允许(常规) | max(用户底线, intraday P80) | 15%(默认) | 1~2 段分批 |
| ELEVATED | 允许但更严 | max(用户底线, intraday P85~P90) | 18%~25%(更等回撤) | 3 段分批 |
| EXTREME | 默认禁开/仅小仓试探 | intraday P95+ 或直接禁开 | 25%~35% | 强制小仓/试探仓 |
注入伪代码(示例):
env = getEnvSnapshot("GOLD")
if env.regime == "EXTREME":
entry.allowOpen = false # 或 allowOpen=true 但 maxPosition=20%
else:
entry.allowOpen = true
entry.startSpread = max(userMin, env.q_intraday(P85 if ELEVATED else P80))
entry.entryPullbackPct = 0.20 if ELEVATED else 0.15
| Regime | DrawdownPct | ConfirmWindow | tolerancePct | recentNewHighWindow | 说明 |
|---|---|---|---|---|---|
| NORMAL | 18%~22% | 3 | 5% | 8s | 均衡锁利 |
| ELEVATED | 22%~30% | 3~5 | 5%~8% | 10~15s | 波动更大:放宽回撤,防洗出 |
| EXTREME | 更保守或转入 Gap 规则 | 5 | 0~5% | 更短 | 冲击期优先风控 |
核心:用 overnight_gapAbs 的分位数标定分层阈值;用 recovery 分布标定回归脱困带。
示例(默认 NORMAL):
LadderLevels = [gapAbs_P85, gapAbs_P90, gapAbs_P95] # 分层减仓阈值(USD点差)
CooldownOpen = 120s
RecoveryBand = recovery_P80
DISASTER:gapAbs ≥ P95 且确认
EXTREME 时更敏感(更保守):
LadderLevels = [gapAbs_P80, gapAbs_P85, gapAbs_P90]
CooldownOpen = 300s
RecoveryBand = recovery_P90(更积极“先救出来”)
DISASTER:gapAbs ≥ P90 即进入
AI 的角色:把结构化结论解释成自然语言(给客户/客服/运营/投顾沟通用),但禁止预测涨跌。
AI 输出建议固定 JSON Schema(示例):
{
"env": {
"symbol_group": "GOLD",
"p_rank_est": 0.97,
"regime": "EXTREME",
"basis": "90d_quantile",
"key_levels": {"P80": 800, "P90": 1200, "P95": 1800, "P97": 2500}
},
"recommendations": {
"auto_entry": {"allow_open": false, "start_spread": 1800, "entry_pullback_pct": 0.30},
"dynamic_tp": {"drawdown_pct": 0.25, "confirm_window": 5, "tolerance_pct": 0.03},
"gap_guard": {"cooldown_open_s": 300, "ladder_levels": [1200,1800,2500], "recovery_band": 1500}
},
"confidence": 0.78,
"rationale": [
"当前价差处在近90交易日分布的P95以上,属于极端区间",
"极端区间更易出现跳变/锯齿波动,因此开仓更谨慎,风控参数更保守"
],
"risk_notes": ["若开盘冲击期或延迟升高,系统将自动切换到更保守模式"]
}
接口建议:
getEnvSnapshot(symbol_group) -> {
ts, spread_now, p_rank_est, regime,
quantiles:{P70,P80,P85,P90,P95,P97},
latency_ms, sessionFlag, stats_version
}
getParamPack(symbol_group, module) -> { ... } # module: auto_entry / dynamic_tp / gap_guard
日志建议:
[EnvEngineV1]
timestamp, symbol_group, spread_now, p_rank_est, regime,
stats_version(date+lookback), quantiles_used, recommendations_hash,
latency_ms, sessionFlag
并在各模块日志中引用 env_snapshot_id,保证全链路可复盘。