FORMULA REFERENCE
字段与算子
01
可用字段
| 字段 | 频率 | 名称 | 说明 |
|---|---|---|---|
VWAP | 分钟 | 成交均价 | 该股票当前分钟成交额除以成交量得到的成交量加权平均价。 |
Amount | 分钟 | 成交额 | 该股票当前分钟内累计成交金额。 |
Volume | 分钟 | 成交量 | 该股票当前分钟内累计成交股数。 |
Close | 分钟 | 收盘价 | 该股票当前分钟最后一笔有效成交对应的收盘价。 |
Return | 分钟 | 收益率 | 当前分钟 Close 相对上一分钟 Close 的变化率;每日开盘重新起算。 |
DailyReturn | 日频 | 日收益率 | 正式日收益率字段由百分数转换为小数,例如 1.5% 转换为 0.015。 |
DailyClose | 日频 | 复权收盘价 | 使用正式复权因子处理后的日收盘价。 |
DailyHigh | 日频 | 复权最高价 | 使用正式复权因子处理后的日最高价。 |
DailyLow | 日频 | 复权最低价 | 使用正式复权因子处理后的日最低价。 |
DailyAmount | 日频 | 成交额 | 该股票当日累计成交金额。 |
DailyVolume | 日频 | 成交量 | 该股票当日累计成交量。 |
DailyTurnover | 日频 | 自由流通换手率 | 该股票当日自由流通换手率,保持正式日频源字段口径。 |
DailyFreeShare | 日频 | 自由流通股本 | 该股票当日自由流通股本。 |
DailyTotalMV | 日频 | 总市值 | 该股票当日总市值。 |
DailyTotalShare | 日频 | 总股本 | 该股票当日总股本。 |
02
Level2 数据
当前版本共生成 9 个 Level2 日频特征,分为 ORDER、TRADE 和 SNAPSHOT 三类。
ORDER · 逐笔委托
| 字段 | 定义 |
|---|---|
order__cancel_pressure | 撤单量 /(新增委托量 + 撤单量)。 |
order__order_flow_imbalance | [(新增买量−撤单买量)−(新增卖量−撤单卖量)]/(新增委托量 + 撤单量)。 |
TRADE · 逐笔成交
| 字段 | 定义 |
|---|---|
trade__trade_directional_coverage | (主动买成交量 + 主动卖成交量)/ 全部成交量。 |
trade__trade_imbalance | (主动买成交量−主动卖成交量)/(主动买成交量 + 主动卖成交量)。 |
SNAPSHOT · 五档盘口快照
| 字段 | 定义 |
|---|---|
snapshot__mean_relative_spread | 日内平均(卖一价−买一价)/ 中间价。 |
snapshot__mean_depth_imbalance | 日内平均(五档买量−五档卖量)/(五档买量 + 五档卖量)。 |
snapshot__mean_top_depth_imbalance | 日内平均(买一量−卖一量)/(买一量 + 卖一量)。 |
snapshot__midpoint_realized_volatility | sqrt(Σ[log(midpoint_t)−log(midpoint_t−1)]²)。 |
snapshot__mean_snapshot_quote_churn | 相邻快照20个五档价格/数量字段发生变化的比例,再取日均值。 |
03
公共算子
算术运算
对同频率、同日期或时点、同股票轴的输入逐元素计算。输入既可以是原始字段和常量,也可以是时间序列算子、截面算子或其他算术算子的输出;算子可以嵌套组合。
| 算子 | 说明 | 示例 |
|---|---|---|
Add(x, y) | 逐元素相加。 | Add(Return, 0.001) |
Sub(x, y) | 逐元素计算 x - y。 | Sub(Return, CsMean(Return)) |
Mul(x, y) | 逐元素相乘。 | Mul(CsZScore(Return), CsRank(Volume)) |
Div(x, y) | 安全除法;分母绝对值不大于 1e-12 时返回 NaN。 | Div(Amount, CsMean(Amount)) |
Neg(x) | 逐元素取相反数。 | Neg(TsStd(Return, 20)) |
Abs(x) | 逐元素取绝对值。 | Abs(Return) |
Sign(x) | 返回元素符号:负数为 -1、零为 0、正数为 1。 | Sign(Return) |
Log(x) | 计算自然对数;非正数返回 NaN。 | Log(Amount) |
Inv(x) | 逐元素取倒数;接近零的值返回 NaN。 | Inv(Amount) |
Exp(x) | 逐元素计算以 e 为底的指数;溢出返回 NaN。 | Exp(Return) |
Sqrt(x) | 逐元素开平方;负数返回 NaN。 | Sqrt(Volume) |
Pow(x, exponent) | 逐元素计算指定次幂;非实数或溢出结果返回 NaN。 | Pow(Return, 2) |
Min(x, y) | 逐元素取较小值。 | Min(VWAP, Close) |
Max(x, y) | 逐元素取较大值。 | Max(VWAP, Close) |
截面运算
在同一时点或同一交易日沿股票轴计算。分钟表达式按每分钟截面处理,最终日频表达式按每日截面处理。截面运算不会移除股票轴,输出仍与输入面板对齐,可以继续传给算术、时间序列或聚合算子。
| 算子 | 说明 | 示例 |
|---|---|---|
CsRank(x) | 沿股票轴计算稳定的截面百分位排名,有效值范围为 (0, 1];输出与原面板对齐,可继续参与其他运算。 | CsRank(Div(Amount, CsMean(Amount))) |
CsMean(x) | 沿股票轴计算有效值均值,并将均值广播回该截面的每只有效股票,可用于去均值、相对均值等计算。 | CsMean(Abs(Return)) |
CsZScore(x) | 沿股票轴去均值并除以样本标准差;输出与原面板对齐,可继续参与其他运算。 | CsZScore(Sub(Return, CsMean(Return))) |
时间序列
沿每个交易日内部的分钟轴滚动计算,不跨交易日。
| 算子 | 说明 | 示例 |
|---|---|---|
TsMean(x, window) | 日内滚动均值;窗口形成前返回 NaN。 | TsMean(Amount, 20) |
TsStd(x, window) | 日内滚动样本标准差;窗口形成前返回 NaN。 | TsStd(Return, 20) |
TsSum(x, window) | 日内滚动求和。 | TsSum(Volume, 20) |
TsMin(x, window) | 日内滚动最小值。 | TsMin(Return, 20) |
TsMax(x, window) | 日内滚动最大值。 | TsMax(Return, 20) |
TsDelay(x, periods) | 在当日分钟轴滞后,不跨交易日。 | TsDelay(Close, 5) |
TsDelta(x, periods) | 当前值减去日内滞后值。 | TsDelta(Close, 5) |
TsRank(x, window) | 当前值在日内滚动窗口中的百分位排名。 | TsRank(Amount, 20) |
TsZScore(x, window) | 当前值相对日内滚动均值和样本标准差的标准分。 | TsZScore(Return, 20) |
TsCorr(x, y, window) | 两组分钟序列的日内滚动相关系数。 | TsCorr(Return, Volume, 20) |
TsCov(x, y, window) | 两组分钟序列的日内滚动样本协方差。 | TsCov(Return, Volume, 20) |
TsAutoCorr(x, window, lag) | 日内滚动自相关;lag 必须是小于 window 的正整数。 | TsAutoCorr(Return, 20, 1) |
TsArgMax(x, window) | 滚动最大值位置占窗口长度的比例,越接近 1 表示越靠近当前。 | TsArgMax(Amount, 20) |
TsArgMin(x, window) | 滚动最小值位置占窗口长度的比例,越接近 1 表示越靠近当前。 | TsArgMin(Amount, 20) |
TsDecayLinear(x, window) | 线性衰减均值,越靠近当前时点权重越高。 | TsDecayLinear(Return, 20) |
TsDemean(x, window) | 当前值减去日内滚动均值。 | TsDemean(Return, 20) |
TsReturn(x, periods) | 当前值相对日内滞后值的变化率。 | TsReturn(Close, 5) |
TsMedian(x, window) | 日内滚动中位数。 | TsMedian(Amount, 20) |
TsVar(x, window) | 日内滚动样本方差。 | TsVar(Return, 20) |
TsSkew(x, window) | 日内滚动偏度。 | TsSkew(Return, 20) |
TsKurt(x, window) | 日内滚动超额峰度。 | TsKurt(Return, 20) |
TsQuantile(x, q, window) | 日内滚动 q 分位数,q 必须位于 [0, 1]。 | TsQuantile(Amount, 0.9, 20) |
日内聚合(必选其一)
只能作为日内表达式最外层,把分钟结果压缩为每日 Feature。
| 算子 | 说明 | 示例 |
|---|---|---|
DayMean(x) | 取全天分钟均值。 | DayMean(Neg(Return)) |
DaySum(x) | 取全天分钟合计。 | DaySum(Volume) |
DayLast(x) | 取当日最后一个有效分钟值。 | DayLast(CsRank(Return)) |
PeriodMean(start_time, end_time, x) | 对闭区间内的分钟值取均值。 | PeriodMean(145000, 150000, Return) |
PeriodSum(start_time, end_time, x) | 对闭区间内的分钟值求和。 | PeriodSum(93000, 100000, Volume) |
PeriodLast(start_time, end_time, x) | 取闭区间内最后一个有效分钟值。 | PeriodLast(145000, 150000, CsRank(Return)) |
日间运算(选填)
在 Feature 与 Daily 前缀字段上跨交易日计算;留空等同于 Feature。
| 算子 | 说明 | 示例 |
|---|---|---|
DailyMean(Feature, window) | 跨交易日滚动均值。 | DailyMean(Feature, 5) |
DailyEMA(Feature, window) | 跨交易日指数移动平均,alpha = 2 / (window + 1)。 | DailyEMA(Feature, 10) |
DailyStd(Feature, window) | 跨交易日滚动样本标准差。 | DailyStd(Feature, 20) |
DailySum(Feature, window) | 跨交易日滚动求和。 | DailySum(Feature, 5) |
DailyMin(Feature, window) | 跨交易日滚动最小值。 | DailyMin(Feature, 20) |
DailyMax(Feature, window) | 跨交易日滚动最大值。 | DailyMax(Feature, 20) |
DailyRank(Feature, window) | 当前值在跨日滚动窗口中的百分位排名。 | DailyRank(Feature, 20) |
DailyZScore(Feature, window) | 当前值相对跨日滚动均值和样本标准差的标准分。 | DailyZScore(Feature, 20) |
Delay(Feature, periods) | 按交易日滞后,正数只读取历史。 | Delay(Feature, 1) |
Delta(Feature, periods) | 当前 Feature 减去跨日滞后值。 | Delta(Feature, 5) |
Correlation(x, y, window) | 两组日频表达式的跨日滚动相关系数。 | Correlation(Feature, Delay(Feature, 1), 20) |
04
使用规则
- 日内聚合必须明确
全天使用
Day*;指定时段使用Period*(start_time, end_time, x),时间区间两端均包含。 - 窗口必须是正整数
TsMean、TsStd的 window 必须直接写成正整数常量。 - 滚动不跨交易日
时间序列算子每天重新开始计算,窗口形成前的分钟值为 NaN。
- 两段式日频输出
第一步可留空;使用分钟数据时必须通过 Day 或 Period 聚合为每日 Feature,也可广播 Daily 字段。第二步使用 Feature 或 Daily 字段生成最终日频因子。
- 缺失值保持缺失
安全除法、无效输入和预热区间产生的 NaN 不会自动填成零。
- 可选中性化
启用后对最终日频因子逐日做截面 OLS 回归取残差;暴露可选行业、收益与 Barra(可多选),参数固定 zscore + clip 4.0 + min_obs 30。