7.8 KiB
明白!既然马上要进入开发阶段,我们就不能只停留在“概念”上,必须精确到参数配比、计算公式和逻辑边界。
作为你的量化分析师,我将《V5.3 双轨信号系统设计案》中的高层设计,直接翻译成研发可以直接参考的**“伪代码级”拆解**。这份拆解去除了所有冗余,直指核心代码逻辑。
一、 轨道 A:山寨币模型 (ALT Track - 适用于 ETH, XRP, SOL)
ALT 轨的核心是线性评分加法模型。满分 100 分。
1. 方向层 (Direction) —— 总权重:55 分
设计说明: V5.1 中方向层(45分)和确认层(15分)存在多重共线性,V5.3 将其合并为 55 分。
-
子项 A:快慢期 CVD 共振 (30 分)
-
逻辑:
CVD_fast (30m)和CVD_mid (4h)必须同向。 -
打分:
-
CVD_fast> 0 且CVD_mid> 0(做多共振)\rightarrow给 30 分。 -
CVD_fast< 0 且CVD_mid< 0(做空共振)\rightarrow给 30 分。 -
方向不一致
\rightarrow0 分(并且整个信号应标记为no_direction终止计算)。 -
子项 B:P99 大单流入 (20 分)
-
逻辑: 捕捉极值大单资金方向。
-
打分:
-
P99 大单净流入方向与 CVD 共振方向一致
\rightarrow给 20 分。 -
无明显反向大单阻击
\rightarrow给 10 分。 -
反向大单压制
\rightarrow0 分。 -
子项 C:加速度奖金 (Accel Bonus) (5 分)
-
逻辑:
CVD_fast的二阶导数(动能正在增强)。 -
打分: 加速度方向与共振方向一致
\rightarrow给 5 分。
2. 拥挤层 (Crowding) —— 总权重:25 分
设计说明: 寻找散户的反向流动性(拔高了 V5.1 中该层的权重)。
-
子项 A:多空比 LSR (15 分)
-
做多场景: 如果 LSR < 0.5(散户极度看空)
\rightarrow15 分满分。 -
做空场景: 如果 LSR > 2.0(散户极度看多)
\rightarrow15 分满分。 -
缺省/常态: 数据缺失或在 0.8 - 1.2 之间
\rightarrow给 7.5 分中间分。 -
子项 B:大户持仓比例 (10 分)
-
逻辑: 跟着大户吃散户。
-
打分: 做多且大户多头占比
\ge55%\rightarrow10 分满分(做空同理)。缺省给 5 分。
3. 环境层 (Environment) —— 总权重:15 分
- 信号源: OI (Open Interest) 5 分钟/30 分钟变化率。
- 打分:
- OI 显著正增长(有新资金入场,趋势真实)
\rightarrow15 分。 - OI 变化平缓
\rightarrow7.5 分。 - OI 显著下降(说明只是存量平仓导致的假突破)
\rightarrow0 分。
4. 辅助层 (Auxiliary) —— 总权重:5 分
- 信号源: Coinbase Premium (Coinbase 现货价格 - Binance 现货价格)。
- 打分:
- 做多且正溢价(美国资金在买)
\rightarrow5 分。 - 做空且负溢价(美国资金在砸)
\rightarrow5 分。 - 溢价绝对值
\le0.05% (中性)\rightarrow2 分。 - 反向溢价
\rightarrow0 分。
⚙️ ALT 轨开发执行参数:
open_threshold: 75 (总分\ge75 触发开仓)flip_threshold: 85 (反向信号总分\ge85 才允许平旧开新)
二、 轨道 B:大饼专属模型 (BTC Track)
BTC 轨抛弃了线性加分,采用**“布尔逻辑门控 (Boolean Logic Gates)”**。必须同时满足所有通过条件,且不触发任何否决条件,才允许开仓。
1. 门控特征一:波动率状态过滤 (atr_percent_1h) —— 决定“能不能做”
- 公式:
Volatility = \frac{ATR(1h)}{Close Price} - 开发逻辑 (Veto 否决条件):
设定一个最小波动率阈值(如
min_vol_threshold = 0.002,即 0.2%)。IF atr_percent_1h < min_vol_threshold THEN BLOCK_SIGNAL ("Garbage Time")理由:BTC 在极低波动时,微观特征全是做市商噪音。
2. 门控特征二:巨鲸 CVD (tiered_cvd_whale) —— 决定“真实方向”
- 计算方式: 在 aggTrades 聚合时,过滤掉单笔价值 $< $100k$ 的成交。只对 $> $100k$ 的大单计算 Net Flow。
- 开发逻辑:
IF tiered_cvd_whale > strong_positive_threshold THEN Direction = LONG
3. 门控特征三:前 10 档订单薄失衡 (obi_depth_10) —— 决定“有没有阻力”
- 公式:
OBI = \frac{Bid Volume - Ask Volume}{Bid Volume + Ask Volume}(取盘口前 10 档挂单量) - 开发逻辑 (Veto 否决条件):
做多场景: 如果
Direction = LONG,但 $OBI < -0.3$(上方有极重的卖盘墙压制)。THEN BLOCK_SIGNAL ("Sell Wall Imbalance")
4. 门控特征四:期现背离 (spot_perp_divergence) —— 决定“是不是陷阱”
- 计算方式: Binance BTCUSDT 现货 CVD 减去 BTCUSDT 永续合约 CVD。
- 开发逻辑 (Veto 否决条件):
做多场景: 合约 CVD 在疯狂飙升(散户开多),但现货 CVD 为负(机构在现货抛售)。
IF perp_cvd > 0 AND spot_cvd < 0 THEN BLOCK_SIGNAL ("Spot Selling Divergence")
⚙️ BTC 轨开发执行伪代码:
IF (Passed Volatility Gate) AND (Whale CVD confirms Direction) AND NOT (Blocked by OBI) AND NOT (Blocked by Divergence) THEN Execute Trade
三、 执行引擎边界条件(影响所有轨)
这些是直接写死在 signal_engine.py 或订单执行模块里的硬性规则,用来保卫净收益。
- 止损/止盈 (SL/TP) 基准:
SL_multiplier: 2.0 (止损设为入场价\pm 2.0 \times ATR)TP1_multiplier: 1.5TP2_multiplier: 3.0
- Break-Even (BE) 滑点补偿:
- 打到 TP1 后,SL 移动的位置不是
Entry Price。 New_SL = Entry_Price + (Direction * 0.2 * ATR)(这里的 0.2 ATR 是预留给手续费和滑点的缓冲值)。
- TP 兜底状态机 (Fallback Logic):
- Step 1: 信号触发,下市价单(Taker)开仓。
- Step 2: 立即挂出 TP1/TP2 的限价单 (Maker)。
- Step 3 (Monitor): 如果最新标记价格穿过了 TP 触发价,但限价单未成交,启动
timeout计时器(例如 2 秒)。 - Step 4 (Fallback): 超时未成交
\rightarrow发送Cancel Order\rightarrow发送Market Order (Taker)强平。
四、开发注意事项(补充)
-
缺失数据默认策略(必须写死)
- BTC 四个门控特征(
atr_percent_1h,tiered_cvd_whale,obi_depth_10,spot_perp_divergence)任一缺失时,默认BLOCK_SIGNAL。 - 必须记录
block_reason=missing_feature:<name>,避免静默放行。
- BTC 四个门控特征(
-
阈值治理(避免拍脑袋改参)
min_vol_threshold、obi_veto_threshold、whale_flow_threshold必须配置化(不可硬编码散落在代码中)。- 文档标注为“初始值”,并明确回测校准窗口与更新频率。
-
标签口径统一(防止回填偏差)
Y_binary_60m使用Mark Price判定触发顺序。- ATR 必须使用信号触发时快照
atr_value,禁止回填时二次重算 ATR。
-
TP 兜底状态机补全部分成交分支
- 触发兜底前先查询订单成交量。
- 若部分成交,只对剩余仓位执行
Cancel -> Taker Market Close,避免超平或漏平。
-
并发与幂等保护
Cancel -> Market流程增加订单状态锁(或行级锁)和幂等键。- 防止重复撤单、重复平仓、双写成交记录。
-
发布闸门指标字段统一
- 统一报表输出字段:
maker_ratio,avg_friction_cost_r,flip_loss_r。 - 发布闸门自动判断基于同一口径,避免人工解释偏差。
- 统一报表输出字段:
给开发者的最终建议:
你现在可以拿着这份拆解,直接去写 v53_alt_config.json 和 BTC 轨的条件判断代码了。建议你先从 ALT 轨的 v53_alt_config.json 重写开始,因为这个改动最小,见效最快。是否需要我帮你直接生成这个 JSON 文件的模板?