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

相关推荐
阿阳微客6 小时前
Steam 搬砖项目深度拆解:从抵触到真香的转型之路
前端·笔记·学习·游戏
Chef_Chen11 小时前
从0开始学习R语言--Day18--分类变量关联性检验
学习
键盘敲没电11 小时前
【IOS】GCD学习
学习·ios·objective-c·xcode
海的诗篇_12 小时前
前端开发面试题总结-JavaScript篇(一)
开发语言·前端·javascript·学习·面试
AgilityBaby12 小时前
UE5 2D角色PaperZD插件动画状态机学习笔记
笔记·学习·ue5
AgilityBaby12 小时前
UE5 创建2D角色帧动画学习笔记
笔记·学习·ue5
武昌库里写JAVA13 小时前
iview Switch Tabs TabPane 使用提示Maximum call stack size exceeded堆栈溢出
java·开发语言·spring boot·学习·课程设计
一弓虽14 小时前
git 学习
git·学习
Moonnnn.16 小时前
【单片机期末】串行口循环缓冲区发送
笔记·单片机·嵌入式硬件·学习
viperrrrrrrrrr717 小时前
大数据学习(131)-Hive数据分析函数总结
大数据·hive·学习