This commit is contained in:
2026-01-04 16:30:57 +08:00
parent 51a483ce22
commit 2950e9d2ce
134 changed files with 1180 additions and 47 deletions
+125
View File
@@ -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.
+115
View File
@@ -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)
```
+127
View File
@@ -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.