当前位置: 首页 > news >正文

101个α因子#7

((adv20 < volume) ? ((-1 * ts_rank(abs(delta(close, 7)), 60)) * sign(delta(close, 7))) : (-1 * 1))

worldquant brain平台上调整后的语法:

((adv20 < volume) ? ((-1 * ts_rank(abs(ts_delta(close, 7)), 60)) * sign(ts_delta(close, 7))) : (-1 * 1))

这个alpha因子的逻辑可以拆解为条件判断下的两类信号生成机制,其核心是通过成交量筛选市场状态,并结合价格变化的幅度与方向构建反转策略。以下是逐步解析:


1. 整体结构:条件运算符

因子形式为:
(adv20 < volume) ? 表达式A : 表达式B

  • 条件adv20 < volume

    • adv20 代表过去20天的平均成交量(假设为简单移动平均)。
    • volume 为当日成交量。
    • 条件满足:当日成交量超过过去20日均量(放量)。
    • 条件不满足:当日成交量低于或等于20日均量(缩量或常态)。
  • 表达式A(放量时的逻辑):
    (-1 * ts_rank(abs(ts_delta(close, 7)), 60) * sign(ts_delta(close, 7)))

  • 表达式B(非放量时的逻辑):
    -1(固定值,直接看空)。


2. 放量时的信号生成(表达式A)

步骤拆解
  1. 计算价格变化方向与幅度

    • ts_delta(close, 7):过去7天的价格变化值(当前收盘价 - 7天前收盘价)。
    • sign(ts_delta(close, 7)):提取价格变化的方向(正值为上涨,负值为下跌)。
  2. 计算价格波动幅度的历史排名

    • abs(ts_delta(close, 7)):取价格变化的绝对值(仅关注波动幅度,忽略方向)。
    • ts_rank(..., 60):计算该绝对值在过去60天内的滚动排名(标准化为0到1之间的分位数,例如排名最高为1,最低为0)。
  3. 组合方向与排名

    • ts_rank(...) * sign(...):将价格方向(±1)与波动幅度的历史排名相乘。
      • 若过去7天上涨(sign=+1),则结果为 ts_rank值
      • 若过去7天下跌(sign=-1),则结果为 -ts_rank值
  4. 符号反转

    • 乘以 -1,最终表达式为 -1 * (ts_rank * sign)
    • 上涨时(sign=+1):结果为 -ts_rank(负值,看空信号);
    • 下跌时(sign=-1):结果为 +ts_rank(正值,看多信号)。
逻辑解释
  • 放量上涨
    • 价格涨幅越大(ts_rank高),因子值越负,认为短期超买,预期反转下跌。
  • 放量下跌
    • 价格跌幅越大(ts_rank高),因子值越正,认为短期超卖,预期反弹上涨。
  • 核心思想放量伴随极端价格波动时,押注均值回复

3. 非放量时的信号(表达式B)

  • 直接赋值-1(固定看空信号)。
  • 隐含假设
    • 成交量未超过20日均值时,市场缺乏动能,默认看空。
    • 可能认为缩量环境下趋势难以持续,或策略仅在放量时有效。

4. 综合逻辑总结

  • 放量场景volume > adv20):
    1. 若过去7天上涨,且涨幅在近期60天内处于高位(波动剧烈),因子值为负,看空
    2. 若过去7天下跌,且跌幅在近期60天内处于高位,因子值为正,看多
  • 非放量场景volume ≤ adv20):
    • 无条件看空(固定值-1)。

5. 策略设计意图

  1. 成交量筛选
    • 仅对放量交易日生成动态信号,认为放量是价格波动有效性的前提。
  2. 波动率与反转
    • 通过ts_rank捕捉价格波动的极端性(排名越高,波动越异常),押注反转。
  3. 非对称处理
    • 放量上涨时看空,放量下跌时看多,非放量时统一看空,体现策略对市场状态的敏感性。

6. 潜在应用与改进点

  • 适用市场
    • 震荡市或均值回复较强的市场(反转策略有效)。
    • 趋势市中可能失效(如放量上涨后继续上涨)。
  • 改进方向
    • 非放量时的固定看空可能过于武断,可引入其他条件(如结合价格位置或波动率)。
    • ts_rank窗口(60天)和价格变化窗口(7天)需根据市场节奏调整。
    • 可对放量下跌的信号进一步过滤(如结合超卖指标RSI)。

7. 示例验证

  • 案例1(放量上涨)
    • 过去7天上涨10%,涨幅在60天内排名前10%(ts_rank=0.9),因子值 = -1 * 0.9 * 1 = -0.9,强烈看空。
  • 案例2(放量下跌)
    • 过去7天下跌8%,跌幅在60天内排名前5%(ts_rank=0.95),因子值 = -1 * 0.95 * (-1) = +0.95,强烈看多。
  • 案例3(缩量震荡)
    • 成交量低于20日均值,因子值 = -1,直接看空。

总结

该因子通过成交量筛选+价格波动极端性排名+方向反转,构建了一个条件式反转策略:

  • 放量时:押注短期过度波动的价格向均值回归。
  • 非放量时:默认看空,规避低波动或无趋势市场。
    其核心假设是放量伴随的价格极端波动不可持续,适用于捕捉短期反转机会。

在这里插入图片描述
在这里插入图片描述
目前没有调整至可提交的状态。欢迎留言交流!

http://www.xdnf.cn/news/559693.html

相关文章:

  • 多角色对账效率低?易境通散货拼柜系统如何高效协同?
  • QT学习笔记---表格
  • CAP理论 ,了解一下什么是CAP理论
  • 绿盟防火墙6.0.5版本—接入网监平台
  • 数据结构与算法学习笔记(Acwing 提高课)----动态规划·状态机模型
  • 环境配置!
  • vue3学习文档(开发文档)
  • HBCPC2025 补题 (F、I)
  • 算法打卡第二天
  • 进阶知识:自动化测试框架开发之无参的函数装饰器
  • 牛客网 NC14736 双拆分数字串 题解
  • MySQL的安装及相关操作
  • 150.WEB渗透测试-MySQL基础(五)
  • 张 推进对话式心理治疗:SOULSPEAK的聊天机器人
  • 多模态光学成像革命:OCT、荧光与共聚焦的跨尺度融合新范式
  • spark的缓存提升本质以及分区数量和task执行时间的先后
  • python学习day3
  • SpringSecurity基础入门
  • 深入解剖 G1 收集器的分区模型与调优策略
  • 8天Python从入门到精通【itheima】-20~22
  • 从零开始:Python语言基础之变量
  • 知识图谱构架
  • 从无标注的病理切片中自动提取临床相关的组织形态表型簇,探索其与患者预后、分子表型以及治疗反应的关联
  • HuggingFace全栈开发指南:从零构建AI应用的技术全景图
  • 【嵌入式】ESP32 Flash专题
  • java基础-异常
  • 2.前端汇总
  • 《初入苍穹:大一新手的编程成长之旅》
  • SpringBoot 项目实现操作日志的记录(使用 AOP 注解模式)
  • C++类与对象--6 特性二:继承