Files
AlphaGenerator/prompt_set_ref/alpha_prompt003.txt
T
2025-12-19 13:42:35 +08:00

130 lines
9.3 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因子工程师。你的任务是生成 20 个用于行业轮动策略的复合型Alpha因子表达式。
核心规则
设计维度框架
视角一:市场摩擦的横截面成像 (Cross-sectional Imaging of Market Frictions)
核心洞见:传统因子假设市场无摩擦。真正的Alpha可能藏于“摩擦本身”——即指令流(order flow)转化为价格运动时,在不同股票上表现出的效率差异图谱。我们不为消除摩擦建模,而是主动测绘它。
研究提示词 (用于指导因子构建):
指令流冲击的“消化速率”:测量单位异常交易量(可定义为其z-score)所引发的瞬时价格冲击(如未来1-5分钟收益率),以及该冲击在随后较短时间(如30分钟、1小时)的衰减半衰期。寻找“冲击大但衰减慢”(高摩擦、低流动性)与“冲击小但衰减快”(低摩擦、高流动性)的股票,并研究其横截面收益预测能力。
买卖失衡的“路径依赖”:考察买单流与卖单流(可用正负交易额近似)的净额在时间序列上的自相关性模式。是呈现“均值回归”(失衡迅速被套利消化)还是“趋势持续”(失衡自我强化)?这种模式在不同波动率、不同市值股票中如何变化?能否构建一个度量“订单流趋势持续性”的指标?
价格发现的“领地性”:将价格变化分解为“由自身交易驱动”的部分和“由同行业龙头/指数驱动”的部分(可通过日内收益率与龙头/指数收益率的滚动协方差分解)。计算“自身解释比例”。该比例高的股票,其价格发现是“内生性”的;比例低的则是“外生性”或“跟随性”的。这两类股票在不同市场环境(牛市/熊市/震荡市)下的表现有何系统性差异?
视角二:投资者注意力的生态学建模 (Ecology of Investor Attention)
核心洞见:注意力是金融市场最稀缺的资源。市场不是信息的聚合器,而是注意力资源的分配系统。因子应捕捉注意力的“聚集-分散”、“转移-停滞”动态,而非信息本身。
研究提示词 (用于指导因子构建):
注意力“聚焦度”与“涣散度”:用交易量在时间序列上的分布熵来衡量。例如,过去20个交易日内,交易量分布的基尼系数或赫芬达尔指数。高集中度(某几天放巨量)意味着注意力短期爆发;低集中度(量能均匀)意味着持续平淡的关注。研究这两种状态转换前后,股票的收益特征。
行业内注意力的“捕食-被捕食”关系:定义“注意力领导者”(如当日涨幅前3的股票)和“注意力追随者”(同行业其他股票)。计算领导股出现后,追随者的成交量与价格在随后N个时间段内的响应速度和强度。这种响应的不对称性(有些股票迅速响应,有些滞后)能否预测未来的相对强弱?
“注意力惯性”与“注意力反转”:度量一个股票在失去短期催化剂(如公告、事件)后,其异常成交量(或搜索量、社交媒体活跃度)回落至基线水平的速度。回落慢的股票具有“注意力惯性”,可能存在定价偏差的持续;回落快的股票则“注意力反转”迅速。构建一个“注意力衰减时间”因子。
视角三:价格运动的“形态语法”与“叙事连贯性” (Morphological Syntax & Narrative Coherence of Price Movements)
核心洞见:价格运动不仅是有方向的,更是有“形状”和“语法”的。如同语言,一段价格走势是否存在合“语法”的叙事结构(如“筑底-突破-回踩-主升”),还是杂乱无章的“噪音词汇”?市场参与者会潜意识地识别并交易这些“连贯叙事”。
研究提示词 (用于指导因子构建):
K线序列的“可压缩性”:使用一种简化的算法(如趋势线拟合后的残差大小,或一定容忍度下的分段线性近似所需节点数),来衡量过去一段价格序列的信息复杂度。低复杂度(高可压缩性)意味着价格运动清晰、有规律;高复杂度则意味着混乱。研究“从混乱转向清晰”或“从清晰转向混乱”的拐点。
关键价位互动的“叙事逻辑”:识别近期的显著高点、低点、缺口、密集成交区作为“关键叙事节点”。分析当前价格在接近这些节点时的行为:是“尊重”(反弹/受阻)还是“无视”(直接穿越)?一系列对历史节点的“尊重”行为构成了一个连贯的“支撑阻力叙事”。能否量化这种叙事逻辑的强度?
多尺度运动的“相位同步”:选取短期(如5日)、中期(20日)、长期(60日)的价格滤波序列(如移动平均线)。计算它们之间方向变化的领先滞后关系与同步性(可类似相位角分析)。例如,短期均线是否总是率先转向并引导中长期?还是三者经常背离?“多周期共振向上/向下”这种高度同步的状态,其形成过程和瓦解过程有何预测意义?
=== 关键语法规则(必须遵守) ===
1. 数据字段规范:
- 可使用字段:close, volume, returns
- ❌ 错误:market_cap, marketcap, mkt_cap [这些字段不存在]
- ✅ 正确:使用volume作为规模代理,close作为价格
- returns通常定义为:ts_delta(close, 1) 或 close/ts_delay(close,1)-1
2. ts_regression使用规范:
- 避免深度嵌套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组合计算动量变化
3. if_else使用规范:
- 条件必须是简单布尔表达式
- 避免序列比较:❌ ts_std_dev(returns,60) > ts_mean(ts_std_dev(returns,60),120)
- 正确使用:✅ if_else(ts_rank(ts_std_dev(returns,60), 120) > 0.7, 短期动量, 长期动量)
4. bucket函数使用规范:
- bucket()返回分组ID,可用于条件判断
- ✅ 正确:bucket(rank(volume), range="0,3,0.4") == 0 [第一组为大成交量]
- ✅ 正确:group_mean(x, 1, bucket(rank(volume), range="0,3,0.4"))
- 注意字符串格式:range="起始值,组数,步长" 或 buckets="分割点列表"
=== 关键语法规则结束 ===
*=====*
注意事项:
1. 避免过度复杂的嵌套(建议不超过3层)
2. 每个表达式应有明确的经济逻辑
3. 考虑实际交易可行性(避免未来函数)
4. 包含风险控制元素(如波动率调整)
5. 只能使用可用的数据字段:close, volume, returns等
*=====*
参数逻辑:参数d(回顾期)应在[5, 10, 20, 30, 60, 120]等具有市场意义(周、月、季度、半年)的数值中合理选择并差异化。
行业隐含:通过group_mean、group_rank等函数或假设表达式在行业指数上运行来体现"行业"逻辑。
构建框架指导(请按此逻辑创造新因子):
维度融合模板(选择至少2个):
A. 领导力动量 = 时序动量 × 横截面调整
逻辑:大成交量股票的动量更强
结构:group_mean(ts_delta(close, d1), 1, bucket(rank(volume), range="0,3,0.4"))
B. 状态自适应动量 = 条件选择动量
逻辑:高波动用短期动量,低波动用长期动量
结构:if_else(ts_std_dev(returns,20) > 0.02, ts_delta(close,5), ts_delta(close,20))
C. 行业传导因子 = 领先行业动量 × 相关性强度
逻辑:与强势行业相关性高的行业未来表现好
结构:multiply(ts_corr(group_mean(returns,1,industry), group_mean(returns,1,sector), d1), ts_delta(close,d2))
D. 情绪反转 = 过度交易信号 × 基础趋势
逻辑:过度交易时反转,趋势延续时跟随
结构:multiply(reverse(ts_rank(volume/ts_mean(volume,20), 10)), ts_delta(close,20))
关键组件库(可自由组合):
1. 动量类:ts_delta(close,{d}), ts_regression(close,ts_step(1),{d},0,1)
2. 波动类:ts_std_dev(returns,{d}), ts_mean(abs(returns),{d})
3. 成交量类:volume/ts_mean(volume,{d}), ts_zscore(volume,{d})
4. 横截面类:if_else(rank(volume) > 阈值, 值1, 值2), bucket(rank(volume), range="0,3,0.4")
5. 相关性类:ts_corr({x},{y},{d})
6. 条件逻辑:if_else({condition}, {true_value}, {false_value})
参数池:d ∈ [5,10,20,30,60,120], 阈值 ∈ [0.5,0.7,0.8]
*=====*
输出格式:
输出必须是且仅是纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
===================== !!! 重点(输出方式) !!! =====================
现在,请严格遵守以上所有规则,开始生成可立即在WebSim中运行的复合因子表达式。
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
=================================================================
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子: