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

127 lines
10 KiB

```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.