2025/517学习
对离群值怎么操作。这个就是拟合操作的。用更弯曲的曲线去拟合,如常见函数log
多元回归和单元回归
如题,如果我有多个自变量,来对一个因变量进行OLS回归,有没有operator可以做到?(ts_regression似乎只支持一个自变量)
0
Comments 评论
1 comment 1评论
Sort by 排序方式
对离群值怎么操作。这个就是拟合操作的。用更弯曲的曲线去拟合,如常见函数log
多元回归和单元回归
如题,如果我有多个自变量,来对一个因变量进行OLS回归,有没有operator可以做到?(ts_regression似乎只支持一个自变量)
1 comment 1评论
您的观察是正确的,多元回归运算符在后续才会推出,目前暂不提供。可以思考有无替代性的方法。
想法逻辑落地到表达式中
假设股票有量价特征A、B
那么这样的逻辑应该怎么表达呢:过去x天内,属性A达到前x%的股票的属性B-属性A达到后y%的股票的属性B
定义振幅,此处简单将振幅定义为过去1个月的收益率的标准差
简单振幅就是对这个回报率2-天的波动率
2.使用bucket进行分组后直接取收益率。
对股票排名分组
对mygroup
3.以分组的值取收益率:
条件筛选
昨日换手率相比
volume/sharesout
什么样的因子是Average,什么样的是Good、Excellent、Spectacular?有具体的划分标准吗?
fitness的比较标准
目前发现的规律是--Fitness在如下区间时,Alpha为对应的等级:
Average:(1 - 1.5] 平均:(1 - 1.5]
Good:(1.5 - 2] 好:(1.5 - 2]
Excellent:(2 - 2.5] 棒棒哒:(2 - 2.5]
Spectacular:(2.5 - ∞) 壮观:(2.5 - ∞)
终止中性化,用做多来实现多头盈利
中性化会让alpha vector有负数,关闭掉外部的中性化选项,alpha公式、中性化都由alpha_func(.)来完成。
最终公式为max(alpha_func(.),0),这样模拟A股只可以做多的模式可以吗。
或者是否有更好的方法来模拟回测适用于A股的因子?您好,这样的方式是可行的。但我个人并不建议您构建一个只有多头的Alpha,这样你会暴露在市场的风险之下。建议你可以使用if_else等函数,使得做空的股票更多是属于沪深300等指数类型的成分股,这样其实也非常贴近于现实情况
for循环
最近用fast expression实现for循环,但尝试多次后无果,想知道brain平台上能实现for循环的用法吗?
感谢提问,平台本身每天都会重新计算一次Alpha的值,因此它本身就是一个循环。
希望上述答案能帮到您,如否,烦请提供稍微具体的Idea,让我们一起思考如何解决。
用这个策略运用于每天的数据
策略实现
请问如果我在不同行业算出了一个行业的值,我想把这个值赋给行业内所有公司,使得该行业中的所有公司权重相同,然后再按行业排序,怎么操作呢?
比如A行业3个公司算出来一个行业值为2,B行业4个公司算出来一个行业值为3,然后我想让A行业3个公司都是2,B行业4个公司都是3,然后再rank(【2,2,2,3,3,3,3】)得到7个公司的
这个操作并不难实现,你只需通过以下操作即可。
以分组,如对行业或市场对mou
value = group_mean(returns, grouping)
returns
:收益率序列grouping
:分组依据(如my_group
)rank(value)
value
:分组统计值(如平均收益率)对分组结果从高到低排序(1 为最高,
ts_std_dev
wave
)bucket
+rank
my_group
)if_else
my_return
)group_mean
+rank
value
)→ 排名通过表格可以直观看到,该策略通过波动性过滤和分组排序,实现了 “在极端波动环境中捕捉趋势机会,在中等波动环境中空仓避险” 的逻辑,适用于趋势跟踪或事件驱动型交易策略。
目前在平台上只会使用ts_mean计算简单移动平均,但如果想要计算指数移动平均该怎么办呢?比如计算下图所示ema指标
参考这个operator:
ts_decay_exp_window(x, d, 因子 = f)
返回过去 d 天具有平滑因子的 x 的指数衰减。 详细说明
指的是一种分类分组数据的方法论: At a Glance: FactSet Hierarchy DataFeed
Ts_Step(n)
是一个生成从n
开始递减的值序列的函数。在任何模拟日
di
,Ts_Step(n)
返回的是di
日的表达式值为n
,di-1
日的值为n-1
,依此类推。这形成了一个从n
到1
的倒数序列,跨越最近的n
个模拟天。将Netrua设置成none后,下列的回测图像也证实了上述的描述
setting中的计算顺序
Decay 衰变 Pasteurization 巴 氏 杀菌 Neutralization (Market for risk neutralization)
Neutralization (风险中和市场) Truncation 截断 Risk handling (for risk neutralization)
风险处理(用于风险平衡) Scale to book size 缩放到书籍大小
我们对Pasteurization这个理解,就是对超出范围的股票数据为nan
用rank()后面和前面为什么不会反过来。
有没有去年该时间的stock return
ts_delay(returns, 200)
应用场景:
计算长期趋势(如 200 日移动平均线)、动量因子(Momentum)或滞后回报相关性。
例:
T
天,ts_delay(returns, 200)
表示第T-200
天的收益率,可用于计算过去 200 天的累计收益率(如sum(ts_delay(returns, 1):ts_delay(returns, 200))
)。金融逻辑:
通过滞后数据捕捉长期市场动量,过滤短期噪音,适用于中长期趋势跟踪策略。
2. 风险管理与滞后效应分析
应用场景:
评估资产价格对宏观事件(如政策调整、经济数据发布)的滞后反应。
例:
金融逻辑:
市场对信息的消化可能存在延迟,滞后数据可用于验证因果关系的时间跨度。
3. 多因子模型与滞后特征构造
应用场景:
在量化投资中,将滞后收益率作为因子输入模型,捕捉价格序列的自相关性或记忆效应。
例:
Factor = ts_delay(returns, 200) + ts_delay(returns, 100)
,用于预测未来收益率。金融逻辑:
利用价格序列的历史依赖性(如动量或反转特性)构建预测信号。
我有观察到各市场(US、GLB、CHN)在 covid 区间是没有交易的,所以好奇是否可以将中国市场 2015 年 6、7 月的交易拿掉,这段时间很容易有较大的 drawdown (部分逻辑在这段时间相斥),或是有推荐 de risk 的方法,谢谢。
您好。感谢提问。感谢您细致的观察和深入思考。然而,您说的“各市场(US、GLB、CHN)在 covid 区间是没有交易的”是不准确的。我们的IS目前仅给到21年,但实际上21-23年这两年的历史是属于semi-OS即样本外的历史,您的Alpha在这两年的表现至关重要,您的Alpha是否会被选择入库也会跟其有关。因此,它只是被隐藏了,并非不交易。
粗暴地将中国市场 2015 年 6、7 月的交易拿掉,可能导致过拟合。您可以思考系统性的风险对冲方式,例如对冲掉一些常见的风险因素。可用的运算符为vec_neutral
对于拟合度
今天提交的每一个因子都和前几日提交的一个因子(rank(mdf_rds))相关度极高,可是确实是完全不一样的idea呀(比如group_rank(fam_est_eps_rank, pv13_r2_min20_3000_sector),group_rank(-returns,densify(subindustry))等等)
您是否打开了neutralization
用递归
如题,比如我有一个因子的递推公式是Y(i,x) = F(Y(i-1,x)) ,其中i是下标,x是自变量,想问一下如果要写这种因子,应该怎么写呢?
欢迎参加我们的office hour与研究员进行讨论。初步来看,您的idea可以通过ts_Delay()等运算符实现。核心的一件事情是,您希望做多哪类股票,做空哪类股票?计算出数据可能仅是开始的一步