任务指令
你是一个WorldQuant WebSim因子工程师。你的任务是生成 10 个用于行业轮动策略的复合型Alpha因子表达式。
核心规则
设计维度框架

维度1：时间序列动量（TM）
目标：识别价格趋势的强度、速度和持续性
可用的具体构建方法：
1. 简单动量：ts_delta(close, d) [d=5,10,20,30,60]
2. 趋势斜率：ts_regression(close, ts_step(1), d, 0, 1) [rettype=1获取斜率]
3. 动量加速度：ts_delta(ts_regression(close, ts_step(1), d1, 0, 1), d2)
4. 平滑动量：ts_mean(returns, d) [returns=ts_delta(close,1)]
5. 动量衰减：ts_decay_linear(returns, d)
6. 价量关系：ts_corr(ts_delta(close,5), ts_delta(volume,5), d)
建议组合：使用不同d参数创建短期/中期/长期动量

维度2：横截面领导力（CL）
目标：识别行业内的龙头股和相对强度
具体构建方法：
1. 龙头股筛选：bucket(rank(market_cap), range="0,1,0.2") [第一组为龙头]
2. 龙头vs平均：group_mean(x, 1, bucket(rank(cap),range="0,1,0.2")) - group_mean(x, 1, 所有股票)
3. 行业内离散度：ts_std_dev(group_rank(returns, industry), 20)
4. 相对排名稳定性：ts_mean(rank(returns), d)

维度3：市场状态适应性（MS）
目标：根据波动率、趋势状态调整参数
具体构建方法：
1. 波动率调整：ts_delta(close,5) / ts_std_dev(returns,20)
2. 状态条件选择：if_else(ts_mean(returns,60)>0, 短期动量, 长期动量)
3. 参数动态化：if_else(ts_std_dev(returns,20)>X, 5, 20) [作为d参数]
4. 趋势状态识别：ts_mean(ts_delta(close,5), 20) > 0

基本结构：
复合因子 = 维度A组件 [运算符] 维度B组件 [条件调整]
*=====*
注意事项:
避免过度复杂的嵌套
使用经济直觉验证逻辑合理性
考虑实际交易可行性
包含风险控制元素（如波动率调整）
*=====*
参数逻辑：参数d（回顾期）应在[5, 10, 20, 30, 60, 120]等具有市场意义（周、月、季度、半年）的数值中合理选择并差异化。
行业隐含：通过group_mean、group_rank等函数或假设表达式在行业指数上运行来体现“行业”逻辑。
输出格式：
输出必须是且仅是纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹（如引号）、Markdown格式或额外文本。

*=====*
构建框架指导（请按此逻辑创造新因子）：

维度融合模板（选择至少2个）：

A. 领导力动量 = 时序动量 × 横截面调整
   逻辑：强势股的动量更强
   结构：group_mean(ts_momentum(close, d1), 1, bucket(rank(cap), range="0,3,0.4"))

B. 状态自适应动量 = 条件选择动量
   逻辑：高波动用短期动量，低波动用长期动量
   结构：if_else(ts_std_dev(ret,20)>X, ts_delta(close,5), ts_delta(close,20))

C. 行业传导因子 = 领先行业动量 × 相关性强度
   逻辑：与强势行业相关性高的行业未来表现好
   结构：ts_corr(group_mean(ret,1,ind_i), group_mean(ret,1,ind_j), d) × ts_delta(close,d2)

D. 情绪反转 = 过度交易信号 × 基础趋势
   逻辑：过度交易时反转，趋势延续时跟随
   结构：reverse(ts_rank(volume/ts_mean(volume,20), 10)) × ts_regression(close,ts_step(1),20,0,1)

关键组件库（可自由组合）：
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. 横截面类：bucket(rank({metric}), n), rank({x, y, z, ...})
5. 相关性类：ts_corr({x},{y},{d})
6. 条件逻辑：if_else({condition}, {true_value}, {false_value})

参数池：d ∈ [5,10,20,30,60,120], n ∈ [3,5,10]
*=====*

===================== !!! 重点(输出方式) !!! =====================
现在，请严格遵守以上所有规则，开始生成可立即在WebSim中运行的复合因子表达式。
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西)：
表达式

表达式

表达式

...

表达式
=================================================================

=== 关键语法规则（必须遵守） ===
1. if_else使用规范：
   - 条件必须是布尔值：如 ts_mean(x,20) > 0
   - 不能嵌套复杂条件：避免 if_else(A > B, X, Y) 其中A和B都是序列
   - 建议：if_else(ts_rank(volatility,30) > 0.7, 短期动量, 长期动量)

2. bucket函数使用规范：
   - bucket()返回分组ID，不能与数字直接比较
   - 正确用法：作为group_mean的group参数
   - 错误用法：bucket(rank(cap), [0,0.7,1.0]) == 1 ❌
   - 替代方案：用条件筛选代替
     正确：if_else(rank(cap) > 0.7, 龙头因子, 非龙头因子)

3. 操作符输入数量：
   - multiply, add等需要至少2个输入，但每个输入必须是单个表达式
   - 避免：multiply(A, if_else(B, C, D)) 可能导致参数数量解析错误
   - 建议：先计算中间变量或使用更简单结构

4. 类型兼容性：
   - 比较操作符（==, >, <）两边必须是相同类型
   - 分组类型不能与数值类型直接运算
=== 关键语法规则结束 ===

重申：请确保所有表达式都使用WorldQuant WebSim平台函数，不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
操作符使用策略：
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
操作符限制：只能且必须使用以下列表中提供的操作符。严禁使用任何列表外的函数（例如 ts_regression_slope 不存在，必须用 ts_regression(y, x, d, 0, 1) 来获取斜率）。