2025/517学习

对离群值怎么操作。这个就是拟合操作的。用更弯曲的曲线去拟合,如常见函数log

多元回归和单元回归
如题,如果我有多个自变量,来对一个因变量进行OLS回归,有没有operator可以做到?(ts_regression似乎只支持一个自变量)
0

Comments 评论

1 comment 1评论
Sort by 排序方式

WL13229

  • 1 year ago

您的观察是正确的,多元回归运算符在后续才会推出,目前暂不提供。可以思考有无替代性的方法。

想法逻辑落地到表达式中

假设股票有量价特征A、B

那么这样的逻辑应该怎么表达呢:过去x天内,属性A达到前x%的股票的属性B-属性A达到后y%的股票的属性B

定义振幅,此处简单将振幅定义为过去1个月的收益率的标准差

复制代码
 wave = ts_std_dev(returns, 20);

简单振幅就是对这个回报率2-天的波动率

2.使用bucket进行分组后直接取收益率。

复制代码
my_group = bucket(rank(wave),range="0.1,1,0.1");

对股票排名分组

对mygroup

3.以分组的值取收益率:

复制代码
my_return = if_else(  my_group <=2 || my_group >=8, returns, nan)

条件筛选

含义

  • 当波动性处于最低的 2 组(my_group <=2)或最高的 3 组(my_group >=8)时,保留原始收益率(参与交易)。
  • 否则,将收益率设为nan(不参与交易,相当于空仓)。

金融意义

  • 高波动策略:在市场波动极大时(如危机、重大利好),可能存在趋势性机会,因此参与交易。
  • 低波动策略:在市场波动极小时,可能预示即将突破,提前布局以捕捉潜在趋势。
  • 回避中等波动:中等波动市场通常缺乏明确趋势,交易成本可能吞噬收益,因此选择空仓。

策略逻辑总结

该策略通过波动性筛选交易时机,核心逻辑是:

高波动捕捉趋势 :在市场剧烈波动时,趋势性行情更明显,此时参与交易。 低波动布局突破 :在市场极度平静时,可能酝酿突破行情,提前介入。 规避震荡行情 :回避波动适中的区间,减少无方向交易带来的亏损。

潜在应用场景

期货 / 外汇市场 :在重大数据发布(如非农、利率决议)前后,波动性激增,适合该策略。 趋势跟踪策略 :结合波动性过滤,避免在震荡市中频繁止损。 期权交易 :高波动时期权价格昂贵,可选择在低波动时买入期权,等待波动放大时获利。

需要注意的是,实际应用中还需考虑交易成本、滑点及参数优化等因素。

weight concerntration在某一天过高的原因

Follow 跟随Followed by 2 people
CW51623

  • 1 year ago
    在测试时发现如下的问题,想请教一下这一现象的原因,及相应的改进措施。
    0

Comments 评论

1 comment 1评论
Sort by 排序方式

WL13229

  • 1 year ago

这大概率是因为您的raw Alpha value 在某天出现了极端的数值,过高或者过低。请尝试考虑到极端值并处

极端值过大或过低,我们需要对极值进行nan操作,平滑或其他处理

昨日换手率相比

volume/sharesout

复制代码
  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个公司的

这个操作并不难实现,你只需通过以下操作即可。

复制代码
value = group_mean(数据点名称,grouping);

rank(value)

以分组,如对行业或市场对mou

