两个重要的alpha表达式
group_neutralize(volume/(ts_sum(volume,60)/60),sector)
group_neutralize(volume/(ts_sum(volume,60)/60),sector)
这个就是看当前的交易量和前面60天的平均量进行比较。然后用neu对这个指标进行行业中性化分组
ts_step(20)*(volume/(ts_sum(volume,60)/60))
这个就是对他们赋予权重。如果现在是20天,19天,对这个指标赋予加权的一个配比
回归
今天增加,明天减少。对于任何两个事物之间是有关系的
如我们对价格的一个相比的
-(today's price-yestarday's price)
如(close-ts_product(close,5)*0.2).然后用rank分配比重到不同股票上
成交量 volume是告诉你是否有买家和卖家
当前成交量和前面20天的成交量相比。下降或上升,对于价格的吸收不同
ts_corr(rank(close),rank(volume/adv20),5
这里做个说明。ts_corr是说明在d天中两者从相关性
即用相关性
回归的概念就是如果今天的价格上升了,那么价格量就会下降,如果价格量下降,价格就会上升。就这样像杠杆一样 的
成交量越高,看涨的趋势越大
我们可以
ts_sum(-returns,5)在5天内的负回报率
ts_decay_liner(volume/adv20,5,dense=false)
如果我们想将其放在统一尺度上进行比较的话
用scale运算
-
volume/adv20
:成交量相对强度- 计算逻辑:当前成交量(
volume
)与过去 20 日平均成交量(adv20
)的比值。 - 金融意义:
- 反映当前成交量相对于近期平均水平的异常程度。
- 若比值 > 1,说明成交量放量(高于均值),可能伴随价格趋势的强化或反转信号;若比值 < 1,说明成交量缩量(低于均值),可能预示趋势减弱或市场观望情绪浓厚。
- 常用于识别量价背离(如价格创新高但成交量比值下降,可能暗示上涨乏力)。
- 计算逻辑:当前成交量(
-
5
:衰减周期(加权周期)- 计算逻辑:在时间序列分析中,“衰减” 通常指对历史数据赋予递减权重,距离当前越近的数据权重越高,越远的数据权重越低。
- 金融意义:
- 通过设置衰减周期(如 5 日),可突出短期成交量变化的影响,过滤长期噪音。
- 例如,在计算成交量的加权移动平均时,近 5 日的成交量会被赋予更高权重,反映近期市场活跃度的变化趋势。
-
4. 风险控制
- 逻辑:缩量(加权值持续低于均值)可能预示市场流动性下降,交易风险上升。
- 操作:
- 当加权成交量比值 < 0.5 时,减少仓位或避免开仓,以防价格滑点扩大。
scale就是将所有股票的alpha值相加变成了1
然后我们股票的alpha值就是意味的做多和做空,如果alpha的值是正的,就是做多。是负的就是做少
rank(group_mean(ts_detal(close,5),1,subindustry)-ts_detal(close,5)
行业组减去平均值
在市场中有价格的增长会向我们积极的信号。增强我们的信心。同时交易量也会大幅的上升
last_diff_value,用于fundementall数据集
用条件选择符来去除NaN值
cond? expr1:expr2
就是如果cond是正确的话,就用expr1,否则用expr2
如lclose<open?close:open
那么我们用
rank(eps/last_diff_value(eps,5)>0.7|| volume>ts_delay(volume,1)? rank(ts_delta(close,5),-1
返回不等于过去 d 天的当前 x 值的最后一个 x 值
当这个rank的大于0.7,就是每个每股利息。当前股票和最低股票的量相比小于0.7或者今天的交易量比原先的大。如果在这种情况下用 rank(ts_delta(close,5),-1这个的股票。就实现买入卖空。不然的话就直接卖空
有时候市场事件会产生持续,长时间的显著影响。并形成趋势,这个时候开发自己的指标
持续时间存有。这个时候我们就用
trigger tradeexp=(ts_arg_max(volume,5)<1)&&(volume>=ts_sum(volume,5)/5;
然后triggerexitexp=-1
我们的alpha策略。像有中断的
alphaexp=-rank(ts_delta(close,2))
然后,当某个条件发生改变的时候我们就执行
trade_when(trigger tradeexp(触发条件),alphaexp,triggerexitexp(退出条件))
ts_arg_max.返回过去最大值的相对索引。如果过去都是nan的话就返回0
如果当前成交量的是前面5天中最高的。并且 。当前成交量是大于过去5天成交量的平均值。
如果这个时候条件成立的话,我们使用。-rank(ts_delata(close,2))
这个就是随的事件的变化过程增加增强或衰减的信号
用paster巴氏,检查股票池中的所有股票,然后。看任何表达式中得到的结果是否是趋于无限大或无限小。
如果我们交易对象不再就用nan
(vwap/close)成交量加权平均值除以收盘价
用协方差和标准差运算符的alpha,实现对波动率之间的
看两者之间的相关性关系st_std_dev(-return,22),(vmap-close),22
然后。ts_covariance
时间段必须小于512.然后rank
有时候市场时间会产生长时间的持续显著性的影响。
识别某类事件,开仓交易,持有其N天 .直到你相信其影响已经结束了的
我们用trigger tradeexp=(ts_arg_max(volume,5)<1&&(volume>=ts_sum(voume,5)/5)
然后我们用triggerexit=-1
alphaexp=-ranks(ts_delta(close,2)
tadewhen
如果成交量过去5天的最大的大于5天。或者成交量大于里面的平均值。都用。
。过去收盘价两天的相减,并取负。
线性回归
ts_regression,就是看回归的。
如果今天和昨天收盘价计算出来的相差值和同一只股票计算出的值小。那么很有可能出现反转
那么的话。
-(ts_sum(close-min(low,ts_deay(close,1))),5)/ts_sum(max(high,ts_delay(cose,1)-low,5
分子就是,当前的收盘价-过去一天收盘价前5天最低值的相对差值。这个就是5天平均值
对于前5天价格变化的最大范围。股票也特别大
像我们用-rank((close-ts_max(high,5)).分子计算的是当前收盘价与过去5天中最高的差值
】。如果比率很高。说明反转趋势更强
避免过拟合的程度
什么是过拟合。一个量化研究员在历史数据上
。按照策略进行研究。以建立对其策略 的。
如果单纯是为了使数据在历史上取得很好的效果,这就是被称为过拟合
。1按照原始想法去进行。
2避免在回测过程中进行过多的微调
。
分析一个新的alpha。如
rank(ts_rank(snt_social(volume,60))>0.6?
grouprank(subindustry,(sum(snt_social_value,10)/10/(ts_max(snt_social_value,60)),0
看涨情绪,最大情绪值。更多的分配给看涨的股票。
对这个情绪量对60天的看涨。
债务,。因为债务是更昂贵的融资形式。这种债务的承担。
高负债率的话说明。投资者并没有为公司嵌入更多精力
我们用
ts_rank(-debt/equltl,240)。
下一个alpha学习
group_neutralize(rank(-ts_deta(debt,60)/(assets)),srctor)
今天公司的债务值和60天前观察到的债务值的比较。捕捉公司财务杠杆的变化。然后rank就是平滑这个值。并返回一个在01之间分布