jack 3 months ago
parent 032ed50853
commit 5731e8c8fe
  1. 7
      ai_list.txt
  2. 219
      full_prompt.txt
  3. 5
      generated_alpha/2025-12-02/164547.txt
  4. 99
      generated_alpha/2025-12-02/175402.txt
  5. 125
      generated_alpha/2025-12-03/084615.txt
  6. 115
      generated_alpha/2025-12-03/101800.txt
  7. 127
      generated_alpha/2025-12-03/141439.txt
  8. 81
      generated_alpha/2025-12-04/103341.txt
  9. 90
      generated_alpha/2025-12-08/081835.txt
  10. 76
      generated_alpha/2025-12-08/090705.txt
  11. 82
      generated_alpha/2025-12-08/092309.txt
  12. 96
      generated_alpha/2025-12-08/095105.txt
  13. 106
      generated_alpha/2025-12-08/100004.txt
  14. 87
      generated_alpha/2025-12-09/094337.txt
  15. 110
      generated_alpha/2025-12-11/173635.txt
  16. 82
      generated_alpha/2025-12-11/175755.txt
  17. 242
      main.py
  18. 922
      manual_prompt/manual_prompt_20251211172257.txt
  19. 922
      manual_prompt/manual_prompt_20251211173031.txt
  20. 922
      manual_prompt/manual_prompt_20251211175017.txt
  21. 922
      manual_prompt/manual_prompt_20251211175551.txt
  22. 53
      prompt_set_ref/alpha_prompt001.txt
  23. 40
      prompt_set_ref/基础提示词.txt
  24. 17
      siliconflow_detail.py

@ -0,0 +1,7 @@
deepseek-ai/DeepSeek-V3.2-Exp
Pro/deepseek-ai/DeepSeek-V3.2-Exp
MiniMaxAI/MiniMax-M2
zai-org/GLM-4.6
Qwen/Qwen3-VL-235B-A22B-Instruct
inclusionAI/Ring-flash-2.0
moonshotai/Kimi-Dev-72B

@ -1,3 +1,219 @@
任务指令
你是一个WorldQuant WebSim因子工程师。你的任务是生成100个用于行业轮动策略的复合型Alpha因子表达式。
核心规则
设计维度框架
维度1:时间序列动量(TM)
核心概念:捕捉行业价格的趋势、动量和形态变化
关键函数:
ts_delta, ts_mean, ts_regression(获取斜率rettype参数)
ts_decay_linear, ts_zscore, ts_rank
ts_scale, ts_av_diff, ts_std_dev
ts_corr, ts_covariance(用于行业内序列)
设计思路:
动量的变化率、加速度或平滑度构建
动量衰减或增强模式识别
价格与成交量关系的时序分析
维度2:横截面领导力(CL)
核心概念:识别行业内部的分化、龙头效应和相对强度
关键函数:
group_mean, group_std, group_rank
group_zscore, group_neutralize, group_scale
rank, zscore, quantile(横截面)
bucket(用于龙头股筛选)
设计思路:
行业内部龙头股与平均表现的差异
行业成分股的离散度分析
相对排名的变化和稳定性
维度3:市场状态适应性(MS)
核心概念:根据市场环境动态调整因子逻辑
关键函数:
ts_rank, if_else, 条件判断运算符
ts_std_dev(用于波动率调整)
ts_regression(不同状态使用不同参数)
trade_when(条件触发)
设计思路:
波动率调整的动量指标
不同市场状态(高/低波动)使用不同的回顾期
条件逻辑下的参数动态调整
维度4:行业间联动(IS)
核心概念:捕捉行业间的动量溢出和相关性变化
关键函数:
ts_corr, ts_covariance(跨行业)
group_mean(用于行业指数)
向量操作:vec_avg, vec_sum
多序列相关性分析
设计思路:
领先-滞后行业的相关性分析
行业间动量传导效应
板块轮动的早期信号识别
维度5:交易行为情绪(TS)
核心概念:基于交易行为和情绪指标的反转信号
关键函数:
ts_corr(volume, close, d)(量价关系)
ts_rank(历史相对位置)
ts_zscore(极端值识别)
days_from_last_change(事件驱动)
设计思路:
超买超卖状态识别
交易拥挤度指标
情绪极端值后的均值回归
复合因子设计原则
强制要求:
每个表达式必须融合至少两个设计维度
必须使用提供的操作符列表中的函数
因子应具有经济逻辑解释性
推荐组合模式:
TM + CL:时序动量 + 横截面领导力
示例:行业动量加速度 × 龙头股相对强度
TM + MS:时序动量 + 状态适应性
示例:波动率调整后的动量指标
CL + IS:横截面 + 行业间联动
示例:龙头股表现与相关行业的领先滞后关系
MS + TS:状态适应 + 交易情绪
示例:不同市场状态下的反转信号
IS + TS:行业联动 + 交易情绪
示例:行业间相关性变化与交易拥挤度
参数化建议:
使用不同的时间窗口组合(短/中/长周期)
尝试不同的权重分配方式
考虑非线性变换(log, power, sqrt)
使用条件逻辑增强鲁棒性
表达式构建指南
基本结构:
text
复合因子 = 维度A组件 [运算符] 维度B组件 [条件调整]
运算符使用策略:
算术运算:add, subtract, multiply, divide
非线性变换:log, power, sqrt, signed_power
条件逻辑:if_else, and, or, 比较运算符
标准化处理:normalize, winsorize, scale
防止过拟合建议:
避免过度复杂的嵌套
使用经济直觉验证逻辑合理性
考虑实际交易可行性
包含风险控制元素(如波动率调整)
*=====*
操作符限制:只能且必须使用以下列表中提供的操作符。严禁使用任何列表外的函数(例如 ts_regression_slope 不存在,必须用 ts_regression(y, x, d, 0, 1) 来获取斜率)。
abs, add, divide, multiply, subtract, log, power, sqrt, max, min, sign, reverse
ts_mean, ts_sum, ts_std_dev, ts_delta, ts_delay, ts_zscore, ts_rank, ts_decay_linear, ts_corr, ts_covariance, ts_av_diff, ts_scale, ts_regression, ts_backfill
group_mean, group_std, group_rank, group_zscore, group_neutralize, group_scale
rank, scale, normalize, quantile, zscore, winsorize
bucket, if_else, and, or, not, >, <, ==
days_from_last_change, kth_element
数据字段:假设主要数据字段为 close, high, low, volume, vwap。可安全使用。
参数逻辑:参数d(回顾期)应在[5, 10, 20, 30, 60, 120]等具有市场意义(周、月、季度、半年)的数值中合理选择并差异化。
行业隐含:通过group_mean、group_rank等函数或假设表达式在行业指数上运行来体现“行业”逻辑。
输出格式:
输出必须是且仅是 100行纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
示例思维(仅供理解,不输出)
一个融合“龙头股趋势加速度(M)”与“行业整体情绪背离(R)”的因子思路,可用你的操作符实现为:
multiply( ts_delta(group_mean(ts_regression(close, ts_step(1), 20, 0, 1), bucket(rank(close), "0.7,1")), 5), reverse(ts_corr(ts_zscore(volume, 20), ts_zscore(close, 20), 10)) )
这里,ts_regression(..., rettype=1)获取斜率代替动量,bucket(rank(close), "0.7,1")近似选取市值前30%的龙头股,ts_corr(...)衡量价量情绪,reverse将其转化为背离信号。
现在,请严格遵守以上所有规则,开始生成100行可立即在WebSim中运行的复合因子表达式。
**输出格式**(一行一个表达式, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
请提供具体的WQ表达式。
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
以下是我的账号权限范围内可以使用的操作符和每个操作符的描述, 你可以参考, 请随意组合, 但禁止使用以下操作符以外的
Operator: abs(x)
Description: Absolute value of x
@ -195,3 +411,6 @@ Description: Normalizes the values in a group to be between 0 and 1. (x - groupm
Operator: group_zscore(x, group)
Description: Calculates group Z-score - numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean. zscore = (data - mean) / stddev of x for each instrument within its group.
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。

@ -0,0 +1,5 @@
group_scale(ts_delta(ts_mean(ts_delta(close,5),20),industry)
divide(ts_corr(close,ts_mean(close,60),20),ts_std_dev(close,20))
ts_corr(group_rank(close,industry),group_rank(market_cap,industry),10)
ts_rank(divide(subtract(close,ts_mean(close,20)),ts_std_dev(close,20)),10)
ts_delay(group_mean(ts_delta(close,5),1,industry),5)

@ -0,0 +1,99 @@
ts_delta(ts_delta(close, 20), 5) / (ts_decay_linear(ts_delta(close, 20), 20) + 0.01)
ts_delta(ts_delta(ts_delta(close, 10), 10), 5) / (ts_std_dev(ts_delta(close, 10), 20) + 0.01)
ts_corr(close, ts_step(1), 60) / (ts_std_dev(close, 20) + 0.01)
ts_delta(close, 1) / (ts_max(high, 20) - ts_min(low, 20) + 0.01)
ts_delta(close, 10) / (ts_delta(close, 20) + 0.01) - ts_delta(close, 20) / (ts_delta(close, 30) + 0.01)
ts_mean(ts_rank(close, 20), 10) / (ts_std_dev(ts_rank(close, 20), 10) + 0.01)
ts_corr(close, ts_delta(close, 10), 30) * ts_delta(ts_delta(close, 10), 5)
ts_delta(ts_delta(close, 5), 3) / (close + 0.01)
1 / (ts_std_dev(ts_rank(ts_delta(close, 10), 20), 30) + 0.01)
ts_std_dev(ts_delta(close, 10), 20) / (abs(ts_mean(ts_delta(close, 10), 20)) + 0.01)
(close - ts_delay(close, 30)) / (ts_sum(abs(ts_delta(close, 1)), 30) + 0.01)
ts_delta(ts_decay_linear(volume * close, 20), 5) / (ts_mean(volume, 20) + 0.01)
ts_corr(ts_delta(close, 10), ts_delta(close, 30), 60) * ts_delta(close, 20)
ts_delta(ts_regression(close, ts_step(1), 60, 0, 1), 10)
log(ts_sum(abs(ts_delta(close, 1)), 20)) / (log(abs(ts_delta(close, 20)) + 0.01) + 0.01)
ts_delta(close, 5) / (ts_delay(close, 5) - ts_min(close, 20) + 0.01)
ts_delta(close, 10) / (ts_std_dev(close, 10) + 0.01)
ts_corr(close, volume, 20) * ts_delta(close, 10) / (ts_std_dev(close, 20) + 0.01)
ts_delta(ts_max(high, 20) - ts_min(low, 20), 5) / (ts_max(high, 20) - ts_min(low, 20) + 0.01)
ts_zscore(ts_delta(close, 10), 20) / (ts_std_dev(ts_delta(close, 5), 10) + 0.01)
group_mean(if_else(ts_std_dev(close, 20) < group_mean(ts_std_dev(close, 20), 1, sector), 1, 0), 1, sector)
1 / (group_mean(ts_std_dev(volume, 20), 1, sector) + 0.01)
group_mean(if_else(market_cap > group_mean(market_cap, 1, sector), ts_delta(close, 20), 0), market_cap, sector) / (group_mean(market_cap, 1, sector) + 0.01)
group_mean(ts_corr(close, ts_mean(close, 1), 60), 1, sector) / (ts_std_dev(close, 20) + 0.01)
group_mean(ts_delta(close, 20) / (ts_std_dev(close, 20) + 0.01), 1, sector)
group_neutralize(ts_delta(close, 10), sector) / (ts_std_dev(group_neutralize(ts_delta(close, 10), sector), 20) + 0.01)
group_mean(if_else(ts_delta(close, 5) < 0, ts_delta(close, 5), 0), 1, sector) / (ts_std_dev(close, 20) + 0.01)
group_mean(volume, 1, sector) / (group_mean(ts_std_dev(volume, 20), 1, sector) + 0.01)
1 / (group_mean(ts_std_dev(close, 5), 1, sector) + 0.01)
ts_delta(group_mean(ts_std_dev(close, 20), 1, sector), 10)
group_mean(ts_corr(close, ts_std_dev(close, 20), 30), 1, sector)
group_mean(if_else(close < ts_delay(close, 1), close / (ts_delay(close, 1) + 0.01), 1), 1, sector)
group_mean(ts_zscore(ts_delta(close, 10), 20), 1, sector) / (ts_std_dev(close, 20) + 0.01)
group_mean(ts_delta(close, 20), 1, sector) / (ts_mean(ts_delta(close, 20), 1) + 0.01)
group_mean(volume / (ts_std_dev(close, 20) + 0.01), 1, sector)
group_mean(ts_corr(close, ts_delay(close, 1), 20), 1, sector)
ts_delta(group_mean(ts_delta(close, 20) * market_cap, market_cap, sector), 10) / (group_mean(market_cap, 1, sector) + 0.01)
group_mean(ts_delta(ts_decay_linear(close * volume, 20) / (ts_decay_linear(volume, 20) + 0.01), 1, sector), 10)
group_mean(ts_delta(close, 1) / (ts_std_dev(close, 20) + 0.01), 1, sector)
group_mean(ts_corr(close, volume, 20), 1, sector)
group_mean(ts_delta(close, 20), market_cap, sector) - group_mean(ts_delta(close, 20), 1, sector)
group_mean(abs(group_rank(ts_delta(close, 20), sector) - 0.5), 1, sector) * 2
group_mean(if_else(group_rank(market_cap, sector) > 0.8, ts_delta(close, 20), 0), 1, sector)
ts_delta(group_mean(ts_delta(close, 5), market_cap, sector), 5) / (ts_delta(group_mean(ts_delta(close, 20), 1, sector), 5) + 0.01)
group_mean(ts_delay(ts_delta(close, 10), 5), market_cap, sector) / (ts_mean(ts_delta(close, 10), 1, sector) + 0.01)
ts_delta(group_neutralize(ts_delta(close, 1), sector), 10)
group_mean(ts_std_dev(close, 20), market_cap, sector) / (group_mean(ts_std_dev(close, 20), 1, sector) + 0.01)
group_mean(ts_delta(close, 20), market_cap, sector) - group_mean(ts_delta(close, 20), 1, sector)
group_mean(if_else(ts_delta(close, 5) > group_mean(ts_delta(close, 5), 1, sector), 1, 0), 1, sector)
ts_delta(group_mean(ts_delta(close, 10), market_cap, sector), 5)
group_mean(volume * close, market_cap, sector) / (group_mean(volume * close, 1, sector) + 0.01)
group_mean(ts_delta(close, 20) / (ts_std_dev(close, 20) + 0.01), market_cap, sector)
group_mean(ts_zscore(close, 60), market_cap, sector) - group_mean(ts_zscore(close, 60), 1, sector)
group_mean(abs(group_rank(ts_delta(close, 20), sector) - 0.5), 1, sector) * group_mean(ts_delta(close, 20), 1, sector)
group_mean(ts_delta(close, 20), if_else(market_cap > group_mean(market_cap, 1, sector), market_cap, 0), sector) - group_mean(ts_delta(close, 20), if_else(market_cap <= group_mean(market_cap, 1, sector), market_cap, 0), sector)
ts_delta(group_mean(if_else(group_rank(ts_delta(close, 10), sector) > 0.8, ts_delta(close, 10), 0), 1, sector), 5)
group_mean(if_else(ts_delta(close, 5) < 0, ts_delta(close, 5), 0), market_cap, sector) / (group_mean(if_else(ts_delta(close, 5) < 0, ts_delta(close, 5), 0), 1, sector) + 0.01)
ts_corr(group_mean(ts_delta(close, 5), 1, sector), group_mean(ts_delta(close, 10), 1, sector), 20)
ts_std_dev(group_mean(ts_delta(close, 10), market_cap, sector), 30) / (ts_std_dev(group_mean(ts_delta(close, 10), 1, sector), 30) + 0.01)
(close - ts_mean(close, 20)) / (ts_std_dev(close, 20) + 0.01)
ts_rank(volume, 60) / 60
(close - vwap) / (vwap + 0.01)
(ts_max(high, 60) - close) / (ts_max(high, 60) - ts_min(low, 60) + 0.01)
(close - ts_decay_linear(close * volume, 20) / (ts_decay_linear(volume, 20) + 0.01)) / (ts_std_dev(close, 20) + 0.01)
ts_sum(if_else(ts_delta(close, 1) > 0, ts_delta(close, 1), 0), 14) / (ts_sum(abs(ts_delta(close, 1)), 14) + 0.01)
if_else(close > ts_max(high, 20), 1, 0) * ts_delta(ts_rank(close, 20), 5)
ts_zscore(close, 5) - ts_zscore(close, 20)
ts_delta(volume, 1) / (ts_mean(volume, 20) + 0.01)
ts_corr(close, volume, 20) * (close - ts_mean(close, 20)) / (ts_std_dev(close, 20) + 0.01)
ts_std_dev(close, 5) / (ts_std_dev(close, 20) + 0.01)
ts_rank(close, 60) - 0.5
ts_corr(ts_delta(volume, 5), ts_delta(close, 5), 20) * (close - ts_mean(close, 20))
(ts_delta(close, 10) - group_mean(ts_delta(close, 10), 1, sector)) / (ts_std_dev(ts_delta(close, 10) - group_mean(ts_delta(close, 10), 1, sector), 20) + 0.01)
(close - ts_mean(close, 20)) / (ts_decay_linear(ts_std_dev(close, 20), 20) + 0.01)
-reverse(ts_delta(close, 10) - group_mean(ts_delta(close, 10), 1, sector)) / (ts_mean(abs(ts_delta(close, 10) - group_mean(ts_delta(close, 10), 1, sector)), 20) + 0.01)
(close * volume - ts_decay_linear(close * volume, 20)) / (ts_std_dev(close * volume, 20) + 0.01)
ts_rank(ts_std_dev(close, 20), 60) - 0.5
ts_delta(close, 3) / (ts_std_dev(close, 20) + 0.01)
ts_corr(close, volume, 20) * ts_zscore(close, 20) * ts_zscore(volume, 20)
group_mean(ts_delta(close, 20), 1, sector) - ts_mean(ts_delta(close, 20), 1)
ts_delay(group_mean(ts_delta(close, 10), 1, sector), 5) / (ts_mean(ts_delta(close, 10), 1) + 0.01)
ts_delta(group_mean(ts_corr(close, ts_std_dev(close, 20), 30), 1, sector), 10)
group_mean(ts_delta(close, 20), 1, sector) / (ts_mean(group_mean(ts_delta(close, 20), 1, sector), 5) + 0.01)
ts_corr(group_mean(ts_delta(close, 5), 1, sector), ts_mean(ts_delta(close, 5), 1), 30)
group_mean(ts_delta(close, 20), 1, sector) / (ts_mean(ts_delta(close, 20), 1) + 0.01)
ts_covariance(group_mean(ts_delta(close, 10), 1, sector), ts_mean(ts_delta(close, 10), 1), 30) / (ts_variance(ts_mean(ts_delta(close, 10), 1), 30) + 0.01)
ts_corr(group_mean(close, 1, sector), ts_mean(close, 1), 60)
ts_delta(group_mean(ts_delta(close, 10), 1, sector), 5) / (ts_delta(ts_mean(ts_delta(close, 10), 1), 5) + 0.01)
group_mean(ts_std_dev(close, 20), 1, sector) / (ts_mean(ts_std_dev(close, 20), 1) + 0.01)
group_mean(ts_delta(close, 20), 1, sector) - ts_delay(ts_mean(ts_delta(close, 20), 1), 5)
ts_arg_max(group_mean(ts_delta(close, 5), 1, sector), 20) / 20
group_mean(volume, 1, sector) / (ts_mean(volume, 1) + 0.01)
ts_corr(group_mean(if_else(ts_delta(close, 5) > 0, 1, 0), 1, sector), ts_mean(if_else(ts_delta(close, 5) > 0, 1, 0), 1), 30)
ts_std_dev(group_mean(ts_delta(close, 10), 1, sector) / (ts_mean(ts_delta(close, 10), 1) + 0.01), 30)
ts_delta(group_mean(ts_std_dev(close, 20), 1, sector), 10) / (ts_delta(ts_mean(ts_std_dev(close, 20), 1), 10) + 0.01)
ts_delta(group_mean(ts_delta(close, 20), 1, sector), 10) - ts_delta(ts_mean(ts_delta(close, 20), 1), 10)
ts_mean(group_mean(ts_delta(close, 10), 1, sector) / (ts_mean(ts_delta(close, 20), 1) + 0.01), 20)
group_mean(close, 1, sector) / (ts_mean(close, 1) + 0.01) - ts_delay(group_mean(close, 1, sector) / (ts_mean(close, 1) + 0.01), 20)
ts_decay_linear(group_mean(ts_delta(close, 10), 1, sector), 10) / (ts_decay_linear(ts_mean(ts_delta(close, 10), 1), 10) + 0.01)

@ -0,0 +1,125 @@
Here are the 100 alpha factors grouped by the five dimensions:
### 趋势动能形态因子 (Trend Momentum)
```python
ts_delta(ts_zscore(close, 20), 10)
ts_regression(ts_zscore(close, 20), ts_step(1), 100, rettype=1)
ts_std_dev(ts_delta(close, 5), 20)
ts_zscore(ts_regression(close, ts_step(1), 60, rettype=0), 12)
ts_delta(ts_std_dev(close, 20), 10)
ts_corr(ts_delta(close, 5), ts_step(1), 20)
ts_regression(ts_zscore(close, 12), ts_step(1), 60, rettype=4)
ts_delta(ts_regression(close, ts_step(1), 30, rettype=1), 15)
ts_scale(ts_delta(close, 10), 60)
ts_zscore(ts_delta(close, 20), 60)
ts_regression(ts_delta(close, 5), ts_step(1), 30, rettype=1)
ts_std_dev(ts_regression(close, ts_step(1), 20, rettype=1), 40)
ts_delta(ts_zscore(close, 14), 7)
ts_regression(ts_zscore(close, 10), ts_step(1), 50, rettype=3)
ts_corr(ts_delta(close, 10), ts_step(1), 30)
ts_zscore(ts_regression(close, ts_step(1), 25, rettype=0), 30)
ts_delta(ts_regression(ts_zscore(close, 15), ts_step(1), 40, rettype=1), 10)
ts_std_dev(ts_zscore(close, 20), 10)
ts_regression(ts_zscore(close, 5), ts_step(1), 20, rettype=1)
ts_delta(ts_std_dev(ts_zscore(close, 10), 20), 5)
```
### 行业质量与市场环境适配度因子 (Industry Quality & Market Fit)
```python
market_cap * inverse(ts_std_dev(close, 60))
market_cap * ts_zscore(close, 120)
market_cap / ts_std_dev(volume, 30)
ts_zscore(market_cap, 240) * inverse(ts_zscore(ts_std_dev(close, 30), 240))
market_cap * ts_correlation(close, vwap, 60)
market_cap * inverse(ts_max(ts_std_dev(close, 20), 120))
market_cap / ts_sum(ts_std_dev(close, 10), 60)
ts_zscore(market_cap, 360) * inverse(ts_zscore(ts_std_dev(close, 30), 360))
market_cap * ts_correlation(close, volume, 60)
market_cap * inverse(ts_std_dev(ts_zscore(close, 20), 60))
market_cap / ts_std_dev(ts_zscore(close, 10), 60)
ts_zscore(market_cap, 480) * inverse(ts_zscore(ts_std_dev(close, 30), 480))
market_cap * ts_correlation(ts_zscore(close, 20), ts_zscore(volume, 20), 60)
market_cap * inverse(ts_std_dev(ts_zscore(close, 10), 60))
market_cap / ts_std_dev(ts_zscore(close, 15), 90)
ts_zscore(market_cap, 600) * inverse(ts_zscore(ts_std_dev(close, 30), 600))
market_cap * ts_correlation(ts_zscore(close, 30), ts_zscore(volume, 30), 60)
market_cap * inverse(ts_std_dev(ts_zscore(close, 20), 90))
market_cap / ts_std_dev(ts_zscore(close, 25), 120)
ts_zscore(market_cap, 720) * inverse(ts_zscore(ts_std_dev(close, 30), 720))
```
### 行业内部分化与领导力因子 (Intra-Industry Dynamics)
```python
group_std_dev(close, industry)
group_corr(close, group_rank(market_cap, industry), 12)
group_zscore(ts_zscore(close, 20), industry)
group_mean(ts_zscore(close, 10), industry)
group_std_dev(ts_zscore(close, 15), industry)
group_corr(ts_zscore(close, 5), group_rank(market_cap, industry), 20)
group_zscore(ts_delta(close, 10), industry)
group_mean(ts_delta(close, 5), industry)
group_std_dev(ts_delta(close, 20), industry)
group_corr(ts_delta(close, 15), group_rank(market_cap, industry), 30)
group_zscore(ts_zscore(close, 10), industry)
group_mean(ts_zscore(close, 5), industry)
group_std_dev(ts_zscore(close, 20), industry)
group_corr(ts_zscore(close, 10), group_rank(market_cap, industry), 20)
group_zscore(ts_delta(close, 5), industry)
group_mean(ts_delta(close, 10), industry)
group_std_dev(ts_delta(close, 15), industry)
group_corr(ts_delta(close, 25), group_rank(market_cap, industry), 40)
group_zscore(ts_zscore(close, 15), industry)
group_mean(ts_zscore(close, 20), industry)
```
### 超买超卖与情绪反转因子 (Overbought/Oversold & Reversal)
```python
ts_zscore(close, 14)
ts_delta(ts_zscore(close, 14), 5)
ts_zscore(ts_delta(close, 5), 20)
ts_std_dev(ts_zscore(close, 14), 20)
ts_zscore(ts_std_dev(close, 14), 20)
ts_delta(ts_std_dev(close, 14), 5)
ts_zscore(ts_delta(close, 1), 5)
ts_zscore(ts_delta(close, 5), 5)
ts_zscore(ts_delta(close, 10), 5)
ts_zscore(ts_delta(close, 15), 5)
ts_zscore(ts_delta(close, 20), 5)
ts_zscore(ts_delta(close, 25), 5)
ts_zscore(ts_delta(close, 30), 5)
ts_zscore(ts_delta(close, 35), 5)
ts_zscore(ts_delta(close, 40), 5)
ts_zscore(ts_delta(close, 45), 5)
ts_zscore(ts_delta(close, 50), 5)
ts_zscore(ts_delta(close, 55), 5)
ts_zscore(ts_delta(close, 60), 5)
ts_zscore(ts_delta(close, 65), 5)
```
### 行业间关联与动量溢出因子 (Inter-Industry Momentum Spillover)
```python
ts_delta(group_mean(ts_zscore(close, 20), industry), 1)
ts_corr(group_mean(ts_zscore(close, 20), industry), ts_step(1), 12)
group_zscore(ts_delta(group_mean(close, industry), 1), industry)
ts_regression(group_mean(ts_zscore(close, 20), industry), ts_step(1), 12, rettype=1)
ts_std_dev(group_mean(ts_zscore(close, 20), industry), 12)
ts_zscore(ts_delta(group_mean(close, industry), 5), 12)
ts_corr(group_mean(ts_zscore(close, 10), industry), ts_step(1), 12)
group_zscore(ts_delta(group_mean(close, industry), 10), industry)
ts_regression(group_mean(ts_zscore(close, 10), industry), ts_step(1), 12, rettype=1)
ts_std_dev(group_mean(ts_zscore(close, 10), industry), 12)
ts_zscore(ts_delta(group_mean(close, industry), 15), 12)
ts_corr(group_mean(ts_zscore(close, 15), industry), ts_step(1), 12)
group_zscore(ts_delta(group_mean(close, industry), 20), industry)
ts_regression(group_mean(ts_zscore(close, 15), industry), ts_step(1), 12, rettype=1)
ts_std_dev(group_mean(ts_zscore(close, 15), industry), 12)
ts_zscore(ts_delta(group_mean(close, industry), 25), 12)
ts_corr(group_mean(ts_zscore(close, 20), industry), ts_step(1), 12)
group_zscore(ts_delta(group_mean(close, industry), 30), industry)
ts_regression(group_mean(ts_zscore(close, 20), industry), ts_step(1), 12, rettype=1)
ts_std_dev(group_mean(ts_zscore(close, 20), industry), 12)
```
Each set of factors targets a specific dimension of industry selection, leveraging WebSim's time series and group functions to capture nuanced market dynamics. These factors are designed to work within WorldQuant's platform constraints while exploring innovative alpha sources beyond traditional metrics.

@ -0,0 +1,115 @@
Here are 100 WebSim alpha factors designed around the specified dimensions:
```python
### 趋势动能形态因子 (Trend Momentum Shape)
ts_delta(ts_rank(close, 12), 1)
ts_zscore(ts_delta(close, 1), 20)
ts_regression(close, ts_step(1), 12, 0, 1)
ts_arg_min(ts_zscore(close, 20), 60)
(ts_max(ts_delta(close, 1), 20) - ts_min(ts_delta(close, 1), 20)) / ts_std_dev(close, 20)
ts_scale(ts_delta(close, 1), 12)
ts_zscore(ts_std_dev(close, 12), 24)
ts_corr(ts_delta(close, 1), ts_step(1), 12)
ts_max(ts_zscore(close, 12), 12) - ts_min(ts_zscore(close, 12), 12)
ts_delta(ts_zscore(close, 20), 5)
ts_zscore(ts_corr(close, ts_delay(close, 1), 20), 12)
ts_quantile(ts_delta(close, 1), 20, "gaussian")
ts_zscore(ts_scale(ts_delta(close, 1), 12), 24)
ts_delta(ts_zscore(close, 24), 1)
ts_zscore(ts_arg_max(close, 12), 24)
ts_zscore(ts_quantile(close, 12, "gaussian"), 24)
(ts_delta(ts_zscore(close, 10), 1) - ts_delta(ts_zscore(close, 20), 1)) / 10
ts_zscore(ts_delta(ts_corr(close, ts_delay(close, 1), 20), 5), 12)
ts_arg_max(ts_delta(close, 1), 20)
ts_quantile(ts_corr(close, ts_delay(close, 1), 12), 20, "gaussian")
### 行业质量与市场环境适配度因子 (Industry Quality & Market Environment Fit)
group_mean(ts_zscore(close, 20), industry) * ts_zscore(ts_std_dev(close, 20), 20)
group_rank(ts_zscore(volume, 20), industry) * ts_zscore(close, 60)
group_mean(ts_zscore(close, 12), industry) / group_std_dev(close, 60)
group_scale(ts_zscore(close, 24), industry) * ts_zscore(ts_corr(close, ts_delay(close, 1), 12), 24)
group_zscore(ts_zscore(close, 60), industry) + ts_zscore(ts_std_dev(close, 60))
group_rank(ts_zscore(ts_mean(close, 12), 12), industry) * ts_zscore(close, 60)
group_scale(group_rank(ts_zscore(close, 20), industry), industry) * ts_zscore(ts_std_dev(close, 20))
group_mean(ts_zscore(close, 12), industry) - group_std_dev(ts_zscore(close, 12), industry)
group_zscore(ts_zscore(close, 60), industry) * ts_zscore(ts_std_dev(close, 12))
group_rank(ts_zscore(ts_std_dev(close, 12), 24), industry) * ts_zscore(close, 60)
group_mean(ts_corr(close, ts_delay(close, 1), 12), industry) * ts_zscore(close, 24)
group_rank(ts_zscore(ts_sum(volume, 12), 24), industry) * ts_zscore(close, 60)
group_scale(ts_zscore(ts_std_dev(close, 24), 12), industry) * ts_zscore(close, 24)
group_zscore(ts_zscore(ts_corr(close, ts_delay(close, 1), 20), 12), industry) + ts_zscore(ts_std_dev(close, 12))
group_rank(ts_zscore(ts_max(close, 20), 12), industry) * ts_zscore(close, 60)
group_scale(ts_zscore(close, 12), industry) / group_std_dev(ts_zscore(close, 12), industry)
group_rank(ts_zscore(ts_quantile(close, 20, "gaussian"), 24), industry) * ts_zscore(close, 60)
group_mean(ts_zscore(ts_sum(close, 12), 24), industry) * ts_zscore(close, 60)
group_zscore(ts_zscore(ts_corr(volume, ts_delay(volume, 1), 12), 24), industry) * ts_zscore(close, 60)
group_rank(ts_zscore(ts_std_dev(volume, 12), 24), industry) * ts_zscore(close, 60)
### 行业内部分化与领导力因子 (Intra-Industry Differentiation & Leadership)
group_std_dev(ts_zscore(close, 20), industry) * ts_zscore(close, 60)
group_mean(ts_corr(close, ts_delay(close, 1), 20), industry) - group_std_dev(ts_corr(close, ts_delay(close, 1), 20), industry)
group_rank(ts_zscore(close, 20), industry) - group_mean(ts_rank(close, 20), industry)
group_std_dev(ts_rank(close, 20), industry) * ts_zscore(close, 60)
group_scale(ts_zscore(close, 20), industry) * group_std_dev(ts_zscore(close, 20), industry)
group_zscore(ts_zscore(close, 20), industry) + group_std_dev(ts_zscore(close, 20), industry)
group_rank(ts_zscore(close, 20), industry) * group_std_dev(ts_zscore(close, 20), industry)
group_std_dev(ts_zscore(close, 10), industry) - group_std_dev(ts_zscore(close, 30), industry)
group_mean(ts_zscore(close, 10), industry) - group_mean(ts_zscore(close, 30), industry)
group_std_dev(ts_zscore(close, 10), industry) * group_std_dev(ts_zscore(close, 30), industry)
group_rank(ts_zscore(ts_corr(close, ts_delay(close, 1), 20), industry) - group_std_dev(ts_corr(close, ts_delay(close, 1), 20), industry)
group_std_dev(ts_rank(close, 10), industry) - group_std_dev(ts_rank(close, 30), industry)
group_mean(ts_rank(close, 10), industry) - group_mean(ts_rank(close, 30), industry)
group_std_dev(ts_rank(close, 10), industry) * group_std_dev(ts_rank(close, 30), industry)
group_rank(ts_zscore(ts_sum(close, 10), 20), industry) - group_rank(ts_zscore(ts_sum(close, 30), 20), industry)
group_scale(ts_zscore(close, 10), industry) * group_std_dev(ts_zscore(close, 30), industry)
group_zscore(ts_zscore(close, 10), industry) + group_std_dev(ts_zscore(close, 30), industry)
group_rank(ts_zscore(ts_corr(close, ts_delay(close, 1), 10), 20), industry) - group_rank(ts_zscore(ts_corr(close, ts_delay(close, 1), 30), 20), industry)
group_std_dev(ts_zscore(ts_sum(volume, 10), 20), industry) * ts_zscore(close, 60)
group_mean(ts_zscore(ts_sum(volume, 10), 20), industry) * ts_zscore(close, 60)
### 超买超卖与情绪反转因子 (Overbought/Oversold & Sentiment Reversal)
ts_zscore(close, 20) * ts_zscore(volume, 20)
ts_quantile(close, 20, "gaussian") / ts_zscore(close, 20)
ts_zscore(close, 20) - ts_zscore(ts_quantile(close, 20, "gaussian"), 20)
ts_zscore(ts_delta(close, 1), 20) * ts_zscore(volume, 20)
ts_zscore(ts_std_dev(close, 20), 20) * ts_zscore(close, 20)
ts_zscore(ts_corr(close, ts_delay(close, 1), 20), 20) / ts_zscore(close, 20)
ts_zscore(ts_max(close, 20) / close - 1, 20)
ts_zscore(ts_min(close, 20) / close - 1, 20)
ts_zscore(ts_max(close, 20) - close, 20) / ts_zscore(close, 20)
ts_zscore(ts_min(close, 20) - close, 20) / ts_zscore(close, 20)
ts_zscore(ts_quantile(ts_delta(close, 1), 20, "gaussian"), 20)
ts_zscore(ts_std_dev(ts_delta(close, 1), 20), 20) * ts_zscore(close, 20)
ts_zscore(ts_corr(ts_delta(close, 1), ts_delta(volume, 1), 20), 20)
ts_zscore(ts_max(close, 60) - close, 20) / ts_zscore(close, 20)
ts_zscore(ts_min(close, 60) - close, 20) / ts_zscore(close, 20)
ts_zscore(ts_delta(ts_zscore(close, 20), 1), 10) * ts_zscore(volume, 20)
ts_zscore(ts_std_dev(ts_zscore(close, 20), 10), 20) * ts_zscore(close, 20)
ts_zscore(ts_corr(close, ts_delay(close, 5), 20), 20) * ts_zscore(close, 20)
ts_zscore(ts_corr(ts_quantile(close, 20, "gaussian"), ts_delay(close, 1), 20), 20)
ts_zscore(ts_delta(ts_quantile(close, 20, "gaussian"), 1), 20) * ts_zscore(volume, 20)
### 行业间关联与动量溢出因子 (Inter-Industry Correlation & Momentum Spillover)
ts_zscore(ts_corr(group_mean(ts_zscore(close, 12), industry), ts_zscore(close, 12), 20), 20)
ts_zscore(ts_covariance(group_mean(ts_zscore(close, 12), industry), ts_zscore(close, 12), 20), 20)
group_rank(ts_zscore(ts_corr(ts_zscore(close, 12), group_mean(ts_zscore(close, 12), industry), 20)), industry)
ts_zscore(ts_regression(group_mean(ts_zscore(close, 12), industry), ts_zscore(close, 12), 20, 0, 1), 20)
group_scale(ts_zscore(ts_corr(group_mean(ts_zscore(close, 12), industry), ts_zscore(close, 12), 20)), industry)
group_zscore(ts_zscore(ts_covariance(group_mean(ts_zscore(close, 12), industry), ts_zscore(close, 12), 20)), industry)
group_rank(ts_zscore(ts_regression(group_mean(ts_zscore(close, 12), industry), ts_zscore(close, 12), 20, 0, 1)), industry)
group_std_dev(ts_zscore(ts_corr(group_mean(ts_zscore(close, 12), industry), ts_zscore(close, 12), 20)), industry)
group_mean(ts_zscore(ts_regression(group_mean(ts_zscore(close, 12), industry), ts_zscore(close, 12), 20, 0, 1)), industry)
group_scale(ts_zscore(ts_corr(ts_zscore(close, 12), ts_zscore(group_mean(close, 5), industry), 20)), industry)
ts_zscore(ts_corr(group_std_dev(ts_zscore(close, 12), industry), ts_zscore(close, 12), 20), 20)
ts_zscore(ts_covariance(group_std_dev(ts_zscore(close, 12), industry), ts_zscore(close, 12), 20), 20)
group_rank(ts_zscore(ts_corr(ts_zscore(ts_std_dev(close, 12)), group_mean(ts_zscore(close, 12), industry), 20)), industry)
ts_zscore(ts_regression(group_std_dev(ts_zscore(close, 12), industry), ts_zscore(close, 12), 20, 0, 1), 20)
group_scale(ts_zscore(ts_corr(group_mean(ts_zscore(close, 24), industry), ts_zscore(close, 24), 20)), industry)
group_zscore(ts_zscore(ts_covariance(group_mean(ts_zscore(close, 24), industry), ts_zscore(close, 24), 20)), industry)
group_rank(ts_zscore(ts_regression(group_mean(ts_zscore(close, 24), industry), ts_zscore(close, 24), 20, 0, 1)), industry)
group_std_dev(ts_zscore(ts_corr(group_mean(ts_zscore(close, 24), industry), ts_zscore(close, 24), 20)), industry)
group_mean(ts_zscore(ts_regression(group_mean(ts_zscore(close, 24), industry), ts_zscore(close, 24), 20, 0, 1)), industry)
group_scale(ts_zscore(ts_corr(ts_zscore(close, 24), ts_zscore(group_mean(close, 10), industry), 20)), industry)
```

@ -0,0 +1,127 @@
```python
### Dimension 1: Trend Kinetic Form
```
1. `ts_zscore(multiply(ts_delta(ts_regression(close, 60, 1), 1), ts_regression(close, 60, 3)), 20)`
2. `ts_zscore(ts_delta(ts_regression(close, 20, 1), 1), 10)`
3. `ts_zscore(ts_regression(close, 60, 3), 20)`
4. `ts_zscore(ts_scale(ts_delta(close, 5), 20), 10)`
5. `ts_zscore(ts_corr(ts_delta(close, 1), ts_delta(close, 5), 20), 10)`
6. `ts_zscore(ts_decay_linear(ts_delta(close, 1), 20), 10)`
7. `ts_zscore(ts_product(ts_delta(close, 1), 10), 20)`
8. `ts_zscore(ts_std_dev(ts_delta(close, 1), 10), 20)`
9. `ts_zscore(ts_mean(ts_delta(close, 1), 20), 10)`
10. `ts_zscore(ts_quantile(ts_delta(close, 1), 20, driver="gaussian"), 10)`
11. `ts_zscore(ts_step(ts_delta(close, 1)), 10)`
12. `ts_zscore(ts_arg_max(ts_delta(close, 1), 20), 10)`
13. `ts_zscore(ts_arg_min(ts_delta(close, 1), 20), 10)`
14. `ts_zscore(ts_av_diff(ts_delta(close, 1), 20), 10)`
15. `ts_zscore(ts_backfill(ts_delta(close, 1), 20), 10)`
16. `ts_zscore(ts_count_nans(ts_delta(close, 1), 20), 10)`
17. `ts_zscore(ts_covariance(ts_delta(close, 1), ts_delta(close, 5), 20), 10)`
18. `ts_zscore(ts_delay(ts_delta(close, 1), 5), 10)`
19. `ts_zscore(ts_delta(ts_delta(close, 1), 1), 10)`
20. `ts_zscore(ts_mean(ts_delta(close, 1), 20), 10)`
```python
### Dimension 2: Industry Quality & Market Environment
```
1. `group_zscore(multiply(group_scale(group_mean(divide(ts_delta(close, 1), close), industry)), group_mean(market_cap, industry)), industry)`
2. `group_zscore(subtract(group_mean(divide(ts_delta(close, 1), close), industry), group_mean(divide(ts_std_dev(close, 20), close), industry)), industry)`
3. `group_zscore(divide(group_sum(market_cap, industry), ts_sum(group_sum(market_cap, industry), 60)), industry)`
4. `group_zscore(multiply(group_mean(divide(ts_delta(close, 1), close), industry), ts_corr(group_mean(divide(ts_delta(close, 1), close), industry), ts_std_dev(close, 20), 60)), industry)`
5. `group_zscore(divide(group_std_dev(divide(ts_delta(close, 1), close), industry), group_mean(divide(ts_delta(close, 1), close), industry)), industry)`
6. `group_zscore(multiply(group_rank(group_mean(divide(ts_delta(close, 1), close), industry), industry), group_neutralize(ts_std_dev(close, 20), industry)), industry)`
7. `group_zscore(ts_zscore(divide(ts_delta(group_sum(market_cap, industry), 1), group_sum(market_cap, industry)), 60), industry)`
8. `group_zscore(ts_corr(group_mean(divide(ts_delta(close, 1), close), industry), ts_std_dev(close, 20), 60), industry)`
9. `group_zscore(ts_covariance(group_mean(divide(ts_delta(close, 1), close), industry), ts_std_dev(close, 20), 60), industry)`
10. `group_zscore(divide(group_sum(ts_std_dev(close, 20), industry), group_sum(market_cap, industry)), industry)`
11. `group_zscore(ts_scale(group_mean(divide(ts_delta(close, 1), close), industry), 60), industry)`
12. `group_zscore(ts_std_dev(group_mean(divide(ts_delta(close, 1), close), industry), 60), industry)`
13. `group_zscore(ts_max(group_mean(divide(ts_delta(close, 1), close), industry), 60), industry)`
14. `group_zscore(ts_min(group_mean(divide(ts_delta(close, 1), close), industry), 60), industry)`
15. `group_zscore(ts_median(group_mean(divide(ts_delta(close, 1), close), industry), 60), industry)`
16. `group_zscore(ts_quantile(group_mean(divide(ts_delta(close, 1), close), industry), 60, driver="gaussian"), industry)`
17. `group_zscore(ts_delay(group_mean(divide(ts_delta(close, 1), close), industry), 30), industry)`
18. `group_zscore(ts_delta(group_mean(divide(ts_delta(close, 1), close), industry), 1), industry)`
19. `group_zscore(ts_mean(group_mean(divide(ts_delta(close, 1), close), industry), 30), industry)`
20. `group_zscore(ts_std_dev(group_mean(divide(ts_delta(close, 1), close), industry), 30), industry)`
```python
### Dimension 3: Internal Differentiation & Leadership
```
1. `group_zscore(subtract(group_max(divide(ts_delta(close, 1), close), industry), group_min(divide(ts_delta(close, 1), close), industry)), industry)`
2. `group_zscore(divide(group_std_dev(divide(ts_delta(close, 1), close), industry), group_mean(divide(ts_delta(close, 1), close), industry)), industry)`
3. `group_zscore(divide(ts_std_dev(group_rank(market_cap, industry), 60), group_mean(group_rank(market_cap, industry), 60)), industry)`
4. `group_zscore(ts_corr(group_rank(market_cap, industry), divide(ts_delta(close, 1), close), 60), industry)`
5. `group_zscore(subtract(group_mean(divide(ts_delta(close, 1), close), industry), group_mean(divide(ts_delta(close, 5), close), industry)), industry)`
6. `group_zscore(multiply(group_scale(group_rank(market_cap, industry)), group_neutralize(divide(ts_delta(close, 1), close), industry)), industry)`
7. `group_zscore(ts_zscore(divide(ts_delta(group_mean(market_cap, industry), 1), group_mean(market_cap, industry)), 60), industry)`
8. `group_zscore(ts_covariance(group_rank(market_cap, industry), divide(ts_delta(close, 1), close), 60), industry)`
9. `group_zscore(ts_delay(group_rank(market_cap, industry), 30), industry)`
10. `group_zscore(ts_delta(group_rank(market_cap, industry), 1), industry)`
11. `group_zscore(ts_mean(group_rank(market_cap, industry), 30), industry)`
12. `group_zscore(ts_std_dev(group_rank(market_cap, industry), 30), industry)`
13. `group_zscore(ts_arg_max(group_rank(market_cap, industry), 30), industry)`
14. `group_zscore(ts_arg_min(group_rank(market_cap, industry), 30), industry)`
15. `group_zscore(ts_max(group_rank(market_cap, industry), 30), industry)`
16. `group_zscore(ts_min(group_rank(market_cap, industry), 30), industry)`
17. `group_zscore(ts_median(group_rank(market_cap, industry), 30), industry)`
18. `group_zscore(ts_quantile(group_rank(market_cap, industry), 30, driver="gaussian"), industry)`
19. `group_zscore(ts_rank(group_rank(market_cap, industry), 30, constant=0), industry)`
20. `group_zscore(ts_scale(group_rank(market_cap, industry), 30, constant=0), industry)`
```python
### Dimension 4: Overbought/Oversold & Sentiment Reversal
```
1. `group_zscore(multiply(ts_delta(close, 1), ts_delta(volume, 1)), industry)`
2. `group_zscore(multiply(divide(ts_delta(close, 1), close), divide(ts_delta(volume, 1), volume)), industry)`
3. `group_zscore(ts_std_dev(close, 20), industry)`
4. `group_zscore(ts_std_dev(divide(ts_delta(close, 1), close), 20), industry)`
5. `group_zscore(ts_corr(close, volume, 20), industry)`
6. `group_zscore(ts_corr(divide(ts_delta(close, 1), close), ts_std_dev(close, 20), 20), industry)`
7. `group_zscore(ts_corr(divide(ts_delta(close, 1), close), ts_delta(ts_std_dev(close, 20), 1), 20), industry)`
8. `group_zscore(ts_decay_linear(divide(ts_delta(close, 1), close), 20), industry)`
9. `group_zscore(ts_delta(ts_std_dev(close, 20), 1), industry)`
10. `group_zscore(ts_delta(ts_zscore(close, 20), 1), industry)`
11. `group_zscore(ts_mean(divide(ts_delta(close, 1), close), 20), industry)`
12. `group_zscore(ts_min(divide(ts_delta(close, 1), close), 20), industry)`
13. `group_zscore(ts_max(divide(ts_delta(close, 1), close), 20), industry)`
14. `group_zscore(ts_median(divide(ts_delta(close, 1), close), 20), industry)`
15. `group_zscore(ts_quantile(divide(ts_delta(close, 1), close), 20, driver="gaussian"), industry)`
16. `group_zscore(ts_range(divide(ts_delta(close, 1), close), 20), industry)`
17. `group_zscore(ts_rank(divide(ts_delta(close, 1), close), 20, constant=0), industry)`
18. `group_zscore(ts_scale(divide(ts_delta(close, 1), close), 20, constant=0), industry)`
19. `group_zscore(ts_std_dev(divide(ts_delta(close, 1), close), 20), industry)`
20. `group_zscore(ts_zscore(divide(ts_delta(close, 1), close), 20), industry)`
```python
### Dimension 5: Inter-Industry Association & Momentum Spillover
```
1. `group_zscore(ts_corr(group_mean(divide(ts_delta(close, 1), close), industry), ts_mean(divide(ts_delta(close, 1), close), 60), 60), industry)`
2. `group_zscore(ts_covariance(group_mean(divide(ts_delta(close, 1), close), industry), ts_mean(divide(ts_delta(close, 1), close), 60), 60), industry)`
3. `group_zscore(ts_decay_linear(group_mean(divide(ts_delta(close, 1), close), industry), 20), industry)`
4. `group_zscore(ts_delta(group_mean(divide(ts_delta(close, 1), close), industry), 1), industry)`
5. `group_zscore(ts_mean(group_mean(divide(ts_delta(close, 1), close), industry), 20), industry)`
6. `group_zscore(ts_std_dev(group_mean(divide(ts_delta(close, 1), close), industry), 20), industry)`
7. `group_zscore(ts_zscore(group_mean(divide(ts_delta(close, 1), close), industry), 20), industry)`
8. `group_zscore(ts_arg_max(group_mean(divide(ts_delta(close, 1), close), industry), 20), industry)`
9. `group_zscore(ts_arg_min(group_mean(divide(ts_delta(close, 1), close), industry), 20), industry)`
10. `group_zscore(ts_backfill(group_mean(divide(ts_delta(close, 1), close), industry), 20), industry)`
11. `group_zscore(ts_count_nans(group_mean(divide(ts_delta(close, 1), close), industry), 20), industry)`
12. `group_zscore(ts_delay(group_mean(divide(ts_delta(close, 1), close), industry), 10), industry)`
13. `group_zscore(ts_delta(ts_mean(group_mean(divide(ts_delta(close, 1), close), industry), 10), 1), industry)`
14. `group_zscore(ts_max(group_mean(divide(ts_delta(close, 1), close), industry), 20), industry)`
15. `group_zscore(ts_min(group_mean(divide(ts_delta(close, 1), close), industry), 20), industry)`
16. `group_zscore(ts_rank(group_mean(divide(ts_delta(close, 1), close), industry), 20, constant=0), industry)`
17. `group_zscore(ts_scale(group_mean(divide(ts_delta(close, 1), close), industry), 20, constant=0), industry)`
18. `group_zscore(ts_std_dev(group_mean(divide(ts_delta(close, 1), close), industry), 20), industry)`
19. `group_zscore(ts_step(group_mean(divide(ts_delta(close, 1), close), industry), 1), industry)`
20. `group_zscore(ts_zscore(group_mean(divide(ts_delta(close, 1), close), industry), 20), industry)`
These 100 factors are designed to capture a wide range of market signals across five key dimensions. Each factor has been carefully constructed using WebSim's available functions and fields to ensure they can be directly implemented in the platform. The factors combine trend analysis, industry quality metrics, internal differentiation, sentiment indicators, and inter-industry relationships to provide a comprehensive set of signals for industry rotation strategies.
The factors are grouped by dimension, making it easier to understand their underlying logic and intended market insights. Each uses WebSim-compliant syntax and avoids any external libraries. The z-scoring and normalization techniques enhance robustness by controlling for outliers and market volatility.
We recommend further testing and validation of these factors in a live WebSim environment to identify the most effective combinations and parameters for your specific trading objectives.

@ -0,0 +1,81 @@
ts_zscore(ts_delta(ts_mean(close, 20), 5), 60)
ts_zscore(ts_delta(ts_mean(close, 60), 10), 120)
ts_zscore(ts_delta(ts_mean(close, 120), 20), 240)
ts_zscore(ts_delta(ts_mean(close, 20), 5), 60) * group_zscore(ts_delta(ts_mean(close, 20), 5), sector)
ts_zscore(ts_delta(ts_mean(close, 60), 10), 120) * group_zscore(ts_delta(ts_mean(close, 60), 10), sector)
ts_zscore(ts_delta(ts_mean(close, 120), 20), 240) * group_zscore(ts_delta(ts_mean(close, 120), 20), sector)
ts_zscore(ts_delta(ts_mean(close, 20), 5), 60) / ts_std_dev(ts_delta(ts_mean(close, 20), 5), 60)
ts_zscore(ts_delta(ts_mean(close, 60), 10), 120) / ts_std_dev(ts_delta(ts_mean(close, 60), 10), 120)
ts_zscore(ts_delta(ts_mean(close, 120), 20), 240) / ts_std_dev(ts_delta(ts_mean(close, 120), 20), 240)
ts_regression(close, ts_step(1), 60, rettype=1)
ts_regression(close, ts_step(1), 120, rettype=1)
ts_regression(close, ts_step(1), 240, rettype=1)
ts_regression(close, ts_step(1), 60, rettype=1) * group_zscore(ts_regression(close, ts_step(1), 60, rettype=1), sector)
ts_regression(close, ts_step(1), 120, rettype=1) * group_zscore(ts_regression(close, ts_step(1), 120, rettype=1), sector)
ts_regression(close, ts_step(1), 240, rettype=1) * group_zscore(ts_regression(close, ts_step(1), 240, rettype=1), sector)
ts_zscore(ts_delta(ts_mean(volume, 20), 5), 60)
ts_zscore(ts_delta(ts_mean(volume, 60), 10), 120)
ts_zscore(ts_delta(ts_mean(volume, 120), 20), 240)
ts_zscore(ts_delta(ts_mean(volume, 20), 5), 60) * group_zscore(ts_delta(ts_mean(volume, 20), 5), sector)
ts_zscore(ts_delta(ts_mean(volume, 60), 10), 120) * group_zscore(ts_delta(ts_mean(volume, 60), 10), sector)
ts_zscore(ts_delta(ts_mean(volume, 120), 20), 240) * group_zscore(ts_delta(ts_mean(volume, 120), 20), sector)
ts_zscore(ts_delta(ts_mean(vwap, 20), 5), 60)
ts_zscore(ts_delta(ts_mean(vwap, 60), 10), 120)
ts_zscore(ts_delta(ts_mean(vwap, 120), 20), 240)
ts_zscore(ts_delta(ts_mean(vwap, 20), 5), 60) * group_zscore(ts_delta(ts_mean(vwap, 20), 5), sector)
ts_zscore(ts_delta(ts_mean(vwap, 60), 10), 120) * group_zscore(ts_delta(ts_mean(vwap, 60), 10), sector)
ts_zscore(ts_delta(ts_mean(vwap, 120), 20), 240) * group_zscore(ts_delta(ts_mean(vwap, 120), 20), sector)
ts_zscore(ts_delta(ts_mean(high - low, 20), 5), 60)
ts_zscore(ts_delta(ts_mean(high - low, 60), 10), 120)
ts_zscore(ts_delta(ts_mean(high - low, 120), 20), 240)
ts_zscore(ts_delta(ts_mean(high - low, 20), 5), 60) * group_zscore(ts_delta(ts_mean(high - low, 20), 5), sector)
ts_zscore(ts_delta(ts_mean(high - low, 60), 10), 120) * group_zscore(ts_delta(ts_mean(high - low, 60), 10), sector)
ts_zscore(ts_delta(ts_mean(high - low, 120), 20), 240) * group_zscore(ts_delta(ts_mean(high - low, 120), 20), sector)
ts_zscore(ts_delta(ts_mean(open / close, 20), 5), 60)
ts_zscore(ts_delta(ts_mean(open / close, 60), 10), 120)
ts_zscore(ts_delta(ts_mean(open / close, 120), 20), 240)
ts_zscore(ts_delta(ts_mean(open / close, 20), 5), 60) * group_zscore(ts_delta(ts_mean(open / close, 20), 5), sector)
ts_zscore(ts_delta(ts_mean(open / close, 60), 10), 120) * group_zscore(ts_delta(ts_mean(open / close, 60), 10), sector)
ts_zscore(ts_delta(ts_mean(open / close, 120), 20), 240) * group_zscore(ts_delta(ts_mean(open / close, 120), 20), sector)
ts_zscore(ts_delta(ts_mean(close / vwap, 20), 5), 60)
ts_zscore(ts_delta(ts_mean(close / vwap, 60), 10), 120)
ts_zscore(ts_delta(ts_mean(close / vwap, 120), 20), 240)
ts_zscore(ts_delta(ts_mean(close / vwap, 20), 5), 60) * group_zscore(ts_delta(ts_mean(close / vwap, 20), 5), sector)
ts_zscore(ts_delta(ts_mean(close / vwap, 60), 10), 120) * group_zscore(ts_delta(ts_mean(close / vwap, 60), 10), sector)
ts_zscore(ts_delta(ts_mean(close / vwap, 120), 20), 240) * group_zscore(ts_delta(ts_mean(close / vwap, 120), 20), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(close, 5), 20), 5), 60)
ts_zscore(ts_delta(ts_mean(ts_mean(close, 5), 60), 10), 120)
ts_zscore(ts_delta(ts_mean(ts_mean(close, 5), 120), 20), 240)
ts_zscore(ts_delta(ts_mean(ts_mean(close, 5), 20), 5), 60) * group_zscore(ts_delta(ts_mean(ts_mean(close, 5), 20), 5), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(close, 5), 60), 10), 120) * group_zscore(ts_delta(ts_mean(ts_mean(close, 5), 60), 10), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(close, 5), 120), 20), 240) * group_zscore(ts_delta(ts_mean(ts_mean(close, 5), 120), 20), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(volume, 5), 20), 5), 60)
ts_zscore(ts_delta(ts_mean(ts_mean(volume, 5), 60), 10), 120)
ts_zscore(ts_delta(ts_mean(ts_mean(volume, 5), 120), 20), 240)
ts_zscore(ts_delta(ts_mean(ts_mean(volume, 5), 20), 5), 60) * group_zscore(ts_delta(ts_mean(ts_mean(volume, 5), 20), 5), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(volume, 5), 60), 10), 120) * group_zscore(ts_delta(ts_mean(ts_mean(volume, 5), 60), 10), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(volume, 5), 120), 20), 240) * group_zscore(ts_delta(ts_mean(ts_mean(volume, 5), 120), 20), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(vwap, 5), 20), 5), 60)
ts_zscore(ts_delta(ts_mean(ts_mean(vwap, 5), 60), 10), 120)
ts_zscore(ts_delta(ts_mean(ts_mean(vwap, 5), 120), 20), 240)
ts_zscore(ts_delta(ts_mean(ts_mean(vwap, 5), 20), 5), 60) * group_zscore(ts_delta(ts_mean(ts_mean(vwap, 5), 20), 5), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(vwap, 5), 60), 10), 120) * group_zscore(ts_delta(ts_mean(ts_mean(vwap, 5), 60), 10), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(vwap, 5), 120), 20), 240) * group_zscore(ts_delta(ts_mean(ts_mean(vwap, 5), 120), 20), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(high - low, 5), 20), 5), 60)
ts_zscore(ts_delta(ts_mean(ts_mean(high - low, 5), 60), 10), 120)
ts_zscore(ts_delta(ts_mean(ts_mean(high - low, 5), 120), 20), 240)
ts_zscore(ts_delta(ts_mean(ts_mean(high - low, 5), 20), 5), 60) * group_zscore(ts_delta(ts_mean(ts_mean(high - low, 5), 20), 5), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(high - low, 5), 60), 10), 120) * group_zscore(ts_delta(ts_mean(ts_mean(high - low, 5), 60), 10), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(high - low, 5), 120), 20), 240) * group_zscore(ts_delta(ts_mean(ts_mean(high - low, 5), 120), 20), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(open / close, 5), 20), 5), 60)
ts_zscore(ts_delta(ts_mean(ts_mean(open / close, 5), 60), 10), 120)
ts_zscore(ts_delta(ts_mean(ts_mean(open / close, 5), 120), 20), 240)
ts_zscore(ts_delta(ts_mean(ts_mean(open / close, 5), 20), 5), 60) * group_zscore(ts_delta(ts_mean(ts_mean(open / close, 5), 20), 5), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(open / close, 5), 60), 10), 120) * group_zscore(ts_delta(ts_mean(ts_mean(open / close, 5), 60), 10), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(open / close, 5), 120), 20), 240) * group_zscore(ts_delta(ts_mean(ts_mean(open / close, 5), 120), 20), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(close / vwap, 5), 20), 5), 60)
ts_zscore(ts_delta(ts_mean(ts_mean(close / vwap, 5), 60), 10), 120)
ts_zscore(ts_delta(ts_mean(ts_mean(close / vwap, 5), 120), 20), 240)
ts_zscore(ts_delta(ts_mean(ts_mean(close / vwap, 5), 20), 5), 60) * group_zscore(ts_delta(ts_mean(ts_mean(close / vwap, 5), 20), 5), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(close / vwap, 5), 60), 10), 120) * group_zscore(ts_delta(ts_mean(ts_mean(close / vwap, 5), 60), 10), sector)
ts_zscore(ts_delta(ts_mean(ts_mean(close / vwap, 5), 120), 20), 240) * group_zscore(ts_delta(ts_mean(ts_mean(close / vwap, 5), 120), 20), sector)

@ -0,0 +1,90 @@
ts_delta(ts_mean(close, 20), 5)
ts_delta(ts_mean(close, 60), 10)
ts_regression(close, ts_step(1), 60, 0, 1)
ts_corr(close, volume, 30)
ts_zscore(ts_mean(close, 60), 120)
group_zscore(ts_delta(close, 20), industry)
ts_decay_linear(ts_delta(close, 5), 20)
ts_std_dev(ts_delta(close, 5), 60)
ts_rank(ts_mean(close, 20), 60)
ts_quantile(ts_delta(close, 5), 60)
group_mean(ts_delta(close, 5), industry, volume)
ts_covariance(close, vwap, 30)
ts_arg_max(ts_delta(close, 5), 60)
ts_backfill(ts_delta(close, 5), 10, 1, "NAN")
ts_sum(ts_delta(close, 5), 20)
ts_av_diff(ts_delta(close, 5), 20)
ts_corr(ts_delta(close, 5), ts_delta(volume, 5), 30)
ts_regression(ts_delta(close, 5), ts_step(1), 60, 0, 0)
ts_zscore(ts_delta(ts_mean(close, 20), 5), 60)
group_neutralize(ts_delta(close, 20), industry)
ts_decay_linear(ts_delta(ts_mean(close, 20), 5), 30)
ts_std_dev(ts_delta(ts_mean(close, 20), 5), 60)
ts_rank(ts_delta(ts_mean(close, 20), 5), 60)
ts_quantile(ts_delta(ts_mean(close, 20), 5), 60)
group_mean(ts_delta(ts_mean(close, 20), 5), industry, market_cap)
ts_covariance(ts_delta(close, 5), ts_delta(vwap, 5), 30)
ts_arg_min(ts_delta(ts_mean(close, 20), 5), 60)
ts_backfill(ts_delta(ts_mean(close, 20), 5), 10, 1, "NAN")
ts_sum(ts_delta(ts_mean(close, 20), 5), 20)
ts_av_diff(ts_delta(ts_mean(close, 20), 5), 20)
ts_corr(ts_delta(ts_mean(close, 20), 5), ts_delta(volume, 5), 30)
ts_regression(ts_delta(ts_mean(close, 20), 5), ts_step(1), 60, 0, 0)
ts_zscore(ts_delta(ts_mean(close, 20), 5), 60)
group_zscore(ts_delta(ts_mean(close, 20), 5), industry)
ts_decay_linear(ts_delta(ts_mean(close, 20), 5), 30)
ts_std_dev(ts_delta(ts_mean(close, 20), 5), 60)
ts_rank(ts_delta(ts_mean(close, 20), 5), 60)
ts_quantile(ts_delta(ts_mean(close, 20), 5), 60)
group_mean(ts_delta(ts_mean(close, 20), 5), industry, volume)
ts_covariance(ts_delta(ts_mean(close, 20), 5), ts_delta(vwap, 5), 30)
ts_arg_max(ts_delta(ts_mean(close, 20), 5), 60)
ts_backfill(ts_delta(ts_mean(close, 20), 5), 10, 1, "NAN")
ts_sum(ts_delta(ts_mean(close, 20), 5), 20)
ts_av_diff(ts_delta(ts_mean(close, 20), 5), 20)
ts_corr(ts_delta(ts_mean(close, 20), 5), ts_delta(volume, 5), 30)
ts_regression(ts_delta(ts_mean(close, 20), 5), ts_step(1), 60, 0, 0)
ts_zscore(ts_delta(ts_mean(close, 20), 5), 60)
group_neutralize(ts_delta(ts_mean(close, 20), 5), industry)
ts_decay_linear(ts_delta(ts_mean(close, 20), 5), 30)
ts_std_dev(ts_delta(ts_mean(close, 20), 5), 60)
ts_rank(ts_delta(ts_mean(close, 20), 5), 60)
ts_quantile(ts_delta(ts_mean(close, 20), 5), 60)
group_mean(ts_delta(ts_mean(close, 20), 5), industry, market_cap)
ts_covariance(ts_delta(ts_mean(close, 20), 5), ts_delta(vwap, 5), 30)
ts_arg_min(ts_delta(ts_mean(close, 20), 5), 60)
ts_backfill(ts_delta(ts_mean(close, 20), 5), 10, 1, "NAN")
ts_sum(ts_delta(ts_mean(close, 20), 5), 20)
ts_av_diff(ts_delta(ts_mean(close, 20), 5), 20)
ts_corr(ts_delta(ts_mean(close, 20), 5), ts_delta(volume, 5), 30)
ts_regression(ts_delta(ts_mean(close, 20), 5), ts_step(1), 60, 0, 0)
ts_zscore(ts_delta(ts_mean(close, 20), 5), 60)
group_zscore(ts_delta(ts_mean(close, 20), 5), industry)
ts_decay_linear(ts_delta(ts_mean(close, 20), 5), 30)
ts_std_dev(ts_delta(ts_mean(close, 20), 5), 60)
ts_rank(ts_delta(ts_mean(close, 20), 5), 60)
ts_quantile(ts_delta(ts_mean(close, 20), 5), 60)
group_mean(ts_delta(ts_mean(close, 20), 5), industry, volume)
ts_covariance(ts_delta(ts_mean(close, 20), 5), ts_delta(vwap, 5), 30)
ts_arg_max(ts_delta(ts_mean(close, 20), 5), 60)
ts_backfill(ts_delta(ts_mean(close, 20), 5), 10, 1, "NAN")
ts_sum(ts_delta(ts_mean(close, 20), 5), 20)
ts_av_diff(ts_delta(ts_mean(close, 20), 5), 20)
ts_corr(ts_delta(ts_mean(close, 20), 5), ts_delta(volume, 5), 30)
ts_regression(ts_delta(ts_mean(close, 20), 5), ts_step(1), 60, 0, 0)
ts_zscore(ts_delta(ts_mean(close, 20), 5), 60)
group_neutralize(ts_delta(ts_mean(close, 20), 5), industry)
ts_decay_linear(ts_delta(ts_mean(close, 20), 5), 30)
ts_std_dev(ts_delta(ts_mean(close, 20), 5), 60)
ts_rank(ts_delta(ts_mean(close, 20), 5), 60)
ts_quantile(ts_delta(ts_mean(close, 20), 5), 60)
group_mean(ts_delta(ts_mean(close, 20), 5), industry, market_cap)
ts_covariance(ts_delta(ts_mean(close, 20), 5), ts_delta(vwap, 5), 30)
ts_arg_min(ts_delta(ts_mean(close, 20), 5), 60)
ts_backfill(ts_delta(ts_mean(close, 20), 5), 10, 1, "NAN")
ts_sum(ts_delta(ts_mean(close, 20), 5), 20)
ts_av_diff(ts_delta(ts_mean(close, 20), 5), 20)
ts_corr(ts_delta(ts_mean(close, 20), 5), ts_delta(volume, 5), 30)
ts_regression(ts_delta(ts_mean(close, 20), 5), ts_step(1), 60, 0, 0)
ts_zscore(ts_delta(ts_mean(close, 20), 5), 60)
group_zscore(ts_delta(ts_mean(close, 20), 5), industry)

@ -0,0 +1,76 @@
ts_regression_slope(close, 5) * group_zscore(ts_delta(close, 10), sector)
ts_decay_linear(ts_delta(close, 3), 20) * -ts_zscore(volume, 60)
group_mean(ts_corr(close, vwap, 10), industry, 0.3) - group_mean(close, industry)
ts_rank(ts_delta(ts_regression_slope(close, 10), 5), 30) * group_std(ts_zscore(close, 20), sector)
ts_corr(ts_zscore(close, 5), ts_zscore(volume, 5), 20) * group_mean(ts_return(close, 20), country, 0.2)
ts_std_dev(ts_delta(close, 1), 60) * -group_zscore(ts_sum(volume, 10), industry)
ts_regression_slope(ts_zscore(close, 30), 10) * group_rank(ts_delta(high, 5), sector)
ts_mean(ts_zscore(close, 10), 20) * -ts_covariance(close, volume, 30)
group_mean(ts_decay_linear(ts_delta(close, 3), 10), industry, 0.4) - ts_mean(close, 60)
ts_rank(ts_delta(ts_std_dev(close, 5), 1), 20) * group_zscore(ts_mean(close, 10), country)
ts_corr(ts_delta(close, 5), ts_delta(volume, 5), 30) * group_mean(ts_regression_slope(close, 5), sector, 0.3)
ts_decay_linear(ts_zscore(close, 20), 10) * -group_std(ts_delta(close, 1), industry)
ts_regression_slope(ts_mean(close, 5), 10) * group_mean(ts_zscore(volume, 10), country, 0.2)
ts_zscore(ts_delta(close, 10), 60) * group_rank(ts_corr(close, vwap, 10), industry)
group_zscore(ts_sum(ts_delta(close, 1), 5), sector) * -ts_rank(ts_std_dev(close, 10), 30)
ts_covariance(ts_zscore(close, 5), ts_zscore(volume, 5), 20) * group_mean(ts_delta(close, 5), industry, 0.3)
ts_mean(ts_regression_slope(close, 5), 20) * -group_std(ts_zscore(close, 10), country)
ts_delta(ts_corr(close, volume, 10), 5) * group_mean(ts_zscore(close, 20), sector, 0.2)
ts_decay_linear(ts_delta(ts_zscore(close, 10), 1), 30) * group_rank(ts_mean(close, 5), country)
ts_std_dev(ts_zscore(close, 5), 60) * -group_zscore(ts_delta(close, 1), industry)
group_mean(ts_corr(ts_delta(close, 5), ts_delta(volume, 5), 10), sector, 0.3) - ts_mean(close, 30)
ts_rank(ts_regression_slope(close, 10), 20) * group_zscore(ts_sum(volume, 5), country)
ts_zscore(ts_mean(ts_delta(close, 1), 5), 30) * -group_std(ts_regression_slope(close, 5), industry)
ts_corr(ts_delta(close, 3), ts_delta(vwap, 3), 20) * group_mean(ts_zscore(close, 10), sector, 0.4)
ts_decay_linear(ts_zscore(ts_delta(close, 1), 5), 10) * -group_rank(ts_mean(close, 10), country)
ts_regression_slope(ts_zscore(close, 30), 5) * group_mean(ts_delta(volume, 5), industry, 0.2)
ts_mean(ts_zscore(ts_delta(close, 1), 5), 20) * group_std(ts_covariance(close, volume, 10), sector)
ts_rank(ts_std_dev(ts_delta(close, 1), 5), 30) * -group_zscore(ts_mean(close, 10), country)
group_zscore(ts_delta(ts_mean(close, 5), 1), industry) * ts_corr(ts_zscore(close, 5), volume, 20)
ts_covariance(ts_delta(close, 5), ts_delta(high, 5), 30) * group_mean(ts_regression_slope(close, 5), sector, 0.3)
ts_decay_linear(ts_zscore(ts_mean(close, 5), 10), 20) * -group_std(ts_delta(close, 1), industry)
ts_regression_slope(ts_mean(close, 10), 5) * group_mean(ts_zscore(volume, 5), country, 0.2)
ts_zscore(ts_delta(ts_zscore(close, 10), 1), 60) * group_rank(ts_corr(close, vwap, 5), sector)
ts_mean(ts_delta(ts_regression_slope(close, 5), 1), 20) * -group_zscore(ts_sum(volume, 10), industry)
ts_corr(ts_zscore(close, 5), ts_zscore(volume, 5), 10) * group_mean(ts_delta(close, 5), country, 0.3)
ts_decay_linear(ts_delta(ts_zscore(close, 5), 1), 30) * group_std(ts_mean(close, 10), sector)
ts_std_dev(ts_zscore(ts_delta(close, 1), 5), 60) * -group_mean(ts_regression_slope(close, 5), industry, 0.4)
group_mean(ts_corr(ts_delta(close, 3), ts_delta(volume, 3), 5), sector, 0.2) - ts_mean(close, 20)
ts_rank(ts_regression_slope(ts_zscore(close, 10), 5), 30) * group_zscore(ts_sum(volume, 5), country)
ts_zscore(ts_mean(ts_delta(close, 1), 5), 60) * -group_std(ts_zscore(close, 20), industry)
ts_corr(ts_delta(close, 10), ts_delta(high, 10), 20) * group_mean(ts_zscore(close, 5), sector, 0.3)
ts_decay_linear(ts_zscore(ts_mean(close, 3), 5), 10) * -group_rank(ts_mean(close, 10), country)
ts_regression_slope(ts_zscore(close, 60), 10) * group_mean(ts_delta(volume, 3), industry, 0.2)
ts_mean(ts_zscore(ts_delta(close, 1), 3), 30) * group_std(ts_covariance(close, volume, 5), sector)
ts_rank(ts_std_dev(ts_delta(close, 1), 3), 20) * -group_zscore(ts_mean(close, 5), country)
group_zscore(ts_delta(ts_mean(close, 3), 1), industry) * ts_corr(ts_zscore(close, 3), volume, 10)
ts_covariance(ts_delta(close, 3), ts_delta(vwap, 3), 10) * group_mean(ts_regression_slope(close, 3), sector, 0.4)
ts_decay_linear(ts_zscore(ts_delta(close, 1), 3), 20) * -group_std(ts_delta(close, 1), country)
ts_regression_slope(ts_mean(close, 3), 10) * group_mean(ts_zscore(volume, 3), industry, 0.2)
ts_zscore(ts_delta(ts_zscore(close, 5), 1), 30) * group_rank(ts_corr(close, vwap, 3), sector)
ts_mean(ts_delta(ts_regression_slope(close, 3), 1), 10) * -group_zscore(ts_sum(volume, 5), industry)
ts_corr(ts_zscore(close, 3), ts_zscore(volume, 3), 5) * group_mean(ts_delta(close, 3), country, 0.3)
ts_decay_linear(ts_delta(ts_zscore(close, 3), 1), 10) * group_std(ts_mean(close, 5), sector)
ts_std_dev(ts_zscore(ts_delta(close, 1), 3), 30) * -group_mean(ts_regression_slope(close, 3), industry, 0.4)
group_mean(ts_corr(ts_delta(close, 1), ts_delta(volume, 1), 3), sector, 0.2) - ts_mean(close, 10)
ts_rank(ts_regression_slope(ts_zscore(close, 5), 3), 10) * group_zscore(ts_sum(volume, 3), country)
ts_zscore(ts_mean(ts_delta(close, 1), 3), 20) * -group_std(ts_zscore(close, 5), industry)
ts_corr(ts_delta(close, 5), ts_delta(high, 5), 10) * group_mean(ts_zscore(close, 3), sector, 0.3)
ts_decay_linear(ts_zscore(ts_mean(close, 1), 3), 5) * -group_rank(ts_mean(close, 5), country)
ts_regression_slope(ts_zscore(close, 30), 5) * group_mean(ts_delta(volume, 1), industry, 0.2)
ts_mean(ts_zscore(ts_delta(close, 1), 1), 10) * group_std(ts_covariance(close, volume, 3), sector)
ts_rank(ts_std_dev(ts_delta(close, 1), 1), 10) * -group_zscore(ts_mean(close, 3), country)
group_zscore(ts_delta(ts_mean(close, 1), 1), industry) * ts_corr(ts_zscore(close, 1), volume, 5)
ts_covariance(ts_delta(close, 1), ts_delta(vwap, 1), 5) * group_mean(ts_regression_slope(close, 1), sector, 0.3)
ts_decay_linear(ts_zscore(ts_delta(close, 1), 1), 5) * -group_std(ts_delta(close, 1), country)
ts_regression_slope(ts_mean(close, 1), 5) * group_mean(ts_zscore(volume, 1), industry, 0.2)
ts_zscore(ts_delta(ts_zscore(close, 3), 1), 10) * group_rank(ts_corr(close, vwap, 1), sector)
ts_mean(ts_delta(ts_regression_slope(close, 1), 1), 5) * -group_zscore(ts_sum(volume, 3), industry)
ts_corr(ts_zscore(close, 1), ts_zscore(volume, 1), 3) * group_mean(ts_delta(close, 1), country, 0.3)
ts_decay_linear(ts_delta(ts_zscore(close, 1), 1), 5) * group_std(ts_mean(close, 3), sector)
ts_std_dev(ts_zscore(ts_delta(close, 1), 1), 10) * -group_mean(ts_regression_slope(close, 1), industry, 0.4)
group_mean(ts_corr(ts_delta(close, 1), ts_delta(volume, 1), 1), sector, 0.2) - ts_mean(close, 5)
ts_rank(ts_regression_slope(ts_zscore(close, 3), 1), 5) * group_zscore(ts_sum(volume, 1), country)
ts_zscore(ts_mean(ts_delta(close, 1), 1), 10) * -group_std(ts_zscore(close, 3), industry)
ts_corr(ts_delta(close, 3), ts_delta(high, 3), 5) * group_mean(ts_zscore(close, 1), sector, 0.3)
ts_decay_linear(ts_zscore(ts_mean(close, 1), 1), 3) * -group_rank(ts_mean(close, 3), country)

@ -0,0 +1,82 @@
ts_regression_slope(close, 10) * group_zscore(ts_zscore(volume, 20), sector)
group_mean(ts_delta(close, 5), 0.3) - group_mean(close, sector)
ts_corr(ts_zscore(high, 30), ts_zscore(low, 30), 20) * ts_decay_linear(ts_regression_slope(close, 5), 10)
rank(group_rank(ts_return(close, 20), industry)) * -ts_zscore(ts_std_dev(close, 60), 120)
ts_delta(ts_mean(close, 10), 5) * group_scale(ts_rank(close, 30), sector)
group_mean(ts_delta(close, 3), 0.2) / ts_std_dev(close, 20) * ts_zscore(volume, 10)
ts_rank(ts_regression_slope(close, 15), 60) * group_zscore(ts_zscore(ts_sum(volume, 5), 20), industry)
ts_decay_linear(ts_delta(close, 10), 30) * group_mean(ts_zscore(close, 60), 0.4)
ts_corr(ts_delta(high, 5), ts_delta(low, 5), 20) * group_neutralize(ts_return(close, 30), sector)
ts_zscore(ts_mean(close, 20), 120) * group_rank(ts_regression_slope(close, 10), industry)
ts_std_dev(ts_return(close, 5), 30) * group_mean(ts_zscore(volume, 5), 0.3)
ts_regression_slope(ts_zscore(close, 30), 10) * group_zscore(ts_rank(volume, 20), sector)
group_mean(ts_delta(close, 5), 0.35) - ts_mean(close, 60) * ts_decay_linear(ts_zscore(close, 10), 20)
ts_corr(ts_zscore(close, 10), ts_zscore(volume, 10), 5) * group_scale(ts_delta(close, 3), industry)
ts_rank(ts_std_dev(close, 20), 60) * group_zscore(ts_regression_slope(close, 5), sector)
ts_decay_linear(ts_delta(close, 5), 15) * group_mean(ts_zscore(ts_sum(volume, 3), 10), 0.4)
ts_zscore(ts_mean(close, 5), 30) * group_rank(ts_delta(close, 3), industry)
ts_regression_slope(ts_mean(close, 10), 20) * group_zscore(ts_rank(volume, 10), sector)
ts_corr(ts_zscore(high, 20), ts_zscore(close, 20), 10) * group_mean(ts_delta(close, 5), 0.3)
ts_delta(ts_regression_slope(close, 10), 5) * group_zscore(ts_std_dev(close, 60), industry)
ts_rank(ts_zscore(close, 30), 120) * group_mean(ts_regression_slope(close, 5), 0.25)
ts_std_dev(ts_zscore(close, 10), 20) * group_scale(ts_delta(close, 3), sector)
ts_decay_linear(ts_zscore(ts_return(close, 5), 20), 10) * group_mean(ts_rank(close, 30), 0.3)
ts_corr(ts_mean(close, 5), ts_mean(close, 20), 30) * group_zscore(ts_delta(close, 3), industry)
ts_regression_slope(ts_zscore(close, 20), 5) * group_rank(ts_mean(close, 10), sector)
ts_zscore(ts_delta(close, 3), 10) * group_mean(ts_regression_slope(close, 5), 0.4)
ts_rank(ts_mean(close, 30), 60) * group_zscore(ts_corr(close, volume, 5), industry)
ts_decay_linear(ts_delta(close, 10), 20) * group_mean(ts_zscore(ts_sum(volume, 5), 30), 0.3)
ts_corr(ts_zscore(close, 10), ts_zscore(close, 30), 20) * group_scale(ts_regression_slope(close, 5), sector)
ts_regression_slope(ts_mean(close, 5), 10) * group_zscore(ts_rank(ts_sum(volume, 3), 10), industry)
ts_delta(ts_zscore(close, 10), 5) * group_mean(ts_std_dev(close, 20), 0.25)
ts_rank(ts_regression_slope(close, 5), 30) * group_zscore(ts_mean(close, 10), sector)
ts_std_dev(ts_delta(close, 3), 20) * group_mean(ts_zscore(volume, 5), 0.35)
ts_decay_linear(ts_corr(close, volume, 5), 10) * group_rank(ts_delta(close, 5), industry)
ts_zscore(ts_mean(close, 20), 60) * group_mean(ts_regression_slope(close, 10), 0.4)
ts_regression_slope(ts_zscore(close, 30), 15) * group_zscore(ts_delta(close, 3), sector)
ts_corr(ts_zscore(high, 5), ts_zscore(low, 5), 10) * group_mean(ts_rank(close, 20), 0.3)
ts_rank(ts_delta(close, 3), 60) * group_zscore(ts_std_dev(close, 10), industry)
ts_decay_linear(ts_zscore(ts_return(close, 3), 20), 5) * group_mean(ts_regression_slope(close, 5), 0.2)
ts_corr(ts_mean(close, 3), ts_mean(close, 10), 20) * group_scale(ts_delta(close, 5), sector)
ts_regression_slope(ts_mean(close, 20), 30) * group_zscore(ts_rank(volume, 20), industry)
ts_delta(ts_regression_slope(close, 10), 3) * group_mean(ts_zscore(ts_sum(volume, 5), 20), 0.35)
ts_zscore(ts_mean(close, 10), 30) * group_rank(ts_delta(close, 3), sector)
ts_std_dev(ts_zscore(close, 5), 10) * group_mean(ts_regression_slope(close, 5), 0.3)
ts_decay_linear(ts_delta(close, 5), 15) * group_zscore(ts_rank(close, 10), industry)
ts_corr(ts_zscore(close, 5), ts_zscore(volume, 5), 5) * group_mean(ts_mean(close, 10), 0.4)
ts_rank(ts_regression_slope(close, 5), 20) * group_zscore(ts_delta(close, 3), sector)
ts_regression_slope(ts_zscore(close, 10), 5) * group_rank(ts_std_dev(close, 20), industry)
ts_delta(ts_mean(close, 5), 3) * group_mean(ts_zscore(volume, 5), 0.35)
ts_zscore(ts_std_dev(close, 10), 30) * group_scale(ts_regression_slope(close, 5), sector)
ts_corr(ts_zscore(high, 10), ts_zscore(close, 10), 10) * group_mean(ts_rank(close, 30), 0.2)
ts_decay_linear(ts_zscore(ts_return(close, 3), 10), 5) * group_zscore(ts_delta(close, 5), industry)
ts_regression_slope(ts_mean(close, 10), 20) * group_mean(ts_zscore(ts_sum(volume, 3), 10), 0.3)
ts_rank(ts_delta(close, 3), 30) * group_zscore(ts_mean(close, 20), sector)
ts_std_dev(ts_delta(close, 5), 20) * group_mean(ts_regression_slope(close, 5), 0.4)
ts_corr(ts_zscore(close, 20), ts_zscore(close, 60), 30) * group_scale(ts_delta(close, 3), industry)
ts_decay_linear(ts_regression_slope(close, 5), 10) * group_zscore(ts_rank(volume, 10), sector)
ts_zscore(ts_mean(close, 30), 120) * group_mean(ts_delta(close, 5), 0.3)
ts_regression_slope(ts_zscore(close, 5), 10) * group_rank(ts_std_dev(close, 10), industry)
ts_delta(ts_zscore(close, 5), 3) * group_mean(ts_zscore(ts_sum(volume, 5), 20), 0.25)
ts_rank(ts_mean(close, 10), 60) * group_zscore(ts_corr(close, volume, 3), sector)
ts_corr(ts_zscore(high, 3), ts_zscore(low, 3), 5) * group_mean(ts_regression_slope(close, 3), 0.4)
ts_decay_linear(ts_zscore(ts_return(close, 5), 30), 20) * group_zscore(ts_delta(close, 3), industry)
ts_regression_slope(ts_mean(close, 5), 10) * group_mean(ts_rank(close, 10), 0.35)
ts_std_dev(ts_zscore(close, 10), 20) * group_scale(ts_delta(close, 5), sector)
ts_rank(ts_regression_slope(close, 3), 20) * group_zscore(ts_mean(close, 10), industry)
ts_delta(ts_mean(close, 3), 5) * group_mean(ts_zscore(volume, 10), 0.3)
ts_zscore(ts_delta(close, 3), 10) * group_rank(ts_regression_slope(close, 5), sector)
ts_corr(ts_zscore(close, 5), ts_zscore(volume, 5), 10) * group_mean(ts_std_dev(close, 20), 0.4)
ts_decay_linear(ts_delta(close, 3), 10) * group_zscore(ts_rank(close, 20), industry)
ts_regression_slope(ts_zscore(close, 20), 10) * group_mean(ts_zscore(ts_sum(volume, 5), 10), 0.35)
ts_rank(ts_mean(close, 20), 120) * group_zscore(ts_delta(close, 5), sector)
ts_std_dev(ts_delta(close, 5), 30) * group_mean(ts_regression_slope(close, 5), 0.3)
ts_corr(ts_zscore(high, 5), ts_zscore(close, 5), 5) * group_scale(ts_delta(close, 3), industry)
ts_decay_linear(ts_zscore(ts_return(close, 5), 20), 10) * group_zscore(ts_mean(close, 10), sector)
ts_regression_slope(ts_mean(close, 10), 15) * group_mean(ts_rank(close, 30), 0.25)
ts_delta(ts_zscore(close, 10), 5) * group_zscore(ts_std_dev(close, 30), industry)
ts_rank(ts_delta(close, 5), 60) * group_mean(ts_zscore(ts_sum(volume, 3), 20), 0.4)
ts_zscore(ts_mean(close, 5), 20) * group_rank(ts_regression_slope(close, 3), sector)
ts_corr(ts_zscore(close, 10), ts_zscore(Vector, 10), 20) * group_mean(ts_delta(close, 3), 0.35)
ts_decay_linear(ts_regression_slope(close, 5), 15) * group_zscore(ts_rank(volume, 30), industry)
ts_std_dev(ts_zscore(close, 5), 10) * group_scale(ts_delta(close, 5), sector)

@ -0,0 +1,96 @@
multiply(ts_delta(ts_regression(close, ts_step(1), 20, 0, 1), 5), group_zscore(ts_rank(close, 10), "industry"))
subtract(group_mean(ts_zscore(close, 30), "industry"), ts_mean(close, 20))
multiply(ts_corr(ts_zscore(volume, 10), ts_zscore(close, 10), 20), group_rank(bucket(rank(close), "0.8,1"), "industry"))
ts_regression(ts_zscore(close, 60), ts_step(1), 30, 0, 1)
multiply(ts_decay_linear(ts_delta(close, 10), 20), group_neutralize(ts_rank(close, 30), "sector"))
ts_zscore(group_mean(ts_delta(close, 5), "industry"), 10)
multiply(ts_av_diff(volume, 20), reverse(ts_rank(group_mean(close, "industry"), 60)))
group_scale(ts_regression(close, ts_step(1), 10, 0, 1), "sector")
ts_corr(ts_delta(close, 5), ts_delta(volume, 5), 30)
subtract(ts_mean(close, 120), group_mean(close, "industry"))
multiply(ts_rank(ts_zscore(close, 20), 30), group_zscore(ts_delta(close, 10), "industry"))
ts_regression(ts_zscore(ts_mean(close, 5), 20), ts_step(1), 60, 0, 1)
group_rank(ts_decay_linear(close, 30), "industry")
ts_covariance(ts_zscore(close, 10), ts_zscore(volume, 10), 20)
multiply(ts_scale(close, 60), group_neutralize(ts_regression(close, ts_step(1), 20, 0, 1), "sector"))
ts_delta(group_mean(ts_regression(close, ts_step(1), 30, 0, 1), "industry"), 5)
ts_zscore(ts_corr(close, volume, 30), 60)
multiply(group_zscore(ts_delta(close, 10), "industry"), ts_rank(ts_zscore(close, 20), 10))
group_mean(ts_av_diff(close, 20), "sector")
subtract(ts_regression(close, ts_step(1), 60, 0, 1), ts_regression(close, ts_step(1), 20, 0, 1))
multiply(ts_delay(ts_zscore(close, 30), 5), group_rank(close, "industry"))
ts_regression(ts_delta(close, 5), ts_step(1), 20, 0, 1)
group_scale(ts_zscore(close, 60), "industry")
multiply(ts_corr(ts_mean(close, 5), ts_mean(volume, 5), 10), group_neutralize(ts_delta(close, 10), "sector"))
ts_delta(ts_regression(ts_zscore(close, 20), ts_step(1), 30, 0, 1), 5)
group_zscore(ts_decay_linear(close, 20), "industry")
multiply(ts_rank(ts_corr(close, volume, 20), 30), group_mean(ts_zscore(close, 10), "sector"))
ts_mean(group_zscore(ts_delta(close, 5), "industry"), 10)
subtract(ts_zscore(close, 60), group_zscore(close, "sector"))
multiply(ts_covariance(close, volume, 10), group_rank(ts_regression(close, ts_step(1), 20, 0, 1), "industry"))
ts_regression(ts_av_diff(close, 20), ts_step(1), 30, 0, 1)
group_neutralize(ts_delta(ts_zscore(close, 10), 5), "sector")
multiply(ts_scale(ts_delta(close, 10), 30), group_zscore(ts_rank(close, 20), "industry"))
ts_corr(group_mean(close, "industry"), ts_mean(close, 20), 60)
subtract(ts_regression(close, ts_step(1), 20, 0, 1), group_mean(ts_regression(close, ts_step(1), 20, 0, 1), "industry"))
multiply(ts_rank(ts_zscore(volume, 30), 10), group_zscore(ts_delta(volume, 5), "sector"))
ts_decay_linear(group_mean(ts_zscore(close, 20), "industry"), 30)
group_rank(ts_corr(close, volume, 20), "industry")
multiply(ts_zscore(ts_mean(close, 10), 20), group_neutralize(ts_regression(close, ts_step(1), 60, 0, 1), "sector"))
ts_delta(group_scale(ts_zscore(close, 30), "industry"), 5)
multiply(ts_av_diff(ts_zscore(close, 10), 20), group_mean(ts_delta(close, 5), "industry"))
ts_regression(ts_delta(ts_zscore(close, 20), 5), ts_step(1), 30, 0, 1)
group_zscore(ts_mean(close, 20), "sector")
multiply(ts_corr(ts_zscore(close, 5), ts_zscore(volume, 5), 10), group_rank(ts_zscore(close, 30), "industry"))
ts_mean(group_neutralize(ts_delta(close, 10), "sector"), 20)
subtract(ts_regression(ts_zscore(close, 60), ts_step(1), 30, 0, 1), ts_regression(ts_zscore(close, 60), ts_step(1), 10, 0, 1))
multiply(ts_scale(ts_delta(volume, 5), 30), group_zscore(ts_regression(close, ts_step(1), 20, 0, 1), "industry"))
ts_covariance(ts_zscore(group_mean(close, "industry"), 20), ts_zscore(close, 20), 30)
group_mean(ts_decay_linear(ts_delta(close, 5), 20), "sector")
multiply(ts_rank(ts_zscore(close, 10), 60), group_zscore(ts_av_diff(close, 20), "industry"))
ts_regression(ts_zscore(ts_mean(close, 5), 20), ts_step(1), 60, 0, 1)
group_scale(ts_delta(ts_zscore(close, 30), 5), "industry")
multiply(ts_corr(ts_delta(close, 5), ts_delta(volume, 5), 20), group_neutralize(ts_rank(close, 30), "sector"))
ts_delta(ts_regression(ts_zscore(close, 10), ts_step(1), 20, 0, 1), 5)
group_zscore(ts_mean(ts_delta(close, 5), 10), "sector")
multiply(ts_rank(ts_corr(close, volume, 30), 20), group_mean(ts_zscore(close, 10), "industry"))
ts_mean(group_zscore(ts_delta(volume, 5), "industry"), 5)
subtract(ts_zscore(close, 20), group_zscore(close, "industry"))
multiply(ts_covariance(ts_zscore(close, 5), ts_zscore(volume, 5), 10), group_rank(ts_regression(close, ts_step(1), 30, 0, 1), "sector"))
ts_regression(ts_av_diff(close, 10), ts_step(1), 20, 0, 1)
group_neutralize(ts_delta(ts_zscore(close, 30), 5), "industry")
multiply(ts_scale(ts_delta(close, 10), 60), group_zscore(ts_rank(close, 10), "sector"))
ts_corr(group_mean(ts_zscore(close, 20), "industry"), ts_mean(close, 20), 30)
subtract(ts_regression(close, ts_step(1), 30, 0, 1), group_mean(ts_regression(close, ts_step(1), 30, 0, 1), "sector"))
multiply(ts_rank(ts_zscore(volume, 20), 10), group_zscore(ts_delta(volume, 20), "industry"))
ts_decay_linear(group_mean(ts_zscore(close, 10), "sector"), 20)
group_rank(ts_corr(ts_zscore(close, 5), ts_zscore(volume, 5), 10), "industry")
multiply(ts_zscore(ts_mean(close, 5), 30), group_neutralize(ts_regression(close, ts_step(1), 120, 0, 1), "sector"))
ts_delta(group_scale(ts_zscore(close, 10), "industry"), 5)
multiply(ts_av_diff(ts_zscore(close, 30), 20), group_mean(ts_delta(close, 10), "sector"))
ts_regression(ts_delta(ts_zscore(close, 10), 5), ts_step(1), 60, 0, 1)
group_zscore(ts_mean(close, 60), "industry")
multiply(ts_corr(ts_zscore(close, 20), ts_zscore(volume, 20), 10), group_rank(ts_zscore(close, 30), "sector"))
ts_mean(group_neutralize(ts_delta(close, 5), "industry"), 30)
subtract(ts_regression(ts_zscore(close, 30), ts_step(1), 60, 0, 1), ts_regression(ts_zscore(close, 30), ts_step(1), 20, 0, 1))
multiply(ts_scale(ts_delta(volume, 10), 20), group_zscore(ts_regression(close, ts_step(1), 30, 0, 1), "industry"))
ts_covariance(ts_zscore(group_mean(close, "sector"), 10), ts_zscore(close, 10), 20)
group_mean(ts_decay_linear(ts_delta(close, 10), 30), "industry")
multiply(ts_rank(ts_zscore(close, 30), 60), group_zscore(ts_av_diff(close, 10), "sector"))
ts_regression(ts_zscore(ts_mean(close, 10), 20), ts_step(1), 120, 0, 1)
group_scale(ts_delta(ts_zscore(close, 60), 5), "sector")
multiply(ts_corr(ts_delta(close, 10), ts_delta(volume, 10), 30), group_neutralize(ts_rank(close, 60), "industry"))
ts_delta(ts_regression(ts_zscore(close, 20), ts_step(1), 30, 0, 1), 5)
group_zscore(ts_mean(ts_delta(close, 10), 20), "industry")
multiply(ts_rank(ts_corr(close, volume, 60), 30), group_mean(ts_zscore(close, 20), "sector"))
ts_mean(group_zscore(ts_delta(volume, 10), "sector"), 10)
subtract(ts_zscore(close, 120), group_zscore(close, "industry"))
multiply(ts_covariance(ts_zscore(close, 10), ts_zscore(volume, 10), 30), group_rank(ts_regression(close, ts_step(1), 60, 0, 1), "industry"))
ts_regression(ts_av_diff(close, 30), ts_step(1), 60, 0, 1)
group_neutralize(ts_delta(ts_zscore(close, 60), 5), "sector")
multiply(ts_scale(ts_delta(close, 20), 60), group_zscore(ts_rank(close, 30), "industry"))
ts_corr(group_mean(ts_zscore(close, 30), "industry"), ts_mean(close, 60), 30)
subtract(ts_regression(close, ts_step(1), 60, 0, 1), group_mean(ts_regression(close, ts_step(1), 60, 0, 1), "industry"))
multiply(ts_rank(ts_zscore(volume, 60), 30), group_zscore(ts_delta(volume, 30), "sector"))
ts_decay_linear(group_mean(ts_zscore(close, 30), "industry"), 60)
group_rank(ts_corr(ts_zscore(close, 10), ts_zscore(volume, 10), 20), "sector")

@ -0,0 +1,106 @@
Here are 100 composite Alpha factors combining at least two dimensions for industry rotation strategies:
1. multiply( ts_delta(close,5), reverse(ts_zscore(close,20)) )
2. multiply( ts_delta(close,10), reverse(ts_zscore(close,30)) )
3. multiply( ts_delta(close,20), reverse(ts_zscore(close,60)) )
4. multiply( ts_delta(close,30), reverse(ts_zscore(close,120)) )
5. multiply( ts_delta(close,5), reverse(ts_rank(close,20)) )
6. multiply( ts_delta(close,10), reverse(ts_rank(close,30)) )
7. multiply( ts_delta(close,20), reverse(ts_rank(close,60)) )
8. multiply( ts_delta(close,30), reverse(ts_rank(close,120)) )
9. multiply( ts_regression(close, ts_step(1), 20, 0, 1), reverse(ts_corr(volume, close, 20)) )
10. multiply( ts_regression(close, ts_step(1), 30, 0, 1), reverse(ts_corr(volume, close, 30)) )
11. multiply( group_rank(ts_delta(close,5), group), reverse(ts_zscore(close,20)) )
12. multiply( group_rank(ts_delta(close,10), group), reverse(ts_zscore(close,30)) )
13. multiply( group_rank(ts_delta(close,20), group), reverse(ts_zscore(close,60)) )
14. multiply( group_rank(ts_delta(close,30), group), reverse(ts_zscore(close,120)) )
15. multiply( group_rank(close, group), reverse(ts_rank(close,20)) )
16. multiply( group_rank(close, group), reverse(ts_rank(close,30)) )
17. multiply( group_rank(close, group), reverse(ts_rank(close,60)) )
18. multiply( group_rank(close, group), reverse(ts_rank(close,120)) )
19. multiply( group_rank(close, group), reverse(ts_corr(volume, close, 20)) )
20. multiply( group_rank(close, group), reverse(ts_corr(volume, close, 30)) )
21. multiply( group_rank(close, group), reverse(ts_corr(volume, close, 60)) )
22. multiply( group_rank(close, group), reverse(ts_corr(volume, close, 90)) )
23. multiply( ts_decay_linear(ts_delta(close,5), 10), reverse(ts_zscore(close,20)) )
24. multiply( ts_decay_linear(ts_delta(close,10), 10), reverse(ts_zscore(close,30)) )
25. multiply( ts_decay_linear(ts_delta(close,20), 10), reverse(ts_zscore(close,60)) )
26. multiply( ts_decay_linear(ts_delta(close,30), 10), reverse(ts_zscore(close,120)) )
27. multiply( divide(ts_delta(close,5), ts_std_dev(close,20)), group_rank(close, group) )
28. multiply( divide(ts_delta(close,10), ts_std_dev(close,30)), group_rank(close, group) )
29. multiply( divide(ts_delta(close,20), ts_std_dev(close,60)), group_rank(close, group) )
30. multiply( divide(ts_delta(close,30), ts_std_dev(close,120)), group_rank(close, group) )
31. multiply( ts_zscore(ts_delta(close,5),10), reverse(ts_rank(close,10)) )
32. multiply( ts_zscore(ts_delta(close,10),10), reverse(ts_rank(close,20)) )
33. multiply( ts_zscore(ts_delta(close,20),10), reverse(ts_rank(close,30)) )
34. multiply( ts_zscore(ts_delta(close,30),10), reverse(ts_rank(close,60)) )
35. multiply( ts_zscore(ts_delta(close,5),10), reverse(ts_zscore(ts_delta(close,5),20)) )
36. multiply( ts_zscore(ts_delta(close,10),10), reverse(ts_zscore(ts_delta(close,10),30)) )
37. multiply( ts_zscore(ts_delta(close,20),10), reverse(ts_zscore(ts_delta(close,20),60)) )
38. multiply( ts_zscore(ts_delta(close,30),10), reverse(ts_zscore(ts_delta(close,30),120)) )
39. multiply( ts_zscore(ts_delta(close,5),10), reverse(ts_zscore(ts_delta(close,5),20)) )
40. multiply( ts_zscore(ts_delta(close,10),10), reverse(ts_zscore(ts_delta(close,10),30)) )
41. multiply( ts_zscore(ts_delta(close,20),10), reverse(ts_zscore(ts_delta(close,20),60)) )
42. multiply( ts_zscore(ts_delta(close,30),10), reverse(ts_zscore(ts_delta(close,30),120)) )
43. multiply( ts_zscore(ts_delta(close,5),10), reverse(ts_zscore(ts_delta(close,5),20)) )
44. multiply( ts_zscore(ts_delta(close,10),10), reverse(ts_zscore(ts_delta(close,10),30)) )
45. multiply( ts_zscore(ts_delta(close,20),10), reverse(ts_zscore(ts_delta(close,20),60)) )
46. multiply( ts_zscore(ts_delta(close,30),10), reverse(ts_zscore(ts_delta(close,30),120)) )
47. multiply( group_mean(ts_delta(close,5), group), reverse(ts_zscore(close,20)) )
48. multiply( group_mean(ts_delta(close,10), group), reverse(ts_zscore(close,30)) )
49. multiply( group_mean(ts_delta(close,20), group), reverse(ts_zscore(close,60)) )
50. multiply( group_mean(ts_delta(close,30), group), reverse(ts_zscore(close,120)) )
51. multiply( group_std_dev(ts_delta(close,5), group), reverse(ts_zscore(close,20)) )
52. multiply( group_std_dev(ts_delta(close,10), group), reverse(ts_zscore(close,30)) )
53. multiply( group_std_dev(ts_delta(close,20), group), reverse(ts_zscore(close,60)) )
54. multiply( group_std_dev(ts_delta(close,30), group), reverse(ts_zscore(close,120)) )
55. multiply( ts_corr(group_rank(close, group), group_rank(volume, group), 20), reverse(ts_rank(close,20)) )
56. multiply( ts_corr(group_rank(close, group), group_rank(volume, group), 30), reverse(ts_rank(close,30)) )
57. multiply( ts_corr(group_rank(close, group), group_rank(volume, group), 60), reverse(ts_rank(close,60)) )
58. multiply( ts_corr(group_rank(close, group), group_rank(volume, group), 120), reverse(ts_rank(close,120)) )
59. multiply( ts_covariance(close, group_mean(close, group), 20), reverse(ts_rank(close,20)) )
60. multiply( ts_covariance(close, group_mean(close, group), 30), reverse(ts_rank(close,30)) )
61. multiply( ts_covariance(close, group_mean(close, group), 60), reverse(ts_rank(close,60)) )
62. multiply( ts_covariance(close, group_mean(close, group), 120), reverse(ts_rank(close,120)) )
63. multiply( ts_decay_linear(group_mean(close, group), 10), reverse(ts_zscore(close,20)) )
64. multiply( ts_decay_linear(group_mean(close, group), 20), reverse(ts_zscore(close,30)) )
65. multiply( ts_decay_linear(group_mean(close, group), 30), reverse(ts_zscore(close,60)) )
66. multiply( ts_decay_linear(group_mean(close, group), 60), reverse(ts_zscore(close,120)) )
67. multiply( group_rank(ts_decay_linear(ts_delta(close,5), 10), group), reverse(ts_zscore(close,20)) )
68. multiply( group_rank(ts_decay_linear(ts_delta(close,10), 10), group), reverse(ts_zscore(close,30)) )
69. multiply( group_rank(ts_decay_linear(ts_delta(close,20), 10), group), reverse(ts_zscore(close,60)) )
70. multiply( group_rank(ts_decay_linear(ts_delta(close,30), 10), group), reverse(ts_zscore(close,120)) )
71. multiply( group_rank(ts_zscore(ts_delta(close,5),10), group), reverse(ts_rank(close,20)) )
72. multiply( group_rank(ts_zscore(ts_delta(close,10),10), group), reverse(ts_rank(close,30)) )
73. multiply( group_rank(ts_zscore(ts_delta(close,20),10), group), reverse(ts_rank(close,60)) )
74. multiply( group_rank(ts_zscore(ts_delta(close,30),10), group), reverse(ts_rank(close,120)) )
75. multiply( group_rank(ts_zscore(ts_delta(close,5),10), group), reverse(ts_zscore(close,20)) )
76. multiply( group_rank(ts_zscore(ts_delta(close,10),10), group), reverse(ts_zscore(close,30)) )
77. multiply( group_rank(ts_zscore(ts_delta(close,20),10), group), reverse(ts_zscore(close,60)) )
78. multiply( group_rank(ts_zscore(ts_delta(close,30),10), group), reverse(ts_zscore(close,120)) )
79. multiply( ts_regression(close, ts_step(1), 20, 0, 1), reverse(ts_zscore(ts_regression(close, ts_step(1), 20, 0, 1))) )
80. multiply( ts_regression(close, ts_step(1), 30, 0, 1), reverse(ts_zscore(ts_regression(close, ts_step(1), 30, 0, 1))) )
81. multiply( ts_regression(close, ts_step(1), 60, 0, 1), reverse(ts_zscore(ts_regression(close, ts_step(1), 60, 0, 1))) )
82. multiply( ts_regression(close, ts_step(1), 120, 0, 1), reverse(ts_zscore(ts_regression(close, ts_step(1), 120, 0, 1))) )
83. multiply( ts_regression(close, ts_step(1), 20, 0, 1), reverse(ts_corr(ts_regression(close, ts_step(1), 20, 0, 1), volume, 20)) )
84. multiply( ts_regression(close, ts_step(1), 30, 0, 1), reverse(ts_corr(ts_regression(close, ts_step(1), 30, 0, 1), volume, 30)) )
85. multiply( ts_regression(close, ts_step(1), 60, 0, 1), reverse(ts_corr(ts_regression(close, ts_step(1), 60, 0, 1), volume, 60)) )
86. multiply( ts_regression(close, ts_step(1), 120, 0, 1), reverse(ts_corr(ts_regression(close, ts_step(1), 120, 0, 1), volume, 120)) )
87. multiply( ts_zscore(ts_regression(close, ts_step(1), 20, 0, 1),20), reverse(ts_rank(ts_regression(close, ts_step(1), 20, 0, 1),10)) )
88. multiply( ts_zscore(ts_regression(close, ts_step(1), 30, 0, 1),30), reverse(ts_rank(ts_regression(close, ts_step(1), 30, 0, 1),20)) )
89. multiply( ts_zscore(ts_regression(close, ts_step(1), 60, 0, 1),60), reverse(ts_rank(ts_regression(close, ts_step(1), 60, 0, 1),30)) )
90. multiply( ts_zscore(ts_regression(close, ts_step(1), 120, 0, 1),120), reverse(ts_rank(ts_regression(close, ts_step(1), 120, 0, 1),60)) )
91. multiply( group_rank(ts_regression(close, ts_step(1), 20, 0, 1), group), reverse(ts_zscore(volume,20)) )
92. multiply( group_rank(ts_regression(close, ts_step(1), 30, 0, 1), group), reverse(ts_zscore(volume,30)) )
93. multiply( group_rank(ts_regression(close, ts_step(1), 60, 0, 1), group), reverse(ts_zscore(volume,60)) )
94. multiply( group_rank(ts_regression(close, ts_step(1), 120, 0, 1), group), reverse(ts_zscore(volume,120)) )
95. multiply( ts_zscore(ts_corr(close, group_mean(close, group),20),30), reverse(ts_rank(close,20)) )
96. multiply( ts_zscore(ts_corr(close, group_mean(close, group),30),30), reverse(ts_rank(close,30)) )
97. multiply( ts_zscore(ts_corr(close, group_mean(close, group),60),30), reverse(ts_rank(close,60)) )
98. multiply( ts_zscore(ts_corr(close, group_mean(close, group),120),30), reverse(ts_rank(close,120)) )
99. multiply( ts_zscore(ts_covariance(close, group_mean(close, group),20),30), reverse(ts_rank(close,20)) )
100. multiply( ts_zscore(ts_covariance(close, group_mean(close, group),30),30), reverse(ts_rank(close,30)) )
These factors combine various aspects of momentum (M), leadership (L), reversal (R), spillover (S), and quality (Q) across different lookback periods and industry groups. Each expression uses allowed WebSim functions and operators to capture unique market dynamics for industry rotation strategies.

@ -0,0 +1,87 @@
multiply(ts_delta(group_mean(ts_regression(close, ts_step(1), 20, 0, 1), bucket(rank(close), "0,0.3")), 5), reverse(ts_corr(ts_zscore(volume, 20), ts_zscore(close, 20), 10)))
if_else(ts_std_dev(close, 20) > ts_mean(ts_std_dev(close, 20), 120), divide(ts_delta(close, 5), ts_std_dev(close, 20)), ts_delta(close, 20))
multiply(group_zscore(ts_rank(close, 10), bucket(rank(volume), "0,0.5,1")), ts_corr(group_mean(close, bucket(rank(close), "0,0.2")), group_mean(close, bucket(rank(close), "0.8,1")), 30))
multiply(ts_zscore(ts_decay_linear(close, 10), 60), reverse(group_rank(ts_corr(volume, close, 5), bucket(rank(close), "0,0.25,0.5,0.75,1"))))
ts_regression(group_scale(ts_sum(volume, 5), bucket(rank(close), "0,0.3,0.6,1")), ts_scale(close, 20), 30, 0, 1)
if_else(ts_rank(ts_std_dev(close, 5), 60) < 0.3, ts_delta(ts_mean(close, 10), 5), reverse(ts_delta(ts_mean(close, 30), 5)))
multiply(ts_corr(ts_av_diff(close, 10), ts_av_diff(volume, 10), 20), group_mean(ts_zscore(close, 20), bucket(rank(ts_delta(close, 1)), "0,0.2,0.8,1")))
divide(ts_delta(group_mean(close, bucket(rank(volume), "0.7,1")), 10), ts_std_dev(group_mean(close, bucket(rank(close), "0,0.5")), 20))
subtract(ts_rank(ts_covariance(close, volume, 10), 30), group_rank(ts_rank(close, 5), bucket(rank(close), "0,0.25,0.5,0.75,1")))
multiply(ts_zscore(ts_sum(close, 5), 20), if_else(ts_corr(close, volume, 10) < ts_mean(ts_corr(close, volume, 10), 60), -1, 1))
ts_delta(ts_regression(group_mean(close, bucket(rank(ts_delta(close, 5)), "0.5,1")), ts_step(1), 60, 0, 1), 5)
multiply(group_neutralize(ts_decay_linear(close, 20), bucket(rank(volume), "0,0.33,0.66,1")), ts_corr(ts_zscore(close, 10), ts_zscore(volume, 10), 30))
if_else(ts_std_dev(close, 10) > ts_mean(ts_std_dev(close, 10), 120), ts_rank(ts_delta(close, 2), 20), ts_rank(ts_delta(close, 10), 20))
multiply(ts_scale(ts_corr(group_mean(close, bucket(rank(close), "0,0.2")), group_mean(close, bucket(rank(close), "0.8,1")), 20), 60), reverse(ts_rank(volume, 10)))
divide(ts_zscore(group_mean(ts_delta(close, 1), bucket(rank(volume), "0.8,1")), 30), ts_std_dev(group_mean(close, bucket(rank(close), "0,0.5")), 30))
multiply(ts_delta(ts_mean(close, 20), 5), group_zscore(ts_sum(volume, 5), bucket(rank(ts_delta(close, 1)), "0,0.3,0.7,1")))
subtract(ts_regression(close, volume, 30, 0, 1), group_mean(ts_regression(close, volume, 30, 0, 1), bucket(rank(close), "0,0.2,0.4,0.6,0.8,1")))
if_else(ts_rank(close, 30) > 0.7, reverse(ts_delta(close, 5)), ts_delta(ts_mean(close, 10), 5))
multiply(ts_corr(ts_decay_linear(close, 10), ts_decay_linear(volume, 10), 20), reverse(group_scale(ts_rank(volume, 5), bucket(rank(close), "0,0.5,1"))))
ts_zscore(group_mean(ts_av_diff(close, 5), bucket(rank(ts_delta(close, 1)), "0.6,1")), 40)
multiply(if_else(ts_std_dev(close, 5) > ts_mean(ts_std_dev(close, 5), 120), ts_rank(close, 10), ts_rank(close, 30)), ts_corr(ts_zscore(close, 20), ts_zscore(volume, 20), 10))
divide(group_mean(ts_delta(close, 10), bucket(rank(volume), "0.7,1")), ts_std_dev(group_mean(close, bucket(rank(close), "0,0.3")), 20))
ts_regression(ts_sum(close, 5), group_mean(ts_sum(volume, 5), bucket(rank(close), "0,0.25,0.5,0.75,1")), 40, 0, 1)
multiply(ts_rank(ts_covariance(close, volume, 15), 30), reverse(group_rank(ts_zscore(volume, 10), bucket(rank(close), "0,0.5,1"))))
if_else(ts_corr(close, volume, 20) < 0, ts_delta(close, 2), ts_delta(ts_mean(close, 15), 5))
multiply(ts_zscore(ts_decay_linear(volume, 20), 50), group_zscore(ts_rank(close, 10), bucket(rank(ts_delta(close, 5)), "0,0.4,0.8,1")))
subtract(ts_mean(close, 10), group_mean(ts_mean(close, 10), bucket(rank(volume), "0,0.33,0.66,1")))
multiply(ts_delta(group_mean(ts_regression(close, ts_step(1), 30, 0, 1), bucket(rank(volume), "0.5,1")), 10), ts_corr(ts_av_diff(close, 5), ts_av_diff(volume, 5), 20))
if_else(ts_rank(ts_std_dev(close, 10), 60) > 0.8, reverse(ts_zscore(close, 10)), ts_zscore(ts_delta(close, 5), 20))
multiply(ts_scale(ts_corr(group_mean(close, bucket(rank(close), "0,0.1")), group_mean(close, bucket(rank(close), "0.9,1")), 40), 80), ts_rank(ts_sum(volume, 3), 10))
divide(ts_zscore(group_mean(ts_delta(close, 2), bucket(rank(ts_delta(volume, 1)), "0.8,1")), 30), ts_std_dev(close, 30))
multiply(ts_delta(ts_mean(volume, 20), 5), group_scale(ts_corr(close, volume, 5), bucket(rank(close), "0,0.25,0.5,0.75,1")))
ts_regression(ts_av_diff(close, 10), group_mean(ts_av_diff(volume, 10), bucket(rank(close), "0,0.2,0.8,1")), 50, 0, 1)
multiply(ts_rank(ts_decay_linear(close, 15), 30), reverse(group_zscore(ts_sum(volume, 10), bucket(rank(ts_delta(close, 1)), "0,0.5,1"))))
if_else(ts_mean(ts_corr(close, volume, 5), 20) > 0.5, ts_delta(close, 3), reverse(ts_delta(close, 10)))
multiply(ts_zscore(ts_covariance(close, volume, 20), 40), group_mean(ts_rank(close, 5), bucket(rank(volume), "0.6,1")))
subtract(ts_sum(close, 5), group_mean(ts_sum(close, 5), bucket(rank(ts_delta(volume, 1)), "0,0.25,0.5,0.75,1")))
multiply(ts_delta(group_scale(close, bucket(rank(volume), "0,0.5,1")), 10), ts_corr(ts_zscore(close, 15), ts_zscore(volume, 15), 25))
if_else(ts_std_dev(close, 20) < ts_mean(ts_std_dev(close, 20), 120), ts_rank(ts_delta(close, 1), 15), reverse(ts_rank(ts_delta(close, 5), 15)))
multiply(ts_scale(ts_corr(group_mean(ts_delta(close, 1), bucket(rank(close), "0,0.2")), group_mean(ts_delta(close, 1), bucket(rank(close), "0.8,1")), 30), 60), ts_rank(volume, 20))
divide(group_zscore(ts_mean(close, 10), bucket(rank(ts_delta(volume, 1)), "0.7,1")), ts_std_dev(group_zscore(close, 10), 30))
multiply(ts_delta(ts_regression(close, volume, 40, 0, 1), 5), group_rank(ts_corr(close, volume, 10), bucket(rank(close), "0,0.33,0.66,1")))
ts_regression(ts_decay_linear(close, 10), group_mean(ts_decay_linear(volume, 10), bucket(rank(close), "0,0.4,0.8,1")), 60, 0, 1)
multiply(ts_rank(ts_av_diff(close, 20), 40), reverse(group_scale(ts_zscore(volume, 15), bucket(rank(ts_delta(close, 5)), "0,0.5,1"))))
if_else(ts_rank(close, 20) < 0.3, ts_delta(close, 5), reverse(ts_delta(ts_mean(close, 15), 5)))
multiply(ts_zscore(ts_sum(volume, 20), 50), group_zscore(ts_regression(close, ts_step(1), 20, 0, 1), bucket(rank(volume), "0.5,1")))
subtract(ts_covariance(close, volume, 15), group_mean(ts_covariance(close, volume, 15), bucket(rank(close), "0,0.2,0.4,0.6,0.8,1")))
multiply(ts_delta(group_mean(ts_rank(close, 10), bucket(rank(ts_delta(volume, 1)), "0.6,1")), 10), ts_corr(ts_av_diff(close, 10), ts_av_diff(volume, 10), 30))
if_else(ts_mean(ts_corr(close, volume, 10), 40) < 0, ts_rank(ts_delta(close, 2), 20), ts_rank(ts_delta(close, 8), 20))
multiply(ts_scale(ts_corr(group_zscore(close, 10), group_zscore(volume, 10), 20), 40), reverse(ts_rank(ts_sum(volume, 5), 15)))
divide(ts_zscore(group_mean(ts_regression(close, ts_step(1), 25, 0, 1), bucket(rank(volume), "0.8,1")), 35), ts_std_dev(ts_zscore(close, 15), 35))
multiply(ts_delta(ts_mean(ts_corr(close, volume, 5), 20), 5), group_scale(ts_rank(ts_delta(close, 1), 10), bucket(rank(close), "0,0.25,0.5,0.75,1")))
ts_regression(ts_zscore(close, 20), group_mean(ts_zscore(volume, 20), bucket(rank(ts_delta(close, 5)), "0,0.3,0.7,1")), 70, 0, 1)
multiply(ts_rank(ts_decay_linear(volume, 25), 50), reverse(group_rank(ts_av_diff(close, 15), bucket(rank(close), "0,0.5,1"))))
if_else(ts_std_dev(close, 15) > ts_mean(ts_std_dev(close, 15), 120), reverse(ts_zscore(ts_delta(close, 3), 20)), ts_zscore(ts_delta(close, 10), 20))
multiply(ts_zscore(ts_covariance(ts_delta(close, 1), ts_delta(volume, 1), 20), 40), group_mean(ts_scale(close, 30), bucket(rank(volume), "0.7,1")))
subtract(ts_sum(ts_delta(close, 1), 10), group_mean(ts_sum(ts_delta(close, 1), 10), bucket(rank(volume), "0,0.33,0.66,1")))
multiply(ts_delta(group_zscore(ts_rank(volume, 10), bucket(rank(close), "0,0.4,0.8,1")), 5), ts_corr(ts_zscore(ts_sum(close, 5), 20), ts_zscore(ts_sum(volume, 5), 20), 25))
if_else(ts_rank(ts_corr(close, volume, 5), 30) > 0.7, reverse(ts_delta(close, 4)), ts_delta(ts_mean(close, 12), 6))
multiply(ts_scale(ts_corr(group_mean(ts_zscore(close, 15), bucket(rank(close), "0,0.15")), group_mean(ts_zscore(close, 15), bucket(rank(close), "0.85,1")), 35), 70), ts_rank(ts_decay_linear(volume, 10), 20))
divide(group_mean(ts_zscore(ts_delta(close, 2), 30), bucket(rank(ts_delta(volume, 1)), "0.9,1")), ts_std_dev(group_mean(close, bucket(rank(close), "0,0.2")), 40))
multiply(ts_delta(ts_regression(volume, ts_step(1), 30, 0, 1), 5), group_rank(ts_zscore(ts_corr(close, volume, 10), 20), bucket(rank(close), "0,0.25,0.5,0.75,1")))
ts_regression(ts_av_diff(volume, 20), group_mean(ts_av_diff(close, 20), bucket(rank(ts_delta(volume, 1)), "0,0.3,0.7,1")), 80, 0, 1)
multiply(ts_rank(ts_sum(close, 15), 30), reverse(group_scale(ts_corr(close, volume, 8), bucket(rank(ts_delta(close, 5)), "0,0.5,1"))))
if_else(ts_mean(ts_std_dev(close, 5), 60) > ts_std_dev(close, 60), ts_rank(ts_delta(close, 1), 25), reverse(ts_rank(ts_delta(close, 7), 25)))
multiply(ts_zscore(ts_decay_linear(ts_corr(close, volume, 10), 20), 50), group_zscore(ts_regression(close, volume, 25, 0, 1), bucket(rank(volume), "0.6,1")))
subtract(ts_covariance(ts_delta(close, 1), ts_delta(volume, 1), 20), group_mean(ts_covariance(ts_delta(close, 1), ts_delta(volume, 1), 20), bucket(rank(close), "0,0.2,0.4,0.6,0.8,1")))
multiply(ts_delta(group_mean(ts_scale(close, 40), bucket(rank(ts_delta(volume, 1)), "0.7,1")), 10), ts_corr(ts_zscore(ts_mean(close, 10), 30), ts_zscore(ts_mean(volume, 10), 30), 20))
if_else(ts_rank(close, 40) < 0.2, ts_delta(close, 8), if_else(ts_rank(close, 40) > 0.8, reverse(ts_delta(close, 8)), ts_delta(close, 3)))
multiply(ts_scale(ts_corr(group_rank(ts_delta(close, 1), bucket(rank(volume), "0,0.5,1")), group_rank(ts_delta(volume, 1), bucket(rank(volume), "0,0.5,1")), 25), 50), ts_rank(ts_sum(close, 8), 15))
divide(ts_zscore(group_mean(ts_regression(volume, ts_step(1), 35, 0, 1), bucket(rank(close), "0.8,1")), 45), ts_std_dev(ts_zscore(volume, 25), 45))
multiply(ts_delta(ts_mean(ts_av_diff(close, 5), 25), 10), group_scale(ts_rank(ts_corr(close, volume, 12), 30), bucket(rank(close), "0,0.33,0.66,1")))
ts_regression(ts_zscore(ts_delta(close, 1), 30), group_mean(ts_zscore(ts_delta(volume, 1), 30), bucket(rank(ts_delta(close, 5)), "0,0.4,0.8,1")), 90, 0, 1)
multiply(ts_rank(ts_decay_linear(ts_av_diff(close, 10), 30), 60), reverse(group_rank(ts_zscore(ts_sum(volume, 10), 20), bucket(rank(close), "0,0.5,1"))))
if_else(ts_corr(ts_mean(close, 10), ts_mean(volume, 10), 20) < ts_mean(ts_corr(ts_mean(close, 10), ts_mean(volume, 10), 20), 100), ts_delta(close, 4), reverse(ts_delta(close, 15)))
multiply(ts_zscore(ts_covariance(ts_mean(close, 5), ts_mean(volume, 5), 25), 55), group_mean(ts_scale(ts_delta(close, 1), 20), bucket(rank(volume), "0.5,1")))
subtract(ts_sum(ts_zscore(close, 20), 10), group_mean(ts_sum(ts_zscore(close, 20), 10), bucket(rank(ts_delta(volume, 1)), "0,0.25,0.5,0.75,1")))
multiply(ts_delta(group_zscore(ts_rank(ts_corr(close, volume, 8), 25), bucket(rank(close), "0,0.3,0.7,1")), 5), ts_corr(ts_zscore(ts_decay_linear(close, 15), 30), ts_zscore(ts_decay_linear(volume, 15), 30), 35))
if_else(ts_std_dev(ts_delta(close, 1), 10) > ts_mean(ts_std_dev(ts_delta(close, 1), 10), 120), ts_rank(ts_delta(close, 2), 30), reverse(ts_rank(ts_delta(close, 10), 30)))
multiply(ts_scale(ts_corr(group_mean(ts_regression(close, ts_step(1), 40, 0, 1), bucket(rank(volume), "0,0.2")), group_mean(ts_regression(close, ts_step(1), 40, 0, 1), bucket(rank(volume), "0.8,1")), 50), 100), ts_rank(ts_decay_linear(volume, 20), 25))
divide(group_mean(ts_zscore(ts_delta(close, 3), 35), bucket(rank(ts_delta(volume, 2)), "0.9,1")), ts_std_dev(group_mean(ts_delta(close, 1), bucket(rank(close), "0,0.15")), 50))
multiply(ts_delta(ts_regression(ts_av_diff(close, 5), ts_av_diff(volume, 5), 50, 0, 1), 10), group_rank(ts_scale(ts_corr(close, volume, 15), 40), bucket(rank(close), "0,0.25,0.5,0.75,1")))
ts_regression(ts_sum(ts_delta(close, 1), 20), group_mean(ts_sum(ts_delta(volume, 1), 20), bucket(rank(ts_delta(close, 5)), "0,0.35,0.75,1")), 110, 0, 1)
multiply(ts_rank(ts_decay_linear(ts_zscore(close, 25), 40), 70), reverse(group_scale(ts_rank(ts_covariance(close, volume, 10), 35), bucket(rank(ts_delta(volume, 1)), "0,0.5,1"))))
if_else(ts_rank(ts_mean(close, 15), 50) > 0.75, reverse(ts_zscore(ts_delta(close, 4), 25)), ts_zscore(ts_delta(close, 12), 25))
multiply(ts_zscore(ts_covariance(ts_zscore(close, 20), ts_zscore(volume, 20), 30), 65), group_mean(ts_rank(ts_decay_linear(close, 20), 30), bucket(rank(volume), "0.6,1")))
subtract(ts_covariance(ts_mean(close, 8), ts_mean(volume, 8), 20), group_mean(ts_covariance(ts_mean(close, 8), ts_mean(volume, 8), 20), bucket(rank(ts_delta(close, 1)), "0,0.2,0.4,0.6,0.8,1")))

@ -0,0 +1,110 @@
multiply(ts_delta(ts_mean(close, 20), 5), group_zscore(close, industry))
subtract(group_rank(volume, industry), ts_rank(ts_av_diff(close, 30), 60))
multiply(ts_decay_linear(ts_delta(close, 10), 20), group_mean(ts_zscore(close, 60), industry))
add(ts_corr(close, volume, 30), if_else(ts_std_dev(close, 20) > ts_mean(ts_std_dev(close, 20), 60), 1, -1))
divide(ts_regression(close, ts_step(1), 30, 0, 1), group_std(close, industry))
multiply(ts_zscore(ts_delta(close, 5), 20), group_neutralize(ts_mean(close, 60), industry))
subtract(ts_scale(close, 90), group_scale(ts_delta(volume, 5), industry))
multiply(ts_av_diff(close, 30), group_zscore(ts_mean(close, 20), industry))
add(ts_corr(ts_zscore(close, 10), ts_zscore(volume, 10), 20), ts_rank(ts_delta(close, 5), 60))
divide(group_mean(ts_regression(close, ts_step(1), 20, 0, 1), industry), ts_std_dev(close, 30))
multiply(ts_decay_linear(ts_delta(ts_mean(close, 10), 5), 15), group_rank(close, industry))
subtract(ts_rank(ts_mean(close, 60), 90), group_zscore(ts_delta(close, 3), industry))
multiply(ts_std_dev(close, 20), if_else(ts_corr(close, volume, 10) > 0.5, 1, -1))
add(ts_regression(close, ts_step(1), 60, 0, 1), group_mean(ts_zscore(volume, 30), industry))
divide(ts_delta(ts_mean(close, 30), 10), group_neutralize(ts_std_dev(close, 20), industry))
multiply(ts_zscore(ts_delta(close, 3), 10), group_scale(ts_mean(volume, 20), industry))
subtract(ts_av_diff(close, 60), group_rank(ts_delta(close, 5), industry))
multiply(ts_corr(ts_mean(close, 10), ts_mean(volume, 10), 30), ts_rank(ts_delta(close, 5), 30))
add(ts_decay_linear(ts_delta(close, 5), 10), group_zscore(ts_mean(close, 90), industry))
divide(ts_regression(close, ts_step(1), 20, 0, 1), ts_mean(group_std(close, industry), 30))
multiply(ts_scale(ts_delta(close, 5), 20), group_mean(ts_zscore(ts_delta(close, 3), 10), industry))
subtract(ts_rank(ts_mean(close, 30), 60), group_neutralize(ts_delta(close, 5), industry))
multiply(ts_av_diff(close, 20), group_scale(ts_mean(ts_delta(close, 3), 10), industry))
add(ts_corr(ts_zscore(close, 20), ts_zscore(volume, 20), 30), ts_rank(ts_delta(close, 5), 30))
divide(ts_std_dev(ts_delta(close, 5), 20), group_mean(ts_regression(close, ts_step(1), 30, 0, 1), industry))
multiply(ts_decay_linear(ts_mean(close, 10), 15), group_zscore(ts_delta(close, 3), industry))
subtract(ts_rank(ts_mean(close, 60), 90), group_neutralize(ts_std_dev(close, 30), industry))
multiply(ts_zscore(ts_delta(close, 5), 30), group_scale(ts_mean(close, 20), industry))
add(ts_regression(close, ts_step(1), 30, 0, 1), group_mean(ts_zscore(ts_delta(close, 5), 30), industry))
divide(ts_delta(ts_mean(close, 20), 5), group_rank(ts_std_dev(close, 10), industry))
multiply(ts_av_diff(close, 30), group_mean(ts_regression(close, ts_step(1), 20, 0, 1), industry))
subtract(ts_corr(close, volume, 20), group_zscore(ts_mean(close, 60), industry))
multiply(ts_scale(ts_delta(close, 5), 30), group_neutralize(ts_delta(volume, 5), industry))
add(ts_rank(ts_std_dev(close, 20), 60), group_scale(ts_mean(close, 30), industry))
divide(ts_regression(close, ts_step(1), 90, 0, 1), ts_mean(group_zscore(close, industry), 30))
multiply(ts_decay_linear(ts_delta(close, 3), 20), group_rank(ts_zscore(close, 30), industry))
subtract(ts_av_diff(close, 60), group_mean(ts_std_dev(close, 20), industry))
multiply(ts_corr(ts_mean(close, 5), ts_mean(volume, 5), 20), ts_rank(ts_delta(close, 3), 30))
add(ts_zscore(ts_delta(close, 5), 20), group_neutralize(ts_mean(close, 60), industry))
divide(ts_std_dev(ts_delta(close, 3), 10), group_mean(ts_regression(close, ts_step(1), 60, 0, 1), industry))
multiply(ts_scale(ts_mean(close, 30), 60), group_zscore(ts_delta(close, 5), industry))
subtract(ts_rank(ts_mean(close, 20), 60), group_neutralize(ts_zscore(close, 30), industry))
multiply(ts_av_diff(close, 90), group_scale(ts_mean(ts_delta(close, 3), 10), industry))
add(ts_corr(ts_zscore(close, 10), ts_zscore(volume, 10), 60), ts_rank(ts_delta(close, 5), 90))
divide(ts_regression(close, ts_step(1), 30, 0, 1), group_std(ts_delta(close, 5), industry))
multiply(ts_decay_linear(ts_delta(ts_mean(close, 5), 3), 15), group_rank(ts_zscore(close, 60), industry))
subtract(ts_rank(ts_std_dev(close, 30), 90), group_mean(ts_zscore(ts_delta(close, 3), 10), industry))
multiply(ts_zscore(ts_delta(close, 3), 20), group_neutralize(ts_mean(close, 30), industry))
add(ts_mean(ts_regression(close, ts_step(1), 20, 0, 1), 60), group_scale(ts_delta(close, 5), industry))
divide(ts_delta(ts_mean(close, 30), 10), group_zscore(ts_std_dev(close, 20), industry))
multiply(ts_av_diff(close, 10), group_mean(ts_regression(close, ts_step(1), 90, 0, 1), industry))
subtract(ts_corr(close, volume, 10), group_neutralize(ts_mean(close, 60), industry))
multiply(ts_scale(ts_delta(close, 5), 90), group_rank(ts_zscore(ts_delta(close, 3), 20), industry))
add(ts_rank(ts_mean(close, 60), 90), group_scale(ts_std_dev(close, 10), industry))
divide(ts_regression(close, ts_step(1), 20, 0, 1), ts_mean(group_rank(close, industry), 30))
multiply(ts_decay_linear(ts_delta(close, 3), 30), group_zscore(ts_mean(close, 20), industry))
subtract(ts_av_diff(close, 30), group_neutralize(ts_delta(close, 5), industry))
multiply(ts_corr(ts_mean(close, 30), ts_mean(volume, 30), 60), ts_rank(ts_delta(close, 5), 60))
add(ts_zscore(ts_delta(close, 5), 60), group_mean(ts_std_dev(close, 20), industry))
divide(ts_std_dev(ts_delta(close, 5), 30), group_mean(ts_regression(close, ts_step(1), 20, 0, 1), industry))
multiply(ts_scale(ts_mean(close, 60), 90), group_neutralize(ts_delta(close, 3), industry))
subtract(ts_rank(ts_mean(close, 30), 60), group_zscore(ts_mean(close, 90), industry))
multiply(ts_av_diff(close, 20), group_scale(ts_mean(ts_delta(close, 5), 3), industry))
add(ts_corr(ts_zscore(close, 20), ts_zscore(volume, 20), 90), ts_rank(ts_delta(close, 3), 30))
divide(ts_regression(close, ts_step(1), 60, 0, 1), group_std(ts_delta(close, 3), industry))
multiply(ts_decay_linear(ts_delta(close, 5), 20), group_rank(ts_zscore(close, 20), industry))
subtract(ts_rank(ts_std_dev(close, 10), 30), group_mean(ts_zscore(ts_delta(close, 5), 20), industry))
multiply(ts_zscore(ts_delta(close, 3), 10), group_neutralize(ts_mean(close, 60), industry))
add(ts_mean(ts_regression(close, ts_step(1), 30, 0, 1), 90), group_scale(ts_delta(close, 5), industry))
divide(ts_delta(ts_mean(close, 10), 5), group_zscore(ts_std_dev(close, 30), industry))
multiply(ts_av_diff(close, 60), group_mean(ts_regression(close, ts_step(1), 20, 0, 1), industry))
subtract(ts_corr(close, volume, 30), group_neutralize(ts_mean(close, 20), industry))
multiply(ts_scale(ts_delta(close, 3), 60), group_rank(ts_zscore(ts_delta(close, 5), 10), industry))
add(ts_rank(ts_mean(close, 90), 90), group_scale(ts_std_dev(close, 30), industry))
divide(ts_regression(close, ts_step(1), 90, 0, 1), ts_mean(group_zscore(close, industry), 60))
multiply(ts_decay_linear(ts_delta(ts_mean(close, 3), 5), 15), group_zscore(ts_mean(close, 30), industry))
subtract(ts_av_diff(close, 20), group_neutralize(ts_delta(close, 3), industry))
multiply(ts_corr(ts_mean(close, 20), ts_mean(volume, 20), 30), ts_rank(ts_delta(close, 5), 20))
add(ts_zscore(ts_delta(close, 5), 30), group_mean(ts_std_dev(close, 10), industry))
divide(ts_std_dev(ts_delta(close, 3), 20), group_mean(ts_regression(close, ts_step(1), 30, 0, 1), industry))
multiply(ts_scale(ts_mean(close, 20), 30), group_neutralize(ts_delta(close, 5), industry))
subtract(ts_rank(ts_mean(close, 60), 90), group_zscore(ts_mean(close, 30), industry))
multiply(ts_av_diff(close, 90), group_scale(ts_mean(ts_delta(close, 3), 5), industry))
add(ts_corr(ts_zscore(close, 30), ts_zscore(volume, 30), 60), ts_rank(ts_delta(close, 5), 30))
divide(ts_regression(close, ts_step(1), 20, 0, 1), group_std(ts_delta(close, 5), industry))
multiply(ts_decay_linear(ts_delta(close, 5), 10), group_rank(ts_zscore(close, 90), industry))
subtract(ts_rank(ts_std_dev(close, 20), 60), group_mean(ts_zscore(ts_delta(close, 3), 30), industry))
multiply(ts_zscore(ts_delta(close, 3), 20), group_neutralize(ts_mean(close, 20), industry))
add(ts_mean(ts_regression(close, ts_step(1), 60, 0, 1), 30), group_scale(ts_delta(close, 5), industry))
divide(ts_delta(ts_mean(close, 30), 5), group_zscore(ts_std_dev(close, 20), industry))
multiply(ts_av_diff(close, 30), group_mean(ts_regression(close, ts_step(1), 90, 0, 1), industry))
subtract(ts_corr(close, volume, 20), group_neutralize(ts_mean(close, 90), industry))
multiply(ts_scale(ts_delta(close, 5), 30), group_rank(ts_zscore(ts_delta(close, 3), 20), industry))
add(ts_rank(ts_mean(close, 20), 60), group_scale(ts_std_dev(close, 60), industry))
divide(ts_regression(close, ts_step(1), 30, 0, 1), ts_mean(group_rank(close, industry), 60))
multiply(ts_decay_linear(ts_delta(close, 3), 20), group_zscore(ts_mean(close, 60), industry))
subtract(ts_av_diff(close, 60), group_neutralize(ts_delta(close, 5), industry))
multiply(ts_corr(ts_mean(close, 10), ts_mean(volume, 10), 90), ts_rank(ts_delta(close, 5), 60))
add(ts_zscore(ts_delta(close, 5), 20), group_mean(ts_std_dev(close, 30), industry))
divide(ts_std_dev(ts_delta(close, 5), 10), group_mean(ts_regression(close, ts_step(1), 60, 0, 1), industry))
multiply(ts_scale(ts_mean(close, 90), 90), group_neutralize(ts_delta(close, 3), industry))
subtract(ts_rank(ts_mean(close, 30), 90), group_zscore(ts_mean(close, 60), industry))
multiply(ts_av_diff(close, 10), group_scale(ts_mean(ts_delta(close, 5), 3), industry))
add(ts_corr(ts_zscore(close, 10), ts_zscore(volume, 10), 30), ts_rank(ts_delta(close, 3), 20))
divide(ts_regression(close, ts_step(1), 90, 0, 1), group_std(ts_delta(close, 3), industry))
multiply(ts_decay_linear(ts_delta(ts_mean(close, 5), 3), 30), group_rank(ts_zscore(close, 30), industry))
subtract(ts_rank(ts_std_dev(close, 60), 90), group_mean(ts_zscore(ts_delta(close, 5), 10), industry))
multiply(ts_zscore(ts_delta(close, 3), 60), group_neutralize(ts_mean(close, 30), industry))
add(ts_mean(ts_regression(close, ts_step(1), 20, 0, 1), 60), group_scale(ts_delta(close, 5), industry))
divide(ts_delta(ts_mean(close, 60), 10), group_zscore(ts_std_dev(close, 30), industry))

@ -0,0 +1,82 @@
ts_delta(group_mean(ts_regression(close, ts_step(1), 20, 0, 1), industry, 0, 1), 5) * bucket(group_rank(close, industry), "0.7,1")
ts_regression(group_mean(close, industry), ts_step(1), 30, 0, 1) * ts_rank(close, 20)
ts_zscore(ts_delta(close, 10), 60) * bucket(group_rank(close, industry), "0.8,0.2")
group_mean(ts_delta(close, 10), industry) - ts_mean(close, 20)
ts_delta(group_mean(close, industry), 20) * reverse(if_else(group_rank(close, industry) > 0.7, 1, 0))
ts_corr(group_mean(close, industry), ts_mean(sector_index, 30), 20) * ts_zscore(volume, 30)
ts_regression(group_mean(close, industry), ts_step(1), 60, 0, 1) * group_mean(ts_zscore(volume, 30), industry)
(1 - ts_zscore(group_mean(close, industry), 60)) * ts_rank(close, 30)
ts_delta(group_mean(close, industry), 10) * ts_scale(ts_delay(returns, 1), 5)
group_mean(ts_delta(close, 10), industry) * ts_ranks(industry, 20)
ts_delta(group_mean(close, industry), 5) / ts_std_dev(group_mean(close, industry), 60)
multiply(ts_decay_linear(group_mean(close, industry), 20, densefalse), ts_rank(ts_regression(close, ts_step(1), 30, 0, 1), 20))
ts_zscore(ts_delta(group_mean(close, industry), 5), 60) * bucket(group_rank(close, industry), "0.7,0.3,1")
(group_mean(close, industry) - ts_delay(group_mean(close, industry), 10)) * ts_scale(volume, 30)
divide(group_mean(ts_delta(close, 5), industry), group_mean(ts_delta(close, 20), industry))
ts_regression(group_mean(close, industry), ts_step(1), 40, 0, 1) * group_mean(bucket(rank(close), "0.8,1"), industry)
ts_corr(group_mean(close, industry), group_mean(tech_index, 30), 20) * ts_zscore(volume, 30)
ts_delta(group_mean(close, industry), 15) * if_else(group_rank(close, industry) > 0.7, 1, -1)
ts_scale(multiply(group_mean(close, industry), ts_rank(volume, 20)), 30)
group_zscore(group_mean(close, industry), industry) * ts_delta(returns, 5)
ts_regression(group_mean(close, industry), ts_step(1), 30, 0, 1) * group_mean(bucket(rank(close), "0.6,1"), industry)
ts_zscore(ts_delta(group_mean(close, industry), 10), 60) * reverse(group_rank(close, industry))
group_mean(ts_delta(close, 5), industry) - group_mean(ts_delta(close, 20), industry)
ts_delta(group_mean(close, industry), 20) * group_rank(ts_mean(volume, 30), industry)
divide(group_mean(close, industry), ts_delay(group_mean(close, industry), 10)) * ts_scale(volume, 20)
ts_regression(group_mean(close, industry), ts_step(1), 20, 0, 1) * bucket(group_rank(close, industry), "0.75,1")
ts_corr(group_mean(close, industry), group_mean(sector_index, 30), 20) * ts_zscore(returns, 30)
ts_delta(group_mean(close, industry), 10) * if_else(ts_std_dev(returns, 60) > 0.1, ts_rank(close, 30), -ts_rank(close, 30))
group_mean(ts_delta(close, 5), industry) * ts_scale(ts_regression(close, ts_step(1), 60, 0, 1), 30)
ts_zscore(group_mean(close, industry), 60) * reverse(ts_delta(volume, 10))
ts_regression(group_mean(close, industry), ts_step(1), 30, 0, 1) * group_mean(bucket(rank(volume), "0.9,1"), industry)
ts_delta(group_mean(close, industry), 30) * group_rank(ts_mean(volume, 20), industry)
divide(group_mean(close, industry), ts_delay(group_mean(close, industry), 5)) * ts_rank(returns, 30)
ts_corr(group_mean(close, industry), group_mean(energy_index, 30), 20) * ts_zscore(volume, 20)
ts_delta(group_mean(close, industry), 15) * if_else(group_rank(close, industry) > 0.6, 1, -0.5)
(ts_mean(group_mean(close, industry), 10) - group_mean(close, industry)) * ts_scale(volume, 30)
group_mean(ts_delta(close, 10), industry) * ts_regression(ts_rank(close, 30), ts_step(1), 20, 0, 1)
ts_zscore(ts_delta(group_mean(close, industry), 20), 60) * bucket(group_rank(close, industry), "0.7,0.8,1")
ts_regression(group_mean(close, industry), ts_step(1), 60, 0, 1) * group_mean(ts_delta(volume, 10), industry)
ts_delta(group_mean(close, industry), 5) * ts_scale(group_rank(volume, industry), 20)
divide(ts_delay(group_mean(close, industry), 5), group_mean(close, industry)) * ts_rank(close, 30)
ts_corr(group_mean(close, industry), group_mean(market_index, 30), 20) * ts_zscore(volume, 20)
ts_delta(group_mean(close, industry), 10) * if_else(quantile(group_rank(close, industry), 0.9) > 0.9, 1, -1)
group_mean(ts_delta(close, 5), industry) * ts_regression(group_rank(close, industry), ts_step(1), 40, 0, 1)
ts_zscore(ts_delta(group_mean(close, industry), 15), 60) * reverse(bucket(rank(close), "0.8,1"))
ts_regression(group_mean(close, industry), ts_step(1), 30, 0, 1) * group_mean(bucket(rank(close), "0.6,1"), industry)
(ts_mean(group_mean(close, industry), 20) - group_mean(close, industry)) * ts_scale(volume, 30)
divide(group_mean(close, industry), ts_delay(group_mean(close, industry), 10)) * group_rank(ts_mean(volume, 20), industry)
ts_corr(group_mean(close, industry), group_mean(banking_index, 30), 20) * ts_zscore(returns, 30)
ts_delta(group_mean(close, industry), 20) * if_else(quantile(group_std_dev(close, industry), 0.2) < ts_std_dev(close, industry), 1, -1)
group_mean(ts_delat(close, industry), 20)
group_mean(ts_delta(close, 10), industry) * ts_regression(group_rank(close, industry), ts_step(1), 30, 0, 1)
ts_zscore(ts_delta(group_mean(close, industry), 5), 60) * bucket(group_rank(close, industry), "0.7,1")
ts_regression(group_mean(close, industry), ts_step(1), 20, 0, 1) * group_mean(ts_delta(volume, 10), industry)
ts_delta(group_mean(close, industry), 10) * ts_scale(group_rank(volume, industry), 60)
divide(group_mean(close, industry), ts_delay(group_mean(close, industry), 5)) * ts_rank(returns, 30)
ts_corr(group_mean(close, industry), group_mean(technology_index, 20), 20) * ts_zscore(volume, 20)
ts_delta(group_mean(close, industry), 5) * if_else(group_rank(close, industry) > 0.65, 1, -1)
group_mean(ts_delta(close, 5), industry) * ts_regression(group_rank(close, industry), ts_step(1), 40, 0, 1)
ts_zscore(ts_delta(group_mean(close, industry), 15), 60) * reverse(bucket(rank(close), "0.7,1"))
ts_regression(group_mean(close, industry), ts_step(1), 30, 0, 1) * group_mean(bucket(rank(close), "0.65,1"), industry)
(ts_mean(group_mean(close, industry), 10) - group_mean(close, industry)) * ts_scale(volume, 30)
divide(group_mean(close, industry), ts_delay(group_mean(close, industry), 10)) * group_rank(ts_mean(volume, 20), industry)
ts_corr(group_mean(close, industry), group_mean(consumer_index, 30), 20) * ts_zscore(returns, 30)
ts_delta(group_mean(close, industry), 20) * if_else(quantile(group_std_dev(close, industry), 0.8) < ts_std_dev(close, industry), 1, -1)
group_mean(ts_delta(close, 10), industry) * ts_regression(group_rank(close, industry), ts_step(1), 20, 0, 1)
ts_zscore(ts_delta(group_mean(close, industry), 20), 60) * bucket(group_rank(close, industry), "0.75,1")
ts_regression(group_mean(close, industry), ts_step(1), 40, 0, 1) * group_mean(ts_delta(volume, 10), industry)
ts_delta(group_mean(close, industry), 5) * ts_scale(group_rank(volume, industry), 60)
divide(group_mean(close, industry), ts_delay(group_mean(close, industry), 10)) * ts_rank(returns, 30)
ts_corr(group_mean(close, industry), group_mean(financial_index, 20), 20) * ts_zscore(volume, 20)
ts_delta(group_mean(close, industry), 10) * if_else(group_rank(close, industry) > 0.7, 1, -1)
group_mean(ts_delta(close, 5), industry) * ts_regression(group_rank(close, industry), ts_step(1), 30, 0, 1)
ts_zscore(ts_delta(group_mean(close, industry), 15), 60) * reverse(bucket(rank(close), "0.7,1"))
ts_regression(group_mean(close, industry), ts_step(1), 20, 0, 1) * group_mean(bucket(rank(close), "0.6,1"), industry)
(ts_mean(group_mean(close, industry), 5) - group_mean(close, industry)) * ts_scale(volume, 30)
divide(group_mean(close, industry), ts_delay(group_mean(close, industry), 10)) * group_rank(ts_mean(volume, 20), industry)
ts_corr(group_mean(close, industry), group_mean(healthcare_index, 30), 20) * ts_zscore(returns, 30)
ts_delta(group_mean(close, industry), 20) * if_else(quantile(group_std_dev(close, industry), 0.2) < ts_std_dev(close, industry), 1, -1)
group_mean(ts_delta(close, 10), industry) * ts_regression(group_rank(close), ts_step(1), 40, 0, 1)
ts_zscore(ts_delta(group_mean(close, industry), 5), 60) * bucket(group_rank(close, industry), "0.7,0.85,1")
ts_regression(group_mean(close, industry), ts_step(1), 30, 0, 1) * group_mean(ts_delta(volume, 10), industry)

@ -1,62 +1,91 @@
# -*- coding: utf-8 -*-
import os
import random
import sys
import json
import openai
import httpx
import csv
from datetime import datetime
def load_config(config_file="ai_config.json"):
try:
with open(config_file, 'r', encoding='utf-8') as f:
return json.load(f)
except FileNotFoundError:
print(f"创建配置文件: {config_file}")
with open(config_file, 'w', encoding='utf-8') as f:
json.dump({}, f, indent=4)
print("请在config.json中配置siliconflow的api信息")
return None
def create_prompt_file():
if not os.path.exists("alpha_prompt.txt"):
with open("alpha_prompt.txt", 'w', encoding='utf-8') as f:
f.write("")
print("已创建alpha_prompt.txt,请填入提示词后重新运行")
return False
return True
def read_prompt():
with open("alpha_prompt.txt", 'r', encoding='utf-8') as f:
sys.path.append(os.path.join(os.path.abspath(__file__).split('AlphaGenerator')[0] + 'AlphaGenerator'))
PROJECT_PATH = os.path.join(os.path.abspath(__file__).split('AlphaGenerator')[0] + 'AlphaGenerator')
PREPARE_PROMPT = os.path.join(PROJECT_PATH, 'prepare_prompt')
SELECT_DATA_SET_QTY = 30
SILICONFLOW_API_KEY = "sk-pvdiisdowmuwkrpnxsrlhxaovicqibmlljwrwwvbbdjaitdl"
SILICONFLOW_BASE_URL = "https://api.siliconflow.cn/v1"
MODELS = [
# 'deepseek-ai/DeepSeek-V3.2-Exp',
# 'MiniMaxAI/MiniMax-M2',
# 'zai-org/GLM-4.6',
# 'Qwen/Qwen3-VL-235B-A22B-Instruct',
# 'inclusionAI/Ring-flash-2.0',
# 'zai-org/GLM-4.6',
# 'inclusionAI/Ling-flash-2.0',
'inclusionAI/Ring-flash-2.0',
# 'zai-org/GLM-4.6V'
]
def txtFileLoader(file_path):
if not os.path.exists(file_path):
print(f"文件不存在: {file_path}")
exit(1)
with open(file_path, 'r', encoding='utf-8') as f:
return [line.strip() for line in f if line.strip()]
def csvFileLoader(file_path):
if not os.path.exists(file_path):
print(f"文件不存在: {file_path}")
exit(1)
data = []
with open(file_path, 'r', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
data.append(row)
return data
def read_prompt(alpha_prompt_path):
if not os.path.exists(alpha_prompt_path):
print("alpha_prompt.txt文件不存在")
exit(1)
with open(alpha_prompt_path, 'r', encoding='utf-8') as f:
prompt = f.read().strip()
if not prompt:
print("alpha_prompt.txt是空的,请填入提示词")
return None
return prompt
print("alpha_prompt.txt是空的")
exit(1)
return prompt.replace('\n\n', '\n')
def read_operator():
with open("wqb_operator.txt", 'r', encoding='utf-8') as f:
operator = f.read().strip()
if not operator:
print("operator.txt是空的,请填入操作符")
return None
return operator
def read_operator(operator_prompt_path):
if not os.path.exists(operator_prompt_path):
print("wqb_operator.txt文件不存在")
exit(1)
with open(operator_prompt_path, 'r', encoding='utf-8') as f:
operator_lines = [line.strip() for line in f.readlines() if line.strip()]
if not operator_lines:
print("wqb_operator.txt是空的")
exit(1)
return "\n".join(operator_lines)
def create_result_folder():
# 修改这里:创建 generated_alpha 文件夹
folder_name = "generated_alpha"
if not os.path.exists(folder_name):
os.makedirs(folder_name)
return folder_name
def call_siliconflow(api_key, prompt, model, base_url):
def call_siliconflow(prompt, model):
try:
client = openai.OpenAI(
api_key=api_key,
base_url=base_url
api_key=SILICONFLOW_API_KEY,
base_url=SILICONFLOW_BASE_URL
)
response = client.chat.completions.create(
@ -74,93 +103,124 @@ def call_siliconflow(api_key, prompt, model, base_url):
print(f"API错误: {e}")
except Exception as e:
print(f"其他错误: {e}")
return None
exit(1)
def save_result(result, folder):
timestamp = datetime.now().strftime("%Y%m%d%H%M%S")
filename = f"{timestamp}.txt"
filepath = os.path.join(folder, filename)
now = datetime.now()
date_folder = now.strftime("%Y-%m-%d")
time_filename = now.strftime("%H%M%S")
full_folder_path = os.path.join(folder, date_folder)
if not os.path.exists(full_folder_path):
os.makedirs(full_folder_path)
print(f"创建文件夹: {full_folder_path}")
filename = f"{time_filename}.txt"
filepath = os.path.join(full_folder_path, filename)
with open(filepath, 'w', encoding='utf-8') as f:
f.write(result)
print(f"结果保存到: {filepath}")
def get_ai_config(config):
if not config:
return None
def get_user_info():
headers = {"Authorization": f"Bearer {SILICONFLOW_API_KEY}"}
url = "https://api.siliconflow.cn/v1/user/info"
response = httpx.get(url, headers=headers)
data = response.json()['data']
balance = data['balance']
print(f"余额: {balance}")
return float(balance)
service_name = list(config.keys())[0]
service_config = config[service_name]
required_fields = ["api_keys", "model", "base_url"]
for field in required_fields:
if field not in service_config:
print(f"缺少配置字段: {field}")
return None
def manual_prompt(prompt):
manual_prompt_path = os.path.join(PROJECT_PATH, "manual_prompt")
return service_name, service_config
if not os.path.exists(manual_prompt_path):
os.makedirs(manual_prompt_path)
print(f"创建文件夹: {manual_prompt_path}")
def get_user_info():
# 获取用户信息
with open('ai_config.json', 'r') as f:
config = json.load(f)
siliconflow = config['siliconflow']
token = siliconflow['api_keys']
# 文件名后添加保存时间
now = datetime.now()
filename = f"manual_prompt_{now.strftime('%Y%m%d%H%M%S')}.txt"
filepath = os.path.join(manual_prompt_path, filename)
headers = {"Authorization": f"Bearer {token}"}
with open(filepath, 'w', encoding='utf-8') as f:
f.write(prompt)
url = "https://api.siliconflow.cn/v1/user/info"
print(f"手动提示词保存到: {filepath}")
response = httpx.get(url, headers=headers)
data = response.json()['data']
balance = data['balance']
print(f"余额: {balance}")
def prepare_prompt():
prompt = ''
# 读取基础提示词
alpha_prompt_path = os.path.join(PREPARE_PROMPT, "alpha_prompt.txt")
prompt += read_prompt(alpha_prompt_path)
def main():
get_user_info()
# 读取操作符
prompt += "\n\n以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子\n\n"
prompt += "========================= 操作符开始 ======================================="
prompt += "注意: Operator: 后面的是操作符,\nDescription: 此字段后面的是操作符对应的描述或使用说明, Description字段后面的内容是使用说明, 不是操作符\n"
prompt += "特别注意!!!! 必须按照操作符字段Operator的使用说明生成 alpha"
operator_prompt_path = os.path.join(PREPARE_PROMPT, "operator.txt")
operator = read_operator(operator_prompt_path)
prompt += operator
prompt += "========================= 操作符结束 =======================================\n\n"
config = load_config()
if not config:
return
# 读取数据字段, 数据字段数量庞大, 通过 dataset_id 分组读取, 然后每组里面随机选择 {SELECT_DATA_SET_QTY} 个
data_sets_path = os.path.join(PREPARE_PROMPT, "all_data_combined.csv")
data_sets = csvFileLoader(data_sets_path)
if not create_prompt_file():
return
data_groups = {}
for index, data_set in enumerate(data_sets):
if index == 0:
continue
prompt = read_prompt()
if not prompt:
return
if data_set[2] not in data_groups:
data_groups[data_set[2]] = []
data_groups[data_set[2]].append({data_set[0]: data_set[1]})
config_result = get_ai_config(config)
if not config_result:
return
selected_data_sets = []
for key, value in data_groups.items():
if len(value) < SELECT_DATA_SET_QTY:
selected_data_sets.extend(value)
else:
selected_data_sets.extend(random.sample(value, SELECT_DATA_SET_QTY))
prompt += "========================= 数据字段开始 ======================================="
prompt += "注意: DataField: 后面的是数据字段, DataFieldDescription: 此字段后面的是数据字段对应的描述或使用说明, DataFieldDescription字段后面的内容是使用说明, 不是数据字段\n\n"
for data_set in selected_data_sets:
for key, value in data_set.items():
prompt += f"DataField: {key}\n"
prompt += f"DataFieldDescription: {value}\n"
operator = read_operator()
prompt += "========================= 数据字段结束 =======================================\n\n"
if operator:
prompt = prompt + "\n\n以下是我的账号有权限使用的操作符以及操作符的使用方法, 请严格按照操作符, 进行生成,组合因子\n\n" + operator
return prompt
service_name, service_config = config_result
print(f"使用服务: {service_name}")
print(f"使用模型: {service_config['model']}")
def main():
prompt = prepare_prompt()
# # 如果需要手动在页面段模型, 使用提示词, 打开这个, 将生成的提示词存到本地
manual_prompt(prompt)
balance = get_user_info()
folder = create_result_folder()
print("正在调用AI...")
result = call_siliconflow(
service_config["api_keys"],
prompt,
service_config["model"],
service_config["base_url"]
)
for model in MODELS:
print(f"正在调用AI...{model}")
result = call_siliconflow(prompt, model)
if result:
print(f"AI回复: {result[:200]}...")
save_result(result, folder)
used_balance = balance - get_user_info()
print(f'本次调用 api 使用额度 {used_balance}')
else:
print("AI调用失败")

@ -0,0 +1,922 @@
任务指令
你是一个WorldQuant WebSim因子工程师。你的任务是生成100个用于行业轮动策略的复合型Alpha因子表达式。
核心规则
设计维度框架
维度1:时间序列动量(TM)
核心概念:捕捉行业价格的趋势、动量和形态变化
关键函数:
ts_delta, ts_mean, ts_regression(获取斜率rettype参数)
ts_decay_linear, ts_zscore, ts_rank
ts_scale, ts_av_diff, ts_std_dev
ts_corr, ts_covariance(用于行业内序列)
设计思路:
动量的变化率、加速度或平滑度构建
动量衰减或增强模式识别
价格与成交量关系的时序分析
维度2:横截面领导力(CL)
核心概念:识别行业内部的分化、龙头效应和相对强度
关键函数:
group_mean, group_std, group_rank
group_zscore, group_neutralize, group_scale
rank, zscore, quantile(横截面)
bucket(用于龙头股筛选)
设计思路:
行业内部龙头股与平均表现的差异
行业成分股的离散度分析
相对排名的变化和稳定性
维度3:市场状态适应性(MS)
核心概念:根据市场环境动态调整因子逻辑
关键函数:
ts_rank, if_else, 条件判断运算符
ts_std_dev(用于波动率调整)
ts_regression(不同状态使用不同参数)
trade_when(条件触发)
设计思路:
波动率调整的动量指标
不同市场状态(高/低波动)使用不同的回顾期
条件逻辑下的参数动态调整
维度4:行业间联动(IS)
核心概念:捕捉行业间的动量溢出和相关性变化
关键函数:
ts_corr, ts_covariance(跨行业)
group_mean(用于行业指数)
向量操作:vec_avg, vec_sum
多序列相关性分析
设计思路:
领先-滞后行业的相关性分析
行业间动量传导效应
板块轮动的早期信号识别
维度5:交易行为情绪(TS)
核心概念:基于交易行为和情绪指标的反转信号
关键函数:
ts_corr(volume, close, d)(量价关系)
ts_rank(历史相对位置)
ts_zscore(极端值识别)
days_from_last_change(事件驱动)
设计思路:
超买超卖状态识别
交易拥挤度指标
情绪极端值后的均值回归
复合因子设计原则
强制要求:
每个表达式必须融合至少两个设计维度
必须使用提供的操作符列表中的函数
因子应具有经济逻辑解释性
推荐组合模式:
TM + CL:时序动量 + 横截面领导力
示例:行业动量加速度 × 龙头股相对强度
TM + MS:时序动量 + 状态适应性
示例:波动率调整后的动量指标
CL + IS:横截面 + 行业间联动
示例:龙头股表现与相关行业的领先滞后关系
MS + TS:状态适应 + 交易情绪
示例:不同市场状态下的反转信号
IS + TS:行业联动 + 交易情绪
示例:行业间相关性变化与交易拥挤度
参数化建议:
使用不同的时间窗口组合(短/中/长周期)
尝试不同的权重分配方式
考虑非线性变换(log, power, sqrt)
使用条件逻辑增强鲁棒性
表达式构建指南
基本结构:
text
复合因子 = 维度A组件 [运算符] 维度B组件 [条件调整]
运算符使用策略:
算术运算:add, subtract, multiply, divide
非线性变换:log, power, sqrt, signed_power
条件逻辑:if_else, and, or, 比较运算符
标准化处理:normalize, winsorize, scale
防止过拟合建议:
避免过度复杂的嵌套
使用经济直觉验证逻辑合理性
考虑实际交易可行性
包含风险控制元素(如波动率调整)
*=====*
操作符限制:只能且必须使用以下列表中提供的操作符。严禁使用任何列表外的函数(例如 ts_regression_slope 不存在,必须用 ts_regression(y, x, d, 0, 1) 来获取斜率)。
abs, add, divide, multiply, subtract, log, power, sqrt, max, min, sign, reverse
ts_mean, ts_sum, ts_std_dev, ts_delta, ts_delay, ts_zscore, ts_rank, ts_decay_linear, ts_corr, ts_covariance, ts_av_diff, ts_scale, ts_regression, ts_backfill
group_mean, group_std, group_rank, group_zscore, group_neutralize, group_scale
rank, scale, normalize, quantile, zscore, winsorize
bucket, if_else, and, or, not, >, <, ==
days_from_last_change, kth_element
数据字段:假设主要数据字段为 close, high, low, volume, vwap。可安全使用。
参数逻辑:参数d(回顾期)应在[5, 10, 20, 30, 60, 120]等具有市场意义(周、月、季度、半年)的数值中合理选择并差异化。
行业隐含:通过group_mean、group_rank等函数或假设表达式在行业指数上运行来体现“行业”逻辑。
输出格式:
输出必须是且仅是 100行纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
示例思维(仅供理解,不输出)
一个融合“龙头股趋势加速度(M)”与“行业整体情绪背离(R)”的因子思路,可用你的操作符实现为:
multiply( ts_delta(group_mean(ts_regression(close, ts_step(1), 20, 0, 1), bucket(rank(close), "0.7,1")), 5), reverse(ts_corr(ts_zscore(volume, 20), ts_zscore(close, 20), 10)) )
这里,ts_regression(..., rettype=1)获取斜率代替动量,bucket(rank(close), "0.7,1")近似选取市值前30%的龙头股,ts_corr(...)衡量价量情绪,reverse将其转化为背离信号。
现在,请严格遵守以上所有规则,开始生成100行可立即在WebSim中运行的复合因子表达式。
**输出格式**(一行一个表达式, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
请提供具体的WQ表达式。
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
========================= 操作符开始 =======================================注意: Operator: 后面的是操作符,
Description: 此字段后面的是操作符对应的描述或使用说明, Description字段后面的内容是使用说明, 不是操作符
Operator: abs(x)
Description: Absolute value of x
Operator: add(x, y, filter = false), x + y
Description: Add all inputs (at least 2 inputs required). If filter = true, filter all input NaN to 0 before adding
Operator: densify(x)
Description: Converts a grouping field of many buckets into lesser number of only available buckets so as to make working with grouping fields computationally efficient
Operator: divide(x, y), x / y
Description: x / y
Operator: inverse(x)
Description: 1 / x
Operator: log(x)
Description: Natural logarithm. For example: Log(high/low) uses natural logarithm of high/low ratio as stock weights.
Operator: max(x, y, ..)
Description: Maximum value of all inputs. At least 2 inputs are required
Operator: min(x, y ..)
Description: Minimum value of all inputs. At least 2 inputs are required
Operator: multiply(x ,y, ... , filter=false), x * y
Description: Multiply all inputs. At least 2 inputs are required. Filter sets the NaN values to 1
Operator: power(x, y)
Description: x ^ y
Operator: reverse(x)
Description: - x
Operator: sign(x)
Description: if input > 0, return 1; if input < 0, return -1; if input = 0, return 0; if input = NaN, return NaN;
Operator: signed_power(x, y)
Description: x raised to the power of y such that final result preserves sign of x
Operator: sqrt(x)
Description: Square root of x
Operator: subtract(x, y, filter=false), x - y
Description: x-y. If filter = true, filter all input NaN to 0 before subtracting
Operator: and(input1, input2)
Description: Logical AND operator, returns true if both operands are true and returns false otherwise
Operator: if_else(input1, input2, input 3)
Description: If input1 is true then return input2 else return input3.
Operator: input1 < input2
Description: If input1 < input2 return true, else return false
Operator: input1 <= input2
Description: Returns true if input1 <= input2, return false otherwise
Operator: input1 == input2
Description: Returns true if both inputs are same and returns false otherwise
Operator: input1 > input2
Description: Logic comparison operators to compares two inputs
Operator: input1 >= input2
Description: Returns true if input1 >= input2, return false otherwise
Operator: input1!= input2
Description: Returns true if both inputs are NOT the same and returns false otherwise
Operator: is_nan(input)
Description: If (input == NaN) return 1 else return 0
Operator: not(x)
Description: Returns the logical negation of x. If x is true (1), it returns false (0), and if input is false (0), it returns true (1).
Operator: or(input1, input2)
Description: Logical OR operator returns true if either or both inputs are true and returns false otherwise
Operator: days_from_last_change(x)
Description: Amount of days since last change of x
Operator: hump(x, hump = 0.01)
Description: Limits amount and magnitude of changes in input (thus reducing turnover)
Operator: kth_element(x, d, k)
Description: Returns K-th value of input by looking through lookback days. This operator can be used to backfill missing data if k=1
Operator: last_diff_value(x, d)
Description: Returns last x value not equal to current x value from last d days
Operator: ts_arg_max(x, d)
Description: Returns the relative index of the max value in the time series for the past d days. If the current day has the max value for the past d days, it returns 0. If previous day has the max value for the past d days, it returns 1
Operator: ts_arg_min(x, d)
Description: Returns the relative index of the min value in the time series for the past d days; If the current day has the min value for the past d days, it returns 0; If previous day has the min value for the past d days, it returns 1.
Operator: ts_av_diff(x, d)
Description: Returns x - tsmean(x, d), but deals with NaNs carefully. That is NaNs are ignored during mean computation
Operator: ts_backfill(x,lookback = d, k=1, ignore="NAN")
Description: Backfill is the process of replacing the NAN or 0 values by a meaningful value (i.e., a first non-NaN value)
Operator: ts_corr(x, y, d)
Description: Returns correlation of x and y for the past d days
Operator: ts_count_nans(x ,d)
Description: Returns the number of NaN values in x for the past d days
Operator: ts_covariance(y, x, d)
Description: Returns covariance of y and x for the past d days
Operator: ts_decay_linear(x, d, dense = false)
Description: Returns the linear decay on x for the past d days. Dense parameter=false means operator works in sparse mode and we treat NaN as 0. In dense mode we do not.
Operator: ts_delay(x, d)
Description: Returns x value d days ago
Operator: ts_delta(x, d)
Description: Returns x - ts_delay(x, d)
Operator: ts_mean(x, d)
Description: Returns average value of x for the past d days.
Operator: ts_product(x, d)
Description: Returns product of x for the past d days
Operator: ts_quantile(x,d, driver="gaussian" )
Description: It calculates ts_rank and apply to its value an inverse cumulative density function from driver distribution. Possible values of driver (optional ) are "gaussian", "uniform", "cauchy" distribution where "gaussian" is the default.
Operator: ts_rank(x, d, constant = 0)
Description: Rank the values of x for each instrument over the past d days, then return the rank of the current value + constant. If not specified, by default, constant = 0.
Operator: ts_regression(y, x, d, lag = 0, rettype = 0)
Description: Returns various parameters related to regression function
Operator: ts_scale(x, d, constant = 0)
Description: Returns (x - ts_min(x, d)) / (ts_max(x, d) - ts_min(x, d)) + constant. This operator is similar to scale down operator but acts in time series space
Operator: ts_std_dev(x, d)
Description: Returns standard deviation of x for the past d days
Operator: ts_step(1)
Description: Returns days' counter
Operator: ts_sum(x, d)
Description: Sum values of x for the past d days.
Operator: ts_zscore(x, d)
Description: Z-score is a numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean: (x - tsmean(x,d)) / tsstddev(x,d). This operator may help reduce outliers and drawdown.
Operator: normalize(x, useStd = false, limit = 0.0)
Description: Calculates the mean value of all valid alpha values for a certain date, then subtracts that mean from each element
Operator: quantile(x, driver = gaussian, sigma = 1.0)
Description: Rank the raw vector, shift the ranked Alpha vector, apply distribution (gaussian, cauchy, uniform). If driver is uniform, it simply subtract each Alpha value with the mean of all Alpha values in the Alpha vector
Operator: rank(x, rate=2)
Description: Ranks the input among all the instruments and returns an equally distributed number between 0.0 and 1.0. For precise sort, use the rate as 0
Operator: scale(x, scale=1, longscale=1, shortscale=1)
Description: Scales input to booksize. We can also scale the long positions and short positions to separate scales by mentioning additional parameters to the operator
Operator: winsorize(x, std=4)
Description: Winsorizes x to make sure that all values in x are between the lower and upper limits, which are specified as multiple of std.
Operator: zscore(x)
Description: Z-score is a numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean
Operator: vec_avg(x)
Description: Taking mean of the vector field x
Operator: vec_sum(x)
Description: Sum of vector field x
Operator: bucket(rank(x), range="0, 1, 0.1" or buckets = "2,5,6,7,10")
Description: Convert float values into indexes for user-specified buckets. Bucket is useful for creating group values, which can be passed to GROUP as input
Operator: trade_when(x, y, z)
Description: Used in order to change Alpha values only under a specified condition and to hold Alpha values in other cases. It also allows to close Alpha positions (assign NaN values) under a specified condition
Operator: group_backfill(x, group, d, std = 4.0)
Description: If a certain value for a certain date and instrument is NaN, from the set of same group instruments, calculate winsorized mean of all non-NaN values over last d days
Operator: group_mean(x, weight, group)
Description: All elements in group equals to the mean
Operator: group_neutralize(x, group)
Description: Neutralizes Alpha against groups. These groups can be subindustry, industry, sector, country or a constant
Operator: group_rank(x, group)
Description: Each elements in a group is assigned the corresponding rank in this group
Operator: group_scale(x, group)
Description: Normalizes the values in a group to be between 0 and 1. (x - groupmin) / (groupmax - groupmin)
Operator: group_zscore(x, group)
Description: Calculates group Z-score - numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean. zscore = (data - mean) / stddev of x for each instrument within its group.========================= 操作符结束 =======================================
========================= 数据字段开始 =======================================注意: DataField: 后面的是数据字段, DataFieldDescription: 此字段后面的是数据字段对应的描述或使用说明, DataFieldDescription字段后面的内容是使用说明, 不是数据字段
DataField: put_breakeven_180
DataFieldDescription: Price at which a stock's put options with expiration 180 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_150
DataFieldDescription: Price at which a stock's call options with expiration 150 days in the future break even based on its recent bid/ask mean.
DataField: option_breakeven_180
DataFieldDescription: Price at which a stock's options with expiration 180 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_20
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 20 days in the future.
DataField: pcr_oi_10
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 10 days in the future.
DataField: pcr_vol_30
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 30 days in the future.
DataField: put_breakeven_360
DataFieldDescription: Price at which a stock's put options with expiration 360 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_720
DataFieldDescription: Price at which a stock's call options with expiration 720 days in the future break even based on its recent bid/ask mean.
DataField: option_breakeven_20
DataFieldDescription: Price at which a stock's options with expiration 20 days in the future break even based on its recent bid/ask mean.
DataField: option_breakeven_10
DataFieldDescription: Price at which a stock's options with expiration 10 days in the future break even based on its recent bid/ask mean.
DataField: forward_price_20
DataFieldDescription: Forward price at 20 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: call_breakeven_30
DataFieldDescription: Price at which a stock's call options with expiration 30 days in the future break even based on its recent bid/ask mean.
DataField: pcr_oi_720
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 720 days in the future.
DataField: call_breakeven_180
DataFieldDescription: Price at which a stock's call options with expiration 180 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_60
DataFieldDescription: Price at which a stock's call options with expiration 60 days in the future break even based on its recent bid/ask mean.
DataField: pcr_oi_90
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 90 days in the future.
DataField: put_breakeven_1080
DataFieldDescription: Price at which a stock's put options with expiration 1080 days in the future break even based on its recent bid/ask mean.
DataField: forward_price_360
DataFieldDescription: Forward price at 360 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: forward_price_120
DataFieldDescription: Forward price at 120 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: put_breakeven_720
DataFieldDescription: Price at which a stock's put options with expiration 720 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_120
DataFieldDescription: Price at which a stock's call options with expiration 120 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_360
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 360 days in the future.
DataField: forward_price_30
DataFieldDescription: Forward price at 30 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: pcr_oi_150
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 150 days in the future.
DataField: put_breakeven_30
DataFieldDescription: Price at which a stock's put options with expiration 30 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_90
DataFieldDescription: Price at which a stock's call options with expiration 90 days in the future break even based on its recent bid/ask mean.
DataField: forward_price_720
DataFieldDescription: Forward price at 720 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: forward_price_180
DataFieldDescription: Forward price at 180 days derived from a synthetic long option with payoff similar to long stock + option dynamics. combination of long ATM call, and short ATM put.
DataField: call_breakeven_1080
DataFieldDescription: Price at which a stock's call options with expiration 1080 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_10
DataFieldDescription: Price at which a stock's call options with expiration 10 days in the future break even based on its recent bid/ask mean.
DataField: fnd6_lcoxdr
DataFieldDescription: Current Liabilities - Other - Excluding Deferred Revenue
DataField: fnd6_newqeventv110_pnciepsq
DataFieldDescription: Core Pension Interest Adjustment Basic EPS Effect
DataField: fnd6_tfva
DataFieldDescription: Total Fair Value Assets
DataField: fnd6_newqv1300_rcpq
DataFieldDescription: Restructuring Cost Pretax
DataField: fnd6_aldo
DataFieldDescription: Long-term Assets of Discontinued Operations
DataField: fnd6_newqeventv110_altoq
DataFieldDescription: Other Long-term Assets
DataField: fnd6_idesindq_curcd
DataFieldDescription: ISO Currency Code - Company Annual Market
DataField: fnd6_newqeventv110_csh12q
DataFieldDescription: Common Shares Used to Calculate Earnings Per Share - 12 Months Moving
DataField: fnd6_newa2v1300_oancf
DataFieldDescription: Operating Activities - Net Cash Flow
DataField: bookvalue_ps
DataFieldDescription: Book Value Per Share
DataField: fnd6_pidom
DataFieldDescription: Pretax Income - Domestic
DataField: cashflow
DataFieldDescription: Cashflow (Annual)
DataField: fnd6_cld2
DataFieldDescription: Capitalized Leases - Due in 2nd Year
DataField: fnd6_newqeventv110_glcea12
DataFieldDescription: Gain/Loss on Sale (Core Earnings Adjusted) After-tax 12MM
DataField: fnd6_newqeventv110_xopt12
DataFieldDescription: Implied Option Expense - 12mm
DataField: fnd6_newqv1300_txdiq
DataFieldDescription: Income Taxes - Deferred
DataField: fnd6_dlto
DataFieldDescription: Debt - Long-Term - Other
DataField: fnd6_txdfo
DataFieldDescription: Deferred Taxes - Foreign
DataField: operating_expense
DataFieldDescription: Operating Expense - Total
DataField: fnd6_cptnewqv1300_dlttq
DataFieldDescription: Long-Term Debt - Total
DataField: fnd6_eventv110_pncepsq
DataFieldDescription: Core Pension Adjustment Basic EPS Effect
DataField: fnd6_newa1v1300_csho
DataFieldDescription: Common Shares Outstanding
DataField: fnd6_newa2v1300_spceeps
DataFieldDescription: S&P Core Earnings EPS Basic
DataField: fnd6_newqv1300_dpactq
DataFieldDescription: Depreciation, Depletion and Amortization (Accumulated)
DataField: fnd6_dd1
DataFieldDescription: Long-Term Debt Due in 1 Year
DataField: fnd6_dd5
DataFieldDescription: Debt Due in 5th Year
DataField: fnd6_cptnewqeventv110_epsfxq
DataFieldDescription: Earnings Per Share (Diluted) - Excluding Extraordinary items
DataField: fnd6_newqeventv110_glceepsq
DataFieldDescription: Gain/Loss on Sale (Core Earnings Adjusted) Basic EPS Effect
DataField: fnd6_newqeventv110_lnoq
DataFieldDescription: Liabilities Netting & Other Adjustments
DataField: fnd6_newqeventv110_cshfdq
DataFieldDescription: Common Shares for Diluted EPS
DataField: scl12_alltype_buzzvec
DataFieldDescription: sentiment volume
DataField: scl12_alltype_sentvec
DataFieldDescription: sentiment
DataField: scl12_alltype_typevec
DataFieldDescription: instrument type index
DataField: scl12_buzz
DataFieldDescription: relative sentiment volume
DataField: scl12_buzz_fast_d1
DataFieldDescription: relative sentiment volume
DataField: scl12_buzzvec
DataFieldDescription: sentiment volume
DataField: scl12_sentiment
DataFieldDescription: sentiment
DataField: scl12_sentiment_fast_d1
DataFieldDescription: sentiment
DataField: scl12_sentvec
DataFieldDescription: sentiment
DataField: scl12_typevec
DataFieldDescription: instrument type index
DataField: snt_buzz
DataFieldDescription: negative relative sentiment volume, fill nan with 0
DataField: snt_buzz_bfl
DataFieldDescription: negative relative sentiment volume, fill nan with 1
DataField: snt_buzz_bfl_fast_d1
DataFieldDescription: negative relative sentiment volume, fill nan with 1
DataField: snt_buzz_fast_d1
DataFieldDescription: negative relative sentiment volume, fill nan with 0
DataField: snt_buzz_ret
DataFieldDescription: negative return of relative sentiment volume
DataField: snt_buzz_ret_fast_d1
DataFieldDescription: negative return of relative sentiment volume
DataField: snt_value
DataFieldDescription: negative sentiment, fill nan with 0
DataField: snt_value_fast_d1
DataFieldDescription: negative sentiment, fill nan with 0
DataField: analyst_revision_rank_derivative
DataFieldDescription: Change in ranking for analyst revisions and momentum compared to previous period.
DataField: cashflow_efficiency_rank_derivative
DataFieldDescription: Change in ranking for cash flow generation and profitability compared to previous period.
DataField: composite_factor_score_derivative
DataFieldDescription: Change in overall composite factor score from the prior period.
DataField: earnings_certainty_rank_derivative
DataFieldDescription: Change in ranking for earnings sustainability and certainty compared to previous period.
DataField: fscore_bfl_growth
DataFieldDescription: The purpose of this metric is to qualify the expected MT growth potential of the stock.
DataField: fscore_bfl_momentum
DataFieldDescription: The purpose of this metric is to identify stocks which are currently undergoing either up or downward analyst revisions.
DataField: fscore_bfl_profitability
DataFieldDescription: The purpose of this metric is to rank stock based on their ability to generate cash flows.
DataField: fscore_bfl_quality
DataFieldDescription: The purpose of this metric is to measure both the sustainability and certainty of earnings.
DataField: fscore_bfl_surface
DataFieldDescription: The static score. An index between 0 & 100 is applied for each stock and each composite factor - The first ranking is a pentagon surface-based score. The larger the surface, the higher the rank.
DataField: fscore_bfl_surface_accel
DataFieldDescription: The derivative score. In a second step, we calculate the derivative of this score (ie: Is the surface of the pentagon increasing or decreasing from the previous month?).
DataField: fscore_bfl_total
DataFieldDescription: The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.
DataField: fscore_bfl_value
DataFieldDescription: The purpose of this metric is to see if the stock is under or overpriced given several well known valuation standards.
DataField: fscore_growth
DataFieldDescription: The purpose of this metric is to qualify the expected MT growth potential of the stock.
DataField: fscore_momentum
DataFieldDescription: The purpose of this metric is to identify stocks which are currently undergoing either up or downward analyst revisions.
DataField: fscore_profitability
DataFieldDescription: The purpose of this metric is to rank stock based on their ability to generate cash flows.
DataField: fscore_quality
DataFieldDescription: The purpose of this metric is to measure both the sustainability and certainty of earnings.
DataField: fscore_surface
DataFieldDescription: The static score. An index between 0 & 100 is applied for each stock and each composite factor - The first ranking is a pentagon surface-based score. The larger the surface, the higher the rank.
DataField: fscore_surface_accel
DataFieldDescription: The derivative score. In a second step, we calculate the derivative of this score (ie: Is the surface of the pentagon increasing or decreasing from the previous month?).
DataField: fscore_total
DataFieldDescription: The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.
DataField: fscore_value
DataFieldDescription: The purpose of this metric is to see if the stock is under or overpriced given several well known valuation standards.
DataField: growth_potential_rank_derivative
DataFieldDescription: Change in ranking for medium-term growth potential compared to previous period.
DataField: multi_factor_acceleration_score_derivative
DataFieldDescription: Change in the acceleration of multi-factor score compared to previous period.
DataField: multi_factor_static_score_derivative
DataFieldDescription: Change in static multi-factor score compared to previous period.
DataField: relative_valuation_rank_derivative
DataFieldDescription: Change in ranking for valuation metrics compared to previous period.
DataField: snt_social_value
DataFieldDescription: Z score of sentiment
DataField: snt_social_volume
DataFieldDescription: Normalized tweet volume
DataField: beta_last_30_days_spy
DataFieldDescription: Beta to SPY in 30 Days
DataField: beta_last_360_days_spy
DataFieldDescription: Beta to SPY in 360 Days
DataField: beta_last_60_days_spy
DataFieldDescription: Beta to SPY in 60 Days
DataField: beta_last_90_days_spy
DataFieldDescription: Beta to SPY in 90 Days
DataField: correlation_last_30_days_spy
DataFieldDescription: Correlation to SPY in 30 Days
DataField: correlation_last_360_days_spy
DataFieldDescription: Correlation to SPY in 360 Days
DataField: correlation_last_60_days_spy
DataFieldDescription: Correlation to SPY in 60 Days
DataField: correlation_last_90_days_spy
DataFieldDescription: Correlation to SPY in 90 Days
DataField: systematic_risk_last_30_days
DataFieldDescription: Systematic Risk Last 30 Days
DataField: systematic_risk_last_360_days
DataFieldDescription: Systematic Risk Last 360 Days
DataField: systematic_risk_last_60_days
DataFieldDescription: Systematic Risk Last 60 Days
DataField: systematic_risk_last_90_days
DataFieldDescription: Systematic Risk Last 90 Days
DataField: unsystematic_risk_last_30_days
DataFieldDescription: Unsystematic Risk Last 30 Days - Relative to SPY
DataField: unsystematic_risk_last_360_days
DataFieldDescription: Unsystematic Risk Last 360 Days - Relative to SPY
DataField: unsystematic_risk_last_60_days
DataFieldDescription: Unsystematic Risk Last 60 Days - Relative to SPY
DataField: unsystematic_risk_last_90_days
DataFieldDescription: Unsystematic Risk Last 90 Days - Relative to SPY
DataField: max_shareholders_equity_guidance
DataFieldDescription: The maximum guidance value for Total Shareholders' Equity.
DataField: sales_estimate_average_annual
DataFieldDescription: Sales - mean of estimations
DataField: total_assets_amount
DataFieldDescription: Total Assets - actual value
DataField: anl4_qfv4_cfps_number
DataFieldDescription: Cash Flow Per Share - number of estimations
DataField: anl4_eaz2lafv110_person
DataFieldDescription: Broker Id
DataField: anl4_basicconltv110_pu
DataFieldDescription: The number of upper estimations
DataField: min_free_cash_flow_guidance
DataFieldDescription: The minimum guidance value for Free Cash Flow on an annual basis.
DataField: min_free_cashflow_guidance
DataFieldDescription: Minimum guidance value for Free Cash Flow
DataField: anl4_fcf_number
DataFieldDescription: Free Cash Flow - number of estimations
DataField: min_ebitda_guidance
DataFieldDescription: Minimum guidance value for Earnings Before Interest, Taxes, Depreciation, and Amortization (EBITDA) - Annual
DataField: anl4_ebit_number
DataFieldDescription: Earnings before interest and taxes - number of estimations
DataField: min_net_profit_guidance
DataFieldDescription: Minimum guidance value for Net Profit on an annual basis
DataField: anl4_ady_high
DataFieldDescription: The highest estimation
DataField: est_ffo
DataFieldDescription: Funds From Operation - Summary on Estimations, Mean
DataField: anl4_detailrecv4_est
DataFieldDescription: Estimation value for recommendation detail
DataField: earnings_per_share_guidance_value
DataFieldDescription: Earnings Per Share - guidance value for annual frequency
DataField: anl4_eaz2lafv110_bk
DataFieldDescription: Broker name (int)
DataField: anl4_totgw_low
DataFieldDescription: Total Goodwill - The lowest estimation
DataField: max_free_cash_flow_guidance
DataFieldDescription: The maximum guidance value for Free Cash Flow on an annual basis.
DataField: anl4_bac1actualqfv110_item
DataFieldDescription: Financial item
DataField: anl4_qfd1_az_cfps_median
DataFieldDescription: Cash Flow Per Share - Median value among forecasts
DataField: guidance_estimate_value
DataFieldDescription: Estimated value for basic annual financial guidance
DataField: anl4_fcf_low
DataFieldDescription: Free Cash Flow - The lowest estimation
DataField: anl4_gric_flag
DataFieldDescription: Gross income - forecast type (revision/new/...)
DataField: dividend_estimate_minimum
DataFieldDescription: Dividend per share - The lowest value among forecasts - D1
DataField: min_total_assets_guidance
DataFieldDescription: Minimum guidance value for Total Assets
DataField: anl4_ady_low
DataFieldDescription: The lowest estimation
DataField: shareholders_equity_max_guidance
DataFieldDescription: The maximum guidance value for Shareholder's Equity on an annual basis.
DataField: anl4_flag_erbfintax
DataFieldDescription: Earnings before interest and taxes - forecast type (revision/new/...)
DataField: cashflow_per_share_min_guidance_quarterly
DataFieldDescription: Minimum guidance value for Cash Flow Per Share
DataField: rel_num_part
DataFieldDescription: number of the instrument's partners
DataField: pv13_hierarchy_min52_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_f4_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min10_sector_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_f1_513_sector
DataFieldDescription: grouping fields
DataField: pv13_h_min10_all_sector
DataFieldDescription: grouping fields
DataField: rel_ret_cust
DataFieldDescription: averaged one-day-return of the instrument's customers
DataField: rel_ret_all
DataFieldDescription: Averaged one-day return of the companies whose product overlapped with the instrument
DataField: pv13_revere_company_total
DataFieldDescription: Total number of companies in the sector
DataField: pv13_3l_scibr
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min10_sector_3000_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min10_1000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min2_1000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_reportperiodend
DataFieldDescription: Stated end date for the report
DataField: pv13_rha2_min10_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min50_f3_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min10_2k_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min20_sector
DataFieldDescription: grouping fields
DataField: pv13_r2_liquid_min5_sector
DataFieldDescription: grouping fields
DataField: pv13_revere_index_cap
DataFieldDescription: Company market capitalization
DataField: pv13_6l_scibr
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min2_focused_pureplay_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min10_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_di_6l
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min30_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min51_f3_513_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min2_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min52_2k_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min5_1000_513_sector
DataFieldDescription: grouping fields
DataField: implied_volatility_put_10
DataFieldDescription: At-the-money option-implied volatility for Put Option for 10 days
DataField: parkinson_volatility_30
DataFieldDescription: Parkinson model's historical volatility over 30 days
DataField: implied_volatility_put_180
DataFieldDescription: At-the-money option-implied volatility for put option for 180 days
DataField: implied_volatility_put_270
DataFieldDescription: At-the-money option-implied volatility for Put Option for 270 days
DataField: parkinson_volatility_90
DataFieldDescription: Parkinson model's historical volatility over 90 days
DataField: implied_volatility_call_60
DataFieldDescription: At-the-money option-implied volatility for call Option for 60 days
DataField: parkinson_volatility_150
DataFieldDescription: Parkinson model's historical volatility over 150 days
DataField: implied_volatility_mean_skew_720
DataFieldDescription: At-the-money option-implied volatility mean skew for 720 days
DataField: implied_volatility_put_60
DataFieldDescription: At-the-money option-implied volatility for Put Option for 60 days
DataField: parkinson_volatility_120
DataFieldDescription: Parkinson model's historical volatility over 120 days
DataField: parkinson_volatility_180
DataFieldDescription: Parkinson model's historical volatility over 180 days
DataField: implied_volatility_call_270
DataFieldDescription: At-the-money option-implied volatility for call Option for 270 days
DataField: implied_volatility_call_20
DataFieldDescription: At-the-money option-implied volatility for call Option for 20 days
DataField: implied_volatility_mean_720
DataFieldDescription: At-the-money option-implied volatility mean for 720 days
DataField: implied_volatility_mean_30
DataFieldDescription: At-the-money option-implied volatility mean for 30 days
DataField: implied_volatility_mean_skew_30
DataFieldDescription: At-the-money option-implied volatility mean skew for 30 days
DataField: implied_volatility_mean_360
DataFieldDescription: At-the-money option-implied volatility mean for 360 days
DataField: implied_volatility_call_720
DataFieldDescription: At-the-money option-implied volatility for call Option for 720 days
DataField: parkinson_volatility_60
DataFieldDescription: Parkinson model's historical volatility over 60 days
DataField: implied_volatility_put_30
DataFieldDescription: At-the-money option-implied volatility for Put Option for 30 days
DataField: implied_volatility_mean_10
DataFieldDescription: At-the-money option-implied volatility mean for 10 days
DataField: implied_volatility_mean_20
DataFieldDescription: At-the-money option-implied volatility mean for 20 days
DataField: implied_volatility_put_120
DataFieldDescription: At-the-money option-implied volatility for Put Option for 120 days
DataField: historical_volatility_90
DataFieldDescription: Close-to-close Historical volatility over 90 days
DataField: implied_volatility_mean_1080
DataFieldDescription: At-the-money option-implied volatility mean for 3 years
DataField: implied_volatility_mean_skew_90
DataFieldDescription: At-the-money option-implied volatility mean skew for 90 days
DataField: parkinson_volatility_20
DataFieldDescription: Parkinson model's historical volatility over 20 days
DataField: historical_volatility_60
DataFieldDescription: Close-to-close Historical volatility over 60 days
DataField: implied_volatility_mean_150
DataFieldDescription: At-the-money option-implied volatility mean for 150 days
DataField: implied_volatility_mean_120
DataFieldDescription: At-the-money option-implied volatility mean for 120 days
DataField: nws12_afterhsz_prevwap
DataFieldDescription: Pre session volume weighted average price
DataField: nws12_prez_sl
DataFieldDescription: Whether a long or short position would have been more advantageous: If (EODHigh - Last) > (Last - EODLow) Then LS = 1; If (EODHigh - Last) = (Last - EODLow) Then LS = 0; If (EODHigh - Last) < (Last - EODLow) Then LS = -1.
DataField: nws12_afterhsz_2s
DataFieldDescription: Number of minutes that elapsed before price went down 2 percentage points
DataField: nws12_mainz_result_vs_index
DataFieldDescription: ((EODClose - TONLast) / TONLast) - ((SPYClose - SPYLast) / SPYLast)
DataField: nws12_mainz_sl
DataFieldDescription: Whether a long or short position would have been more advantageous: If (EODHigh - Last) > (Last - EODLow) Then LS = 1; If (EODHigh - Last) = (Last - EODLow) Then LS = 0; If (EODHigh - Last) < (Last - EODLow) Then LS = -1.
DataField: nws12_mainz_02p
DataFieldDescription: The minimum of L or S above for 20-minute bucket
DataField: news_mins_4_pct_up
DataFieldDescription: Number of minutes that elapsed before price went up 4 percentage points
DataField: nws12_afterhsz_57s
DataFieldDescription: Number of minutes that elapsed before price went down 7.5 percentage points
DataField: nws12_allz_newssess
DataFieldDescription: Index of session in which the news was reported
DataField: news_pct_30min
DataFieldDescription: The percent change in price in the first 30 minutes following the news release
DataField: news_mins_2_pct_up
DataFieldDescription: Number of minutes that elapsed before price went up 2 percentage points
DataField: nws12_afterhsz_01p
DataFieldDescription: The minimum of L or S above for 10 minute bucket
DataField: news_eod_vwap
DataFieldDescription: Volume weighted average price between the time of news and the end of the session
DataField: nws12_afterhsz_1p
DataFieldDescription: The minimum of L or S above for 1-minute bucket
DataField: nws12_prez_vol_ratio
DataFieldDescription: Curr_Vol / Mov_Vol
DataField: nws12_prez_rangestddev
DataFieldDescription: (RangeAmt-AvgRange)/RangeStdDev, where AvgRange is the average of the daily range, and RangeStdDev is one standard deviation for the daily range, both for 30 calendar days
DataField: nws12_mainz_epsactual
DataFieldDescription: The actual Earnings Per Share value that was conveyed by the news release
DataField: nws12_prez_30_seconds
DataFieldDescription: The percent change in price in the 30 seconds following the news release
DataField: nws12_mainz_tonlast
DataFieldDescription: Price at the time of news
DataField: nws12_prez_2p
DataFieldDescription: The minimum of L or S above for 2-minute bucket
DataField: nws12_afterhsz_div_y
DataFieldDescription: Annual yield
DataField: nws12_mainz_01s
DataFieldDescription: Number of minutes that elapsed before price went down 10 percentage points
DataField: nws12_afterhsz_result2
DataFieldDescription: Percent change between the price at the time of the news release to the price at the close of the session
DataField: nws12_prez_highexcstddev
DataFieldDescription: (EODHigh - TONLast)/StdDev, where StdDev is one standard deviation for the close price for 30 calendar days
DataField: nws12_afterhsz_57p
DataFieldDescription: The minimum of L or S above for 7.5-minute bucket
DataField: news_ton_high
DataFieldDescription: Highest price reached during the session before the time of news
DataField: nws12_mainz_provider
DataFieldDescription: index of name of the news provider
DataField: nws12_afterhsz_prevday
DataFieldDescription: Percent change between the previous day's open and close
DataField: nws12_mainz_prevwap
DataFieldDescription: Pre session volume weighted average price
DataField: nws12_afterhsz_120_min
DataFieldDescription: The percent change in price in the first 120 minutes following the news release
DataField: top1000
DataFieldDescription: 20140630
DataField: top200
DataFieldDescription: 20140630
DataField: top3000
DataFieldDescription: 20140630
DataField: top500
DataFieldDescription: 20140630
DataField: topsp500
DataFieldDescription: 20140630
DataField: rp_nip_price
DataFieldDescription: News impact projection of stock price news
DataField: rp_ess_product
DataFieldDescription: Event sentiment score of product and service-related news
DataField: rp_ess_revenue
DataFieldDescription: Event sentiment score of revenue news
DataField: rp_css_revenue
DataFieldDescription: Composite sentiment score of revenue news
DataField: nws18_qep
DataFieldDescription: News sentiment based on positive and negative words on global equity
DataField: rp_css_business
DataFieldDescription: Composite sentiment score of business-related news
DataField: rp_nip_partner
DataFieldDescription: News impact projection of partnership news
DataField: rp_nip_credit
DataFieldDescription: News impact projection of credit news
DataField: rp_css_ptg
DataFieldDescription: Composite sentiment score of price target news
DataField: nws18_ssc
DataFieldDescription: Sentiment of the news calculated using multiple techniques
DataField: rp_ess_technical
DataFieldDescription: Event sentiment score based on technical analysis
DataField: rp_nip_labor
DataFieldDescription: News impact projection of labor issues news
DataField: rp_ess_dividends
DataFieldDescription: Event sentiment score of dividends news
DataField: rp_nip_insider
DataFieldDescription: News impact projection of insider trading news
DataField: rp_nip_society
DataFieldDescription: News impact projection of society-related news
DataField: rp_nip_equity
DataFieldDescription: News impact projection of equity action news
DataField: rp_css_labor
DataFieldDescription: Composite sentiment score of labor issues news
DataField: nws18_bee
DataFieldDescription: News sentiment specializing in growth of earnings
DataField: rp_css_ratings
DataFieldDescription: Composite sentiment score of analyst ratings-related news
DataField: rp_nip_business
DataFieldDescription: News impact projection of business-related news
DataField: rp_css_inverstor
DataFieldDescription: Composite sentiment score of investor relations news
DataField: rp_nip_assets
DataFieldDescription: News impact projection of assets news
DataField: nws18_sse
DataFieldDescription: Sentiment of phrases impacting the company
DataField: rp_css_assets
DataFieldDescription: Composite sentiment score of assets news
DataField: rp_css_equity
DataFieldDescription: Composite sentiment score of equity action news
DataField: rp_nip_revenue
DataFieldDescription: News impact projection of revenue news
DataField: rp_ess_insider
DataFieldDescription: Event sentiment score of insider trading news
DataField: rp_nip_technical
DataFieldDescription: News impact projection based on technical analysis
DataField: rp_ess_business
DataFieldDescription: Event sentiment score of business-related news
DataField: rp_nip_legal
DataFieldDescription: News impact projection of legal news
DataField: fnd2_a_ltrmdmrepoplinyfour
DataFieldDescription: Amount of long-term debt payable, sinking fund requirements, and other securities issued that are redeemable by holder at fixed or determinable prices and dates maturing in the 4th fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fnd2_propplteqmuflmeqmt
DataFieldDescription: PPE, Equipment, Useful Life, Minimum
DataField: fnd2_q_atdlsecexfcepsastkos
DataFieldDescription: Antidilutive Shares Excluded From Earnings Per Share Amount, Stock Options
DataField: fn_allocated_share_based_compensation_expense_a
DataFieldDescription: Represents the expense recognized during the period arising from equity-based compensation arrangements (for example, shares of stock, unit, stock options or other equity instruments) with employees, directors and certain consultants qualifying for treatment as employees.
DataField: fn_derivative_fair_value_of_derivative_liability_a
DataFieldDescription: Fair value, before effects of master netting arrangements, of a financial liability or contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes liabilities elected not to be offset. Excludes liabilities not subject to a master netting arrangement.
DataField: fn_allowance_for_doubtful_accounts_receivable_q
DataFieldDescription: For an unclassified balance sheet, a valuation allowance for receivables due a company that are expected to be uncollectible.
DataField: fnd2_a_gsles1xtinguishmentofd
DataFieldDescription: Difference between the fair value of payments made and the carrying amount of debt which is extinguished prior to maturity.
DataField: fn_oth_comp_grants_weighted_avg_grant_date_fair_value_a
DataFieldDescription: Annual Share-Based Compensation Equity Instruments Other Than Options Nonvested Weighted Average Grant Date Fair Value
DataField: fnd2_a_sbcpnargmsawpfipwerpr
DataFieldDescription: Weighted average price of options that were either forfeited or expired.
DataField: fn_op_lease_min_pay_due_in_4y_a
DataFieldDescription: Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of 1 year due in the 4th fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fn_interest_payable_a
DataFieldDescription: Carrying value as of the balance sheet date of [accrued] interest payable on all forms of debt, including trade payables, that has been incurred and is unpaid. For classified balance sheets, used to reflect the current portion of the liabilities (due within 1 year or within the normal operating cycle if longer); for unclassified balance sheets, used to reflect the total liabilities (regardless of due date).
DataField: fnd2_oprlsfmpdcurr
DataFieldDescription: Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of 1 year due in the next fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fnd2_currfrtxexp
DataFieldDescription: Income Tax Expense, Current - Foreign
DataField: fnd2_a_opclpsnprtmbnfplansajnt
DataFieldDescription: Amount after tax and reclassification adjustments, of (increase) decrease in accumulated other comprehensive (income) loss related to pension and other postretirement defined benefit plans.
DataField: fnd2_dfdfeditxexp
DataFieldDescription: Income Tax Expense, Deferred - Federal
DataField: fnd2_dbplanepdfbnfp5ytherea
DataFieldDescription: Amount of benefits from a defined benefit plan expected to be paid in the 5 fiscal years after the 5th fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fnd2_a_sbcpnargmsptawervl
DataFieldDescription: Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.
DataField: fn_proceeds_from_lt_debt_q
DataFieldDescription: Proceeds From Issuance Of Debt, Long Term
DataField: fnd2_a_eplsbvdcpcstnrgsbaoo
DataFieldDescription: Unrecognized cost of unvested other share-based compensation awards.
DataField: fnd2_propplteqmuflmamfrt
DataFieldDescription: PPE, Furniture, Useful Life, Maximum
DataField: fn_comp_options_grants_fair_value_a
DataFieldDescription: Annual Share-Based Compensation Arrangement by Share-Based Payment Award Options Grants in Period Weighted Average Grant Date Fair Value
DataField: fn_comp_options_out_number_q
DataFieldDescription: Number of options outstanding, including both vested and non-vested options.
DataField: fn_oth_income_loss_net_of_tax_a
DataFieldDescription: Amount after tax and reclassification adjustments of other comprehensive income (loss).
DataField: fnd2_a_bnsacqproformarvn
DataFieldDescription: The pro forma revenue for a period as if the business combination or combinations had been completed at the beginning of the period.
DataField: fnd2_a_flintasamt1expnext12m
DataFieldDescription: Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the next fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fn_def_income_tax_expense_a
DataFieldDescription: Income Tax Expense, Deferred
DataField: fn_oth_comp_grants_weighted_avg_grant_date_fair_value_q
DataFieldDescription: Quarterly Share-Based Compensation Equity Instruments Other Than Options Nonvested Weighted Average Grant Date Fair Value
DataField: fn_proceeds_from_issuance_of_debt_q
DataFieldDescription: The cash inflow during the period from additional borrowings in aggregate debt. Includes proceeds from short-term and long-term debt.
DataField: fnd2_a_sbcpnargmpmtwstgm
DataFieldDescription: As of the balance sheet date, the number of shares into which fully vested and expected to vest stock options outstanding can be converted under the option plan.
DataField: fn_goodwill_acquired_during_period_q
DataFieldDescription: Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.
DataField: adv20
DataFieldDescription: Average daily volume in past 20 days
DataField: cap
DataFieldDescription: Daily market capitalization (in millions)
DataField: close
DataFieldDescription: Daily close price
DataField: country
DataFieldDescription: Country grouping
DataField: currency
DataFieldDescription: Currency
DataField: cusip
DataFieldDescription: CUSIP Value
DataField: dividend
DataFieldDescription: Dividend
DataField: exchange
DataFieldDescription: Exchange grouping
DataField: high
DataFieldDescription: Daily high price
DataField: industry
DataFieldDescription: Industry grouping
DataField: isin
DataFieldDescription: ISIN Value
DataField: low
DataFieldDescription: Daily low price
DataField: market
DataFieldDescription: Market grouping
DataField: open
DataFieldDescription: Daily open price
DataField: returns
DataFieldDescription: Daily returns
DataField: sector
DataFieldDescription: Sector grouping
DataField: sedol
DataFieldDescription: Sedol
DataField: sharesout
DataFieldDescription: Daily outstanding shares (in millions)
DataField: split
DataFieldDescription: Stock split ratio
DataField: subindustry
DataFieldDescription: Subindustry grouping
DataField: ticker
DataFieldDescription: Ticker
DataField: volume
DataFieldDescription: Daily volume
DataField: vwap
DataFieldDescription: Daily volume weighted average price
========================= 数据字段结束 =======================================

@ -0,0 +1,922 @@
任务指令
你是一个WorldQuant WebSim因子工程师。你的任务是生成100个用于行业轮动策略的复合型Alpha因子表达式。
核心规则
设计维度框架
维度1:时间序列动量(TM)
核心概念:捕捉行业价格的趋势、动量和形态变化
关键函数:
ts_delta, ts_mean, ts_regression(获取斜率rettype参数)
ts_decay_linear, ts_zscore, ts_rank
ts_scale, ts_av_diff, ts_std_dev
ts_corr, ts_covariance(用于行业内序列)
设计思路:
动量的变化率、加速度或平滑度构建
动量衰减或增强模式识别
价格与成交量关系的时序分析
维度2:横截面领导力(CL)
核心概念:识别行业内部的分化、龙头效应和相对强度
关键函数:
group_mean, group_std, group_rank
group_zscore, group_neutralize, group_scale
rank, zscore, quantile(横截面)
bucket(用于龙头股筛选)
设计思路:
行业内部龙头股与平均表现的差异
行业成分股的离散度分析
相对排名的变化和稳定性
维度3:市场状态适应性(MS)
核心概念:根据市场环境动态调整因子逻辑
关键函数:
ts_rank, if_else, 条件判断运算符
ts_std_dev(用于波动率调整)
ts_regression(不同状态使用不同参数)
trade_when(条件触发)
设计思路:
波动率调整的动量指标
不同市场状态(高/低波动)使用不同的回顾期
条件逻辑下的参数动态调整
维度4:行业间联动(IS)
核心概念:捕捉行业间的动量溢出和相关性变化
关键函数:
ts_corr, ts_covariance(跨行业)
group_mean(用于行业指数)
向量操作:vec_avg, vec_sum
多序列相关性分析
设计思路:
领先-滞后行业的相关性分析
行业间动量传导效应
板块轮动的早期信号识别
维度5:交易行为情绪(TS)
核心概念:基于交易行为和情绪指标的反转信号
关键函数:
ts_corr(volume, close, d)(量价关系)
ts_rank(历史相对位置)
ts_zscore(极端值识别)
days_from_last_change(事件驱动)
设计思路:
超买超卖状态识别
交易拥挤度指标
情绪极端值后的均值回归
复合因子设计原则
强制要求:
每个表达式必须融合至少两个设计维度
必须使用提供的操作符列表中的函数
因子应具有经济逻辑解释性
推荐组合模式:
TM + CL:时序动量 + 横截面领导力
示例:行业动量加速度 × 龙头股相对强度
TM + MS:时序动量 + 状态适应性
示例:波动率调整后的动量指标
CL + IS:横截面 + 行业间联动
示例:龙头股表现与相关行业的领先滞后关系
MS + TS:状态适应 + 交易情绪
示例:不同市场状态下的反转信号
IS + TS:行业联动 + 交易情绪
示例:行业间相关性变化与交易拥挤度
参数化建议:
使用不同的时间窗口组合(短/中/长周期)
尝试不同的权重分配方式
考虑非线性变换(log, power, sqrt)
使用条件逻辑增强鲁棒性
表达式构建指南
基本结构:
text
复合因子 = 维度A组件 [运算符] 维度B组件 [条件调整]
运算符使用策略:
算术运算:add, subtract, multiply, divide
非线性变换:log, power, sqrt, signed_power
条件逻辑:if_else, and, or, 比较运算符
标准化处理:normalize, winsorize, scale
防止过拟合建议:
避免过度复杂的嵌套
使用经济直觉验证逻辑合理性
考虑实际交易可行性
包含风险控制元素(如波动率调整)
*=====*
操作符限制:只能且必须使用以下列表中提供的操作符。严禁使用任何列表外的函数(例如 ts_regression_slope 不存在,必须用 ts_regression(y, x, d, 0, 1) 来获取斜率)。
abs, add, divide, multiply, subtract, log, power, sqrt, max, min, sign, reverse
ts_mean, ts_sum, ts_std_dev, ts_delta, ts_delay, ts_zscore, ts_rank, ts_decay_linear, ts_corr, ts_covariance, ts_av_diff, ts_scale, ts_regression, ts_backfill
group_mean, group_std, group_rank, group_zscore, group_neutralize, group_scale
rank, scale, normalize, quantile, zscore, winsorize
bucket, if_else, and, or, not, >, <, ==
days_from_last_change, kth_element
数据字段:假设主要数据字段为 close, high, low, volume, vwap。可安全使用。
参数逻辑:参数d(回顾期)应在[5, 10, 20, 30, 60, 120]等具有市场意义(周、月、季度、半年)的数值中合理选择并差异化。
行业隐含:通过group_mean、group_rank等函数或假设表达式在行业指数上运行来体现“行业”逻辑。
输出格式:
输出必须是且仅是 100行纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
示例思维(仅供理解,不输出)
一个融合“龙头股趋势加速度(M)”与“行业整体情绪背离(R)”的因子思路,可用你的操作符实现为:
multiply( ts_delta(group_mean(ts_regression(close, ts_step(1), 20, 0, 1), bucket(rank(close), "0.7,1")), 5), reverse(ts_corr(ts_zscore(volume, 20), ts_zscore(close, 20), 10)) )
这里,ts_regression(..., rettype=1)获取斜率代替动量,bucket(rank(close), "0.7,1")近似选取市值前30%的龙头股,ts_corr(...)衡量价量情绪,reverse将其转化为背离信号。
现在,请严格遵守以上所有规则,开始生成100行可立即在WebSim中运行的复合因子表达式。
**输出格式**(一行一个表达式, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
请提供具体的WQ表达式。
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
========================= 操作符开始 =======================================注意: Operator: 后面的是操作符,
Description: 此字段后面的是操作符对应的描述或使用说明, Description字段后面的内容是使用说明, 不是操作符
Operator: abs(x)
Description: Absolute value of x
Operator: add(x, y, filter = false), x + y
Description: Add all inputs (at least 2 inputs required). If filter = true, filter all input NaN to 0 before adding
Operator: densify(x)
Description: Converts a grouping field of many buckets into lesser number of only available buckets so as to make working with grouping fields computationally efficient
Operator: divide(x, y), x / y
Description: x / y
Operator: inverse(x)
Description: 1 / x
Operator: log(x)
Description: Natural logarithm. For example: Log(high/low) uses natural logarithm of high/low ratio as stock weights.
Operator: max(x, y, ..)
Description: Maximum value of all inputs. At least 2 inputs are required
Operator: min(x, y ..)
Description: Minimum value of all inputs. At least 2 inputs are required
Operator: multiply(x ,y, ... , filter=false), x * y
Description: Multiply all inputs. At least 2 inputs are required. Filter sets the NaN values to 1
Operator: power(x, y)
Description: x ^ y
Operator: reverse(x)
Description: - x
Operator: sign(x)
Description: if input > 0, return 1; if input < 0, return -1; if input = 0, return 0; if input = NaN, return NaN;
Operator: signed_power(x, y)
Description: x raised to the power of y such that final result preserves sign of x
Operator: sqrt(x)
Description: Square root of x
Operator: subtract(x, y, filter=false), x - y
Description: x-y. If filter = true, filter all input NaN to 0 before subtracting
Operator: and(input1, input2)
Description: Logical AND operator, returns true if both operands are true and returns false otherwise
Operator: if_else(input1, input2, input 3)
Description: If input1 is true then return input2 else return input3.
Operator: input1 < input2
Description: If input1 < input2 return true, else return false
Operator: input1 <= input2
Description: Returns true if input1 <= input2, return false otherwise
Operator: input1 == input2
Description: Returns true if both inputs are same and returns false otherwise
Operator: input1 > input2
Description: Logic comparison operators to compares two inputs
Operator: input1 >= input2
Description: Returns true if input1 >= input2, return false otherwise
Operator: input1!= input2
Description: Returns true if both inputs are NOT the same and returns false otherwise
Operator: is_nan(input)
Description: If (input == NaN) return 1 else return 0
Operator: not(x)
Description: Returns the logical negation of x. If x is true (1), it returns false (0), and if input is false (0), it returns true (1).
Operator: or(input1, input2)
Description: Logical OR operator returns true if either or both inputs are true and returns false otherwise
Operator: days_from_last_change(x)
Description: Amount of days since last change of x
Operator: hump(x, hump = 0.01)
Description: Limits amount and magnitude of changes in input (thus reducing turnover)
Operator: kth_element(x, d, k)
Description: Returns K-th value of input by looking through lookback days. This operator can be used to backfill missing data if k=1
Operator: last_diff_value(x, d)
Description: Returns last x value not equal to current x value from last d days
Operator: ts_arg_max(x, d)
Description: Returns the relative index of the max value in the time series for the past d days. If the current day has the max value for the past d days, it returns 0. If previous day has the max value for the past d days, it returns 1
Operator: ts_arg_min(x, d)
Description: Returns the relative index of the min value in the time series for the past d days; If the current day has the min value for the past d days, it returns 0; If previous day has the min value for the past d days, it returns 1.
Operator: ts_av_diff(x, d)
Description: Returns x - tsmean(x, d), but deals with NaNs carefully. That is NaNs are ignored during mean computation
Operator: ts_backfill(x,lookback = d, k=1, ignore="NAN")
Description: Backfill is the process of replacing the NAN or 0 values by a meaningful value (i.e., a first non-NaN value)
Operator: ts_corr(x, y, d)
Description: Returns correlation of x and y for the past d days
Operator: ts_count_nans(x ,d)
Description: Returns the number of NaN values in x for the past d days
Operator: ts_covariance(y, x, d)
Description: Returns covariance of y and x for the past d days
Operator: ts_decay_linear(x, d, dense = false)
Description: Returns the linear decay on x for the past d days. Dense parameter=false means operator works in sparse mode and we treat NaN as 0. In dense mode we do not.
Operator: ts_delay(x, d)
Description: Returns x value d days ago
Operator: ts_delta(x, d)
Description: Returns x - ts_delay(x, d)
Operator: ts_mean(x, d)
Description: Returns average value of x for the past d days.
Operator: ts_product(x, d)
Description: Returns product of x for the past d days
Operator: ts_quantile(x,d, driver="gaussian" )
Description: It calculates ts_rank and apply to its value an inverse cumulative density function from driver distribution. Possible values of driver (optional ) are "gaussian", "uniform", "cauchy" distribution where "gaussian" is the default.
Operator: ts_rank(x, d, constant = 0)
Description: Rank the values of x for each instrument over the past d days, then return the rank of the current value + constant. If not specified, by default, constant = 0.
Operator: ts_regression(y, x, d, lag = 0, rettype = 0)
Description: Returns various parameters related to regression function
Operator: ts_scale(x, d, constant = 0)
Description: Returns (x - ts_min(x, d)) / (ts_max(x, d) - ts_min(x, d)) + constant. This operator is similar to scale down operator but acts in time series space
Operator: ts_std_dev(x, d)
Description: Returns standard deviation of x for the past d days
Operator: ts_step(1)
Description: Returns days' counter
Operator: ts_sum(x, d)
Description: Sum values of x for the past d days.
Operator: ts_zscore(x, d)
Description: Z-score is a numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean: (x - tsmean(x,d)) / tsstddev(x,d). This operator may help reduce outliers and drawdown.
Operator: normalize(x, useStd = false, limit = 0.0)
Description: Calculates the mean value of all valid alpha values for a certain date, then subtracts that mean from each element
Operator: quantile(x, driver = gaussian, sigma = 1.0)
Description: Rank the raw vector, shift the ranked Alpha vector, apply distribution (gaussian, cauchy, uniform). If driver is uniform, it simply subtract each Alpha value with the mean of all Alpha values in the Alpha vector
Operator: rank(x, rate=2)
Description: Ranks the input among all the instruments and returns an equally distributed number between 0.0 and 1.0. For precise sort, use the rate as 0
Operator: scale(x, scale=1, longscale=1, shortscale=1)
Description: Scales input to booksize. We can also scale the long positions and short positions to separate scales by mentioning additional parameters to the operator
Operator: winsorize(x, std=4)
Description: Winsorizes x to make sure that all values in x are between the lower and upper limits, which are specified as multiple of std.
Operator: zscore(x)
Description: Z-score is a numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean
Operator: vec_avg(x)
Description: Taking mean of the vector field x
Operator: vec_sum(x)
Description: Sum of vector field x
Operator: bucket(rank(x), range="0, 1, 0.1" or buckets = "2,5,6,7,10")
Description: Convert float values into indexes for user-specified buckets. Bucket is useful for creating group values, which can be passed to GROUP as input
Operator: trade_when(x, y, z)
Description: Used in order to change Alpha values only under a specified condition and to hold Alpha values in other cases. It also allows to close Alpha positions (assign NaN values) under a specified condition
Operator: group_backfill(x, group, d, std = 4.0)
Description: If a certain value for a certain date and instrument is NaN, from the set of same group instruments, calculate winsorized mean of all non-NaN values over last d days
Operator: group_mean(x, weight, group)
Description: All elements in group equals to the mean
Operator: group_neutralize(x, group)
Description: Neutralizes Alpha against groups. These groups can be subindustry, industry, sector, country or a constant
Operator: group_rank(x, group)
Description: Each elements in a group is assigned the corresponding rank in this group
Operator: group_scale(x, group)
Description: Normalizes the values in a group to be between 0 and 1. (x - groupmin) / (groupmax - groupmin)
Operator: group_zscore(x, group)
Description: Calculates group Z-score - numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean. zscore = (data - mean) / stddev of x for each instrument within its group.========================= 操作符结束 =======================================
========================= 数据字段开始 =======================================注意: DataField: 后面的是数据字段, DataFieldDescription: 此字段后面的是数据字段对应的描述或使用说明, DataFieldDescription字段后面的内容是使用说明, 不是数据字段
DataField: pcr_vol_180
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 180 days in the future.
DataField: option_breakeven_30
DataFieldDescription: Price at which a stock's options with expiration 30 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_30
DataFieldDescription: Price at which a stock's call options with expiration 30 days in the future break even based on its recent bid/ask mean.
DataField: pcr_oi_120
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 120 days in the future.
DataField: call_breakeven_180
DataFieldDescription: Price at which a stock's call options with expiration 180 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_120
DataFieldDescription: Price at which a stock's call options with expiration 120 days in the future break even based on its recent bid/ask mean.
DataField: pcr_oi_1080
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 1080 days in the future.
DataField: forward_price_360
DataFieldDescription: Forward price at 360 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: option_breakeven_180
DataFieldDescription: Price at which a stock's options with expiration 180 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_10
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 10 days in the future.
DataField: option_breakeven_10
DataFieldDescription: Price at which a stock's options with expiration 10 days in the future break even based on its recent bid/ask mean.
DataField: pcr_oi_90
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 90 days in the future.
DataField: forward_price_20
DataFieldDescription: Forward price at 20 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: call_breakeven_90
DataFieldDescription: Price at which a stock's call options with expiration 90 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_60
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 60 days in the future.
DataField: option_breakeven_20
DataFieldDescription: Price at which a stock's options with expiration 20 days in the future break even based on its recent bid/ask mean.
DataField: option_breakeven_60
DataFieldDescription: Price at which a stock's options with expiration 60 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_150
DataFieldDescription: Price at which a stock's put options with expiration 150 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_30
DataFieldDescription: Price at which a stock's put options with expiration 30 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_20
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 20 days in the future.
DataField: call_breakeven_360
DataFieldDescription: Price at which a stock's call options with expiration 360 days in the future break even based on its recent bid/ask mean.
DataField: option_breakeven_720
DataFieldDescription: Price at which a stock's options with expiration 720 days in the future break even based on its recent bid/ask mean.
DataField: forward_price_30
DataFieldDescription: Forward price at 30 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: pcr_oi_30
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 30 days in the future.
DataField: forward_price_90
DataFieldDescription: Forward price at 90 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: option_breakeven_1080
DataFieldDescription: Price at which a stock's options with expiration 1080 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_1080
DataFieldDescription: Price at which a stock's put options with expiration 1080 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_150
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 150 days in the future.
DataField: option_breakeven_150
DataFieldDescription: Price at which a stock's options with expiration 150 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_20
DataFieldDescription: Price at which a stock's put options with expiration 20 days in the future break even based on its recent bid/ask mean.
DataField: fnd6_newqeventv110_pncwiepq
DataFieldDescription: Core Pension Without Interest Adjustment Basic EPS Effect Preliminary
DataField: fnd6_ivst
DataFieldDescription: Short-Term Investments - Total
DataField: fnd6_newqv1300_invrmq
DataFieldDescription: Inventory - Raw Materials
DataField: fnd6_newqv1300_tfvceq
DataFieldDescription: Total Fair Value Changes including Earnings
DataField: fnd6_newa2v1300_mii
DataFieldDescription: Noncontrolling Interest (Income Account)
DataField: fnd6_newqeventv110_glcedq
DataFieldDescription: Gain/Loss on Sale (Core Earnings Adjusted) Diluted EPS
DataField: fnd6_npq
DataFieldDescription: Notes Payable
DataField: fnd6_newqeventv110_reunaq
DataFieldDescription: Unadjusted Retained Earnings
DataField: fnd6_newqeventv110_prcpepsq
DataFieldDescription: Core Post-Retirement Adjustment Basic EPS Effect Preliminary
DataField: fnd6_newqeventv110_xidoq
DataFieldDescription: Extraordinary Items and Discontinued Operations
DataField: fnd6_newa2v1300_oancf
DataFieldDescription: Operating Activities - Net Cash Flow
DataField: fnd6_newqeventv110_esoptq
DataFieldDescription: Preferred ESOP Obligation - Total
DataField: fnd6_mfma2_recch
DataFieldDescription: Accounts Receivable - Decrease (Increase)
DataField: fnd6_cptrank_gvkeymap
DataFieldDescription: technical code for a company, no need to use it for research
DataField: fnd6_newqv1300_reunaq
DataFieldDescription: Unadjusted Retained Earnings
DataField: fnd6_newqeventv110_piq
DataFieldDescription: Pretax Income
DataField: fnd6_cptnewqeventv110_oibdpq
DataFieldDescription: Operating Income Before Depreciation - Quarterly
DataField: fnd6_newqeventv110_miiq
DataFieldDescription: Noncontrolling Interest - Income Account
DataField: fnd6_newqv1300_aoq
DataFieldDescription: Assets - Other - Total
DataField: fnd6_ranks
DataFieldDescription: Ranking
DataField: fnd6_newqeventv110_xoptdqp
DataFieldDescription: Implied Option EPS Diluted Preliminary
DataField: fnd6_ceql
DataFieldDescription: Common Equity - Liquidation Value
DataField: fnd6_newqeventv110_aqpl1q
DataFieldDescription: Assets Level 1 (Quoted Prices)
DataField: fnd6_newqeventv110_seteps12
DataFieldDescription: Settlement (Litigation/Insurance) Basic EPS Effect 12MM
DataField: fnd6_eventv110_nrtxtepsq
DataFieldDescription: Nonrecurring Income Taxes Basic EPS Effect
DataField: fnd6_esubc
DataFieldDescription: Equity in Net Loss - Earnings
DataField: fnd6_msa
DataFieldDescription: Marketable Securities Adjustment
DataField: fnd6_newqv1300_ciderglq
DataFieldDescription: Comp Inc - Derivative Gains/Losses
DataField: ppent
DataFieldDescription: Property Plant and Equipment - Total (Net)
DataField: fnd6_dltp
DataFieldDescription: Long-Term Debt - Tied to Prime
DataField: scl12_alltype_buzzvec
DataFieldDescription: sentiment volume
DataField: scl12_alltype_sentvec
DataFieldDescription: sentiment
DataField: scl12_alltype_typevec
DataFieldDescription: instrument type index
DataField: scl12_buzz
DataFieldDescription: relative sentiment volume
DataField: scl12_buzz_fast_d1
DataFieldDescription: relative sentiment volume
DataField: scl12_buzzvec
DataFieldDescription: sentiment volume
DataField: scl12_sentiment
DataFieldDescription: sentiment
DataField: scl12_sentiment_fast_d1
DataFieldDescription: sentiment
DataField: scl12_sentvec
DataFieldDescription: sentiment
DataField: scl12_typevec
DataFieldDescription: instrument type index
DataField: snt_buzz
DataFieldDescription: negative relative sentiment volume, fill nan with 0
DataField: snt_buzz_bfl
DataFieldDescription: negative relative sentiment volume, fill nan with 1
DataField: snt_buzz_bfl_fast_d1
DataFieldDescription: negative relative sentiment volume, fill nan with 1
DataField: snt_buzz_fast_d1
DataFieldDescription: negative relative sentiment volume, fill nan with 0
DataField: snt_buzz_ret
DataFieldDescription: negative return of relative sentiment volume
DataField: snt_buzz_ret_fast_d1
DataFieldDescription: negative return of relative sentiment volume
DataField: snt_value
DataFieldDescription: negative sentiment, fill nan with 0
DataField: snt_value_fast_d1
DataFieldDescription: negative sentiment, fill nan with 0
DataField: analyst_revision_rank_derivative
DataFieldDescription: Change in ranking for analyst revisions and momentum compared to previous period.
DataField: cashflow_efficiency_rank_derivative
DataFieldDescription: Change in ranking for cash flow generation and profitability compared to previous period.
DataField: composite_factor_score_derivative
DataFieldDescription: Change in overall composite factor score from the prior period.
DataField: earnings_certainty_rank_derivative
DataFieldDescription: Change in ranking for earnings sustainability and certainty compared to previous period.
DataField: fscore_bfl_growth
DataFieldDescription: The purpose of this metric is to qualify the expected MT growth potential of the stock.
DataField: fscore_bfl_momentum
DataFieldDescription: The purpose of this metric is to identify stocks which are currently undergoing either up or downward analyst revisions.
DataField: fscore_bfl_profitability
DataFieldDescription: The purpose of this metric is to rank stock based on their ability to generate cash flows.
DataField: fscore_bfl_quality
DataFieldDescription: The purpose of this metric is to measure both the sustainability and certainty of earnings.
DataField: fscore_bfl_surface
DataFieldDescription: The static score. An index between 0 & 100 is applied for each stock and each composite factor - The first ranking is a pentagon surface-based score. The larger the surface, the higher the rank.
DataField: fscore_bfl_surface_accel
DataFieldDescription: The derivative score. In a second step, we calculate the derivative of this score (ie: Is the surface of the pentagon increasing or decreasing from the previous month?).
DataField: fscore_bfl_total
DataFieldDescription: The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.
DataField: fscore_bfl_value
DataFieldDescription: The purpose of this metric is to see if the stock is under or overpriced given several well known valuation standards.
DataField: fscore_growth
DataFieldDescription: The purpose of this metric is to qualify the expected MT growth potential of the stock.
DataField: fscore_momentum
DataFieldDescription: The purpose of this metric is to identify stocks which are currently undergoing either up or downward analyst revisions.
DataField: fscore_profitability
DataFieldDescription: The purpose of this metric is to rank stock based on their ability to generate cash flows.
DataField: fscore_quality
DataFieldDescription: The purpose of this metric is to measure both the sustainability and certainty of earnings.
DataField: fscore_surface
DataFieldDescription: The static score. An index between 0 & 100 is applied for each stock and each composite factor - The first ranking is a pentagon surface-based score. The larger the surface, the higher the rank.
DataField: fscore_surface_accel
DataFieldDescription: The derivative score. In a second step, we calculate the derivative of this score (ie: Is the surface of the pentagon increasing or decreasing from the previous month?).
DataField: fscore_total
DataFieldDescription: The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.
DataField: fscore_value
DataFieldDescription: The purpose of this metric is to see if the stock is under or overpriced given several well known valuation standards.
DataField: growth_potential_rank_derivative
DataFieldDescription: Change in ranking for medium-term growth potential compared to previous period.
DataField: multi_factor_acceleration_score_derivative
DataFieldDescription: Change in the acceleration of multi-factor score compared to previous period.
DataField: multi_factor_static_score_derivative
DataFieldDescription: Change in static multi-factor score compared to previous period.
DataField: relative_valuation_rank_derivative
DataFieldDescription: Change in ranking for valuation metrics compared to previous period.
DataField: snt_social_value
DataFieldDescription: Z score of sentiment
DataField: snt_social_volume
DataFieldDescription: Normalized tweet volume
DataField: beta_last_30_days_spy
DataFieldDescription: Beta to SPY in 30 Days
DataField: beta_last_360_days_spy
DataFieldDescription: Beta to SPY in 360 Days
DataField: beta_last_60_days_spy
DataFieldDescription: Beta to SPY in 60 Days
DataField: beta_last_90_days_spy
DataFieldDescription: Beta to SPY in 90 Days
DataField: correlation_last_30_days_spy
DataFieldDescription: Correlation to SPY in 30 Days
DataField: correlation_last_360_days_spy
DataFieldDescription: Correlation to SPY in 360 Days
DataField: correlation_last_60_days_spy
DataFieldDescription: Correlation to SPY in 60 Days
DataField: correlation_last_90_days_spy
DataFieldDescription: Correlation to SPY in 90 Days
DataField: systematic_risk_last_30_days
DataFieldDescription: Systematic Risk Last 30 Days
DataField: systematic_risk_last_360_days
DataFieldDescription: Systematic Risk Last 360 Days
DataField: systematic_risk_last_60_days
DataFieldDescription: Systematic Risk Last 60 Days
DataField: systematic_risk_last_90_days
DataFieldDescription: Systematic Risk Last 90 Days
DataField: unsystematic_risk_last_30_days
DataFieldDescription: Unsystematic Risk Last 30 Days - Relative to SPY
DataField: unsystematic_risk_last_360_days
DataFieldDescription: Unsystematic Risk Last 360 Days - Relative to SPY
DataField: unsystematic_risk_last_60_days
DataFieldDescription: Unsystematic Risk Last 60 Days - Relative to SPY
DataField: unsystematic_risk_last_90_days
DataFieldDescription: Unsystematic Risk Last 90 Days - Relative to SPY
DataField: anl4_tot_gw_ft
DataFieldDescription: Total Goodwill - forecast type (revision/new/...)
DataField: anl4_bvps_value
DataFieldDescription: Book value per share - announced financial value
DataField: max_reported_pretax_income_guidance_2
DataFieldDescription: Reported Pretax income- maximum guidance value
DataField: anl4_dei3lqfv110_item
DataFieldDescription: Financial item
DataField: anl4_netprofita_low
DataFieldDescription: Adjusted net income - the lowest estimation
DataField: anl4_eaz1laf_person
DataFieldDescription: Broker Id
DataField: total_assets_reported_value
DataFieldDescription: Total Assets - actual value
DataField: anl4_fsactualafv4_actual
DataFieldDescription: Announced financial data
DataField: anl4_bac1detailafv110_item
DataFieldDescription: Financial item
DataField: financing_cashflow_reported_value
DataFieldDescription: Cash Flow From Financing - Value
DataField: anl4_fsguidanceafv4_item
DataFieldDescription: Financial item
DataField: dividend_estimate_standard_deviation
DataFieldDescription: Dividend per share - standard deviation of estimations
DataField: anl4_cff_value
DataFieldDescription: Cash Flow From Financing - announced financial value
DataField: max_operating_cashflow_guidance_2
DataFieldDescription: The maximum guidance value for Cash Flow from Operations on an annual basis.
DataField: sales_estimate_average
DataFieldDescription: Sales - mean of estimations with a delay of 1 quarter
DataField: anl4_eaz2lltv110_estvalue
DataFieldDescription: Estimation value
DataField: shareholders_equity_reported_value
DataFieldDescription: Shareholders' Equity - Total Value
DataField: anl4_bac1detaillt_item
DataFieldDescription: Financial item
DataField: anl4_basicdetaillt_estvalue
DataFieldDescription: Estimation value
DataField: previous_recommendation_value
DataFieldDescription: The previous estimation of financial item for recommendation
DataField: anl4_ebitda_flag
DataFieldDescription: Earnings before interest, taxes, depreciation and amortization - forecast type (revision/new/...)
DataField: highest_sales_estimate
DataFieldDescription: Sales - The highest estimation for the annual period
DataField: anl4_median_epsreported
DataFieldDescription: GAAP Earnings per share - median of estimations
DataField: anl4_ads1detailafv110_person
DataFieldDescription: Broker Id
DataField: cashflow_per_share_max_guidance
DataFieldDescription: The maximum guidance value for Cash Flow Per Share on an annual basis.
DataField: anl4_fsdtlestmtafv4_item
DataFieldDescription: Financial item
DataField: anl4_basicconafv110_high
DataFieldDescription: The highest estimation
DataField: anl4_guiafv4_est
DataFieldDescription: Estimation value
DataField: anl4_fcfps_low
DataFieldDescription: Free Cash Flow Per Share - the lowest estimation
DataField: min_financing_cashflow_guidance
DataFieldDescription: Minimum guidance value for Cash Flow From Financing
DataField: pv13_hierarchy_min50_f3_513_sector
DataFieldDescription: grouping fields
DataField: pv13_h_min2_focused_pureplay_3000_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min2_513_sector
DataFieldDescription: grouping fields
DataField: pv13_ompetitorgraphrank_hub_rank
DataFieldDescription: the HITS hub score of competitors
DataField: rel_num_all
DataFieldDescription: number of the companies whose product overlapped with the instrument
DataField: pv13_6l_scibr
DataFieldDescription: grouping fields
DataField: pv13_h_min30_3000_mapped_sector
DataFieldDescription: grouping fields
DataField: pv13_h_min51_f3_sector
DataFieldDescription: grouping fields
DataField: pv13_reportperiodend
DataFieldDescription: Stated end date for the report
DataField: pv13_hierarchy_min22_1000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min10_2k_sector
DataFieldDescription: grouping fields
DataField: pv13_r2_min5_1000_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min5_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min52_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy23_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_f4_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min20_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min51_f2_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy2_min2_1k_513_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min2_1000_513_sector
DataFieldDescription: grouping fields
DataField: primary_sector_focused_company_count
DataFieldDescription: Number of companies primarily focused in a given sector.
DataField: pv13_r2_liquid_min10_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min20_3k_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min10_513_sector
DataFieldDescription: grouping fields
DataField: pv13_revere_country
DataFieldDescription: Country code
DataField: pv13_r2_min20_3000_sector
DataFieldDescription: grouping fields
DataField: pv13_revere_term
DataFieldDescription: Indicates when a sector is the terminal sector (i.e., no sub-sectors)
DataField: pv13_hierarchy_min51_f4_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min2_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min5_3000_513_sector
DataFieldDescription: grouping fields
DataField: historical_volatility_20
DataFieldDescription: Close-to-close Historical volatility over 20 days
DataField: implied_volatility_call_150
DataFieldDescription: At-the-money option-implied volatility for call Option for 150 days
DataField: implied_volatility_call_1080
DataFieldDescription: At-the-money option-implied volatility for call option for 1080 days
DataField: historical_volatility_150
DataFieldDescription: Close-to-close Historical volatility over 150 days
DataField: parkinson_volatility_30
DataFieldDescription: Parkinson model's historical volatility over 30 days
DataField: implied_volatility_mean_skew_20
DataFieldDescription: At-the-money option-implied volatility mean skew for 20 days
DataField: implied_volatility_mean_1080
DataFieldDescription: At-the-money option-implied volatility mean for 3 years
DataField: implied_volatility_put_720
DataFieldDescription: At-the-money option-implied volatility for Put Option for 720 days
DataField: implied_volatility_put_30
DataFieldDescription: At-the-money option-implied volatility for Put Option for 30 days
DataField: implied_volatility_call_60
DataFieldDescription: At-the-money option-implied volatility for call Option for 60 days
DataField: implied_volatility_mean_skew_30
DataFieldDescription: At-the-money option-implied volatility mean skew for 30 days
DataField: implied_volatility_call_720
DataFieldDescription: At-the-money option-implied volatility for call Option for 720 days
DataField: historical_volatility_90
DataFieldDescription: Close-to-close Historical volatility over 90 days
DataField: historical_volatility_10
DataFieldDescription: Close-to-close Historical volatility over 10 days
DataField: implied_volatility_mean_skew_90
DataFieldDescription: At-the-money option-implied volatility mean skew for 90 days
DataField: implied_volatility_mean_skew_60
DataFieldDescription: At-the-money option-implied volatility mean skew for 60 days
DataField: implied_volatility_mean_720
DataFieldDescription: At-the-money option-implied volatility mean for 720 days
DataField: parkinson_volatility_90
DataFieldDescription: Parkinson model's historical volatility over 90 days
DataField: implied_volatility_put_150
DataFieldDescription: At-the-money option-implied volatility for Put Option for 150 days
DataField: implied_volatility_mean_skew_120
DataFieldDescription: At-the-money option-implied volatility mean skew for 120 days
DataField: implied_volatility_mean_skew_360
DataFieldDescription: At-the-money option-implied volatility mean skew for 360 days
DataField: implied_volatility_call_180
DataFieldDescription: At-the-money option-implied volatility for call Option for 180 days
DataField: implied_volatility_put_60
DataFieldDescription: At-the-money option-implied volatility for Put Option for 60 days
DataField: parkinson_volatility_150
DataFieldDescription: Parkinson model's historical volatility over 150 days
DataField: implied_volatility_mean_10
DataFieldDescription: At-the-money option-implied volatility mean for 10 days
DataField: implied_volatility_mean_skew_10
DataFieldDescription: At-the-money option-implied volatility mean skew for 10 days
DataField: implied_volatility_mean_skew_180
DataFieldDescription: At-the-money option-implied volatility mean skew for 180 days
DataField: implied_volatility_put_180
DataFieldDescription: At-the-money option-implied volatility for put option for 180 days
DataField: implied_volatility_mean_360
DataFieldDescription: At-the-money option-implied volatility mean for 360 days
DataField: parkinson_volatility_180
DataFieldDescription: Parkinson model's historical volatility over 180 days
DataField: news_session_range
DataFieldDescription: Session High Price - Session Low Price
DataField: news_mins_20_chg
DataFieldDescription: The minimum of L or S above for 20-minute bucket
DataField: nws12_mainz_prevclose
DataFieldDescription: Previous trading day's close price
DataField: nws12_prez_opengap
DataFieldDescription: (DayOpen - PrevClose) / PrevClose.
DataField: nws12_prez_maxdown
DataFieldDescription: Percent change from the price at the time of the news to the after the news low
DataField: nws12_afterhsz_dayopen
DataFieldDescription: Price at the session open
DataField: nws12_mainz_57s
DataFieldDescription: Number of minutes that elapsed before price went down 7.5 percentage points
DataField: news_mins_10_pct_dn
DataFieldDescription: Number of minutes that elapsed before price went down 10 percentage points
DataField: news_indx_perf
DataFieldDescription: ((EODClose - TONLast) / TONLast) - ((SPYClose - SPYLast) / SPYLast)
DataField: nws12_afterhsz_lowexcstddev
DataFieldDescription: (TONLast - EODLow) / StdDev, where StdDev is one standard deviation for the close price for 30 calendar days
DataField: nws12_afterhsz_1_minute
DataFieldDescription: The percent change in price in the first minute following the news release
DataField: nws12_afterhsz_epsactual
DataFieldDescription: The actual Earnings Per Share value that was conveyed by the news release
DataField: nws12_prez_60_min
DataFieldDescription: The percent change in price in the first 60 minutes following the news release
DataField: nws12_afterhsz_41rta
DataFieldDescription: 14-day Average True Range
DataField: nws12_allz_reportsess
DataFieldDescription: Index of Session on which the spreadsheet is reporting
DataField: nws12_mainz_rangestddev
DataFieldDescription: (RangeAmt-AvgRange)/RangeStdDev, where AvgRange is the average of the daily range, and RangeStdDev is one standard deviation for the daily range, both for 30 calendar days
DataField: nws12_afterhsz_1p
DataFieldDescription: The minimum of L or S above for 1-minute bucket
DataField: nws12_prez_tonhigh
DataFieldDescription: Highest price reached during the session before the time of the news
DataField: nws12_allz_provider
DataFieldDescription: index of name of the news provider
DataField: nws12_prez_tonlow
DataFieldDescription: Lowest price reached during the session before the time of the news
DataField: nws12_afterhsz_3s
DataFieldDescription: Number of minutes that elapsed before price went down 3 percentage points
DataField: nws12_prez_10_min
DataFieldDescription: The percent change in price in the first 10 minutes following the news release
DataField: nws12_mainz_short_interest
DataFieldDescription: Total number of shares sold short divided by total number of shares outstanding
DataField: nws12_prez_5_min
DataFieldDescription: The percent change in price in the first 5 minutes following the news release
DataField: news_pct_1min
DataFieldDescription: The percent change in price in the first minute following the news release
DataField: nws12_prez_mov_vol
DataFieldDescription: 30-day moving average session volume
DataField: nws12_mainz_2p
DataFieldDescription: The minimum of L or S above for 2 minute bucket
DataField: nws12_afterhsz_2l
DataFieldDescription: Number of minutes that elapsed before price went up 2 percentage points
DataField: news_close_vol
DataFieldDescription: Main close volume
DataField: nws12_afterhsz_3l
DataFieldDescription: Number of minutes that elapsed before price went up 3 percentage points
DataField: top1000
DataFieldDescription: 20140630
DataField: top200
DataFieldDescription: 20140630
DataField: top3000
DataFieldDescription: 20140630
DataField: top500
DataFieldDescription: 20140630
DataField: topsp500
DataFieldDescription: 20140630
DataField: rp_nip_price
DataFieldDescription: News impact projection of stock price news
DataField: rp_nip_marketing
DataFieldDescription: News impact projection of marketing news
DataField: rp_ess_dividends
DataFieldDescription: Event sentiment score of dividends news
DataField: rp_ess_labor
DataFieldDescription: Event sentiment score of labor issues news
DataField: rp_css_marketing
DataFieldDescription: Composite sentiment score of marketing news
DataField: nws18_ghc_lna
DataFieldDescription: Change in analyst recommendation
DataField: rp_ess_credit_ratings
DataFieldDescription: Event sentiment score of credit ratings news
DataField: rp_css_legal
DataFieldDescription: Composite sentiment score of legal news
DataField: nws18_relevance
DataFieldDescription: Relevance of news to the company
DataField: rp_css_mna
DataFieldDescription: Composite sentiment score of mergers and acquisitions-related news
DataField: rp_css_society
DataFieldDescription: Composite sentiment score of society-related news
DataField: rp_css_business
DataFieldDescription: Composite sentiment score of business-related news
DataField: nws18_ber
DataFieldDescription: News sentiment specializing in earnings result
DataField: rp_ess_technical
DataFieldDescription: Event sentiment score based on technical analysis
DataField: rp_css_inverstor
DataFieldDescription: Composite sentiment score of investor relations news
DataField: rp_css_labor
DataFieldDescription: Composite sentiment score of labor issues news
DataField: nws18_qep
DataFieldDescription: News sentiment based on positive and negative words on global equity
DataField: rp_ess_business
DataFieldDescription: Event sentiment score of business-related news
DataField: nws18_nip
DataFieldDescription: Degree of impact of the news
DataField: nws18_sse
DataFieldDescription: Sentiment of phrases impacting the company
DataField: nws18_ssc
DataFieldDescription: Sentiment of the news calculated using multiple techniques
DataField: nws18_event_similarity_days
DataFieldDescription: Days since a similar event was detected
DataField: rp_css_credit
DataFieldDescription: Composite sentiment score of credit news
DataField: rp_css_technical
DataFieldDescription: Composite sentiment score based on technical analysis
DataField: rp_ess_society
DataFieldDescription: Event sentiment score of society-related news
DataField: rp_nip_technical
DataFieldDescription: News impact projection based on technical analysis
DataField: rp_css_ptg
DataFieldDescription: Composite sentiment score of price target news
DataField: rp_nip_assets
DataFieldDescription: News impact projection of assets news
DataField: rp_nip_ratings
DataFieldDescription: News impact projection of analyst ratings-related news
DataField: rp_ess_earnings
DataFieldDescription: Event sentiment score of earnings news
DataField: fnd2_a_inventoryrawmaterials
DataFieldDescription: Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within 1 year or operating cycle, if longer.
DataField: fnd2_ebitfr
DataFieldDescription: EBIT, Foreign
DataField: fnd2_itxreclstatelocalitxes
DataFieldDescription: Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to state and local income tax expense (benefit).
DataField: fn_assets_fair_val_l1_a
DataFieldDescription: Asset Fair Value, Recurring, Level 1
DataField: fn_intangible_assets_accum_amort_q
DataFieldDescription: Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.
DataField: fn_new_shares_options_q
DataFieldDescription: Number of share options (or share units) exercised during the current period.
DataField: fn_comp_fair_value_assumptions_weighted_avg_vol_rate_a
DataFieldDescription: Weighted average expected volatility rate of share-based compensation awards.
DataField: fn_repayments_of_lines_of_credit_a
DataFieldDescription: Amount of cash outflow for payment of an obligation from a lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.
DataField: fnd2_dbplanfvalpnas
DataFieldDescription: Fair value of assets that have been segregated and restricted to provide pension or postretirement benefits. Assets include, but are not limited to, stocks, bonds, other investments, earnings from investments, and contributions by the employer and employees.
DataField: fnd2_a_eplsbvdcpcstnrgsbaoo
DataFieldDescription: Unrecognized cost of unvested other share-based compensation awards.
DataField: fn_op_lease_min_pay_due_in_5y_a
DataFieldDescription: Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of 1 year due in the 5th fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fn_liab_fair_val_l1_q
DataFieldDescription: Liabilities Fair Value, Recurring, Level 1
DataField: fn_def_tax_liab_q
DataFieldDescription: Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.
DataField: fnd2_q_flintasamt1expy5
DataFieldDescription: Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the 5th fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fn_income_from_equity_investments_a
DataFieldDescription: Income From Equity Method Investments
DataField: fn_op_lease_min_pay_due_in_4y_a
DataFieldDescription: Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of 1 year due in the 4th fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fnd2_a_ltrmdmrepoplinytwo
DataFieldDescription: Amount of long-term debt payable, sinking fund requirements, and other securities issued that are redeemable by holder at fixed or determinable prices and dates maturing in the 2nd fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fnd2_a_sbcpnargmsptawervl
DataFieldDescription: Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.
DataField: fnd2_dbplanchgbnfolintcst
DataFieldDescription: Defined Benefit Plan Change In Benefit Obligation Interest Cost
DataField: fnd2_q_inventoryrawmaterials
DataFieldDescription: Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within 1 year or operating cycle, if longer.
DataField: fn_repayments_of_lines_of_credit_q
DataFieldDescription: Amount of cash outflow for payment of an obligation from a lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.
DataField: fn_business_combination_assets_aquired_goodwill_q
DataFieldDescription: Business Combination, Portion of Purchase Price Allocated to Goodwill
DataField: fn_comp_options_exercises_weighted_avg_a
DataFieldDescription: Share-Based Compensation, Options Assumed, Weighted Average Exercise Price
DataField: fn_op_lease_rent_exp_a
DataFieldDescription: Rental expense for the reporting period incurred under operating leases, including minimum and any contingent rent expense, net of related sublease income.
DataField: fnd2_a_lhdiprtsg
DataFieldDescription: Amount before accumulated depreciation of additions or improvements to assets held under a lease arrangement.
DataField: fnd2_a_ltrmdmrepoplinyfour
DataFieldDescription: Amount of long-term debt payable, sinking fund requirements, and other securities issued that are redeemable by holder at fixed or determinable prices and dates maturing in the 4th fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fnd2_propplteqmuflmeqmt
DataFieldDescription: PPE, Equipment, Useful Life, Minimum
DataField: fn_comp_not_rec_stock_options_a
DataFieldDescription: Unrecognized cost of unvested stock option awards.
DataField: fn_business_acq_ppne_a
DataFieldDescription: Business Combination, Assumed Property, Plant and Equipment
DataField: fnd2_a_sbcpnargmpmwggil
DataFieldDescription: Amount by which the current fair value of the underlying stock exceeds the exercise price of fully vested and expected to vest options outstanding.
DataField: adv20
DataFieldDescription: Average daily volume in past 20 days
DataField: cap
DataFieldDescription: Daily market capitalization (in millions)
DataField: close
DataFieldDescription: Daily close price
DataField: country
DataFieldDescription: Country grouping
DataField: currency
DataFieldDescription: Currency
DataField: cusip
DataFieldDescription: CUSIP Value
DataField: dividend
DataFieldDescription: Dividend
DataField: exchange
DataFieldDescription: Exchange grouping
DataField: high
DataFieldDescription: Daily high price
DataField: industry
DataFieldDescription: Industry grouping
DataField: isin
DataFieldDescription: ISIN Value
DataField: low
DataFieldDescription: Daily low price
DataField: market
DataFieldDescription: Market grouping
DataField: open
DataFieldDescription: Daily open price
DataField: returns
DataFieldDescription: Daily returns
DataField: sector
DataFieldDescription: Sector grouping
DataField: sedol
DataFieldDescription: Sedol
DataField: sharesout
DataFieldDescription: Daily outstanding shares (in millions)
DataField: split
DataFieldDescription: Stock split ratio
DataField: subindustry
DataFieldDescription: Subindustry grouping
DataField: ticker
DataFieldDescription: Ticker
DataField: volume
DataFieldDescription: Daily volume
DataField: vwap
DataFieldDescription: Daily volume weighted average price
========================= 数据字段结束 =======================================

@ -0,0 +1,922 @@
任务指令
你是一个WorldQuant WebSim因子工程师。你的任务是生成100个用于行业轮动策略的复合型Alpha因子表达式。
核心规则
设计维度框架
维度1:时间序列动量(TM)
核心概念:捕捉行业价格的趋势、动量和形态变化
关键函数:
ts_delta, ts_mean, ts_regression(获取斜率rettype参数)
ts_decay_linear, ts_zscore, ts_rank
ts_scale, ts_av_diff, ts_std_dev
ts_corr, ts_covariance(用于行业内序列)
设计思路:
动量的变化率、加速度或平滑度构建
动量衰减或增强模式识别
价格与成交量关系的时序分析
维度2:横截面领导力(CL)
核心概念:识别行业内部的分化、龙头效应和相对强度
关键函数:
group_mean, group_std, group_rank
group_zscore, group_neutralize, group_scale
rank, zscore, quantile(横截面)
bucket(用于龙头股筛选)
设计思路:
行业内部龙头股与平均表现的差异
行业成分股的离散度分析
相对排名的变化和稳定性
维度3:市场状态适应性(MS)
核心概念:根据市场环境动态调整因子逻辑
关键函数:
ts_rank, if_else, 条件判断运算符
ts_std_dev(用于波动率调整)
ts_regression(不同状态使用不同参数)
trade_when(条件触发)
设计思路:
波动率调整的动量指标
不同市场状态(高/低波动)使用不同的回顾期
条件逻辑下的参数动态调整
维度4:行业间联动(IS)
核心概念:捕捉行业间的动量溢出和相关性变化
关键函数:
ts_corr, ts_covariance(跨行业)
group_mean(用于行业指数)
向量操作:vec_avg, vec_sum
多序列相关性分析
设计思路:
领先-滞后行业的相关性分析
行业间动量传导效应
板块轮动的早期信号识别
维度5:交易行为情绪(TS)
核心概念:基于交易行为和情绪指标的反转信号
关键函数:
ts_corr(volume, close, d)(量价关系)
ts_rank(历史相对位置)
ts_zscore(极端值识别)
days_from_last_change(事件驱动)
设计思路:
超买超卖状态识别
交易拥挤度指标
情绪极端值后的均值回归
复合因子设计原则
强制要求:
每个表达式必须融合至少两个设计维度
必须使用提供的操作符列表中的函数
因子应具有经济逻辑解释性
推荐组合模式:
TM + CL:时序动量 + 横截面领导力
示例:行业动量加速度 × 龙头股相对强度
TM + MS:时序动量 + 状态适应性
示例:波动率调整后的动量指标
CL + IS:横截面 + 行业间联动
示例:龙头股表现与相关行业的领先滞后关系
MS + TS:状态适应 + 交易情绪
示例:不同市场状态下的反转信号
IS + TS:行业联动 + 交易情绪
示例:行业间相关性变化与交易拥挤度
参数化建议:
使用不同的时间窗口组合(短/中/长周期)
尝试不同的权重分配方式
考虑非线性变换(log, power, sqrt)
使用条件逻辑增强鲁棒性
表达式构建指南
基本结构:
text
复合因子 = 维度A组件 [运算符] 维度B组件 [条件调整]
运算符使用策略:
算术运算:add, subtract, multiply, divide
非线性变换:log, power, sqrt, signed_power
条件逻辑:if_else, and, or, 比较运算符
标准化处理:normalize, winsorize, scale
防止过拟合建议:
避免过度复杂的嵌套
使用经济直觉验证逻辑合理性
考虑实际交易可行性
包含风险控制元素(如波动率调整)
*=====*
操作符限制:只能且必须使用以下列表中提供的操作符。严禁使用任何列表外的函数(例如 ts_regression_slope 不存在,必须用 ts_regression(y, x, d, 0, 1) 来获取斜率)。
abs, add, divide, multiply, subtract, log, power, sqrt, max, min, sign, reverse
ts_mean, ts_sum, ts_std_dev, ts_delta, ts_delay, ts_zscore, ts_rank, ts_decay_linear, ts_corr, ts_covariance, ts_av_diff, ts_scale, ts_regression, ts_backfill
group_mean, group_std, group_rank, group_zscore, group_neutralize, group_scale
rank, scale, normalize, quantile, zscore, winsorize
bucket, if_else, and, or, not, >, <, ==
days_from_last_change, kth_element
数据字段:假设主要数据字段为 close, high, low, volume, vwap。可安全使用。
参数逻辑:参数d(回顾期)应在[5, 10, 20, 30, 60, 120]等具有市场意义(周、月、季度、半年)的数值中合理选择并差异化。
行业隐含:通过group_mean、group_rank等函数或假设表达式在行业指数上运行来体现“行业”逻辑。
输出格式:
输出必须是且仅是 100行纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
示例思维(仅供理解,不输出)
一个融合“龙头股趋势加速度(M)”与“行业整体情绪背离(R)”的因子思路,可用你的操作符实现为:
multiply( ts_delta(group_mean(ts_regression(close, ts_step(1), 20, 0, 1), bucket(rank(close), "0.7,1")), 5), reverse(ts_corr(ts_zscore(volume, 20), ts_zscore(close, 20), 10)) )
这里,ts_regression(..., rettype=1)获取斜率代替动量,bucket(rank(close), "0.7,1")近似选取市值前30%的龙头股,ts_corr(...)衡量价量情绪,reverse将其转化为背离信号。
现在,请严格遵守以上所有规则,开始生成100行可立即在WebSim中运行的复合因子表达式。
**输出格式**(一行一个表达式, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
请提供具体的WQ表达式。
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
========================= 操作符开始 =======================================注意: Operator: 后面的是操作符,
Description: 此字段后面的是操作符对应的描述或使用说明, Description字段后面的内容是使用说明, 不是操作符
Operator: abs(x)
Description: Absolute value of x
Operator: add(x, y, filter = false), x + y
Description: Add all inputs (at least 2 inputs required). If filter = true, filter all input NaN to 0 before adding
Operator: densify(x)
Description: Converts a grouping field of many buckets into lesser number of only available buckets so as to make working with grouping fields computationally efficient
Operator: divide(x, y), x / y
Description: x / y
Operator: inverse(x)
Description: 1 / x
Operator: log(x)
Description: Natural logarithm. For example: Log(high/low) uses natural logarithm of high/low ratio as stock weights.
Operator: max(x, y, ..)
Description: Maximum value of all inputs. At least 2 inputs are required
Operator: min(x, y ..)
Description: Minimum value of all inputs. At least 2 inputs are required
Operator: multiply(x ,y, ... , filter=false), x * y
Description: Multiply all inputs. At least 2 inputs are required. Filter sets the NaN values to 1
Operator: power(x, y)
Description: x ^ y
Operator: reverse(x)
Description: - x
Operator: sign(x)
Description: if input > 0, return 1; if input < 0, return -1; if input = 0, return 0; if input = NaN, return NaN;
Operator: signed_power(x, y)
Description: x raised to the power of y such that final result preserves sign of x
Operator: sqrt(x)
Description: Square root of x
Operator: subtract(x, y, filter=false), x - y
Description: x-y. If filter = true, filter all input NaN to 0 before subtracting
Operator: and(input1, input2)
Description: Logical AND operator, returns true if both operands are true and returns false otherwise
Operator: if_else(input1, input2, input 3)
Description: If input1 is true then return input2 else return input3.
Operator: input1 < input2
Description: If input1 < input2 return true, else return false
Operator: input1 <= input2
Description: Returns true if input1 <= input2, return false otherwise
Operator: input1 == input2
Description: Returns true if both inputs are same and returns false otherwise
Operator: input1 > input2
Description: Logic comparison operators to compares two inputs
Operator: input1 >= input2
Description: Returns true if input1 >= input2, return false otherwise
Operator: input1!= input2
Description: Returns true if both inputs are NOT the same and returns false otherwise
Operator: is_nan(input)
Description: If (input == NaN) return 1 else return 0
Operator: not(x)
Description: Returns the logical negation of x. If x is true (1), it returns false (0), and if input is false (0), it returns true (1).
Operator: or(input1, input2)
Description: Logical OR operator returns true if either or both inputs are true and returns false otherwise
Operator: days_from_last_change(x)
Description: Amount of days since last change of x
Operator: hump(x, hump = 0.01)
Description: Limits amount and magnitude of changes in input (thus reducing turnover)
Operator: kth_element(x, d, k)
Description: Returns K-th value of input by looking through lookback days. This operator can be used to backfill missing data if k=1
Operator: last_diff_value(x, d)
Description: Returns last x value not equal to current x value from last d days
Operator: ts_arg_max(x, d)
Description: Returns the relative index of the max value in the time series for the past d days. If the current day has the max value for the past d days, it returns 0. If previous day has the max value for the past d days, it returns 1
Operator: ts_arg_min(x, d)
Description: Returns the relative index of the min value in the time series for the past d days; If the current day has the min value for the past d days, it returns 0; If previous day has the min value for the past d days, it returns 1.
Operator: ts_av_diff(x, d)
Description: Returns x - tsmean(x, d), but deals with NaNs carefully. That is NaNs are ignored during mean computation
Operator: ts_backfill(x,lookback = d, k=1, ignore="NAN")
Description: Backfill is the process of replacing the NAN or 0 values by a meaningful value (i.e., a first non-NaN value)
Operator: ts_corr(x, y, d)
Description: Returns correlation of x and y for the past d days
Operator: ts_count_nans(x ,d)
Description: Returns the number of NaN values in x for the past d days
Operator: ts_covariance(y, x, d)
Description: Returns covariance of y and x for the past d days
Operator: ts_decay_linear(x, d, dense = false)
Description: Returns the linear decay on x for the past d days. Dense parameter=false means operator works in sparse mode and we treat NaN as 0. In dense mode we do not.
Operator: ts_delay(x, d)
Description: Returns x value d days ago
Operator: ts_delta(x, d)
Description: Returns x - ts_delay(x, d)
Operator: ts_mean(x, d)
Description: Returns average value of x for the past d days.
Operator: ts_product(x, d)
Description: Returns product of x for the past d days
Operator: ts_quantile(x,d, driver="gaussian" )
Description: It calculates ts_rank and apply to its value an inverse cumulative density function from driver distribution. Possible values of driver (optional ) are "gaussian", "uniform", "cauchy" distribution where "gaussian" is the default.
Operator: ts_rank(x, d, constant = 0)
Description: Rank the values of x for each instrument over the past d days, then return the rank of the current value + constant. If not specified, by default, constant = 0.
Operator: ts_regression(y, x, d, lag = 0, rettype = 0)
Description: Returns various parameters related to regression function
Operator: ts_scale(x, d, constant = 0)
Description: Returns (x - ts_min(x, d)) / (ts_max(x, d) - ts_min(x, d)) + constant. This operator is similar to scale down operator but acts in time series space
Operator: ts_std_dev(x, d)
Description: Returns standard deviation of x for the past d days
Operator: ts_step(1)
Description: Returns days' counter
Operator: ts_sum(x, d)
Description: Sum values of x for the past d days.
Operator: ts_zscore(x, d)
Description: Z-score is a numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean: (x - tsmean(x,d)) / tsstddev(x,d). This operator may help reduce outliers and drawdown.
Operator: normalize(x, useStd = false, limit = 0.0)
Description: Calculates the mean value of all valid alpha values for a certain date, then subtracts that mean from each element
Operator: quantile(x, driver = gaussian, sigma = 1.0)
Description: Rank the raw vector, shift the ranked Alpha vector, apply distribution (gaussian, cauchy, uniform). If driver is uniform, it simply subtract each Alpha value with the mean of all Alpha values in the Alpha vector
Operator: rank(x, rate=2)
Description: Ranks the input among all the instruments and returns an equally distributed number between 0.0 and 1.0. For precise sort, use the rate as 0
Operator: scale(x, scale=1, longscale=1, shortscale=1)
Description: Scales input to booksize. We can also scale the long positions and short positions to separate scales by mentioning additional parameters to the operator
Operator: winsorize(x, std=4)
Description: Winsorizes x to make sure that all values in x are between the lower and upper limits, which are specified as multiple of std.
Operator: zscore(x)
Description: Z-score is a numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean
Operator: vec_avg(x)
Description: Taking mean of the vector field x
Operator: vec_sum(x)
Description: Sum of vector field x
Operator: bucket(rank(x), range="0, 1, 0.1" or buckets = "2,5,6,7,10")
Description: Convert float values into indexes for user-specified buckets. Bucket is useful for creating group values, which can be passed to GROUP as input
Operator: trade_when(x, y, z)
Description: Used in order to change Alpha values only under a specified condition and to hold Alpha values in other cases. It also allows to close Alpha positions (assign NaN values) under a specified condition
Operator: group_backfill(x, group, d, std = 4.0)
Description: If a certain value for a certain date and instrument is NaN, from the set of same group instruments, calculate winsorized mean of all non-NaN values over last d days
Operator: group_mean(x, weight, group)
Description: All elements in group equals to the mean
Operator: group_neutralize(x, group)
Description: Neutralizes Alpha against groups. These groups can be subindustry, industry, sector, country or a constant
Operator: group_rank(x, group)
Description: Each elements in a group is assigned the corresponding rank in this group
Operator: group_scale(x, group)
Description: Normalizes the values in a group to be between 0 and 1. (x - groupmin) / (groupmax - groupmin)
Operator: group_zscore(x, group)
Description: Calculates group Z-score - numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean. zscore = (data - mean) / stddev of x for each instrument within its group.========================= 操作符结束 =======================================
========================= 数据字段开始 =======================================注意: DataField: 后面的是数据字段, DataFieldDescription: 此字段后面的是数据字段对应的描述或使用说明, DataFieldDescription字段后面的内容是使用说明, 不是数据字段
DataField: pcr_vol_1080
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 1080 days in the future.
DataField: put_breakeven_30
DataFieldDescription: Price at which a stock's put options with expiration 30 days in the future break even based on its recent bid/ask mean.
DataField: forward_price_720
DataFieldDescription: Forward price at 720 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: call_breakeven_10
DataFieldDescription: Price at which a stock's call options with expiration 10 days in the future break even based on its recent bid/ask mean.
DataField: pcr_oi_120
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 120 days in the future.
DataField: pcr_vol_180
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 180 days in the future.
DataField: pcr_oi_20
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 20 days in the future.
DataField: put_breakeven_180
DataFieldDescription: Price at which a stock's put options with expiration 180 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_270
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 270 days in the future.
DataField: pcr_oi_60
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 60 days in the future.
DataField: option_breakeven_150
DataFieldDescription: Price at which a stock's options with expiration 150 days in the future break even based on its recent bid/ask mean.
DataField: forward_price_1080
DataFieldDescription: Forward price at 1080 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: forward_price_270
DataFieldDescription: Forward price at 270 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: forward_price_20
DataFieldDescription: Forward price at 20 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: option_breakeven_270
DataFieldDescription: Price at which a stock's options with expiration 270 days in the future break even based on its recent bid/ask mean.
DataField: option_breakeven_360
DataFieldDescription: Price at which a stock's options with expiration 360 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_360
DataFieldDescription: Price at which a stock's call options with expiration 360 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_90
DataFieldDescription: Price at which a stock's call options with expiration 90 days in the future break even based on its recent bid/ask mean.
DataField: pcr_oi_10
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 10 days in the future.
DataField: call_breakeven_60
DataFieldDescription: Price at which a stock's call options with expiration 60 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_1080
DataFieldDescription: Price at which a stock's put options with expiration 1080 days in the future break even based on its recent bid/ask mean.
DataField: forward_price_60
DataFieldDescription: Forward price at 60 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: pcr_vol_30
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 30 days in the future.
DataField: forward_price_150
DataFieldDescription: Forward price at 150 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: put_breakeven_90
DataFieldDescription: Price at which a stock's put options with expiration 90 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_10
DataFieldDescription: Price at which a stock's put options with expiration 10 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_90
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 90 days in the future.
DataField: pcr_vol_360
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 360 days in the future.
DataField: option_breakeven_120
DataFieldDescription: Price at which a stock's options with expiration 120 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_all
DataFieldDescription: Ratio of put volume to call volume for all maturities on stock's options.
DataField: fnd6_newqv1300_tstknq
DataFieldDescription: Treasury Stock - Number of Common Shares
DataField: fnd6_newqeventv110_esopnrq
DataFieldDescription: Preferred ESOP Obligation - Non-Redeemable
DataField: fnd6_dd3
DataFieldDescription: Debt Due in 3rd Year
DataField: fnd6_newa2v1300_mib
DataFieldDescription: Minority Interest (Balance Sheet)
DataField: fnd6_txtubposdec
DataFieldDescription: Decrease - Current Tax Positions
DataField: fnd6_cptnewqv1300_oeps12
DataFieldDescription: Earnings Per Share from Operations - 12 Months Moving
DataField: fnd6_ocaxs
DataFieldDescription: Other Costs and Expenses
DataField: fnd6_sppiv
DataFieldDescription: Sale of Property, Plant and Equipment and Investments - Gain (Loss)
DataField: fnd6_newqeventv110_aociotherq
DataFieldDescription: Accum Other Comp Inc - Other Adjustments
DataField: fnd6_newqv1300_lnoq
DataFieldDescription: Liabilities Netting & Other Adjustments
DataField: fnd6_newqeventv110_aqpq
DataFieldDescription: Acquisition/Merger Pretax
DataField: fnd6_mfma1_at
DataFieldDescription: Assets - Total
DataField: interest_expense
DataFieldDescription: Interest and Related Expense - Total
DataField: fnd6_newqeventv110_ppentq
DataFieldDescription: Property Plant and Equipment - Total (Net)
DataField: fnd6_newqeventv110_pnc12
DataFieldDescription: Pension Core Adjustment - 12mm
DataField: fnd6_newqeventv110_pncwippq
DataFieldDescription: Core Pension w/o Interest Adjustment Pretax Preliminary
DataField: fnd6_eventv110_optdrq
DataFieldDescription: Dividend Rate - Assumption (%)
DataField: fnd6_cptnewqeventv110_actq
DataFieldDescription: Current Assets - Total
DataField: fnd6_city
DataFieldDescription: the city where a company's corporate headquarters or home office is located
DataField: fnd6_newqeventv110_glaq
DataFieldDescription: Gain/Loss After-Tax
DataField: fnd6_itci
DataFieldDescription: Investment Tax Credit (Income Account)
DataField: fnd6_cshtrq
DataFieldDescription: Common Shares Traded - Quarter
DataField: fnd6_idit
DataFieldDescription: Interest and Related Income - Total
DataField: fnd6_recco
DataFieldDescription: Receivables - Current - Other
DataField: fnd6_eventv110_nrtxtdq
DataFieldDescription: Nonrecurring Income Taxes Diluted EPS Effect
DataField: fnd6_newa2v1300_txt
DataFieldDescription: Income Taxes - Total
DataField: fnd6_divd
DataFieldDescription: Cash Dividends - Daily
DataField: fnd6_txtubposinc
DataFieldDescription: Increase - Current Tax Positions
DataField: fnd6_dltis
DataFieldDescription: Long-Term Debt - Issuance
DataField: fnd6_spce
DataFieldDescription: S&P Core Earnings
DataField: scl12_alltype_buzzvec
DataFieldDescription: sentiment volume
DataField: scl12_alltype_sentvec
DataFieldDescription: sentiment
DataField: scl12_alltype_typevec
DataFieldDescription: instrument type index
DataField: scl12_buzz
DataFieldDescription: relative sentiment volume
DataField: scl12_buzz_fast_d1
DataFieldDescription: relative sentiment volume
DataField: scl12_buzzvec
DataFieldDescription: sentiment volume
DataField: scl12_sentiment
DataFieldDescription: sentiment
DataField: scl12_sentiment_fast_d1
DataFieldDescription: sentiment
DataField: scl12_sentvec
DataFieldDescription: sentiment
DataField: scl12_typevec
DataFieldDescription: instrument type index
DataField: snt_buzz
DataFieldDescription: negative relative sentiment volume, fill nan with 0
DataField: snt_buzz_bfl
DataFieldDescription: negative relative sentiment volume, fill nan with 1
DataField: snt_buzz_bfl_fast_d1
DataFieldDescription: negative relative sentiment volume, fill nan with 1
DataField: snt_buzz_fast_d1
DataFieldDescription: negative relative sentiment volume, fill nan with 0
DataField: snt_buzz_ret
DataFieldDescription: negative return of relative sentiment volume
DataField: snt_buzz_ret_fast_d1
DataFieldDescription: negative return of relative sentiment volume
DataField: snt_value
DataFieldDescription: negative sentiment, fill nan with 0
DataField: snt_value_fast_d1
DataFieldDescription: negative sentiment, fill nan with 0
DataField: analyst_revision_rank_derivative
DataFieldDescription: Change in ranking for analyst revisions and momentum compared to previous period.
DataField: cashflow_efficiency_rank_derivative
DataFieldDescription: Change in ranking for cash flow generation and profitability compared to previous period.
DataField: composite_factor_score_derivative
DataFieldDescription: Change in overall composite factor score from the prior period.
DataField: earnings_certainty_rank_derivative
DataFieldDescription: Change in ranking for earnings sustainability and certainty compared to previous period.
DataField: fscore_bfl_growth
DataFieldDescription: The purpose of this metric is to qualify the expected MT growth potential of the stock.
DataField: fscore_bfl_momentum
DataFieldDescription: The purpose of this metric is to identify stocks which are currently undergoing either up or downward analyst revisions.
DataField: fscore_bfl_profitability
DataFieldDescription: The purpose of this metric is to rank stock based on their ability to generate cash flows.
DataField: fscore_bfl_quality
DataFieldDescription: The purpose of this metric is to measure both the sustainability and certainty of earnings.
DataField: fscore_bfl_surface
DataFieldDescription: The static score. An index between 0 & 100 is applied for each stock and each composite factor - The first ranking is a pentagon surface-based score. The larger the surface, the higher the rank.
DataField: fscore_bfl_surface_accel
DataFieldDescription: The derivative score. In a second step, we calculate the derivative of this score (ie: Is the surface of the pentagon increasing or decreasing from the previous month?).
DataField: fscore_bfl_total
DataFieldDescription: The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.
DataField: fscore_bfl_value
DataFieldDescription: The purpose of this metric is to see if the stock is under or overpriced given several well known valuation standards.
DataField: fscore_growth
DataFieldDescription: The purpose of this metric is to qualify the expected MT growth potential of the stock.
DataField: fscore_momentum
DataFieldDescription: The purpose of this metric is to identify stocks which are currently undergoing either up or downward analyst revisions.
DataField: fscore_profitability
DataFieldDescription: The purpose of this metric is to rank stock based on their ability to generate cash flows.
DataField: fscore_quality
DataFieldDescription: The purpose of this metric is to measure both the sustainability and certainty of earnings.
DataField: fscore_surface
DataFieldDescription: The static score. An index between 0 & 100 is applied for each stock and each composite factor - The first ranking is a pentagon surface-based score. The larger the surface, the higher the rank.
DataField: fscore_surface_accel
DataFieldDescription: The derivative score. In a second step, we calculate the derivative of this score (ie: Is the surface of the pentagon increasing or decreasing from the previous month?).
DataField: fscore_total
DataFieldDescription: The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.
DataField: fscore_value
DataFieldDescription: The purpose of this metric is to see if the stock is under or overpriced given several well known valuation standards.
DataField: growth_potential_rank_derivative
DataFieldDescription: Change in ranking for medium-term growth potential compared to previous period.
DataField: multi_factor_acceleration_score_derivative
DataFieldDescription: Change in the acceleration of multi-factor score compared to previous period.
DataField: multi_factor_static_score_derivative
DataFieldDescription: Change in static multi-factor score compared to previous period.
DataField: relative_valuation_rank_derivative
DataFieldDescription: Change in ranking for valuation metrics compared to previous period.
DataField: snt_social_value
DataFieldDescription: Z score of sentiment
DataField: snt_social_volume
DataFieldDescription: Normalized tweet volume
DataField: beta_last_30_days_spy
DataFieldDescription: Beta to SPY in 30 Days
DataField: beta_last_360_days_spy
DataFieldDescription: Beta to SPY in 360 Days
DataField: beta_last_60_days_spy
DataFieldDescription: Beta to SPY in 60 Days
DataField: beta_last_90_days_spy
DataFieldDescription: Beta to SPY in 90 Days
DataField: correlation_last_30_days_spy
DataFieldDescription: Correlation to SPY in 30 Days
DataField: correlation_last_360_days_spy
DataFieldDescription: Correlation to SPY in 360 Days
DataField: correlation_last_60_days_spy
DataFieldDescription: Correlation to SPY in 60 Days
DataField: correlation_last_90_days_spy
DataFieldDescription: Correlation to SPY in 90 Days
DataField: systematic_risk_last_30_days
DataFieldDescription: Systematic Risk Last 30 Days
DataField: systematic_risk_last_360_days
DataFieldDescription: Systematic Risk Last 360 Days
DataField: systematic_risk_last_60_days
DataFieldDescription: Systematic Risk Last 60 Days
DataField: systematic_risk_last_90_days
DataFieldDescription: Systematic Risk Last 90 Days
DataField: unsystematic_risk_last_30_days
DataFieldDescription: Unsystematic Risk Last 30 Days - Relative to SPY
DataField: unsystematic_risk_last_360_days
DataFieldDescription: Unsystematic Risk Last 360 Days - Relative to SPY
DataField: unsystematic_risk_last_60_days
DataFieldDescription: Unsystematic Risk Last 60 Days - Relative to SPY
DataField: unsystematic_risk_last_90_days
DataFieldDescription: Unsystematic Risk Last 90 Days - Relative to SPY
DataField: min_share_count_guidance
DataFieldDescription: Minimum guidance for shares on an annual basis
DataField: book_value_per_share_min_guidance_qtr
DataFieldDescription: Book value per share - minimum guidance value
DataField: anl4_ebitda_std
DataFieldDescription: Earnings before interest, taxes, depreciation, and amortization - standard deviation of estimations
DataField: anl4_ptpr_median
DataFieldDescription: Reported pretax income - Median of estimations
DataField: anl4_netprofita_low
DataFieldDescription: Adjusted net income - the lowest estimation
DataField: anl4_qfv4_actual
DataFieldDescription: Announced financial data
DataField: actuals_value_currency_code
DataFieldDescription: Pricing Currency where the security trades
DataField: sales_estimate_average_quarterly
DataFieldDescription: Sales - mean of estimations
DataField: anl4_epsa_flag
DataFieldDescription: Earnings per share adjusted by excluding extraordinary items and stock option expenses - forecast type (revision/new/...)
DataField: earnings_per_share_nongaap_value
DataFieldDescription: Non-GAAP Earnings Per Share - Actual Value
DataField: max_adjusted_net_income_guidance
DataFieldDescription: The maximum guidance value for Adjusted net income.
DataField: anl4_medianepsbfam
DataFieldDescription: Earnings before interest, taxes, depreciation and amortization - median of estimations
DataField: actual_eps_value_quarterly
DataFieldDescription: Earnings Per Share (Income Statement/Per Share) (Actual)
DataField: cashflow_per_share_max_guidance_quarterly
DataFieldDescription: The maximum guidance value for Cash Flow Per Share.
DataField: anl4_eaz2lqfv110_estvalue
DataFieldDescription: Estimation value
DataField: dividend_estimate_median_value
DataFieldDescription: Dividend per share - median of estimations
DataField: anl4_afv4_div_median
DataFieldDescription: Dividend per share - Median value among forecasts
DataField: anl4_ptp_high
DataFieldDescription: Pretax income - the highest estimation
DataField: earnings_per_share_reported_value
DataFieldDescription: Reported Earnings Per Share - Actual Value
DataField: min_gross_income_guidance_2
DataFieldDescription: The minimum guidance for Gross Income on an annual basis.
DataField: min_free_cash_flow_guidance
DataFieldDescription: The minimum guidance value for Free Cash Flow on an annual basis.
DataField: anl4_tbvps_number
DataFieldDescription: Tangible Book Value per Share - number of estimations
DataField: net_profit_adjusted_value
DataFieldDescription: Adjusted net income- announced financial value
DataField: anl4_ads1detailqfv110_prevval
DataFieldDescription: The previous estimation of financial item
DataField: anl4_cfo_mean
DataFieldDescription: Cash Flow From Operations - mean of estimations
DataField: guidance_previous_estimate_value_qtr
DataFieldDescription: The previous estimation of finanicial item
DataField: anl4_netprofita_median
DataFieldDescription: Adjusted net income - median of estimations
DataField: reporting_currency_code_9
DataFieldDescription: Home currency of instrument
DataField: anl4_cfi_median
DataFieldDescription: Cash Flow From Investing - median of estimations
DataField: anl4_netdebt_number
DataFieldDescription: Net debt - Number of estimations
DataField: pv13_h2_min2_1k_sector
DataFieldDescription: Grouping fields for top 1000
DataField: pv13_hierarchy_min51_f4_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min30_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min10_513_sector
DataFieldDescription: grouping fields
DataField: rel_ret_all
DataFieldDescription: Averaged one-day return of the companies whose product overlapped with the instrument
DataField: pv13_hierarchy_min52_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min2_sector
DataFieldDescription: grouping fields
DataField: pv13_h_min51_f3_sector
DataFieldDescription: grouping fields
DataField: pv13_revere_index_cap
DataFieldDescription: Company market capitalization
DataField: pv13_hierarchy_min10_top3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_reportperiodlen
DataFieldDescription: The number of units which the report covers prior to the stated end date
DataField: pv13_hierarchy_min100_corr21_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min2_1000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_reporttype
DataFieldDescription: Type of report
DataField: pv13_revere_company_total
DataFieldDescription: Total number of companies in the sector
DataField: pv13_hierarchy_min2_focused_pureplay_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min10_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min22_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_f4_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min30_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_f2_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min5_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_f3_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min2_focused_pureplay_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min20_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min2_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_new_3l_scibr
DataFieldDescription: grouping fields
DataField: pv13_ustomergraphrank_auth_rank
DataFieldDescription: the HITS authority score of customers
DataField: pv13_hierarchy_min2_focused_pureplay_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min10_2k_sector
DataFieldDescription: grouping fields
DataField: implied_volatility_put_60
DataFieldDescription: At-the-money option-implied volatility for Put Option for 60 days
DataField: implied_volatility_mean_skew_60
DataFieldDescription: At-the-money option-implied volatility mean skew for 60 days
DataField: implied_volatility_mean_skew_90
DataFieldDescription: At-the-money option-implied volatility mean skew for 90 days
DataField: implied_volatility_call_120
DataFieldDescription: At-the-money option-implied volatility for call Option for 120 days
DataField: implied_volatility_put_10
DataFieldDescription: At-the-money option-implied volatility for Put Option for 10 days
DataField: implied_volatility_mean_skew_10
DataFieldDescription: At-the-money option-implied volatility mean skew for 10 days
DataField: implied_volatility_mean_360
DataFieldDescription: At-the-money option-implied volatility mean for 360 days
DataField: historical_volatility_10
DataFieldDescription: Close-to-close Historical volatility over 10 days
DataField: parkinson_volatility_90
DataFieldDescription: Parkinson model's historical volatility over 90 days
DataField: historical_volatility_60
DataFieldDescription: Close-to-close Historical volatility over 60 days
DataField: implied_volatility_call_360
DataFieldDescription: At-the-money option-implied volatility for call Option for 360 days
DataField: historical_volatility_90
DataFieldDescription: Close-to-close Historical volatility over 90 days
DataField: historical_volatility_120
DataFieldDescription: Close-to-close Historical volatility over 120 days
DataField: implied_volatility_mean_150
DataFieldDescription: At-the-money option-implied volatility mean for 150 days
DataField: implied_volatility_mean_20
DataFieldDescription: At-the-money option-implied volatility mean for 20 days
DataField: parkinson_volatility_120
DataFieldDescription: Parkinson model's historical volatility over 120 days
DataField: implied_volatility_mean_1080
DataFieldDescription: At-the-money option-implied volatility mean for 3 years
DataField: implied_volatility_put_150
DataFieldDescription: At-the-money option-implied volatility for Put Option for 150 days
DataField: parkinson_volatility_60
DataFieldDescription: Parkinson model's historical volatility over 60 days
DataField: implied_volatility_call_20
DataFieldDescription: At-the-money option-implied volatility for call Option for 20 days
DataField: implied_volatility_mean_skew_30
DataFieldDescription: At-the-money option-implied volatility mean skew for 30 days
DataField: implied_volatility_mean_270
DataFieldDescription: At-the-money option-implied volatility mean for 270 days
DataField: implied_volatility_call_150
DataFieldDescription: At-the-money option-implied volatility for call Option for 150 days
DataField: implied_volatility_mean_skew_270
DataFieldDescription: At-the-money option-implied volatility mean skew for 270 days
DataField: implied_volatility_mean_30
DataFieldDescription: At-the-money option-implied volatility mean for 30 days
DataField: parkinson_volatility_150
DataFieldDescription: Parkinson model's historical volatility over 150 days
DataField: parkinson_volatility_180
DataFieldDescription: Parkinson model's historical volatility over 180 days
DataField: historical_volatility_150
DataFieldDescription: Close-to-close Historical volatility over 150 days
DataField: implied_volatility_put_90
DataFieldDescription: At-the-money option-implied volatility for Put Option for 90 days
DataField: implied_volatility_call_10
DataFieldDescription: At-the-money option-implied volatility for call Option for 10 days
DataField: news_pct_5_min
DataFieldDescription: The percent change in price in the first 5 minutes following the news release
DataField: nws12_mainz_02l
DataFieldDescription: Number of minutes that elapsed before price went up 20 percentage points
DataField: nws12_prez_57p
DataFieldDescription: The minimum of L or S above for 7.5-minute bucket
DataField: nws12_mainz_4s
DataFieldDescription: Number of minutes that elapsed before price went down 4 percentage points
DataField: nws12_prez_open_vol
DataFieldDescription: Main open volume
DataField: news_eod_vwap
DataFieldDescription: Volume weighted average price between the time of news and the end of the session
DataField: news_mins_20_chg
DataFieldDescription: The minimum of L or S above for 20-minute bucket
DataField: nws12_prez_4s
DataFieldDescription: Number of minutes that elapsed before price went down 4 percentage points
DataField: nws12_prez_57l
DataFieldDescription: Number of minutes that elapsed before price went up 7.5 percentage points
DataField: nws12_afterhsz_90_min
DataFieldDescription: The percent change in price in the first 90 minutes following the news release
DataField: nws12_afterhsz_5l
DataFieldDescription: Number of minutes that elapsed before price went up 5 percentage points
DataField: nws12_afterhsz_01p
DataFieldDescription: The minimum of L or S above for 10 minute bucket
DataField: news_mins_3_pct_up
DataFieldDescription: Number of minutes that elapsed before price went up 3 percentage points
DataField: nws12_afterhsz_tonlow
DataFieldDescription: Lowest price reached during the session before the time of the news
DataField: news_mins_10_pct_dn
DataFieldDescription: Number of minutes that elapsed before price went down 10 percentage points
DataField: nws12_mainz_rangeamt
DataFieldDescription: Session High Price - Session Low Price
DataField: nws12_afterhsz_57l
DataFieldDescription: Number of minutes that elapsed before price went up 7.5 percentage points
DataField: nws12_afterhsz_01l
DataFieldDescription: Number of minutes that elapsed before price went up 10 percentage points
DataField: nws12_mainz_prev_vol
DataFieldDescription: Previous day's session volume
DataField: news_pct_10min
DataFieldDescription: The percent change in price in the first 10 minutes following the news release
DataField: nws12_allz_reportsess
DataFieldDescription: Index of Session on which the spreadsheet is reporting
DataField: nws12_mainz_prevclose
DataFieldDescription: Previous trading day's close price
DataField: nws12_prez_curr_vol
DataFieldDescription: Current day's session volume
DataField: news_all_vwap
DataFieldDescription: Volume weighted average price of all sessions
DataField: nws12_mainz_mktcap
DataFieldDescription: Reported market capitalization for the calendar day of the session
DataField: nws12_prez_90_min
DataFieldDescription: The percent change in price in the first 90 minutes following the news release
DataField: nws12_prez_allvwap
DataFieldDescription: Volume weighted average price of all sessions
DataField: news_mins_7_5_pct_dn
DataFieldDescription: Number of minutes that elapsed before price went down 7.5 percentage points
DataField: news_main_vwap
DataFieldDescription: Main session volume weighted average price
DataField: nws12_afterhsz_prev_vol
DataFieldDescription: Previous day's session volume
DataField: top1000
DataFieldDescription: 20140630
DataField: top200
DataFieldDescription: 20140630
DataField: top3000
DataFieldDescription: 20140630
DataField: top500
DataFieldDescription: 20140630
DataField: topsp500
DataFieldDescription: 20140630
DataField: rp_ess_mna
DataFieldDescription: Event sentiment score of mergers and acquisitions-related news
DataField: rp_nip_revenue
DataFieldDescription: News impact projection of revenue news
DataField: rp_nip_price
DataFieldDescription: News impact projection of stock price news
DataField: rp_ess_technical
DataFieldDescription: Event sentiment score based on technical analysis
DataField: rp_nip_ratings
DataFieldDescription: News impact projection of analyst ratings-related news
DataField: rp_css_business
DataFieldDescription: Composite sentiment score of business-related news
DataField: rp_nip_earnings
DataFieldDescription: News impact projection of earnings news
DataField: rp_ess_assets
DataFieldDescription: Event sentiment score of assets news
DataField: rp_nip_insider
DataFieldDescription: News impact projection of insider trading news
DataField: rp_ess_equity
DataFieldDescription: Event sentiment score of equity action news
DataField: rp_ess_business
DataFieldDescription: Event sentiment score of business-related news
DataField: rp_nip_society
DataFieldDescription: News impact projection of society-related news
DataField: nws18_qcm
DataFieldDescription: News sentiment of relevant news with high confidence
DataField: rp_ess_price
DataFieldDescription: Event sentiment score of stock price news
DataField: rp_ess_ratings
DataFieldDescription: Event sentiment score of analyst ratings-related news
DataField: nws18_bee
DataFieldDescription: News sentiment specializing in growth of earnings
DataField: rp_ess_society
DataFieldDescription: Event sentiment score of society-related news
DataField: rp_css_assets
DataFieldDescription: Composite sentiment score of assets news
DataField: rp_ess_dividends
DataFieldDescription: Event sentiment score of dividends news
DataField: nws18_acb
DataFieldDescription: News sentiment specializing in corporate action announcements
DataField: rp_nip_assets
DataFieldDescription: News impact projection of assets news
DataField: rp_css_price
DataFieldDescription: Composite sentiment score of stock price news
DataField: rp_nip_technical
DataFieldDescription: News impact projection based on technical analysis
DataField: rp_ess_revenue
DataFieldDescription: Event sentiment score of revenue news
DataField: rp_ess_credit
DataFieldDescription: Event sentiment score of credit news
DataField: nws18_qmb
DataFieldDescription: News sentiment specializing in editorials on global markets
DataField: rp_nip_legal
DataFieldDescription: News impact projection of legal news
DataField: rp_ess_legal
DataFieldDescription: Event sentiment score of legal news
DataField: nws18_sse
DataFieldDescription: Sentiment of phrases impacting the company
DataField: rp_nip_credit_ratings
DataFieldDescription: News impact projection of credit ratings news
DataField: fn_prepaid_expense_a
DataFieldDescription: Carrying amount for an unclassified balance sheet date of expenditures made in advance of when the economic benefit of the cost will be realized, and which will be expensed in future periods with the passage of time or when a triggering event occurs. For a classified balance sheet, represents the noncurrent portion of prepaid expenses (the current portion has a separate concept).
DataField: fn_finite_lived_intangible_assets_gross_a
DataFieldDescription: Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.
DataField: fn_debt_instrument_interest_rate_stated_percentage_q
DataFieldDescription: Stated percentage of interest rate on debt
DataField: fn_comp_not_rec_q
DataFieldDescription: Unrecognized cost of unvested share-based compensation awards.
DataField: fn_assets_fair_val_a
DataFieldDescription: Asset Fair Value, Recurring, Total
DataField: fnd2_a_sbcpnargmsawpfipwerpr
DataFieldDescription: Weighted average price of options that were either forfeited or expired.
DataField: fn_oth_income_loss_available_for_sale_securities_adj_of_tax_a
DataFieldDescription: Amount after tax and reclassification adjustments, of appreciation (loss) in value of unsold available-for-sale securities. Excludes amounts related to other than temporary impairment (OTTI) loss.
DataField: fnd2_dbplanbnfpaid
DataFieldDescription: The amount of payments made for which participants are entitled under a pension plan, including pension benefits, death benefits, and benefits due on termination of employment. Also includes payments made under a postretirement benefit plan, including prescription drug benefits, health care benefits, life insurance benefits, and legal, educational and advisory services. This item represents a periodic decrease to the plan obligations and a decrease to plan assets.
DataField: fnd2_dfdfritxexp
DataFieldDescription: Income Tax Expense, Deferred - Foreign
DataField: fnd2_unrgtxbnfinregfcrps
DataFieldDescription: Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.
DataField: fnd2_a_consinprogressg
DataFieldDescription: Amount of structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service.
DataField: fn_comp_options_out_intrinsic_value_q
DataFieldDescription: The intrinsic value of a stock option is the amount by which the market value of the underlying stock exceeds the exercise price of the option.
DataField: fn_intangible_assets_accum_amort_q
DataFieldDescription: Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.
DataField: fnd2_a_ltrmdmrepoplinytwo
DataFieldDescription: Amount of long-term debt payable, sinking fund requirements, and other securities issued that are redeemable by holder at fixed or determinable prices and dates maturing in the 2nd fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fnd2_currfedtxexp
DataFieldDescription: Income Tax Expense, Current - Federal
DataField: fnd2_ebitfr
DataFieldDescription: EBIT, Foreign
DataField: fn_business_acq_ppne_q
DataFieldDescription: Business Combination, Assumed Property Plant And Equipment
DataField: fn_payments_for_repurchase_of_common_stock_a
DataFieldDescription: Value reported on Cash Flow Statement. May include shares repurchased as part of a buyback plan, as well as shares purchased for employee compensation, etc.
DataField: fnd2_a_dbplanepdrtnplas
DataFieldDescription: An amount calculated as a basis for determining the extent of delayed recognition of the effects of changes in the fair value of assets. The expected return on plan assets is determined based on the expected long-term rate of return on plan assets and the market-related value of plan assets.
DataField: fnd2_q_flintasamt1expy5
DataFieldDescription: Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the 5th fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fn_repurchased_shares_q
DataFieldDescription: Number of shares that have been repurchased during the period.
DataField: fnd2_a_gwllimrml
DataFieldDescription: Amount of loss from the write-down of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.
DataField: fnd2_q_flintasamt1expytwo
DataFieldDescription: Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the 2nd fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fnd2_a_sbcpnargmsptawervl
DataFieldDescription: Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.
DataField: fn_op_lease_min_pay_due_a
DataFieldDescription: Amount of required minimum rental payments for leases having an initial or remaining non-cancelable letter-terms in excess of 1 year.
DataField: fn_interest_payable_q
DataFieldDescription: Carrying value as of the balance sheet date of accrued interest payable on all forms of debt, including trade payables, that has been incurred and is unpaid. For classified balance sheets, used to reflect the current portion of the liabilities (due within 1 year or within the normal operating cycle if longer); for unclassified balance sheets, used to reflect the total liabilities (regardless of due date).
DataField: fnd2_a_eplsbvdcpcstnrgsbaoo
DataFieldDescription: Unrecognized cost of unvested other share-based compensation awards.
DataField: fn_proceeds_from_issuance_of_debt_a
DataFieldDescription: The cash inflow during the period from additional borrowings in aggregate debt. Includes proceeds from short-term and long-term debt.
DataField: fn_finite_lived_intangible_assets_net_q
DataFieldDescription: Finite Lived Intangible Assets, Net
DataField: fnd2_a_stkdrgprdvalnewissues
DataFieldDescription: Equity impact of the value of new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering.
DataField: adv20
DataFieldDescription: Average daily volume in past 20 days
DataField: cap
DataFieldDescription: Daily market capitalization (in millions)
DataField: close
DataFieldDescription: Daily close price
DataField: country
DataFieldDescription: Country grouping
DataField: currency
DataFieldDescription: Currency
DataField: cusip
DataFieldDescription: CUSIP Value
DataField: dividend
DataFieldDescription: Dividend
DataField: exchange
DataFieldDescription: Exchange grouping
DataField: high
DataFieldDescription: Daily high price
DataField: industry
DataFieldDescription: Industry grouping
DataField: isin
DataFieldDescription: ISIN Value
DataField: low
DataFieldDescription: Daily low price
DataField: market
DataFieldDescription: Market grouping
DataField: open
DataFieldDescription: Daily open price
DataField: returns
DataFieldDescription: Daily returns
DataField: sector
DataFieldDescription: Sector grouping
DataField: sedol
DataFieldDescription: Sedol
DataField: sharesout
DataFieldDescription: Daily outstanding shares (in millions)
DataField: split
DataFieldDescription: Stock split ratio
DataField: subindustry
DataFieldDescription: Subindustry grouping
DataField: ticker
DataFieldDescription: Ticker
DataField: volume
DataFieldDescription: Daily volume
DataField: vwap
DataFieldDescription: Daily volume weighted average price
========================= 数据字段结束 =======================================

@ -0,0 +1,922 @@
任务指令
你是一个WorldQuant WebSim因子工程师。你的任务是生成100个用于行业轮动策略的复合型Alpha因子表达式。
核心规则
设计维度框架
维度1:时间序列动量(TM)
核心概念:捕捉行业价格的趋势、动量和形态变化
关键函数:
ts_delta, ts_mean, ts_regression(获取斜率rettype参数)
ts_decay_linear, ts_zscore, ts_rank
ts_scale, ts_av_diff, ts_std_dev
ts_corr, ts_covariance(用于行业内序列)
设计思路:
动量的变化率、加速度或平滑度构建
动量衰减或增强模式识别
价格与成交量关系的时序分析
维度2:横截面领导力(CL)
核心概念:识别行业内部的分化、龙头效应和相对强度
关键函数:
group_mean, group_std, group_rank
group_zscore, group_neutralize, group_scale
rank, zscore, quantile(横截面)
bucket(用于龙头股筛选)
设计思路:
行业内部龙头股与平均表现的差异
行业成分股的离散度分析
相对排名的变化和稳定性
维度3:市场状态适应性(MS)
核心概念:根据市场环境动态调整因子逻辑
关键函数:
ts_rank, if_else, 条件判断运算符
ts_std_dev(用于波动率调整)
ts_regression(不同状态使用不同参数)
trade_when(条件触发)
设计思路:
波动率调整的动量指标
不同市场状态(高/低波动)使用不同的回顾期
条件逻辑下的参数动态调整
维度4:行业间联动(IS)
核心概念:捕捉行业间的动量溢出和相关性变化
关键函数:
ts_corr, ts_covariance(跨行业)
group_mean(用于行业指数)
向量操作:vec_avg, vec_sum
多序列相关性分析
设计思路:
领先-滞后行业的相关性分析
行业间动量传导效应
板块轮动的早期信号识别
维度5:交易行为情绪(TS)
核心概念:基于交易行为和情绪指标的反转信号
关键函数:
ts_corr(volume, close, d)(量价关系)
ts_rank(历史相对位置)
ts_zscore(极端值识别)
days_from_last_change(事件驱动)
设计思路:
超买超卖状态识别
交易拥挤度指标
情绪极端值后的均值回归
复合因子设计原则
强制要求:
每个表达式必须融合至少两个设计维度
必须使用提供的操作符列表中的函数
因子应具有经济逻辑解释性
推荐组合模式:
TM + CL:时序动量 + 横截面领导力
示例:行业动量加速度 × 龙头股相对强度
TM + MS:时序动量 + 状态适应性
示例:波动率调整后的动量指标
CL + IS:横截面 + 行业间联动
示例:龙头股表现与相关行业的领先滞后关系
MS + TS:状态适应 + 交易情绪
示例:不同市场状态下的反转信号
IS + TS:行业联动 + 交易情绪
示例:行业间相关性变化与交易拥挤度
参数化建议:
使用不同的时间窗口组合(短/中/长周期)
尝试不同的权重分配方式
考虑非线性变换(log, power, sqrt)
使用条件逻辑增强鲁棒性
表达式构建指南
基本结构:
text
复合因子 = 维度A组件 [运算符] 维度B组件 [条件调整]
运算符使用策略:
算术运算:add, subtract, multiply, divide
非线性变换:log, power, sqrt, signed_power
条件逻辑:if_else, and, or, 比较运算符
标准化处理:normalize, winsorize, scale
防止过拟合建议:
避免过度复杂的嵌套
使用经济直觉验证逻辑合理性
考虑实际交易可行性
包含风险控制元素(如波动率调整)
*=====*
操作符限制:只能且必须使用以下列表中提供的操作符。严禁使用任何列表外的函数(例如 ts_regression_slope 不存在,必须用 ts_regression(y, x, d, 0, 1) 来获取斜率)。
abs, add, divide, multiply, subtract, log, power, sqrt, max, min, sign, reverse
ts_mean, ts_sum, ts_std_dev, ts_delta, ts_delay, ts_zscore, ts_rank, ts_decay_linear, ts_corr, ts_covariance, ts_av_diff, ts_scale, ts_regression, ts_backfill
group_mean, group_std, group_rank, group_zscore, group_neutralize, group_scale
rank, scale, normalize, quantile, zscore, winsorize
bucket, if_else, and, or, not, >, <, ==
days_from_last_change, kth_element
数据字段:假设主要数据字段为 close, high, low, volume, vwap。可安全使用。
参数逻辑:参数d(回顾期)应在[5, 10, 20, 30, 60, 120]等具有市场意义(周、月、季度、半年)的数值中合理选择并差异化。
行业隐含:通过group_mean、group_rank等函数或假设表达式在行业指数上运行来体现“行业”逻辑。
输出格式:
输出必须是且仅是 100行纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
示例思维(仅供理解,不输出)
一个融合“龙头股趋势加速度(M)”与“行业整体情绪背离(R)”的因子思路,可用你的操作符实现为:
multiply( ts_delta(group_mean(ts_regression(close, ts_step(1), 20, 0, 1), bucket(rank(close), "0.7,1")), 5), reverse(ts_corr(ts_zscore(volume, 20), ts_zscore(close, 20), 10)) )
这里,ts_regression(..., rettype=1)获取斜率代替动量,bucket(rank(close), "0.7,1")近似选取市值前30%的龙头股,ts_corr(...)衡量价量情绪,reverse将其转化为背离信号。
现在,请严格遵守以上所有规则,开始生成100行可立即在WebSim中运行的复合因子表达式。
**输出格式**(一行一个表达式, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
请提供具体的WQ表达式。
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
========================= 操作符开始 =======================================注意: Operator: 后面的是操作符,
Description: 此字段后面的是操作符对应的描述或使用说明, Description字段后面的内容是使用说明, 不是操作符
Operator: abs(x)
Description: Absolute value of x
Operator: add(x, y, filter = false), x + y
Description: Add all inputs (at least 2 inputs required). If filter = true, filter all input NaN to 0 before adding
Operator: densify(x)
Description: Converts a grouping field of many buckets into lesser number of only available buckets so as to make working with grouping fields computationally efficient
Operator: divide(x, y), x / y
Description: x / y
Operator: inverse(x)
Description: 1 / x
Operator: log(x)
Description: Natural logarithm. For example: Log(high/low) uses natural logarithm of high/low ratio as stock weights.
Operator: max(x, y, ..)
Description: Maximum value of all inputs. At least 2 inputs are required
Operator: min(x, y ..)
Description: Minimum value of all inputs. At least 2 inputs are required
Operator: multiply(x ,y, ... , filter=false), x * y
Description: Multiply all inputs. At least 2 inputs are required. Filter sets the NaN values to 1
Operator: power(x, y)
Description: x ^ y
Operator: reverse(x)
Description: - x
Operator: sign(x)
Description: if input > 0, return 1; if input < 0, return -1; if input = 0, return 0; if input = NaN, return NaN;
Operator: signed_power(x, y)
Description: x raised to the power of y such that final result preserves sign of x
Operator: sqrt(x)
Description: Square root of x
Operator: subtract(x, y, filter=false), x - y
Description: x-y. If filter = true, filter all input NaN to 0 before subtracting
Operator: and(input1, input2)
Description: Logical AND operator, returns true if both operands are true and returns false otherwise
Operator: if_else(input1, input2, input 3)
Description: If input1 is true then return input2 else return input3.
Operator: input1 < input2
Description: If input1 < input2 return true, else return false
Operator: input1 <= input2
Description: Returns true if input1 <= input2, return false otherwise
Operator: input1 == input2
Description: Returns true if both inputs are same and returns false otherwise
Operator: input1 > input2
Description: Logic comparison operators to compares two inputs
Operator: input1 >= input2
Description: Returns true if input1 >= input2, return false otherwise
Operator: input1!= input2
Description: Returns true if both inputs are NOT the same and returns false otherwise
Operator: is_nan(input)
Description: If (input == NaN) return 1 else return 0
Operator: not(x)
Description: Returns the logical negation of x. If x is true (1), it returns false (0), and if input is false (0), it returns true (1).
Operator: or(input1, input2)
Description: Logical OR operator returns true if either or both inputs are true and returns false otherwise
Operator: days_from_last_change(x)
Description: Amount of days since last change of x
Operator: hump(x, hump = 0.01)
Description: Limits amount and magnitude of changes in input (thus reducing turnover)
Operator: kth_element(x, d, k)
Description: Returns K-th value of input by looking through lookback days. This operator can be used to backfill missing data if k=1
Operator: last_diff_value(x, d)
Description: Returns last x value not equal to current x value from last d days
Operator: ts_arg_max(x, d)
Description: Returns the relative index of the max value in the time series for the past d days. If the current day has the max value for the past d days, it returns 0. If previous day has the max value for the past d days, it returns 1
Operator: ts_arg_min(x, d)
Description: Returns the relative index of the min value in the time series for the past d days; If the current day has the min value for the past d days, it returns 0; If previous day has the min value for the past d days, it returns 1.
Operator: ts_av_diff(x, d)
Description: Returns x - tsmean(x, d), but deals with NaNs carefully. That is NaNs are ignored during mean computation
Operator: ts_backfill(x,lookback = d, k=1, ignore="NAN")
Description: Backfill is the process of replacing the NAN or 0 values by a meaningful value (i.e., a first non-NaN value)
Operator: ts_corr(x, y, d)
Description: Returns correlation of x and y for the past d days
Operator: ts_count_nans(x ,d)
Description: Returns the number of NaN values in x for the past d days
Operator: ts_covariance(y, x, d)
Description: Returns covariance of y and x for the past d days
Operator: ts_decay_linear(x, d, dense = false)
Description: Returns the linear decay on x for the past d days. Dense parameter=false means operator works in sparse mode and we treat NaN as 0. In dense mode we do not.
Operator: ts_delay(x, d)
Description: Returns x value d days ago
Operator: ts_delta(x, d)
Description: Returns x - ts_delay(x, d)
Operator: ts_mean(x, d)
Description: Returns average value of x for the past d days.
Operator: ts_product(x, d)
Description: Returns product of x for the past d days
Operator: ts_quantile(x,d, driver="gaussian" )
Description: It calculates ts_rank and apply to its value an inverse cumulative density function from driver distribution. Possible values of driver (optional ) are "gaussian", "uniform", "cauchy" distribution where "gaussian" is the default.
Operator: ts_rank(x, d, constant = 0)
Description: Rank the values of x for each instrument over the past d days, then return the rank of the current value + constant. If not specified, by default, constant = 0.
Operator: ts_regression(y, x, d, lag = 0, rettype = 0)
Description: Returns various parameters related to regression function
Operator: ts_scale(x, d, constant = 0)
Description: Returns (x - ts_min(x, d)) / (ts_max(x, d) - ts_min(x, d)) + constant. This operator is similar to scale down operator but acts in time series space
Operator: ts_std_dev(x, d)
Description: Returns standard deviation of x for the past d days
Operator: ts_step(1)
Description: Returns days' counter
Operator: ts_sum(x, d)
Description: Sum values of x for the past d days.
Operator: ts_zscore(x, d)
Description: Z-score is a numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean: (x - tsmean(x,d)) / tsstddev(x,d). This operator may help reduce outliers and drawdown.
Operator: normalize(x, useStd = false, limit = 0.0)
Description: Calculates the mean value of all valid alpha values for a certain date, then subtracts that mean from each element
Operator: quantile(x, driver = gaussian, sigma = 1.0)
Description: Rank the raw vector, shift the ranked Alpha vector, apply distribution (gaussian, cauchy, uniform). If driver is uniform, it simply subtract each Alpha value with the mean of all Alpha values in the Alpha vector
Operator: rank(x, rate=2)
Description: Ranks the input among all the instruments and returns an equally distributed number between 0.0 and 1.0. For precise sort, use the rate as 0
Operator: scale(x, scale=1, longscale=1, shortscale=1)
Description: Scales input to booksize. We can also scale the long positions and short positions to separate scales by mentioning additional parameters to the operator
Operator: winsorize(x, std=4)
Description: Winsorizes x to make sure that all values in x are between the lower and upper limits, which are specified as multiple of std.
Operator: zscore(x)
Description: Z-score is a numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean
Operator: vec_avg(x)
Description: Taking mean of the vector field x
Operator: vec_sum(x)
Description: Sum of vector field x
Operator: bucket(rank(x), range="0, 1, 0.1" or buckets = "2,5,6,7,10")
Description: Convert float values into indexes for user-specified buckets. Bucket is useful for creating group values, which can be passed to GROUP as input
Operator: trade_when(x, y, z)
Description: Used in order to change Alpha values only under a specified condition and to hold Alpha values in other cases. It also allows to close Alpha positions (assign NaN values) under a specified condition
Operator: group_backfill(x, group, d, std = 4.0)
Description: If a certain value for a certain date and instrument is NaN, from the set of same group instruments, calculate winsorized mean of all non-NaN values over last d days
Operator: group_mean(x, weight, group)
Description: All elements in group equals to the mean
Operator: group_neutralize(x, group)
Description: Neutralizes Alpha against groups. These groups can be subindustry, industry, sector, country or a constant
Operator: group_rank(x, group)
Description: Each elements in a group is assigned the corresponding rank in this group
Operator: group_scale(x, group)
Description: Normalizes the values in a group to be between 0 and 1. (x - groupmin) / (groupmax - groupmin)
Operator: group_zscore(x, group)
Description: Calculates group Z-score - numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean. zscore = (data - mean) / stddev of x for each instrument within its group.========================= 操作符结束 =======================================
========================= 数据字段开始 =======================================注意: DataField: 后面的是数据字段, DataFieldDescription: 此字段后面的是数据字段对应的描述或使用说明, DataFieldDescription字段后面的内容是使用说明, 不是数据字段
DataField: put_breakeven_180
DataFieldDescription: Price at which a stock's put options with expiration 180 days in the future break even based on its recent bid/ask mean.
DataField: forward_price_10
DataFieldDescription: Forward price at 10 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: call_breakeven_1080
DataFieldDescription: Price at which a stock's call options with expiration 1080 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_150
DataFieldDescription: Price at which a stock's call options with expiration 150 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_10
DataFieldDescription: Price at which a stock's call options with expiration 10 days in the future break even based on its recent bid/ask mean.
DataField: forward_price_60
DataFieldDescription: Forward price at 60 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: pcr_oi_30
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 30 days in the future.
DataField: forward_price_270
DataFieldDescription: Forward price at 270 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: put_breakeven_360
DataFieldDescription: Price at which a stock's put options with expiration 360 days in the future break even based on its recent bid/ask mean.
DataField: pcr_oi_1080
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 1080 days in the future.
DataField: put_breakeven_270
DataFieldDescription: Price at which a stock's put options with expiration 270 days in the future break even based on its recent bid/ask mean.
DataField: option_breakeven_360
DataFieldDescription: Price at which a stock's options with expiration 360 days in the future break even based on its recent bid/ask mean.
DataField: forward_price_20
DataFieldDescription: Forward price at 20 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: option_breakeven_720
DataFieldDescription: Price at which a stock's options with expiration 720 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_10
DataFieldDescription: Price at which a stock's put options with expiration 10 days in the future break even based on its recent bid/ask mean.
DataField: option_breakeven_120
DataFieldDescription: Price at which a stock's options with expiration 120 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_90
DataFieldDescription: Price at which a stock's call options with expiration 90 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_60
DataFieldDescription: Price at which a stock's call options with expiration 60 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_270
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 270 days in the future.
DataField: option_breakeven_30
DataFieldDescription: Price at which a stock's options with expiration 30 days in the future break even based on its recent bid/ask mean.
DataField: pcr_oi_150
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 150 days in the future.
DataField: pcr_vol_90
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 90 days in the future.
DataField: option_breakeven_1080
DataFieldDescription: Price at which a stock's options with expiration 1080 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_30
DataFieldDescription: Price at which a stock's call options with expiration 30 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_150
DataFieldDescription: Price at which a stock's put options with expiration 150 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_10
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 10 days in the future.
DataField: put_breakeven_60
DataFieldDescription: Price at which a stock's put options with expiration 60 days in the future break even based on its recent bid/ask mean.
DataField: forward_price_360
DataFieldDescription: Forward price at 360 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: put_breakeven_120
DataFieldDescription: Price at which a stock's put options with expiration 120 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_20
DataFieldDescription: Price at which a stock's put options with expiration 20 days in the future break even based on its recent bid/ask mean.
DataField: fnd6_prstkc
DataFieldDescription: Purchase of Common and Preferred Stock
DataField: fnd6_lqpl1
DataFieldDescription: Liabilities Level 1 (Quoted Prices)
DataField: fnd6_incorp
DataFieldDescription: Incorporated
DataField: fnd6_pnrsho
DataFieldDescription: Nonred Pfd Shares Outs (000)
DataField: fnd6_newqv1300_ivstq
DataFieldDescription: Short-Term Investments - Total
DataField: fnd6_newa2v1300_tstkn
DataFieldDescription: Treasury Stock - Number of Common Shares
DataField: bookvalue_ps
DataFieldDescription: Book Value Per Share
DataField: fnd6_newqeventv110_pncwipq
DataFieldDescription: Core Pension Without Interest Adjustment Pretax
DataField: fnd6_mfma1_csho
DataFieldDescription: Common Shares Outstanding
DataField: inventory_turnover
DataFieldDescription: Inventory Turnover
DataField: fnd6_newqv1300_loq
DataFieldDescription: Liabilities - Other
DataField: fnd6_newqeventv110_xopteps12
DataFieldDescription: Implied Option EPS Basic 12MM
DataField: fnd6_newqv1300_glced12
DataFieldDescription: Gain/Loss on Sale (Core Earnings Adjusted) Diluted EPS Effect 12MM
DataField: cogs
DataFieldDescription: Cost of Goods Sold
DataField: fnd6_dudd
DataFieldDescription: Debt - Unamortized Debt Discount and Other
DataField: fnd6_newqeventv110_dvpq
DataFieldDescription: Dividends - Preferred/Preference
DataField: fnd6_beta
DataFieldDescription: beta
DataField: fnd6_dxd5
DataFieldDescription: Debt (excl Capitalized Leases) - Due in 5th Year
DataField: fnd6_cik
DataFieldDescription: nonimportant technical code
DataField: fnd6_newqeventv110_txdbq
DataFieldDescription: Deferred Taxes - Balance Sheet
DataField: fnd6_optrfr
DataFieldDescription: Risk-Free Rate - Assumption (%)
DataField: fnd6_newa1v1300_aoloch
DataFieldDescription: Assets and Liabilities - Other - Net Change
DataField: fnd6_newqeventv110_prcd12
DataFieldDescription: Core Post Retirement Adjustment Diluted EPS Effect 12 MM
DataField: fnd6_newqeventv110_epsfiq
DataFieldDescription: Earnings Per Share (Diluted) - Including Extraordinary Items
DataField: fnd6_newqv1300_ciotherq
DataFieldDescription: Comp Inc - Other Adj
DataField: equity
DataFieldDescription: Common/Ordinary Equity - Total
DataField: pretax_income
DataFieldDescription: Pretax Income
DataField: debt_st
DataFieldDescription: Debt in Current Liabilities
DataField: fnd6_cptmfmq_opepsq
DataFieldDescription: Earnings Per Share from Operations
DataField: fnd6_newqeventv110_dilavq
DataFieldDescription: Dilution Available - Excluding Extraordinary Items
DataField: scl12_alltype_buzzvec
DataFieldDescription: sentiment volume
DataField: scl12_alltype_sentvec
DataFieldDescription: sentiment
DataField: scl12_alltype_typevec
DataFieldDescription: instrument type index
DataField: scl12_buzz
DataFieldDescription: relative sentiment volume
DataField: scl12_buzz_fast_d1
DataFieldDescription: relative sentiment volume
DataField: scl12_buzzvec
DataFieldDescription: sentiment volume
DataField: scl12_sentiment
DataFieldDescription: sentiment
DataField: scl12_sentiment_fast_d1
DataFieldDescription: sentiment
DataField: scl12_sentvec
DataFieldDescription: sentiment
DataField: scl12_typevec
DataFieldDescription: instrument type index
DataField: snt_buzz
DataFieldDescription: negative relative sentiment volume, fill nan with 0
DataField: snt_buzz_bfl
DataFieldDescription: negative relative sentiment volume, fill nan with 1
DataField: snt_buzz_bfl_fast_d1
DataFieldDescription: negative relative sentiment volume, fill nan with 1
DataField: snt_buzz_fast_d1
DataFieldDescription: negative relative sentiment volume, fill nan with 0
DataField: snt_buzz_ret
DataFieldDescription: negative return of relative sentiment volume
DataField: snt_buzz_ret_fast_d1
DataFieldDescription: negative return of relative sentiment volume
DataField: snt_value
DataFieldDescription: negative sentiment, fill nan with 0
DataField: snt_value_fast_d1
DataFieldDescription: negative sentiment, fill nan with 0
DataField: analyst_revision_rank_derivative
DataFieldDescription: Change in ranking for analyst revisions and momentum compared to previous period.
DataField: cashflow_efficiency_rank_derivative
DataFieldDescription: Change in ranking for cash flow generation and profitability compared to previous period.
DataField: composite_factor_score_derivative
DataFieldDescription: Change in overall composite factor score from the prior period.
DataField: earnings_certainty_rank_derivative
DataFieldDescription: Change in ranking for earnings sustainability and certainty compared to previous period.
DataField: fscore_bfl_growth
DataFieldDescription: The purpose of this metric is to qualify the expected MT growth potential of the stock.
DataField: fscore_bfl_momentum
DataFieldDescription: The purpose of this metric is to identify stocks which are currently undergoing either up or downward analyst revisions.
DataField: fscore_bfl_profitability
DataFieldDescription: The purpose of this metric is to rank stock based on their ability to generate cash flows.
DataField: fscore_bfl_quality
DataFieldDescription: The purpose of this metric is to measure both the sustainability and certainty of earnings.
DataField: fscore_bfl_surface
DataFieldDescription: The static score. An index between 0 & 100 is applied for each stock and each composite factor - The first ranking is a pentagon surface-based score. The larger the surface, the higher the rank.
DataField: fscore_bfl_surface_accel
DataFieldDescription: The derivative score. In a second step, we calculate the derivative of this score (ie: Is the surface of the pentagon increasing or decreasing from the previous month?).
DataField: fscore_bfl_total
DataFieldDescription: The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.
DataField: fscore_bfl_value
DataFieldDescription: The purpose of this metric is to see if the stock is under or overpriced given several well known valuation standards.
DataField: fscore_growth
DataFieldDescription: The purpose of this metric is to qualify the expected MT growth potential of the stock.
DataField: fscore_momentum
DataFieldDescription: The purpose of this metric is to identify stocks which are currently undergoing either up or downward analyst revisions.
DataField: fscore_profitability
DataFieldDescription: The purpose of this metric is to rank stock based on their ability to generate cash flows.
DataField: fscore_quality
DataFieldDescription: The purpose of this metric is to measure both the sustainability and certainty of earnings.
DataField: fscore_surface
DataFieldDescription: The static score. An index between 0 & 100 is applied for each stock and each composite factor - The first ranking is a pentagon surface-based score. The larger the surface, the higher the rank.
DataField: fscore_surface_accel
DataFieldDescription: The derivative score. In a second step, we calculate the derivative of this score (ie: Is the surface of the pentagon increasing or decreasing from the previous month?).
DataField: fscore_total
DataFieldDescription: The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.
DataField: fscore_value
DataFieldDescription: The purpose of this metric is to see if the stock is under or overpriced given several well known valuation standards.
DataField: growth_potential_rank_derivative
DataFieldDescription: Change in ranking for medium-term growth potential compared to previous period.
DataField: multi_factor_acceleration_score_derivative
DataFieldDescription: Change in the acceleration of multi-factor score compared to previous period.
DataField: multi_factor_static_score_derivative
DataFieldDescription: Change in static multi-factor score compared to previous period.
DataField: relative_valuation_rank_derivative
DataFieldDescription: Change in ranking for valuation metrics compared to previous period.
DataField: snt_social_value
DataFieldDescription: Z score of sentiment
DataField: snt_social_volume
DataFieldDescription: Normalized tweet volume
DataField: beta_last_30_days_spy
DataFieldDescription: Beta to SPY in 30 Days
DataField: beta_last_360_days_spy
DataFieldDescription: Beta to SPY in 360 Days
DataField: beta_last_60_days_spy
DataFieldDescription: Beta to SPY in 60 Days
DataField: beta_last_90_days_spy
DataFieldDescription: Beta to SPY in 90 Days
DataField: correlation_last_30_days_spy
DataFieldDescription: Correlation to SPY in 30 Days
DataField: correlation_last_360_days_spy
DataFieldDescription: Correlation to SPY in 360 Days
DataField: correlation_last_60_days_spy
DataFieldDescription: Correlation to SPY in 60 Days
DataField: correlation_last_90_days_spy
DataFieldDescription: Correlation to SPY in 90 Days
DataField: systematic_risk_last_30_days
DataFieldDescription: Systematic Risk Last 30 Days
DataField: systematic_risk_last_360_days
DataFieldDescription: Systematic Risk Last 360 Days
DataField: systematic_risk_last_60_days
DataFieldDescription: Systematic Risk Last 60 Days
DataField: systematic_risk_last_90_days
DataFieldDescription: Systematic Risk Last 90 Days
DataField: unsystematic_risk_last_30_days
DataFieldDescription: Unsystematic Risk Last 30 Days - Relative to SPY
DataField: unsystematic_risk_last_360_days
DataFieldDescription: Unsystematic Risk Last 360 Days - Relative to SPY
DataField: unsystematic_risk_last_60_days
DataFieldDescription: Unsystematic Risk Last 60 Days - Relative to SPY
DataField: unsystematic_risk_last_90_days
DataFieldDescription: Unsystematic Risk Last 90 Days - Relative to SPY
DataField: anl4_eaz1laf_bk
DataFieldDescription: Broker name (int)
DataField: anl4_basicdetaillt_prevval
DataFieldDescription: The Previous Estimation of Financial Item
DataField: cash_flow_from_investing
DataFieldDescription: Cash Flow from Investing - Value
DataField: max_adjusted_eps_guidance
DataFieldDescription: The maximum guidance value for adjusted earnings per share.
DataField: min_adjusted_funds_from_operations_guidance
DataFieldDescription: Funds from operation - minimum guidance value
DataField: sales_estimate_standard_deviation
DataFieldDescription: Sales - standard deviation of estimations
DataField: anl4_fcf_median
DataFieldDescription: Free cash flow - aggregation on estimations, 50th percentile
DataField: funds_from_operations_max_guidance
DataFieldDescription: The maximum guidance value for Funds from operation - annual
DataField: eps_reported_min_guidance_qtr
DataFieldDescription: Reported Earnings Per Share - Minimum guidance value
DataField: selling_general_admin_expense
DataFieldDescription: Selling, General & Administrative Expense Value
DataField: anl4_capex_high
DataFieldDescription: Capital Expenditures - The highest estimation
DataField: min_total_assets_guidance
DataFieldDescription: Minimum guidance value for Total Assets
DataField: anl4_median_capexp
DataFieldDescription: Capital Expenditures - median of estimations
DataField: anl4_qf_az_wol_spe
DataFieldDescription: Earnings per share - The lowest estimation
DataField: anl4_qf_az_hgih_spe
DataFieldDescription: Earnings per share - The highest estimation
DataField: anl4_ads1detailafv110_person
DataFieldDescription: Broker Id
DataField: anl4_ebitda_flag
DataFieldDescription: Earnings before interest, taxes, depreciation and amortization - forecast type (revision/new/...)
DataField: anl4_bac1detailafv110_item
DataFieldDescription: Financial item
DataField: anl4_fcf_mean
DataFieldDescription: Free Cash Flow - mean of estimations
DataField: anl4_epsr_value
DataFieldDescription: GAAP Earnings per share - announced financial value
DataField: anl4_fsdtlestmtqfv4_item
DataFieldDescription: Financial item
DataField: sales_estimate_value
DataFieldDescription: Sales - Estimated value
DataField: capital_expenditure_guidance_value
DataFieldDescription: Capital Expenditures - Total value for the annual guidance
DataField: max_net_profit_guidance
DataFieldDescription: The maximum guidance value for net profit on an annual basis.
DataField: anl4_fsgdncbscv4_minguidance
DataFieldDescription: Minimum guidance value
DataField: max_investing_cashflow_guidance
DataFieldDescription: The maximum guidance value for Cash Flow from Investing.
DataField: earnings_per_share_min_guidance
DataFieldDescription: Minimum guidance value for Earnings Per Share on an annual basis.
DataField: anl4_basicdetaillt_estvalue
DataFieldDescription: Estimation value
DataField: anl4_basicdetailqfv110_prevval
DataFieldDescription: The previous estimation of financial item
DataField: est_sales
DataFieldDescription: Sales - mean of estimations
DataField: pv13_hierarchy_min100_corr21_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min10_2k_513_sector
DataFieldDescription: grouping fields
DataField: pv13_region
DataFieldDescription: Unique code of the region
DataField: pv13_r2_min2_3000_sector
DataFieldDescription: grouping fields
DataField: pv13_r2_min10_3000_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min51_f2_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min10_1000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min2_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_f1_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min51_f2_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min100_corr21_513_sector
DataFieldDescription: grouping fields
DataField: pv13_1l_scibr
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min51_f3_513_sector
DataFieldDescription: grouping fields
DataField: pv13_3l_scibr
DataFieldDescription: grouping fields
DataField: pv13_revere_term_sector_total
DataFieldDescription: Number of terminal sectors for the company
DataField: pv13_revere_comproduct_company
DataFieldDescription: Company product
DataField: pv13_rha2_min2_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min22_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_f4_sector
DataFieldDescription: grouping fields
DataField: pv13_ustomergraphrank_page_rank
DataFieldDescription: the PageRank of customers
DataField: pv13_revere_zipcode
DataFieldDescription: Zip code
DataField: pv13_hierarchys32_sector
DataFieldDescription: grouping fields
DataField: rel_ret_all
DataFieldDescription: Averaged one-day return of the companies whose product overlapped with the instrument
DataField: pv13_h_min2_focused_sector
DataFieldDescription: Grouping fields for top 200
DataField: pv13_hierarchy_min40_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min2_513_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min40_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_h_min5_500_sector
DataFieldDescription: Grouping fields
DataField: pv13_hierarchy_min2_1000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_r2_liquid_min2_sector
DataFieldDescription: grouping fields
DataField: implied_volatility_put_270
DataFieldDescription: At-the-money option-implied volatility for Put Option for 270 days
DataField: implied_volatility_mean_270
DataFieldDescription: At-the-money option-implied volatility mean for 270 days
DataField: historical_volatility_150
DataFieldDescription: Close-to-close Historical volatility over 150 days
DataField: historical_volatility_20
DataFieldDescription: Close-to-close Historical volatility over 20 days
DataField: implied_volatility_mean_skew_30
DataFieldDescription: At-the-money option-implied volatility mean skew for 30 days
DataField: implied_volatility_call_60
DataFieldDescription: At-the-money option-implied volatility for call Option for 60 days
DataField: parkinson_volatility_60
DataFieldDescription: Parkinson model's historical volatility over 60 days
DataField: implied_volatility_put_30
DataFieldDescription: At-the-money option-implied volatility for Put Option for 30 days
DataField: historical_volatility_90
DataFieldDescription: Close-to-close Historical volatility over 90 days
DataField: parkinson_volatility_120
DataFieldDescription: Parkinson model's historical volatility over 120 days
DataField: implied_volatility_put_120
DataFieldDescription: At-the-money option-implied volatility for Put Option for 120 days
DataField: parkinson_volatility_10
DataFieldDescription: Parkinson model's historical volatility over 2 weeks
DataField: implied_volatility_put_180
DataFieldDescription: At-the-money option-implied volatility for put option for 180 days
DataField: implied_volatility_mean_180
DataFieldDescription: At-the-money option-implied volatility mean for 180 days
DataField: historical_volatility_30
DataFieldDescription: Close-to-close Historical volatility over 30 days
DataField: implied_volatility_call_20
DataFieldDescription: At-the-money option-implied volatility for call Option for 20 days
DataField: implied_volatility_mean_skew_180
DataFieldDescription: At-the-money option-implied volatility mean skew for 180 days
DataField: implied_volatility_put_10
DataFieldDescription: At-the-money option-implied volatility for Put Option for 10 days
DataField: implied_volatility_mean_30
DataFieldDescription: At-the-money option-implied volatility mean for 30 days
DataField: implied_volatility_call_360
DataFieldDescription: At-the-money option-implied volatility for call Option for 360 days
DataField: implied_volatility_mean_skew_20
DataFieldDescription: At-the-money option-implied volatility mean skew for 20 days
DataField: implied_volatility_put_360
DataFieldDescription: At-the-money option-implied volatility for Put Option for 360 days
DataField: implied_volatility_call_30
DataFieldDescription: At-the-money option-implied volatility for call Option for 30 days
DataField: implied_volatility_call_10
DataFieldDescription: At-the-money option-implied volatility for call Option for 10 days
DataField: implied_volatility_put_1080
DataFieldDescription: At-the-money option-implied volatility for Put Option for 3 years
DataField: historical_volatility_60
DataFieldDescription: Close-to-close Historical volatility over 60 days
DataField: parkinson_volatility_30
DataFieldDescription: Parkinson model's historical volatility over 30 days
DataField: implied_volatility_mean_90
DataFieldDescription: At-the-money option-implied volatility mean for 90 days
DataField: parkinson_volatility_90
DataFieldDescription: Parkinson model's historical volatility over 90 days
DataField: implied_volatility_call_1080
DataFieldDescription: At-the-money option-implied volatility for call option for 1080 days
DataField: nws12_afterhsz_01s
DataFieldDescription: Number of minutes that elapsed before price went down 10 percentage points
DataField: nws12_prez_01p
DataFieldDescription: The minimum of L or S above for 10-minute bucket
DataField: nws12_mainz_open_vol
DataFieldDescription: Main open volume
DataField: nws12_mainz_mov_vol
DataFieldDescription: 30-day moving average session volume
DataField: nws12_prez_1s
DataFieldDescription: Number of minutes that elapsed before price went down 1 percentage point
DataField: nws12_afterhsz_tonlow
DataFieldDescription: Lowest price reached during the session before the time of the news
DataField: nws12_prez_57p
DataFieldDescription: The minimum of L or S above for 7.5-minute bucket
DataField: nws12_afterhsz_allticks
DataFieldDescription: Total number of ticks for the trading day
DataField: nws12_afterhsz_opengap
DataFieldDescription: (DayOpen - PrevClose) / PrevClose.
DataField: nws12_prez_lowexcstddev
DataFieldDescription: (TONLast - EODLow)/StdDev, where StdDev is one standard deviation for the close price for 30 calendar days
DataField: nws12_mainz_57p
DataFieldDescription: The minimum of L or S above for 7.5-minute bucket
DataField: nws12_afterhsz_rangeamt
DataFieldDescription: Session High Price - Session Low Price
DataField: nws12_prez_newssess
DataFieldDescription: Index of session in which the news was reported
DataField: news_mins_7_5_chg
DataFieldDescription: The minimum of L or S above for 7.5-minute bucket
DataField: nws12_afterhsz_spylast
DataFieldDescription: Last Price of the SPY at the time of the news
DataField: nws12_afterhsz_3s
DataFieldDescription: Number of minutes that elapsed before price went down 3 percentage points
DataField: nws12_prez_div_y
DataFieldDescription: Annual yield
DataField: nws12_mainz_maxupamt
DataFieldDescription: The after-the-news high minus the price at the time of the news
DataField: nws12_prez_57l
DataFieldDescription: Number of minutes that elapsed before price went up 7.5 percentage points
DataField: nws12_afterhsz_range
DataFieldDescription: Session High Price - Session Low Price) / Session Low Price.
DataField: news_vol_stddev
DataFieldDescription: (CurrentVolume - AvgVol)/VolStDev, where AvgVol is the average of the daily volume, and VolStdDev is one standard deviation for the daily volume, both for 30 calendar days
DataField: news_open_vol
DataFieldDescription: Main open volume
DataField: nws12_afterhsz_tonlast
DataFieldDescription: Price at the time of news
DataField: nws12_prez_4s
DataFieldDescription: Number of minutes that elapsed before price went down 4 percentage points
DataField: news_atr14
DataFieldDescription: 14-day Average True Range
DataField: news_eod_vwap
DataFieldDescription: Volume weighted average price between the time of news and the end of the session
DataField: news_eod_high
DataFieldDescription: Highest price reached between the time of news and the end of the session
DataField: nws12_mainz_1p
DataFieldDescription: The minimum of L or S above for 1-minute bucket
DataField: news_low_exc_stddev
DataFieldDescription: (TONLast - EODLow) / StdDev, where StdDev is one standard deviation for the close price for 30 calendar days
DataField: nws12_afterhsz_close_vol
DataFieldDescription: Main close volume
DataField: top1000
DataFieldDescription: 20140630
DataField: top200
DataFieldDescription: 20140630
DataField: top3000
DataFieldDescription: 20140630
DataField: top500
DataFieldDescription: 20140630
DataField: topsp500
DataFieldDescription: 20140630
DataField: rp_nip_earnings
DataFieldDescription: News impact projection of earnings news
DataField: rp_nip_legal
DataFieldDescription: News impact projection of legal news
DataField: rp_css_society
DataFieldDescription: Composite sentiment score of society-related news
DataField: rp_css_dividends
DataFieldDescription: Composite sentiment score of dividends news
DataField: rp_nip_product
DataFieldDescription: News impact projection of product and service-related news
DataField: rp_nip_insider
DataFieldDescription: News impact projection of insider trading news
DataField: rp_nip_ptg
DataFieldDescription: News impact projection of price target news
DataField: rp_css_mna
DataFieldDescription: Composite sentiment score of mergers and acquisitions-related news
DataField: rp_css_technical
DataFieldDescription: Composite sentiment score based on technical analysis
DataField: rp_ess_equity
DataFieldDescription: Event sentiment score of equity action news
DataField: rp_ess_ptg
DataFieldDescription: Event sentiment score of price target news
DataField: rp_css_partner
DataFieldDescription: Composite sentiment score of partnership news
DataField: nws18_acb
DataFieldDescription: News sentiment specializing in corporate action announcements
DataField: nws18_ghc_lna
DataFieldDescription: Change in analyst recommendation
DataField: rp_nip_mna
DataFieldDescription: News impact projection of mergers and acquisitions-related news
DataField: nws18_qep
DataFieldDescription: News sentiment based on positive and negative words on global equity
DataField: rp_css_ptg
DataFieldDescription: Composite sentiment score of price target news
DataField: rp_ess_revenue
DataFieldDescription: Event sentiment score of revenue news
DataField: rp_ess_partner
DataFieldDescription: Event sentiment score of partnership news
DataField: rp_ess_credit_ratings
DataFieldDescription: Event sentiment score of credit ratings news
DataField: rp_css_inverstor
DataFieldDescription: Composite sentiment score of investor relations news
DataField: rp_nip_equity
DataFieldDescription: News impact projection of equity action news
DataField: nws18_nip
DataFieldDescription: Degree of impact of the news
DataField: rp_ess_business
DataFieldDescription: Event sentiment score of business-related news
DataField: nws18_event_similarity_days
DataFieldDescription: Days since a similar event was detected
DataField: rp_ess_technical
DataFieldDescription: Event sentiment score based on technical analysis
DataField: rp_nip_price
DataFieldDescription: News impact projection of stock price news
DataField: nws18_ssc
DataFieldDescription: Sentiment of the news calculated using multiple techniques
DataField: nws18_event_relevance
DataFieldDescription: Relevance of the event to the story
DataField: nws18_ber
DataFieldDescription: News sentiment specializing in earnings result
DataField: fn_def_tax_assets_liab_net_q
DataFieldDescription: Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.
DataField: fn_accum_oth_income_loss_net_of_tax_a
DataFieldDescription: Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.
DataField: fn_debt_instrument_face_amount_q
DataFieldDescription: Debt face amount
DataField: fn_op_lease_min_pay_due_after_5y_a
DataFieldDescription: Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due after the 5th fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fn_comp_options_exercises_weighted_avg_a
DataFieldDescription: Share-Based Compensation, Options Assumed, Weighted Average Exercise Price
DataField: fnd2_a_fedstyitxrt
DataFieldDescription: Effective Income Tax Rate Reconciliation - Federal Statutory Income Tax Rate %
DataField: fn_allowance_for_doubtful_accounts_receivable_a
DataFieldDescription: For an unclassified balance sheet, a valuation allowance for receivables due a company that are expected to be uncollectible.
DataField: fn_comp_non_opt_forfeited_q
DataFieldDescription: The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.
DataField: fn_assets_fair_val_l3_q
DataFieldDescription: Asset Fair Value, Recurring, Level 3
DataField: fnd2_a_ltrmdmrepopliny5
DataFieldDescription: Amount of long-term debt payable, sinking fund requirements, and other securities issued that are redeemable by holder at fixed or determinable prices and dates maturing in the 5th fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fn_allowance_for_doubtful_accounts_receivable_q
DataFieldDescription: For an unclassified balance sheet, a valuation allowance for receivables due a company that are expected to be uncollectible.
DataField: fnd2_a_restructuringcharges
DataFieldDescription: Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.
DataField: fn_liab_fair_val_l3_a
DataFieldDescription: Liabilities Fair Value, Recurring, Level 3
DataField: fn_profit_loss_q
DataFieldDescription: The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.
DataField: fnd2_dbplanchgbnfolintcst
DataFieldDescription: Defined Benefit Plan Change In Benefit Obligation Interest Cost
DataField: fn_oth_comp_grants_weighted_avg_grant_date_fair_value_q
DataFieldDescription: Quarterly Share-Based Compensation Equity Instruments Other Than Options Nonvested Weighted Average Grant Date Fair Value
DataField: fn_payments_to_acquire_businesses_net_of_cash_acquired_a
DataFieldDescription: The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.
DataField: fn_comp_options_grants_fair_value_a
DataFieldDescription: Annual Share-Based Compensation Arrangement by Share-Based Payment Award Options Grants in Period Weighted Average Grant Date Fair Value
DataField: fnd2_a_gsles1xtinguishmentofd
DataFieldDescription: Difference between the fair value of payments made and the carrying amount of debt which is extinguished prior to maturity.
DataField: fn_avg_diluted_sharesout_adj_a
DataFieldDescription: The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation.
DataField: fnd2_dbplanbnfol
DataFieldDescription: 1) For defined benefit pension plans, the benefit obligation is the projected benefit obligation, which is the actuarial present value as of a date of all benefits attributed by the pension benefit formula to employee service rendered prior to that date. 2) For other postretirement defined benefit plans, the benefit obligation is the accumulated postretirement benefit obligation, which is the actuarial present value of benefits attributed to employee service rendered to a particular date.
DataField: fn_derivative_fair_value_of_derivative_asset_q
DataFieldDescription: Fair value, before effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets elected not to be offset. Excludes assets not subject to a master netting arrangement.
DataField: fn_proceeds_from_lt_debt_q
DataFieldDescription: Proceeds From Issuance Of Debt, Long Term
DataField: fnd2_a_alsbcmpexrsus
DataFieldDescription: Allocated Share-Based Compensation Expense, Restricted Stock Units
DataField: fnd2_dbplanepdfbnfpyfour
DataFieldDescription: Amount of benefits from a defined benefit plan expected to be paid in the 4th fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fnd2_a_sbcpnargmtwfsptepddvdrt
DataFieldDescription: The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.
DataField: fn_accrued_liab_a
DataFieldDescription: Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered.
DataField: fn_debt_instrument_face_amount_a
DataFieldDescription: Debt face amount
DataField: fnd2_a_ltrmdmrepoplinyfour
DataFieldDescription: Amount of long-term debt payable, sinking fund requirements, and other securities issued that are redeemable by holder at fixed or determinable prices and dates maturing in the 4th fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fnd2_a_dbplannpicbnfcst
DataFieldDescription: The total amount of net periodic benefit cost for defined benefit plans for the period. Periodic benefit costs include the following components: service cost, interest cost, expected return on plan assets, gain (loss), prior service cost or credit, transition asset or obligation, and gain (loss) due to settlements or curtailments.
DataField: adv20
DataFieldDescription: Average daily volume in past 20 days
DataField: cap
DataFieldDescription: Daily market capitalization (in millions)
DataField: close
DataFieldDescription: Daily close price
DataField: country
DataFieldDescription: Country grouping
DataField: currency
DataFieldDescription: Currency
DataField: cusip
DataFieldDescription: CUSIP Value
DataField: dividend
DataFieldDescription: Dividend
DataField: exchange
DataFieldDescription: Exchange grouping
DataField: high
DataFieldDescription: Daily high price
DataField: industry
DataFieldDescription: Industry grouping
DataField: isin
DataFieldDescription: ISIN Value
DataField: low
DataFieldDescription: Daily low price
DataField: market
DataFieldDescription: Market grouping
DataField: open
DataFieldDescription: Daily open price
DataField: returns
DataFieldDescription: Daily returns
DataField: sector
DataFieldDescription: Sector grouping
DataField: sedol
DataFieldDescription: Sedol
DataField: sharesout
DataFieldDescription: Daily outstanding shares (in millions)
DataField: split
DataFieldDescription: Stock split ratio
DataField: subindustry
DataFieldDescription: Subindustry grouping
DataField: ticker
DataFieldDescription: Ticker
DataField: volume
DataFieldDescription: Daily volume
DataField: vwap
DataFieldDescription: Daily volume weighted average price
========================= 数据字段结束 =======================================

@ -0,0 +1,53 @@
你作为WorldQuant因子挖掘专家,请基于以下多维度框架生成alpha因子。请严格遵循WebSim语法规范:
【重要平台约束】
平台:WorldQuant WebSim
可用函数:ts_*(时间序列), group_*(横截面), 基础数学运算
可用字段:open, high, low, close, volume, vwap, sector, industry, country, market_cap
禁用函数:pandas, numpy, 自定义Python函数,机器学习库
输出格式:严格一行WebSim表达式,使用WQ平台函数
表达式要求:必须能直接在WebSim中运行
我正在WorldQuant研究行业轮动策略,请设计行业选择因子:
**需要创新因子-因子设计维度**:(也可以你自己设计维度):
请从以下五个核心维度构思因子,确保每个因子都有独特的市场逻辑和经济学解释:
趋势动能形态因子:超越简单的价格动量。关注动量的加速度、收敛/发散以及平滑度(例如,使用动量的一阶/二阶导数、趋势线的拟合优度)。逻辑:识别趋势是健康加速、乏力钝化还是即将衰竭。
行业质量与市场环境适配度因子:结合行业自身的财务质量(如盈利稳定性、杠杆率)与宏观市场状态(如波动率环境、利率周期)。逻辑:找到在特定宏观环境下(如“避险”或“增长”期)基本面更具韧性的行业。
行业内部分化与领导力因子:度量行业内部个股表现的离散度与龙头股的带动效应(例如,行业前三大市值公司收益率与行业平均收益率的差异及相关性)。逻辑:捕捉“龙头领涨”的聚集效应或“普涨轮动”的扩散信号。
超买超卖与情绪反转因子:基于多维度标准化偏移(如价格相对于自身历史布林带的位置、换手率分位数、分析师情绪极端值)。逻辑:综合估值、交易拥挤度和情绪,识别物极必反的均值回归契机。
行业间关联与动量溢出因子:构建行业关联网络(基于产业链、基本面相关性或资金流),分析核心行业的动量如何向其关联行业传导的强度与速度。逻辑:利用行业间的传导滞后或相关性结构变化,进行前瞻性布局。
请以以上 5 个维度, 分别设计 20 个因子, 共 100 个因子
**策略背景**:
投资目标:构建一个基于多因子的行业轮动模型,旨在穿越不同的经济周期(扩张、衰退、复苏、滞胀),持续选择未来一期(月度)预期表现强势的行业。
标的范围:使用清晰、稳定、覆盖面广的行业分类体系(例如,GICS行业板块或细分行业)。请明确你选取的分类级别。
组合频率:月度调仓。所有因子计算需使用截至调仓日前可获取的数据,避免未来函数。
风险控制:
-行业集中度限制:单行业配置不超过20%。
-考虑行业市值中性化或流动性筛选,确保实操性。
-因子需考虑不同市场周期(牛、熊、震荡)下的表现稳定性。
**具体要求**:
对于你设计的每一个因子,请务必按以下结构化格式进行阐述:
1,因子名称:简洁明了。
2,核心逻辑:阐述该因子捕捉的具体市场异象或经济机制(为什么它应该能预测行业表现)。
3,具体计算方法:分步描述计算步骤、所用数据(价格、成交量、基本面数据等)与关键参数(给出参数选择的逻辑,例如回看期为什么是12个月而非6个月)。
4,经济周期适应性分析:
- 在何种周期下预计最有效?(例如:趋势加速度因子在“经济复苏期”可能最有效,因为主导行业趋势明确且强化)
- 在何种周期下可能失效或需要谨慎?(例如:反转因子在“趋势强烈的泡沫期”可能持续失效)
5,与已有经典因子的区别:明确指出你的因子与简单动量、波动率、估值等传统因子的不同之处与改进点。
6,可能的实施挑战与注意事项:如数据可获得性、对参数敏感度、极端市场环境下的行为等。
**输出格式**(一行一个表达式, 只要表达式本身, 不要解释, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
请提供具体的WQ表达式。
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。

@ -0,0 +1,40 @@
你作为WorldQuant因子挖掘专家,请基于以下多维度框架生成 20 个原创alpha因子。请严格遵循WebSim语法规范:
【重要平台约束】
平台:WorldQuant WebSim
可用函数:ts_*(时间序列), group_*(横截面), 基础数学运算
可用字段:open, high, low, close, volume, vwap, sector, industry, country, market_cap
禁用函数:pandas, numpy, 自定义Python函数,机器学习库
输出格式:严格一行WebSim表达式,使用WQ平台函数
表达式要求:必须能直接在WebSim中运行
我正在WorldQuant研究行业轮动策略,请设计行业选择因子:
**需要创新因子-因子设计维度**:(也可以你自己设计维度):
行业趋势加速度因子 - 不仅看动量,更看动量的变化率,捕捉趋势的强化或弱化。
行业质量与防御性因子 - 结合波动率与市场相关性,识别在不同市场环境(风险偏好)下表现稳健的行业。
行业资金集中度因子 - 分析行业内龙头股与整体行业表现的差异,捕捉“强者恒强”或“内部轮动”的信号。
行业超买超卖反转因子 - 基于布林带或标准化位置,捕捉极端估值或情绪后的均值回归机会。
行业间动量扩散因子 - 分析一个行业的动量是否会向相关行业(如同产业链上下游)扩散。
**策略背景**:
- 目标:在不同经济周期中选择强势行业
- 数据:使用sector, industry分类字段(或者你自己随意选择)
- 频率:月度调仓
- 风险:控制行业集中度
**具体要求**:
- 必须使用group函数处理行业分组
- 每个因子包含清晰的行业轮动逻辑
- 考虑行业特性的持久性
- 提供经济周期适应的解释
**输出格式**(一行一个, 不要输出多余的东西):
表达式
表达式
表达式
...
表达式
请提供具体的WQ表达式。
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。

@ -2,12 +2,8 @@
import json
import httpx
with open('config.json', 'r') as f:
config = json.load(f)
siliconflow = config['siliconflow']
token = siliconflow['api_keys']
headers = {"Authorization": f"Bearer sk-pvdiisdowmuwkrpnxsrlhxaovicqibmlljwrwwvbbdjaitdl"}
headers = {"Authorization": f"Bearer {token}"}
def get_user_info():
# 获取用户信息
@ -30,8 +26,15 @@ def get_models_info():
data = response.json()['data']
model_list = []
for d in data:
print(d)
if d.get('object') and d.get('object') == 'model':
model_name = d.get('id')
# print(model_name)
model_list.append(model_name)
print(model_list)
# get_models_info()
# get_user_info()
get_user_info()

Loading…
Cancel
Save