代码 参数说明 计算逻辑 金融含义 输出结果
value = group_mean(returns, grouping) returns:收益率序列 grouping:分组依据(如my_group 按分组(如波动组、行业、市值等)计算平均收益率。 衡量各组的历史表现,用于比较不同组的盈利能力或风险特征。 每个分组的平均收益率(如组 1:0.5%/ 月,组 10:2%/ 月)。
rank(value) value:分组统计值(如平均收益率) 对分组结果从高到低排序(1 为最高,
步骤 核心目标 关键工具 / 函数 数据流向 策略意图
1 衡量市场波动风险 ts_std_dev 收益率序列 → 波动性数值(wave 识别市场风险状态
2 划分市场波动区间 bucket + rank 波动性数值 → 波动分组(my_group 将市场分为低、中、高波动环境
3 筛选交易时机 if_else 波动分组 → 有效收益率(my_return 仅在极端波动区间交易,规避震荡
4 评估分组表现与排序 group_mean + rank 收益率 → 分组统计值(value)→ 排名 比较各组历史表现,验证因子有效性

通过表格可以直观看到,该策略通过波动性过滤分组排序,实现了 "在极端波动环境中捕捉趋势机会,在中等波动环境中空仓避险" 的逻辑,适用于趋势跟踪或事件驱动型交易策略。

目前在平台上只会使用ts_mean计算简单移动平均,但如果想要计算指数移动平均该怎么办呢?比如计算下图所示ema指标

参考这个operator:
ts_decay_exp_window(x, d, factor = f)
ts_decay_exp_window(x, d, 因子 = f)
Returns exponential decay of x with smoothing factor for the past d days. Detailed description
返回过去 d 天具有平滑因子的 x 的指数衰减。详细说明
分类指标方法论 指的是一种分类grouping数据的方法论: At a Glance: FactSet Hierarchy DataFeed
指的是一种分类分组数据的方法论: At a Glance: FactSet Hierarchy DataFeed
量纲不匹配。如矩阵max和vec
Ts_Step(n)是一个生成从n开始递减的值序列的函数。

在任何模拟日diTs_Step(n)返回的是di日的表达式值为ndi-1日的值为n-1,依此类推。这形成了一个从n1的倒数序列,跨越最近的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)))。
  • 识别长期趋势反转信号(如 200 日收益率由负转正,可能预示牛熊转换)。

金融逻辑

通过滞后数据捕捉长期市场动量,过滤短期噪音,适用于中长期趋势跟踪策略。

2. 风险管理与滞后效应分析

应用场景

评估资产价格对宏观事件(如政策调整、经济数据发布)的滞后反应

  • 分析某行业指数在 "碳中和" 政策发布 200 天后的收益率表现,判断政策对行业的长期影响。
  • 计算滞后波动率(如用滞后 200 日的收益率计算波动率),用于风险模型(如 VaR)的参数估计。
  • 金融逻辑

    市场对信息的消化可能存在延迟,滞后数据可用于验证因果关系的时间跨度

3. 多因子模型与滞后特征构造

应用场景

在量化投资中,将滞后收益率作为因子输入模型,捕捉价格序列的自相关性记忆效应

  • 构造因子 Factor = ts_delay(returns, 200) + ts_delay(returns, 100),用于预测未来收益率。
  • 检验 "长期反转效应"(Long-term Reversal):若某资产 200 日前收益率极高,未来可能出现均值回归。

金融逻辑

利用价格序列的历史依赖性(如动量或反转特性)构建预测信号。

我有观察到各市场(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()等运算符实现。核心的一件事情是,您希望做多哪类股票,做空哪类股票?计算出数据可能仅是开始的一步

相关推荐
lichuangcsdn1 小时前
【springcloud学习(dalston.sr1)】Eureka 客户端服务注册(含源代码)(四)
学习·spring cloud·eureka
云海听雷2 小时前
C语言中字符串函数的详细讲解
c语言·笔记·学习
人类恶.3 小时前
C 语言学习笔记(数组)
c语言·笔记·学习
夏季疯3 小时前
学习笔记:黑马程序员JavaWeb开发教程(2025.4.7)
java·笔记·学习
小Tomkk3 小时前
2025年PMP 学习十八 第11章 项目风险管理 (11.5~11.7)
学习·项目管理·pmp
hweiyu004 小时前
C#学习教程(附电子书资料)
开发语言·学习·c#
superior tigre4 小时前
C++学习:六个月从基础到就业——C++11/14:列表初始化
c++·学习
阿图灵4 小时前
文章记单词 | 第93篇(六级)
学习·学习方法
superior tigre4 小时前
C++学习:六个月从基础到就业——C++11/14:decltype关键字
c++·学习