Skip to content

操作符详细解释

导航

正文

操作符学习文档

本文档按类别整理 WorldQuant BRAIN 平台 Alpha 表达式中可用的操作符,包含名称、定义说明,便于查阅与书写表达式。


一、算术类(Arithmetic)

名称定义说明
addadd(x, y, filter = false),即 x + y逐元素相加,可多输入。filter=true 时在求和前将 NaN 视为 0。
subtractsubtract(x, y, filter=false),即 x - y从左到右逐元素相减,支持两个及以上输入。filter=true 时在相减前将 NaN 视为 0。
multiplymultiply(x, y, ... , filter=false),即 x * y逐元素相乘,可多输入。filter=true 时在相乘前将 NaN 视为 0。
dividedivide(x, y),即 x / yx 除以 y。
powerpower(x, y)x 的 y 次方(x ^ y)。
signed_powersigned_power(x, y)x 的 y 次方,结果保留 x 的符号。
sqrtsqrt(x)x 的非负平方根。等价于 power(x, 0.5);有符号根用 signed_power(x, 0.5)
loglog(x)自然对数,常用于对正值序列做变换。
absabs(x)绝对值,去掉负号。
signsign(x)符号:正为 +1,负为 -1,零为 0;NaN 仍为 NaN。
reversereverse(x)取反,即 -x。
inverseinverse(x)1 / x。
minmin(x, y ..)所有输入中的最小值,至少 2 个输入。
maxmax(x, y, ..)所有输入中的最大值,至少 2 个输入。
densifydensify(x)将多桶分组字段压缩为更少、仅包含可用桶,便于计算。

二、逻辑类(Logical)

名称定义说明
if_elseif_else(条件, 值1, 值2)条件为真返回值 1,为假返回值 2。
andand(input1, input2)两输入均为 1(真)时返回 1,否则返回 0。
oror(input1, input2)任一输入为 1 时返回 1,否则返回 0。
notnot(x)逻辑取反:x 为 1 返回 0,为 0 返回 1。
equalinput1 == input2相等为 1,否则为 0。
not_equalinput1 != input2不相等为 1,否则为 0。
greaterinput1 > input2input1 大于 input2 为 1,否则为 0。
greater_equalinput1 >= input2input1 大于等于 input2 为 1,否则为 0。
lessinput1 < input2input1 小于 input2 为 1,否则为 0。
less_equalinput1 <= input2input1 小于等于 input2 为 1,否则为 0。
is_nanis_nan(input)若 input 为 NaN 返回 1,否则返回 0。

三、时间序列类(Time Series)

名称定义说明
ts_delayts_delay(x, d)取 x 在 d 天前的值,用于访问历史。
ts_deltats_delta(x, d)当前值与 d 天前值的差,用于刻画变化或动量。
ts_sumts_sum(x, d)过去 d 天 x 的和。
ts_meants_mean(x, d)过去 d 天 x 的简单平均。
ts_std_devts_std_dev(x, d)过去 d 天 x 的标准差。
ts_zscorets_zscore(x, d)过去 d 天内的 Z-score,表示当前值相对近期均值的偏离(以标准差计)。
ts_scalets_scale(x, d, constant = 0)按过去 d 天的最小/最大值将序列缩放到 0–1,可有常数偏移。
ts_rankts_rank(x, d, constant = 0)过去 d 天内当前值的排名(可选常数调整),用于标准化与相对表现。
ts_quantilets_quantile(x, d, driver="gaussian")先算 ts_rank,再用指定分布(默认高斯)的逆 CDF 变换,用于分布整形。
ts_av_diffts_av_diff(x, d)当前值减去过去 d 天的均值(均值计算时忽略 NaN),即 x - ts_mean(x,d)。
ts_arg_mints_arg_min(x, d)过去 d 天内最小值出现在多少天前:今天为 0,昨天为 1,依此类推。
ts_arg_maxts_arg_max(x, d)过去 d 天内最大值出现在多少天前。
ts_corrts_corr(x, y, d)过去 d 天 x 与 y 的 Pearson 相关系数。
ts_covariancets_covariance(y, x, d)过去 d 天 y 与 x 的协方差。
ts_decay_linearts_decay_linear(x, d, dense = false)过去 d 天对 x 做线性衰减平滑,近期权重大。
ts_productts_product(x, d)过去 d 天 x 的乘积,可用于几何平均、复合收益等。
ts_backfillts_backfill(x, lookback = d, k=1)用过去 lookback 天内最近的有效值填补 NaN,提高覆盖、降低缺失影响。
ts_count_nansts_count_nans(x, d)过去 d 天内 NaN 的个数。
kth_elementkth_element(x, d, k, ignore="NaN")过去 d 天中第 k 个值(可设置忽略规则),常用于回填缺失。
ts_regressionts_regression(y, x, d, lag = 0, rettype = 0)过去 d 天 y 对 x 的回归,返回与回归相关的多种统计量。
ts_stepts_step(1)按日递增的计数器,每天加 1。
days_from_last_changedays_from_last_change(x)自该变量上次发生变化以来的天数。
last_diff_valuelast_diff_value(x, d)过去 d 天中与当前 x 不同的最近一个值。
humphump(x, hump = 0.01)限制输入变化的幅度与次数,从而降低换手。

四、横截面类(Cross Sectional)

名称定义说明
rankrank(x, rate=2)在所有标的间对 x 排名,输出 0.0–1.0 的均匀分布;精确排序可用 rate=0
zscorezscore(x)横截面 Z-score:相对该截面均值的标准差倍数。
scalescale(x, scale=1, longscale=1, shortscale=1)按规模缩放;可分别设置多头与空头的缩放系数。
normalizenormalize(x, useStd = false, limit = 0.0)先求当日所有有效 Alpha 的均值,再对每个元素减去该均值。
quantilequantile(x, driver = gaussian, sigma = 1.0)对向量排名后经指定分布(gaussian/cauchy/uniform)变换;driver 为 uniform 时相当于减均值。
winsorizewinsorize(x, std=4)将 x 限制在由均值 ± std 倍标准差确定的上下限内。
vector_neutvector_neut(x, y)求与向量 y 正交的 x*,使输出 x* 与 y 正交。

五、向量类(Vector)

名称定义说明
vec_sumvec_sum(x)对向量字段 x 求和。例:(2,3,5,6,3,8,10) → 37。
vec_avgvec_avg(x)对向量字段 x 求平均。例:(2,3,5,6,3,8,10) → 37/7 ≈ 5.29。

六、变换类(Transformational)

名称定义说明
trade_whentrade_when(x, y, z)仅在满足某条件时更新 Alpha 值,否则保持;也可在满足条件时平仓(赋 NaN)。
bucketbucket(rank(x), range="0, 1, 0.1" 或 buckets = "2,5,6,7,10")将浮点值映射到用户指定区间的索引,常用于生成分组并作为 GROUP 的输入。

七、分组类(Group)

名称定义说明
group_rankgroup_rank(x, group)在每组内对 x 排名,每个元素得到其组内排名。
group_meangroup_mean(x, weight, group)组内元素等于该组的(加权)均值。
group_zscoregroup_zscore(x, group)组内 Z-score:(x - 组均值) / 组标准差。
group_scalegroup_scale(x, group)组内归一化到 0–1:(x - 组最小) / (组最大 - 组最小)。
group_neutralizegroup_neutralize(x, group)按组对 Alpha 做中性化,组可为子行业、行业、板块、国家或常数等。
group_backfillgroup_backfill(x, group, d, std = 4.0)若某日某标的为 NaN,则用同组标的过去 d 天的非 NaN 值做 winsorize 后的均值填充。