盘口资金深度动量协同因子
由bqtnziby创建,最终由bqtnziby 被浏览 3 用户
这个因子的核心逻辑是结合盘口资金深度与短期动量信号,通过量化盘口供需力量对比并过滤不一致的动量信号,最终得到一个反映市场即时资金倾向与趋势协同性的指标。
一、因子逻辑
-
盘口深度的全面性
传统盘口指标常关注单档(如买一 / 卖一),但五档资金总和能更全面反映市场深度(多档位资金堆积情况),更贴近真实供需力量。
-
动量与资金的协同性
单独的盘口资金信号可能受短期噪音影响(如瞬时大单),结合 3 日价格趋势后:
- 当资金方向与趋势一致时(如上涨趋势中买盘更强),说明趋势有资金支撑,信号更可靠;
- 当两者不一致时(如上涨趋势中卖盘更强),可能是趋势乏力或反转信号。
二、计算逻辑
-
计算盘口资金深度对比
用 “五档买盘总资金” 与 “五档卖盘总资金” 的比值衡量盘口供需力量:
-
五档买盘总资金 = 买一价 × 买一量 + 买二价 × 买二量 + ... + 买五价 × 买五量
-
五档卖盘总资金 = 卖一价 × 卖一量 + 卖二价 × 卖二量 + ... + 卖五价 × 卖五量
-
资金深度比值 =(买盘总资金 / 卖盘总资金)- 1
(正值表示买盘资金更强,负值表示卖盘资金更强,避免除以 0 用NULLIF
处理)
-
-
短期动量过滤(调整系数)
引入 3 日价格趋势与资金方向的 “一致性” 判断,对上述资金深度比值进行调整:
- 若 “当前收盘价> 3 天前收盘价(短期上涨趋势)” 且 “买盘资金 > 卖盘资金(资金方向与趋势一致)”→ 调整系数 = 1.2(强化信号)
- 若 “当前收盘价 < 3 天前收盘价(短期下跌趋势)” 且 “买盘资金 < 卖盘资金(资金方向与趋势一致)”→ 调整系数 = 1.2(强化信号)
- 其他情况(趋势与资金方向不一致)→ 调整系数 = 0.4(弱化信号)
-
极端值处理与聚合
-
用CLIP(-0.5,0.5)
将上述乘积结果限制在 [-0.5, 0.5] 区间,避免极端值干扰。
-
从分钟级数据聚合为日度因子:按股票和日期分组,取当日分钟级因子的均值。
-
三、核心部分代码
sql = f"""
SELECT
date AS date,
instrument,
CLIP(
(
-- 全档位买盘资金 vs 卖盘资金(更全面反映盘口深度)
(bid_price1*bid_volume1 + bid_price2*bid_volume2 + bid_price3*bid_volume3 + bid_price4*bid_volume4 + bid_price5*bid_volume5)::FLOAT
/ NULLIF(ask_price1*ask_volume1 + ask_price2*ask_volume2 + ask_price3*ask_volume3 + ask_price4*ask_volume4 + ask_price5*ask_volume5, 0)
- 1
) * (
-- 短期动量过滤:资金方向与3日趋势一致时强化信号
CASE
WHEN (close > LAG(close, 3) OVER (PARTITION BY instrument ORDER BY date) AND (bid_price1*bid_volume1 + bid_price2*bid_volume2 + bid_price3*bid_volume3 + bid_price4*bid_volume4 + bid_price5*bid_volume5) > (ask_price1*ask_volume1 + ask_price2*ask_volume2 + ask_price3*ask_volume3 + ask_price4*ask_volume4 + ask_price5*ask_volume5)) THEN 1.2
WHEN (close < LAG(close, 3) OVER (PARTITION BY instrument ORDER BY date) AND (bid_price1*bid_volume1 + bid_price2*bid_volume2 + bid_price3*bid_volume3 + bid_price4*bid_volume4 + bid_price5*bid_volume5) < (ask_price1*ask_volume1 + ask_price2*ask_volume2 + ask_price3*ask_volume3 + ask_price4*ask_volume4 + ask_price5*ask_volume5)) THEN 1.2
ELSE 0.4
END
),
-0.5,
0.5
) AS factor
FROM {datasource}
"""
\