Arithmetic
abs(x)
add(x, y, filter=false) x+y
subtrace(x,y,filter=false) x-y
multiply(x, y, …, filter=false) x* y,filter用于过滤NaN
divide(x,y) x/y
inverse(x) 1/x
reverse(x) -x
log(x)
max(x, y, ..)
min(x, y, ..)
power(x, y) 指数
sign(x) 1 if x>0; -1 if x<0; 0 if x=0
signed_power(x,y) sign(x)* pow(abs(x), y)
densify(x) 将多个桶的分组字段转换为较少数量的仅可用桶,以便在计算上高效地使用分组字段
Logical
if_else(input1, input2, input3) If input1 is true then return input2 else return input3
Transformational
trade_when(x,y,z) if z > 0 alpha = NaN; if x > 0 alpha = y; else alpha = alpha; z成立平仓,x成立开仓,否则不动,用来降低correlation和turnover
bucket(rank(x), rank=“0,1,0.1"or buckets=“2,5,6,7,10”) 按照区间进行排序, 返回index
Time Series 所有ts函数的d必须是常量
hump(x, hump = 0.01) 限制alpha频繁改变, 用于减少turnover
ts_corr(x, y, d) x和y过去d天的值的线性关系值
ts_arg_max(x, d) 从今天开始往前d天的列表中,选出最大值的index,[1,4,6,7,3],返回值是3
ts_arg_min(x, d)
ts_delay(x, d) 返回d天前的值
ts_delta(x, d) x - ts_delay(x, d),今天的值和d天前的值的差
ts_mean(x, d) 过去d天的平均值
ts_product(x, d) 过去d天x的乘积
ts_rank(x, d, constant = 0) 过去d天x值的排序,返回x的index+constant
ts_std_dev(x, d) 过去d天的标准差,如果是0就是没有变化
ts_av_diff(x, d) x - ts_mean(x, d)
ts_sum(x, d) 过去d天的和
Cross Sectional
zsore(x) (x-mean(x))/std(x) 描述了x与标准差的偏离程度
rank(x) 排序的出来的值分布于0到1, 减少drawdown,提高sharp
记录
turnover=volume/(sharesout * 1000000) sharesout是每日流通百万
-close/vwap; vmap是价格平衡位置
group_rank(alpha, densify(group))
group_rank(ts_rank(eps, 252), industry) eps可以替换成很多数值, group_rank 和 ts_rank也可以替换成其他函数
back_fill降低换手率
hump降低换手率
vwap成交量加权平均价格
-ln(open/ts_delay(open, 1))