比赛讨论

因子分享-加权价差订单薄不平衡度

由bqtnziby创建,最终由bqtnziby 被浏览 7 用户

因子逻辑:

1.订单薄不平衡度

(1)买方和卖方订单数量或总成交量之间的差异,本质是量化订单簿的即时供需力量对比,这是因子的基础

(2)基于1-5档委买/卖量的供需对比,更全面反映 潜在供需

(3)计算方法:

订单薄不平衡度=(买量-卖量)/(买量+卖量),其中买量为1-5档买量和,卖量同理

2.加权价差比例

(1)让因子从 “单纯供需” 升级为 “供需 + 预期” 的双重验证

(2)反映 “价差占当前价格水平的比例”

(3)加权价差比例计算方法:

加权价差=(加权卖价-加权买价)/((加权卖价+加权买价)/2),其中以加权卖价为例,1档卖价权重为5,2档卖价权重为4......5档卖价权重为1,加权买价同理

\

3.最终因子=订单簿不平衡度*加权价差比例

核心部分代码如下:

    sql = f"""
        WITH minute_level AS (
            SELECT
                date::DATE AS trade_date,
                instrument,
                -- 计算1-5档委买总量
                bid_volume1 + bid_volume2 + bid_volume3 + bid_volume4 + bid_volume5 AS total_bid_vol,
                -- 计算1-5档委卖总量
                ask_volume1 + ask_volume2 + ask_volume3 + ask_volume4 + ask_volume5 AS total_ask_vol,
                -- 计算加权买价(1档权重5,2档4...5档1,价格维度)
                (bid_price1*5 + bid_price2*4 + bid_price3*3 + bid_price4*2 + bid_price5*1) 
                / NULLIF(5+4+3+2+1, 0) AS weighted_bid_price,
                -- 计算加权卖价(1档权重5,2档4...5档1,价格维度)
                (ask_price1*5 + ask_price2*4 + ask_price3*3 + ask_price4*2 + ask_price5*1) 
                / NULLIF(5+4+3+2+1, 0) AS weighted_ask_price
            FROM {datasource}
        ),
        daily_agg AS (
            SELECT
                trade_date,
                instrument,
                -- 日均量能不平衡度:(买量-卖量)/(买量+卖量)
                (AVG(total_bid_vol) - AVG(total_ask_vol)) 
                / NULLIF(AVG(total_bid_vol) + AVG(total_ask_vol), 0) AS vol_imbalance,
                -- 日均价差比例:(加权卖价-加权买价)/((加权卖价+加权买价)/2)
                (AVG(weighted_ask_price) - AVG(weighted_bid_price))
                / NULLIF((AVG(weighted_ask_price) + AVG(weighted_bid_price)) / 2, 0) AS price_spread_pct
            FROM minute_level
            GROUP BY trade_date, instrument
        )
        SELECT
            trade_date::DATETIME AS date,
            instrument,
            -- 复合因子:量能不平衡度 × 价格价差比例
            vol_imbalance * price_spread_pct AS factor
        FROM daily_agg
    """

\

{link}