++
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user