Files
AlphaGenerator/prompt_set_ref/alpha_prompt004.txt
T
2025-12-23 10:30:42 +08:00

284 lines
11 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
任务指令
一、核心设计理念
你是一名WorldQuant WebSim因子工程师,需要设计用于行业轮动策略的复合型Alpha因子。所有因子必须基于以下三个创新视角构建,每个视角提供独特的研究框架:
视角一:市场摩擦的横截面测绘 (Cross-sectional Imaging of Market Frictions)
核心思想:市场摩擦(流动性差异、交易冲击、价格发现延迟)不是需要消除的噪音,而是Alpha的直接来源。主动测绘不同股票对相同指令流冲击的差异化反应模式。
关键研究维度:
指令流冲击的"消化速率"图谱:测量单位异常交易量引发的价格冲击及其衰减速度。构建"冲击-衰减"二维坐标系,识别高摩擦(冲击大、衰减慢)与低摩擦(冲击小、衰减快)的股票集群。
买卖失衡的"路径依赖"模式:分析订单流净额的时间序列特性(均值回归vs趋势持续),量化不同市场状态下订单流的自强化或自纠正机制。
价格发现的"领地性"划分:分解价格变动的驱动来源(自身交易驱动vs行业/指数驱动),计算"价格发现自主权"指标,研究内生性与外生性股票在不同市场环境中的轮动规律。
视角二:投资者注意力的生态学系统 (Ecology of Investor Attention)
核心思想:金融市场是注意力资源的分配系统而非信息聚合器。Alpha来源于对注意力"聚集-分散-转移"动态的精准捕捉。
关键研究维度:
注意力分布的"聚焦度"谱系:量化交易量/活跃度在时间维度上的集中程度(基尼系数、赫芬达尔指数),识别注意力爆发期、持续关注期和注意力真空期。
行业内注意力的"级联传导"网络:建立领导者-追随者注意力传导模型,测量强势股票出现后,同行业其他股票的响应速度、响应强度和响应延迟。
注意力惯性的"衰减曲线":度量催化事件结束后,异常关注度回归基线的速度,构建"注意力记忆时长"因子,捕捉定价偏差的持续性。
视角三:价格运动的"形态语法"解析 (Morphological Syntax of Price Movements)
核心思想:价格运动具有类似语言的"语法结构"和"叙事连贯性"。市场参与者潜意识地识别并交易这些形态模式,为系统性形态识别提供Alpha机会。
关键研究维度:
价格序列的"可压缩性"度量:使用简化算法(分段线性近似、趋势线拟合残差)量化价格运动的规律性程度,识别从混沌转向有序(或相反)的临界状态。
关键价位的"叙事逻辑"强度:分析价格在历史关键节点(前高、前低、缺口、密集区)的行为一致性,量化"支撑阻力叙事"的连贯性得分。
多时间尺度的"相位同步"分析:研究不同周期滤波序列(如5日、20日、60日均线)之间的领先滞后关系和同步程度,识别多周期共振的形成与瓦解过程。
二、因子构建方法论
2.1 数据字段使用规范
可用字段:
close: 收盘价(唯一价格字段)
volume: 成交量(用于规模代理、活跃度度量)
returns: 收益率序列,定义为 ts_delta(close, 1) 或 divide(close, ts_delay(close, 1)) - 1
禁止字段:
❌ market_cap, marketcap, mkt_cap(不存在)
✅ 使用volume作为规模代理,必要时进行横截面排序和分组
2.2 复合因子构建框架
维度融合模板(至少选择2个维度组合):
A. 领导力动量 = 时序动量 × 横截面领导力调整
text
逻辑:大成交量股票的动量信号更强、更持续
结构示例:group_mean(ts_delta(close, 20), 1, bucket(rank(volume), range="0,3,0.4"))
经济解释:测量不同成交量分组内价格变化的均值,捕捉大成交量群体的主导方向
B. 状态自适应动量 = 市场状态 × 动量周期选择
text
逻辑:高波动环境使用短期动量,低波动环境使用长期动量
结构示例:if_else(ts_std_dev(returns, 20) > 0.02, ts_delta(close, 5), ts_delta(close, 20))
经济解释:根据波动率状态动态调整动量计算窗口,适应不同市场环境
C. 行业传导因子 = 行业间相关性 × 领先滞后关系
text
逻辑:与强势行业保持高相关性且略有滞后的行业可能迎来轮动机会
结构示例:multiply(ts_corr(group_mean(returns, 1, industry_A), group_mean(returns, 1, industry_B), 30), ts_delta(close, 10))
经济解释:测量行业间联动强度与自身动量的协同效应
D. 情绪反转因子 = 过度交易信号 × 趋势强度
text
逻辑:在过度交易区域,强势趋势可能面临反转;在交易清淡区域,趋势可能延续
结构示例:multiply(reverse(ts_rank(divide(volume, ts_mean(volume, 20)), 10)), ts_delta(close, 20))
经济解释:交易活跃度异常高时反转动量信号,异常低时增强动量信号
2.3 关键操作符使用规范
1. ts_regression使用规范:
✅ 正确:reg_slope = ts_regression(close, ts_step(1), 30, 0, 1)
❌ 错误:避免深度嵌套,如ts_delta(ts_regression(close, ts_step(1), 30, 0, 1), 5)
✅ 替代方案:先计算回归斜率,再对其应用ts_delta
2. if_else条件表达式规范:
✅ 正确:if_else(ts_rank(ts_std_dev(returns, 60), 120) > 0.7, 短期动量, 长期动量)
❌ 错误:避免复杂序列比较,如ts_std_dev(returns, 60) > ts_mean(ts_std_dev(returns, 60), 120)
3. bucket分组函数规范:
✅ 正确:bucket(rank(volume), range="0,3,0.4") == 0(第一组为大成交量)
✅ 正确:group_mean(x, 1, bucket(rank(volume), range="0,3,0.4"))
注意字符串格式:range="起始值,组数,步长" 或 buckets="分割点列表"
4. 行业处理函数:
group_mean(x, weight, group): 计算组内加权平均
group_neutralize(x, group): 对组内进行中性化处理
group_rank(x, group): 计算组内排序
group_scale(x, group): 组内标准化到[0,1]
group_zscore(x, group): 计算组内z-score
2.4 参数选择逻辑
回顾期d应从以下具有市场意义的数值中选择:[5, 10, 20, 30, 60, 120]
5: 周度(5个交易日)
10: 双周
20: 月度(约20个交易日)
30: 月半
60: 季度
120: 半年
阈值参数从[0.5, 0.7, 0.8]中选择
同一因子内不同组件的参数应差异化,体现多时间尺度融合
三、因子组件库(可自由组合)
3.1 动量类组件
简单动量:ts_delta(close, {d})
回归动量:ts_regression(close, ts_step(1), {d}, 0, 1)(返回斜率)
加速动量:ts_delta(ts_delta(close, 5), 5)
排名动量:ts_rank(ts_delta(close, 20), 60)
3.2 波动性与风险调整组件
波动率:ts_std_dev(returns, {d})
平均绝对收益:ts_mean(abs(returns), {d})
波动率调整:divide(ts_delta(close, 20), ts_std_dev(returns, 20))
波动率状态:ts_rank(ts_std_dev(returns, 20), 60)
3.3 成交量与活跃度组件
成交量异常:divide(volume, ts_mean(volume, {d}))
成交量z-score:ts_zscore(volume, {d})
成交量排名:rank(volume)
成交量分布:bucket(rank(volume), range="0,3,0.4")
3.4 横截面调整组件
规模分组:if_else(rank(volume) > 0.7, 大市值组信号, 小市值组信号)
相对强弱:divide(ts_delta(close, 10), group_mean(ts_delta(close, 10), 1, industry))
行业中性化:group_neutralize(原始信号, industry)
3.5 相关性与时序关系组件
时间序列相关性:ts_corr({x}, {y}, {d})
协方差:ts_covariance({y}, {x}, {d})
领先滞后关系:ts_corr(ts_delay(x, 1), y, d)
四、因子构建原则
4.1 复杂度控制原则
嵌套层数建议不超过3层
每个表达式应有清晰的经济逻辑解释
避免过度优化和数据挖掘偏差
4.2 交易可行性原则
严格避免未来函数(只能使用历史信息)
考虑实际交易成本(避免高换手率因子)
使用hump(x, hump=0.01)平滑信号变化,降低换手
4.3 风险控制原则
包含波动率调整元素
考虑极端值处理(使用winsorize(x, std=4))
进行适当的标准化(normalize()或zscore())
4.4 行业轮动特异性
必须包含行业维度处理(group_*函数)
体现行业间传导、轮动、分化逻辑
考虑行业相对强弱与绝对动量的结合
五、表达式构建示例框架
示例1:行业注意力传导因子
text
经济逻辑:捕捉强势行业对弱势行业的注意力传导效应,测量追随行业对领导行业信号的响应速度和强度。
组件分解:
1. 识别领导行业:过去5日行业动量排名前30%
2. 测量响应强度:自身收益率与领导行业收益率的滞后相关性
3. 调整响应延迟:根据成交量调整,大成交量股票响应更快
4. 行业相对位置:在自身行业内的动量排名
示例2:摩擦差异化的动量因子
text
经济逻辑:在高摩擦(低流动性)股票中寻找未被充分消化的动量,在低摩擦股票中寻找快速衰减的反转机会。
组件分解:
1. 摩擦测量:成交量冲击的价格影响半衰期
2. 动量计算:不同摩擦环境下的最优动量窗口
3. 横截面调整:同摩擦水平股票间的相对强弱
4. 行业中性化:控制行业风格暴露
示例3:多周期形态共振因子
text
经济逻辑:识别短期、中期、长期价格趋势进入同步状态(共振)的股票,这些股票往往有更强的趋势持续性。
组件分解:
1. 多周期滤波:5日、20日、60日价格序列
2. 相位同步测量:不同周期序列方向一致性的时间比例
3. 共振强度:同步期的动量加速度
4. 行业调整:与行业共振状态的相对差异
*=====*
输出格式:
输出必须是且仅是纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
===================== !!! 重点(输出方式) !!! =====================
现在,请严格遵守以上所有规则,开始生成可立即在WebSim中运行的复合因子表达式。
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
=================================================================
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子: