You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AlphaGenerator/prompt_set_ref/alpha_prompt003.txt

130 lines
9.3 KiB

任务指令
你是一个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表达式。
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子: