Jack 2 weeks ago
parent 771b35563e
commit 6ba7e59cc2
  1. 29
      combination_alpha.py
  2. 59
      generated_alpha/2026/01/16/Pro_deepseek-ai_DeepSeek-V3.1-Terminus_142625.txt
  3. 67
      generated_alpha/2026/01/16/Pro_deepseek-ai_DeepSeek-V3.1-Terminus_151227.txt
  4. 59
      generated_alpha/2026/01/16/Qwen_Qwen3-VL-235B-A22B-Instruct_142827.txt
  5. 59
      generated_alpha/2026/01/16/Qwen_Qwen3-VL-235B-A22B-Instruct_151457.txt
  6. 59
      generated_alpha/2026/01/16/deepseek-ai_DeepSeek-V3.2-Exp_142747.txt
  7. 59
      generated_alpha/2026/01/16/deepseek-ai_DeepSeek-V3.2-Exp_151348.txt
  8. 61
      generated_alpha/2026/01/17/Pro_deepseek-ai_DeepSeek-V3.1-Terminus_170027.txt
  9. 65
      generated_alpha/2026/01/17/deepseek-ai_DeepSeek-V3.2-Exp_170159.txt
  10. 57
      generated_alpha/2026/01/18/Pro_deepseek-ai_DeepSeek-V3.1-Terminus_223149.txt
  11. 30
      generated_alpha/2026/01/18/Qwen_Qwen3-VL-235B-A22B-Instruct_223951.txt
  12. 4
      main.py
  13. 347
      manual_prompt/2026/01/16/manual_prompt_20260116142439.txt
  14. 347
      manual_prompt/2026/01/16/manual_prompt_20260116150911.txt
  15. 338
      manual_prompt/2026/01/17/manual_prompt_20260117165716.txt
  16. 368
      manual_prompt/2026/01/18/manual_prompt_20260118223049.txt
  17. 33
      prepare_prompt/alpha_prompt.txt
  18. 20
      prepare_prompt/keys_text.txt
  19. 156
      手动处理每天alpha.txt

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
import os
import random
import sys
import openai
import httpx
import csv
from datetime import datetime
import jieba
import time
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')
origin_alpha = 'add({call_price}, {put_price}) - abs(ts_delta({close}, 1))'
def combina_alpha():
pass
def save_alpha()
def main():
if __name__ == "__main__":
main()

@ -0,0 +1,59 @@
if_else(fnd6_newqv1300_seqq != 0, divide(goodwill, fnd6_newqv1300_seqq), 0)
rank(if_else(fnd6_newqv1300_seqq != 0, divide(goodwill, fnd6_newqv1300_seqq), 0))
group_neutralize(goodwill, pv13_hierarchy_min10_top3000_513_sector)
ts_delta(goodwill, 252)
ts_zscore(ts_delta(goodwill, 63), 252)
divide(ts_delta(sales_ps, 63), ts_delay(sales_ps, 63))
rank(divide(ts_delta(sales_ps, 63), ts_delay(sales_ps, 63)))
divide(ts_delta(income, 63), abs(ts_delay(income, 63)))
ts_zscore(income, 252)
divide(subtract(income, anl4_ebit_median), abs(anl4_ebit_median))
divide(forward_price_120, earnings_per_share_nongaap_value)
divide(divide(forward_price_120, earnings_per_share_nongaap_value), group_mean(divide(forward_price_120, earnings_per_share_nongaap_value), 1, pv13_hierarchy_min10_top3000_513_sector))
subtract(divide(forward_price_120, earnings_per_share_nongaap_value), group_mean(divide(forward_price_120, earnings_per_share_nongaap_value), 1, pv13_hierarchy_min10_top3000_513_sector))
nws18_sse
ts_delta(nws18_sse, 1)
ts_mean(nws18_sse, 21)
ts_delta(forward_price_120, 1)
ts_std_dev(divide(ts_delta(forward_price_120, 1), ts_delay(forward_price_120, 1)), 252)
ts_sum(divide(ts_delta(forward_price_120, 1), ts_delay(forward_price_120, 1)), 63)
divide(ts_delta(forward_price_120, 1), ts_std_dev(forward_price_120, 252))
ts_mean(news_tot_ticks, 21)
ts_corr(nws18_sse, divide(ts_delta(forward_price_120, 1), ts_delay(forward_price_120, 1)), 21)
divide(goodwill, sales_ps)
divide(sales_ps, fnd6_newqv1300_ppentq)
divide(fnd6_dlto, fnd6_newqv1300_seqq)
divide(income, fnd6_nxints)
fnd6_spis
ts_delta(anl4_ebit_median, 1)
ts_rank(goodwill, 252)
group_zscore(income, pv13_hierarchy_min10_top3000_513_sector)

@ -0,0 +1,67 @@
multiply(-1,multiply(if_else(greater(ts_sum(greater(ts_zscore(parkinson_volatility_30,60),2),22),10),ts_mean(subtract(divide(ts_delta(vwap,1),ts_delay(vwap,1)),group_mean(divide(ts_delta(vwap,1),ts_delay(vwap,1)),1,pv13_hierarchy_min30_sector)),22),0),group_zscore(fscore_bfl_total,pv13_hierarchy_min30_sector)))
ts_zscore(parkinson_volatility_30,60)
group_zscore(fscore_bfl_total,pv13_hierarchy_min30_sector)
ts_mean(ts_delta(vwap,1),22)
subtract(divide(ts_delta(vwap,1),ts_delay(vwap,1)),group_mean(divide(ts_delta(vwap,1),ts_delay(vwap,1)),1,pv13_hierarchy_min30_sector))
ts_corr(vwap,parkinson_volatility_30,30)
ts_rank(vwap,22)
group_rank(fscore_bfl_total,pv13_hierarchy_min30_sector)
ts_std_dev(divide(ts_delta(vwap,1),ts_delay(vwap,1)),20)
multiply(ts_zscore(parkinson_volatility_30,60),group_zscore(fscore_bfl_total,pv13_hierarchy_min30_sector))
if_else(greater(ts_mean(ts_delta(vwap,1),20),0),group_zscore(fscore_bfl_total,pv13_hierarchy_min30_sector),0)
ts_sum(greater(ts_delta(vwap,1),0),10)
group_mean(divide(ts_delta(vwap,1),ts_delay(vwap,1)),1,pv13_hierarchy_min30_sector)
ts_av_diff(vwap,5)
subtract(ts_mean(vwap,10),ts_mean(vwap,30))
multiply(ts_rank(vwap,20),group_rank(fscore_bfl_total,pv13_hierarchy_min30_sector))
ts_delta(parkinson_volatility_30,5)
if_else(less(ts_zscore(parkinson_volatility_30,60),-2),ts_mean(ts_delta(vwap,1),10),0)
group_scale(fscore_bfl_total,pv13_hierarchy_min30_sector)
ts_covariance(vwap,parkinson_volatility_30,30)
multiply(sign(ts_delta(vwap,1)),group_zscore(fscore_bfl_total,pv13_hierarchy_min30_sector))
ts_decay_linear(divide(ts_delta(vwap,1),ts_delay(vwap,1)),10)
subtract(ts_mean(vwap,5),ts_mean(vwap,20))
if_else(greater(ts_sum(less(ts_delta(vwap,1),0),5),1),group_zscore(fscore_bfl_total,pv13_hierarchy_min30_sector),0)
ts_product(divide(ts_delta(vwap,1),ts_delay(vwap,1)),5)
multiply(ts_zscore(vwap,20),ts_zscore(parkinson_volatility_30,20))
group_neutralize(divide(ts_delta(vwap,1),ts_delay(vwap,1)),pv13_hierarchy_min30_sector)
ts_backfill(vwap,5)
if_else(greater(ts_std_dev(divide(ts_delta(vwap,1),ts_delay(vwap,1)),10),0.05),1,0)
multiply(ts_mean(ts_delta(vwap,1),10),group_mean(fscore_bfl_total,1,pv13_hierarchy_min30_sector))
ts_arg_max(vwap,10)
ts_arg_min(vwap,10)
subtract(ts_max(vwap,10),ts_min(vwap,10))
multiply(if_else(greater(ts_delta(vwap,1),0),1,-1),group_zscore(fscore_bfl_total,pv13_hierarchy_min30_sector))

@ -0,0 +1,59 @@
ts_zscore(goodwill / fnd6_newqv1300_seqq, 252)
ts_rank(goodwill / fnd6_newqv1300_seqq, 252)
ts_delta(sales_growth, 60)
ts_mean(fnd6_newqv1300_cshoq, 90)
ts_std_dev(fnd6_newqv1300_cshoq, 120)
ts_corr(sales_growth, fnd6_newqv1300_cshoq, 180)
ts_av_diff(goodwill / fnd6_newqv1300_seqq, 252)
ts_quantile(goodwill / fnd6_newqv1300_seqq, 252)
ts_arg_max(fnd6_newqv1300_cshoq, 180)
ts_arg_min(sales_growth, 180)
ts_sum(fnd6_newqv1300_cshoq, 60)
ts_delay(goodwill / fnd6_newqv1300_seqq, 30)
ts_product(sales_growth, 30)
ts_scale(goodwill / fnd6_newqv1300_seqq, 252)
ts_backfill(fnd6_newqv1300_cshoq, 90)
ts_count_nans(sales_growth, 120)
ts_covariance(goodwill / fnd6_newqv1300_seqq, sales_growth, 180)
ts_regression(sales_growth, fnd6_newqv1300_cshoq, 252, 0, 0)
ts_step(1)
ts_decay_linear(fnd6_newqv1300_cshoq, 90)
ts_rank(sales_growth, 180)
ts_zscore(fnd6_newqv1300_cshoq, 120)
ts_mean(sales_growth, 90)
ts_std_dev(sales_growth, 180)
ts_delta(goodwill / fnd6_newqv1300_seqq, 60)
ts_corr(fnd6_newqv1300_cshoq, sales_growth, 120)
ts_av_diff(sales_growth, 180)
ts_quantile(fnd6_newqv1300_cshoq, 252)
ts_arg_max(sales_growth, 120)
ts_arg_min(goodwill / fnd6_newqv1300_seqq, 120)

@ -0,0 +1,59 @@
ts_zscore(add(fnd6_ciother, fnd6_cibegni), 20)
ts_rank(subtract(fnd6_newqv1300_fcaq, fnd6_newqv1300_rdipaq), 30)
group_zscore(divide(fnd6_mfma1_dpc, fnd6_newa2v1300_ppegt), pv13_hierarchy_min30_sector)
ts_scale(ts_delta(fnd6_optvolq, 5), 10)
ts_mean(ts_av_diff(fnd6_newa1v1300_epsfx, 15), 20)
ts_std_dev(ts_corr(fnd6_optdr, fnd6_optlife, 25), 10)
ts_arg_max(ts_sum(fnd6_newqeventv110_gdwliaq, 10), 20)
ts_arg_min(ts_product(fnd6_cld4, 5), 15)
ts_backfill(ts_delay(fnd6_newqv1300_invfgq, 3), 5, 1)
ts_quantile(ts_rank(fnd6_newqeventv110_wdpq, 20), 30)
ts_covariance(fnd6_newa2v1300_txt, fnd6_newa1v1300_dvc, 25)
ts_regression(fnd6_txdfo, fnd6_optprcey, 20, 0, 0)
ts_decay_linear(fnd6_newqeventv110_aociderglq, 15, false)
ts_count_nans(ts_delta(fnd6_optprcca, 5), 10)
ts_sum(ts_zscore(fnd6_newqv1300_ciotherq, 20), 15)
ts_product(ts_scale(fnd6_mrcta, 10), 5)
ts_delay(ts_mean(fnd6_newqeventv110_gdwlipq, 20), 3)
ts_delta(ts_std_dev(fnd6_newa2v1300_ppegt, 15), 5)
ts_rank(ts_corr(fnd6_optvolq, fnd6_optdr, 20), 25)
ts_av_diff(ts_sum(fnd6_newqeventv110_pnrshoq, 10), 15)
ts_quantile(ts_delta(fnd6_newqv1300_fcaq, 5), 20)
ts_arg_max(ts_mean(fnd6_newa1v1300_epsfx, 10), 15)
ts_arg_min(ts_std_dev(fnd6_newqeventv110_gdwliaq, 20), 25)
ts_backfill(ts_delay(fnd6_newqv1300_invfgq, 5), 10, 1)
ts_covariance(fnd6_txdfo, fnd6_optprcey, 30)
ts_regression(fnd6_newa2v1300_txt, fnd6_newa1v1300_dvc, 25, 0, 0)
ts_decay_linear(fnd6_newqeventv110_wdpq, 20, false)
ts_count_nans(ts_delta(fnd6_optprcca, 10), 15)
ts_sum(ts_zscore(fnd6_newqv1300_ciotherq, 25), 20)
ts_product(ts_scale(fnd6_mrcta, 15), 10)

@ -0,0 +1,59 @@
group_neutralize(ts_rank(divide(goodwill, fnd6_newqv1300_seqq), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_zscore(divide(fnd6_newqeventv110_gdwliaq, ts_sum(fnd6_newqeventv110_gdwliaq, 252)), 63), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_delta(divide(goodwill, fnd6_newqv1300_seqq), 63), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_corr(divide(goodwill, fnd6_newqv1300_seqq), fnd6_newqv1300_oiadpq, 126), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_av_diff(divide(goodwill, fnd6_newqv1300_seqq), 63), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(if_else(ts_sum(fnd6_newqeventv110_gdwliaq, 252) > 0, ts_zscore(fnd6_newqeventv110_gdwliaq, 63), 0), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_delta(divide(fnd6_newqeventv110_gdwliaq, ts_sum(fnd6_newqeventv110_gdwliaq, 252)), 21), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_corr(divide(goodwill, fnd6_newqv1300_seqq), sales_growth, 126), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_std_dev(divide(goodwill, fnd6_newqv1300_seqq), 126), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_sum(if_else(fnd6_newqeventv110_gdwliaq > 0, 1, 0), 252), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(divide(ts_sum(fnd6_newqeventv110_gdwliaq, 252), ts_sum(goodwill, 252)), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_corr(divide(goodwill, fnd6_newqv1300_seqq), fnd6_newqv1300_spiq, 126), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_delta(divide(goodwill, fnd6_newqv1300_ppentq), 63), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_zscore(divide(goodwill, fnd6_newqv1300_seqq), 126), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_av_diff(divide(goodwill, fnd6_newqv1300_seqq), 126), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_corr(divide(goodwill, fnd6_newqv1300_seqq), income, 126), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_delta(divide(goodwill, fnd6_newqv1300_seqq), 126), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_sum(divide(goodwill, fnd6_newqv1300_seqq), 252), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_corr(divide(goodwill, fnd6_newqv1300_seqq), fnd6_newqv1300_intanoq, 126), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_std_dev(divide(fnd6_newqeventv110_gdwliaq, ts_sum(fnd6_newqeventv110_gdwliaq, 252)), 63), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_zscore(divide(fnd6_newqeventv110_gdwliaq, ts_sum(fnd6_newqeventv110_gdwliaq, 252)), 126), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_av_diff(divide(fnd6_newqeventv110_gdwliaq, ts_sum(fnd6_newqeventv110_gdwliaq, 252)), 126), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_corr(divide(goodwill, fnd6_newqv1300_seqq), fnd6_newqv1300_cshoq, 126), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_delta(divide(goodwill, fnd6_newqv1300_seqq), 252), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_sum(divide(fnd6_newqeventv110_gdwliaq, ts_sum(fnd6_newqeventv110_gdwliaq, 252)), 252), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_corr(divide(goodwill, fnd6_newqv1300_seqq), fnd6_newqv1300_aocisecglq, 126), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_std_dev(divide(goodwill, fnd6_newqv1300_seqq), 252), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_zscore(divide(goodwill, fnd6_newqv1300_seqq), 252), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_av_diff(divide(goodwill, fnd6_newqv1300_seqq), 252), 252), pv13_hierarchy_min10_top3000_513_sector)
group_neutralize(ts_rank(ts_corr(divide(goodwill, fnd6_newqv1300_seqq), fnd6_newqv1300_dpq, 126), 252), pv13_hierarchy_min10_top3000_513_sector)

@ -0,0 +1,59 @@
group_neutralize(ts_rank(divide(ts_sum(if_else(ts_delta(vwap, 5) < 0, ts_delta(vwap, 5), 0), 22), ts_sum(abs(ts_delta(vwap, 5)), 22)), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_sum(if_else(ts_delta(vwap, 5) < 0, 1, 0), 22), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(vwap, ts_sum(vwap, 22), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)
group_neutralize(ts_rank(ts_corr(ts_rank(vwap, 44), ts_rank(ts_sum(vwap, 22), 44), 44), 44), pv13_hierarchy_min30_sector)

@ -0,0 +1,61 @@
group_zscore(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), pv13_hierarchy_f3_513_sector)
group_neutralize(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), pv13_hierarchy_f3_513_sector)
ts_zscore(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504)
ts_rank(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504)
group_rank(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), pv13_hierarchy_f3_513_sector)
ts_mean(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504)
ts_std_dev(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504)
divide(ts_std_dev(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504), ts_mean(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504))
ts_delta(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 63)
ts_regression(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), ts_step(1), 504, 0, 1)
ts_av_diff(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504)
group_zscore(ts_mean(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504), pv13_hierarchy_f3_513_sector)
group_neutralize(ts_std_dev(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504), pv13_hierarchy_f3_513_sector)
multiply(group_zscore(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), pv13_hierarchy_f3_513_sector), -1)
ts_zscore(ts_delta(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 63), 504)
group_zscore(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), pv13_hierarchy_min2_focused_pureplay_3000_513_sector)
multiply(divide(fnd6_newqv1300_invoq, est_sales), 365)
group_zscore(fnd6_newqv1300_invoq, pv13_hierarchy_f3_513_sector)
ts_zscore(fnd6_newqv1300_invoq, 504)
divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt)
group_zscore(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), pv13_hierarchy_f3_513_sector)
ts_mean(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 504)
ts_std_dev(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 504)
multiply(ts_rank(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 504), -1)
ts_quantile(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504)
group_scale(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), pv13_hierarchy_f3_513_sector)
normalize(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25))
quantile(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25))
scale(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25))
winsorize(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 4)
zscore(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25))

@ -0,0 +1,65 @@
group_zscore(ts_std_dev(fnd6_newqv1300_invoq, 504), pv13_hierarchy_f3_513_sector)
group_zscore(ts_mean(fnd6_newqv1300_invoq, 504), pv13_hierarchy_f3_513_sector)
subtract(group_zscore(ts_mean(fnd6_newqv1300_invoq, 504), pv13_hierarchy_f3_513_sector), group_zscore(ts_std_dev(fnd6_newqv1300_invoq, 504), pv13_hierarchy_f3_513_sector))
ts_rank(ts_std_dev(fnd6_newqv1300_invoq, 504), 126)
ts_rank(ts_mean(fnd6_newqv1300_invoq, 504), 126)
subtract(ts_rank(ts_mean(fnd6_newqv1300_invoq, 504), 126), ts_rank(ts_std_dev(fnd6_newqv1300_invoq, 504), 126))
ts_zscore(ts_std_dev(fnd6_newqv1300_invoq, 504), 252)
ts_zscore(ts_mean(fnd6_newqv1300_invoq, 504), 252)
subtract(ts_zscore(ts_mean(fnd6_newqv1300_invoq, 504), 252), ts_zscore(ts_std_dev(fnd6_newqv1300_invoq, 504), 252))
ts_delta(ts_mean(fnd6_newqv1300_invoq, 504), 63)
ts_delta(ts_std_dev(fnd6_newqv1300_invoq, 504), 63)
subtract(ts_delta(ts_mean(fnd6_newqv1300_invoq, 504), 63), ts_delta(ts_std_dev(fnd6_newqv1300_invoq, 504), 63))
ts_corr(ts_mean(fnd6_newqv1300_invoq, 504), ts_std_dev(fnd6_newqv1300_invoq, 504), 252)
ts_covariance(ts_mean(fnd6_newqv1300_invoq, 504), ts_std_dev(fnd6_newqv1300_invoq, 504), 252)
divide(ts_mean(fnd6_newqv1300_invoq, 504), ts_std_dev(fnd6_newqv1300_invoq, 504))
ts_av_diff(ts_mean(fnd6_newqv1300_invoq, 504), 504)
ts_av_diff(ts_std_dev(fnd6_newqv1300_invoq, 504), 504)
subtract(ts_av_diff(ts_mean(fnd6_newqv1300_invoq, 504), 504), ts_av_diff(ts_std_dev(fnd6_newqv1300_invoq, 504), 504))
ts_quantile(ts_mean(fnd6_newqv1300_invoq, 504), 504)
ts_quantile(ts_std_dev(fnd6_newqv1300_invoq, 504), 504)
subtract(ts_quantile(ts_mean(fnd6_newqv1300_invoq, 504), 504), ts_quantile(ts_std_dev(fnd6_newqv1300_invoq, 504), 504))
ts_sum(ts_mean(fnd6_newqv1300_invoq, 504), 126)
ts_sum(ts_std_dev(fnd6_newqv1300_invoq, 504), 126)
subtract(ts_sum(ts_mean(fnd6_newqv1300_invoq, 504), 126), ts_sum(ts_std_dev(fnd6_newqv1300_invoq, 504), 126))
ts_product(ts_mean(fnd6_newqv1300_invoq, 504), 63)
ts_product(ts_std_dev(fnd6_newqv1300_invoq, 504), 63)
divide(ts_product(ts_mean(fnd6_newqv1300_invoq, 504), 63), ts_product(ts_std_dev(fnd6_newqv1300_invoq, 504), 63))
ts_arg_min(ts_mean(fnd6_newqv1300_invoq, 504), 504)
ts_arg_max(ts_std_dev(fnd6_newqv1300_invoq, 504), 504)
subtract(ts_arg_min(ts_mean(fnd6_newqv1300_invoq, 504), 504), ts_arg_max(ts_std_dev(fnd6_newqv1300_invoq, 504), 504))
ts_count_nans(fnd6_newqv1300_invoq, 504)
ts_backfill(fnd6_newqv1300_invoq, 504)
subtract(ts_backfill(fnd6_newqv1300_invoq, 504), ts_count_nans(fnd6_newqv1300_invoq, 504))

@ -0,0 +1,57 @@
ts_delta(sales_ps, 30)
ts_rank(debt_lt, 60)
ts_zscore(implied_volatility_mean_skew_120, 90)
group_zscore(sales_ps, pv13_h_min2_3000_sector)
ts_corr(sales_ps, debt_lt, 60)
ts_mean(forward_price_120, 30)
subtract(sales_ps, ts_mean(sales_ps, 60))
divide(sales_ps, debt_lt)
ts_regression(sales_ps, ts_step(1), 60, 0, 0)
if_else(ts_delta(sales_ps, 30) > 0, 1, -1)
log(sales_ps)
ts_sum(sales_ps, 30)
ts_product(sales_ps, 30)
ts_quantile(sales_ps, 60, "gaussian")
ts_count_nans(sales_ps, 60)
ts_covariance(sales_ps, debt_lt, 60)
multiply(sales_ps, 0.01)
add(sales_ps, ts_delay(sales_ps, 30))
power(sales_ps, 2)
ts_scale(sales_ps, 60)
ts_std_dev(sales_ps, 60)
normalize(sales_ps)
quantile(sales_ps)
rank(sales_ps)
scale(sales_ps)
winsorize(sales_ps, 4)
ts_delta(forward_price_120, 10)
ts_rank(option_breakeven_180, 30)
group_neutralize(debt_lt, pv13_h_min2_3000_sector)

@ -0,0 +1,30 @@
ts_delta(fnd6_newqv1300_cibegniq, 12) / ts_mean(fnd6_newqv1300_cibegniq, 12)
ts_rank(fnd6_newqv1300_ivstq, 240) * ts_scale(fnd6_newqv1300_ivstq, 120)
group_zscore(fnd6_newqv1300_lltq, pv13_h_min2_3000_sector)
ts_arg_min(fnd6_newqv1300_intanq, 60) - ts_arg_max(fnd6_newqv1300_intanq, 60)
ts_corr(fnd6_newqv1300_optrfrq, fnd6_newqv1300_miiq, 90)
ts_std_dev(fnd6_newqv1300_aqpl1q, 180) / ts_mean(fnd6_newqv1300_aqpl1q, 180)
ts_quantile(fnd6_newqv1300_oepsxq, 240, "gaussian") * ts_zscore(fnd6_newqv1300_oepsxq, 120)
ts_backfill(fnd6_newqv1300_txach, 30, 1, "NAN") + ts_delay(fnd6_newqv1300_txach, 5)
ts_sum(fnd6_newqv1300_ciotherq, 60) / ts_sum(fnd6_newqv1300_cibegniq, 60)
ts_av_diff(fnd6_newqv1300_spceepsp12, 90) * ts_rank(fnd6_newqv1300_spceepsp12, 90)
group_scale(fnd6_newqv1300_fcaq, pv13_r2_min20_1000_sector)
ts_decay_linear(fnd6_newqv1300_lltq, 120, false) - ts_decay_linear(fnd6_newqv1300_ivstq, 120, false)
ts_count_nans(fnd6_newqv1300_aociotherq, 30) > 5 ? 0 : fnd6_newqv1300_aociotherq
ts_product(fnd6_newqv1300_prclq, 20) / ts_product(fnd6_newqv1300_prclq, 10)
ts_regression(fnd6_newqv1300_oepsxq, fnd6_newqv1300_spceepsp12, 180, 0, 0)
ts_mean(fnd6_newqv1300_xaccq, 60) * ts_std_dev(fnd6_newqv1300_xaccq, 60)
group_neutralize(fnd6_newqv1300_txdba, pv13_h_min24_500_sector)
ts_delta(fnd6_newqv1300_cptmfmq_dpq, 30) / ts_delay(fnd6_newqv1300_cptmfmq_dpq, 30)
ts_rank(fnd6_newqv1300_xpr, 120) * ts_scale(fnd6_newqv1300_xpr, 60)
ts_zscore(fnd6_newqv1300_sppe, 90) + ts_zscore(fnd6_newqv1300_sppe, 180)
ts_arg_max(fnd6_newqv1300_fato, 120) - ts_arg_min(fnd6_newqv1300_fato, 120)
ts_covariance(fnd6_newqv1300_lltq, fnd6_newqv1300_ivstq, 90) / ts_std_dev(fnd6_newqv1300_lltq, 90)
ts_sum(fnd6_newqv1300_txach, 30) / ts_sum(fnd6_newqv1300_txach, 60)
ts_scale(fnd6_newqv1300_ciotherq, 120) * ts_rank(fnd6_newqv1300_ciotherq, 120)
ts_backfill(fnd6_newqv1300_aqpl1q, 20, 1, "NAN") - ts_delay(fnd6_newqv1300_aqpl1q, 10)
ts_mean(fnd6_newqv1300_intanq, 90) / ts_mean(fnd6_newqv1300_intanq, 180)
ts_quantile(fnd6_newqv1300_oepsxq, 240, "uniform") * ts_zscore(fnd6_newqv1300_oepsxq, 120)
ts_delta(fnd6_newqv1300_txdba, 60) / ts_mean(fnd6_newqv1300_txdba, 60)
ts_corr(fnd6_newqv1300_sppe, fnd6_newqv1300_xpr, 90) * ts_std_dev(fnd6_newqv1300_sppe, 90)
ts_rank(fnd6_newqv1300_lltq, 120) * ts_scale(fnd6_newqv1300_lltq, 60)

@ -27,7 +27,7 @@ MODELS = [
'Pro/deepseek-ai/DeepSeek-V3.1-Terminus',
'deepseek-ai/DeepSeek-V3.2-Exp',
'Qwen/Qwen3-VL-235B-A22B-Instruct',
# 'MiniMaxAI/MiniMax-M2',
'MiniMaxAI/MiniMax-M2',
# 'zai-org/GLM-4.6',
# 'inclusionAI/Ring-flash-2.0',
# 'zai-org/GLM-4.6',
@ -35,7 +35,6 @@ MODELS = [
# 'inclusionAI/Ring-flash-2.0',
]
def process_text(text):
filter_list = ['\n', '\t', '\r', '\b', '\f', '\v', '', '', '', '10', '', '', '', '', '', '', ' ', '', '', '', '',
'/', '', '', '', '_', '-', ')', '(', '', '', '', '', '', '', '', '...', '', '%', '&', '+', ',', '.',
@ -394,7 +393,6 @@ def main():
if USE_AI:
for model in MODELS:
# 如果需要使用模型, 打开这个
call_ai(prompt, model)
time.sleep(5)

@ -0,0 +1,347 @@
Name
Merger and Acquisition Goodwill Impairment Lag Risk
Hypothesis
Goodwill formed from corporate mergers and acquisitions (M&A) usually does not have impairment recognized immediately but with a certain time lag if there are potential issues such as overvaluation and failure to meet performance commitments of the target. The market often fails to fully price this risk before the impairment announcement, leading to a significant pullback in the stock prices of such companies after the announcement. Therefore, establishing short positions in advance for companies with high goodwill and weak target performance can capture excess returns from lagged impairment; on the contrary, companies with high-quality goodwill and stable achievement of target performance can be given positive allocation weights.
Implementation Plan
Screen targets that have undergone M&A in the past 3 years and formed large-scale goodwill (goodwill accounts for more than a certain threshold of total assets), and track core indicators of the merged target such as the completion of performance commitments, revenue growth rate, and net profit margin. Construct a "goodwill quality score" that comprehensively considers three dimensions: the proportion of goodwill scale, the completion rate of target performance commitments, and the M&A premium rate. Use time-series tracking operators to monitor the deviation trend between target performance and commitments. For targets whose performance has failed to meet commitments for two consecutive quarters and have a high goodwill ratio, gradually establish short positions; for targets that exceed performance commitments and have a reasonable goodwill ratio, include them in the long candidate pool.
Alpha Factor Optimization Suggestions
The risk of goodwill impairment varies significantly among different types of M&A (horizontal M&A, vertical M&A, cross-border M&A). Group operators can be used to analyze by M&A type to improve factor pertinence. It is recommended to introduce indicators of valuation rationality at the time of M&A (such as the deviation between M&A PE and industry average PE) as adjustment variables to strengthen risk pricing for high-premium M&A targets. At the same time, combine public opinion data to monitor changes in market expectations for the performance of merged targets. When negative public opinion heats up but no impairment has been recognized, amplify the weight of short signals in advance; in addition, industry neutralization can be used to eliminate interference caused by differences in goodwill ratios across industries, further improving factor effectiveness.
*=========================================================================================*
输出格式:
输出必须是且仅是纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
===================== !!! 重点(输出方式) !!! =====================
现在,请严格遵守以上所有规则,开始生成可立即在WebSim中运行的复合因子表达式。
不要自行假设, 你需要用到的操作符 和 数据集, 必须从我提供给你的里面查找, 并严格按照里面的使用方法进行组合
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不需要赋值, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
=================================================================
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
以下是我的账号有权限使用的操作符, 请严格按照操作符, 以及我提供的数据集, 进行生成,组合 30 个alpha:
不要自行假设, 你需要用到的操作符 和 数据集, 必须从我提供给你的里面查找, 并严格按照里面的使用方法进行组合
=================================================================
ts_product ts_zscore ts_mean ts_scale add sign subtract ts_delta ts_rank greater ts_av_diff ts_quantile ts_count_nans ts_covariance
ts_arg_min divide ts_corr multiply if_else ts_sum ts_delay group_zscore ts_arg_max ts_std_de ts_backfill
以上这些操作符不能传入事件类型的数据集, 只能传入时间序列数据集, 不能传入事件数据,不能传入事件数据,不能传入事件数据
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
========================= 操作符开始 =======================================
注意: Operator: 后面的是操作符(是可以使用的),
Description: 此字段后面的是操作符对应的描述或使用说明(禁止使用, 仅供参考), Description字段后面的内容是使用说明, 不是操作符
特别注意!!!! 必须按照操作符字段Operator的使用说明生成 alphaOperator: abs(x)
Description: Absolute value of x
Operator: add(x, y, filter = false)
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)
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)
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)
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.
========================= 操作符结束 =======================================
========================= 数据字段开始 =======================================
注意: data_set_name: 后面的是数据字段(可以使用), description: 此字段后面的是数据字段对应的描述或使用说明(不能使用), description_cn字段后面的内容是中文使用说明(不能使用)
{'data_set_name': '可以使用:forward_price_120', 'description': '不可使用,仅供参考: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.'}
{'data_set_name': '可以使用:fnd6_capxv', 'description': '不可使用,仅供参考:Capital Expend Property, Plant and Equipment Schd V'}
{'data_set_name': '可以使用:fnd6_ciother', 'description': '不可使用,仅供参考:Comp. Inc. - Other Adj.'}
{'data_set_name': '可以使用:fnd6_eventv110_gdwlidq', 'description': '不可使用,仅供参考:Impairment of Goodwill Diluted EPS Effect'}
{'data_set_name': '可以使用:fnd6_eventv110_gdwlieps12', 'description': '不可使用,仅供参考:Impairment of Goodwill Basic EPS Effect 12MM'}
{'data_set_name': '可以使用:fnd6_eventv110_gdwliepsq', 'description': '不可使用,仅供参考:Impairment of Goodwill Basic EPS Effect'}
{'data_set_name': '可以使用:fnd6_newa2v1300_oiadp', 'description': '不可使用,仅供参考:Operating Income After Depreciation'}
{'data_set_name': '可以使用:fnd6_newqeventv110_cibegniq', 'description': '不可使用,仅供参考:Comp Inc - Beginning Net Income'}
{'data_set_name': '可以使用:fnd6_newqeventv110_gdwlamq', 'description': '不可使用,仅供参考:Amortization of Goodwill'}
{'data_set_name': '可以使用:fnd6_newqeventv110_gdwlia12', 'description': '不可使用,仅供参考:Impairments of Goodwill After-Tax - 12MM'}
{'data_set_name': '可以使用:fnd6_newqeventv110_gdwliaq', 'description': '不可使用,仅供参考:Impairment of Goodwill After-tax'}
{'data_set_name': '可以使用:fnd6_newqeventv110_gdwlipq', 'description': '不可使用,仅供参考:Impairment of Goodwill Pretax'}
{'data_set_name': '可以使用:fnd6_newqeventv110_spcedq', 'description': '不可使用,仅供参考:S&P Core Earnings EPS Diluted'}
{'data_set_name': '可以使用:fnd6_newqv1300_ciotherq', 'description': '不可使用,仅供参考:Comp Inc - Other Adj'}
{'data_set_name': '可以使用:fnd6_newqv1300_spceepsp12', 'description': '不可使用,仅供参考:S&P Core 12MM EPS - Basic - Preliminary'}
{'data_set_name': '可以使用:fnd6_oiadps', 'description': '不可使用,仅供参考:Operating Income after Depreciation'}
{'data_set_name': '可以使用:goodwill', 'description': '不可使用,仅供参考:Goodwill (net)'}
{'data_set_name': '可以使用:sales_ps', 'description': '不可使用,仅供参考:Sales per Share (Quarterly)'}
{'data_set_name': '可以使用:fscore_bfl_total', 'description': '不可使用,仅供参考:The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.'}
{'data_set_name': '可以使用:fscore_total', 'description': '不可使用,仅供参考:The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.'}
{'data_set_name': '可以使用:multi_factor_acceleration_score_derivative', 'description': '不可使用,仅供参考:Change in the acceleration of multi-factor score compared to previous period.'}
{'data_set_name': '可以使用:anl4_netdebt_flag', 'description': '不可使用,仅供参考:Net debt - forecast type (revision/new/...)'}
{'data_set_name': '可以使用:anl4_totgw_high', 'description': '不可使用,仅供参考:Total Goodwill - The highest estimation'}
{'data_set_name': '可以使用:anl4_totgw_median', 'description': '不可使用,仅供参考:Total Goodwill - median of estimations'}
{'data_set_name': '可以使用:min_reported_eps_guidance', 'description': '不可使用,仅供参考:Reported Earnings Per Share - Minimum guidance value for the annual period'}
{'data_set_name': '可以使用:total_goodwill_amount', 'description': '不可使用,仅供参考:Total Goodwill - Value'}
{'data_set_name': '可以使用:news_max_up_amt', 'description': '不可使用,仅供参考:The after the news high minus the price at the time of the news'}
{'data_set_name': '可以使用:nws18_sse', 'description': '不可使用,仅供参考:Sentiment of phrases impacting the company'}
{'data_set_name': '可以使用:fn_comp_not_rec_a', 'description': '不可使用,仅供参考:Unrecognized cost of unvested share-based compensation awards.'}
{'data_set_name': '可以使用:fn_comp_not_rec_stock_options_a', 'description': '不可使用,仅供参考:Unrecognized cost of unvested stock option awards.'}
{'data_set_name': '可以使用:fn_comp_not_rec_stock_options_q', 'description': '不可使用,仅供参考:Unrecognized cost of unvested stock option awards.'}
{'data_set_name': '可以使用:fn_def_tax_assets_liab_net_q', 'description': '不可使用,仅供参考:Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.'}
{'data_set_name': '可以使用:fn_def_tax_liab_a', 'description': '不可使用,仅供参考:Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.'}
{'data_set_name': '可以使用:fn_liab_fair_val_a', 'description': '不可使用,仅供参考:Liabilities Fair Value, Recurring, Total'}
{'data_set_name': '可以使用:fn_op_lease_min_pay_due_in_2y_a', 'description': '不可使用,仅供参考: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 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.'}
{'data_set_name': '可以使用:fn_treasury_stock_shares_a', 'description': '不可使用,仅供参考:Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.'}
{'data_set_name': '可以使用:nws12_prez_opengap', 'description': '不可使用,仅供参考:(DayOpen - PrevClose) / PrevClose.'}
{'data_set_name': '可以使用:fnd6_naicss', 'description': '不可使用,仅供参考:NAICS Code'}
{'data_set_name': '可以使用:anl4_cfo_median', 'description': '不可使用,仅供参考:Cash Flow From Operations - median of estimations'}
{'data_set_name': '可以使用:fnd6_newa2v1300_recch', 'description': '不可使用,仅供参考:Accounts Receivable - Decrease (Increase)'}
{'data_set_name': '可以使用:news_atr_ratio', 'description': "不可使用,仅供参考:Ratio of today's range to 20-day average true range"}
{'data_set_name': '可以使用:fnd6_newqeventv110_tstknq', 'description': '不可使用,仅供参考:Treasury Stock - Number of Common Shares'}
{'data_set_name': '可以使用:fn_antidilutive_securities_excl_from_eps_q', 'description': '不可使用,仅供参考:Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.'}
{'data_set_name': '可以使用:dividend_estimate_minimum', 'description': '不可使用,仅供参考:Dividend per share - The lowest value among forecasts - D1'}
{'data_set_name': '可以使用:fnd6_newqv1300_seqq', 'description': "不可使用,仅供参考:Stockholders' Equity - Total - Quarterly"}
{'data_set_name': '可以使用:fn_comp_options_out_number_q', 'description': '不可使用,仅供参考:Number of options outstanding, including both vested and non-vested options.'}
{'data_set_name': '可以使用:fnd6_eventv110_glepsq', 'description': '不可使用,仅供参考:Gain/Loss Basic EPS Effect'}
{'data_set_name': '可以使用:fnd6_txndbl', 'description': '不可使用,仅供参考:Net Deferred Tax Liability'}
{'data_set_name': '可以使用:nws12_afterhsz_mktcap', 'description': '不可使用,仅供参考:Reported market capitalization for the calendar day of the session'}
{'data_set_name': '可以使用:income', 'description': '不可使用,仅供参考:Net Income'}
{'data_set_name': '可以使用:fnd6_newa1v1300_ibc', 'description': '不可使用,仅供参考:Income Before Extraordinary Items (Cash Flow)'}
{'data_set_name': '可以使用:fnd6_prstkc', 'description': '不可使用,仅供参考:Purchase of Common and Preferred Stock'}
{'data_set_name': '可以使用:eps_previous_estimate_value', 'description': '不可使用,仅供参考:The previous estimation of Earnings Per Share'}
{'data_set_name': '可以使用:snt_buzz_ret_fast_d1', 'description': '不可使用,仅供参考:negative return of relative sentiment volume'}
{'data_set_name': '可以使用:pcr_vol_180', 'description': "不可使用,仅供参考:Ratio of put volume to call volume on a stock's options with expiration 180 days in the future."}
{'data_set_name': '可以使用:fnd2_unrgtxbnfinregfprtxps', 'description': '不可使用,仅供参考:Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.'}
{'data_set_name': '可以使用:anl4_fcf_value', 'description': '不可使用,仅供参考:Free cash flow- announced financial value'}
{'data_set_name': '可以使用:fnd6_newqv1300_aocisecglq', 'description': '不可使用,仅供参考:Accum Other Comp Inc - Unreal G/L Ret Int in Sec Assets'}
{'data_set_name': '可以使用:news_main_vwap', 'description': '不可使用,仅供参考:Main session volume weighted average price'}
{'data_set_name': '可以使用:fnd6_newa1v1300_ivncf', 'description': '不可使用,仅供参考:Investing Activities - Net Cash Flow'}
{'data_set_name': '可以使用:gross_income_reported_value', 'description': '不可使用,仅供参考:Gross Income value for the quarter'}
{'data_set_name': '可以使用:pv13_hierarchy_min10_top3000_513_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:anl4_qfd1_az_hgih_vid', 'description': '不可使用,仅供参考:Dividend per share - The highest estimation'}
{'data_set_name': '可以使用:fnd6_newqeventv110_pncidpq', 'description': '不可使用,仅供参考:Core Pension Interest Adjustment Diluted EPS Effect Preliminary'}
{'data_set_name': '可以使用:fnd6_spis', 'description': '不可使用,仅供参考:Special Items'}
{'data_set_name': '可以使用:pv13_hierarchy_min20_3k_513_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:fnd6_nxints', 'description': '不可使用,仅供参考:Net Interest Income (Expense)'}
{'data_set_name': '可以使用:fnd6_dlto', 'description': '不可使用,仅供参考:Debt - Long-Term - Other'}
{'data_set_name': '可以使用:anl4_basicconqfv110_down', 'description': '不可使用,仅供参考:Number of lower estimations'}
{'data_set_name': '可以使用:fnd6_newqeventv110_miiq', 'description': '不可使用,仅供参考:Noncontrolling Interest - Income Account'}
{'data_set_name': '可以使用:nws12_mainz_1l', 'description': '不可使用,仅供参考:Number of minutes that elapsed before price went up 1 percentage point'}
{'data_set_name': '可以使用:sales_growth', 'description': '不可使用,仅供参考:Growth in Sales (Quarterly)'}
{'data_set_name': '可以使用:fnd6_newqv1300_cshoq', 'description': '不可使用,仅供参考:Common Shares Outstanding'}
{'data_set_name': '可以使用:fnd2_a_acmopcldbpoprpnt', 'description': '不可使用,仅供参考:The total of net gain (loss), prior service cost (credit), and transition assets (obligations), as well as minimum pension liability if still remaining, included in accumulated other comprehensive income associated with a defined benefit pension or other postretirement plan(s) because they have yet to be recognized as components of net periodic benefit cost.'}
{'data_set_name': '可以使用:fnd6_newqeventv110_xopt12', 'description': '不可使用,仅供参考:Implied Option Expense - 12mm'}
{'data_set_name': '可以使用:fn_assets_fair_val_l3_q', 'description': '不可使用,仅供参考:Asset Fair Value, Recurring, Level 3'}
{'data_set_name': '可以使用:pv13_hierarchy_min10_sector_3000_513_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:pcr_vol_270', 'description': "不可使用,仅供参考:Ratio of put volume to call volume on a stock's options with expiration 270 days in the future."}
{'data_set_name': '可以使用:pv13_com_rk_au', 'description': '不可使用,仅供参考:the HITS authority score of competitors'}
{'data_set_name': '可以使用:fnd2_a_consinprogressg', 'description': '不可使用,仅供参考: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.'}
{'data_set_name': '可以使用:anl4_fcf_flag', 'description': '不可使用,仅供参考:Free cash flow - forecast type (revision/new/...)'}
{'data_set_name': '可以使用:fnd6_itci', 'description': '不可使用,仅供参考:Investment Tax Credit (Income Account)'}
{'data_set_name': '可以使用:pv13_hierarchy_f1_513_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:fnd6_eventv110_setepsq', 'description': '不可使用,仅供参考:Settlement (Litigation/Insurance) Basic EPS Effect'}
{'data_set_name': '可以使用:min_shareholders_equity_guidance', 'description': "不可使用,仅供参考:Minimum guidance value for Shareholders' Equity"}
{'data_set_name': '可以使用:fnd6_newqeventv110_oepsxq', 'description': '不可使用,仅供参考:Earnings Per Share - Diluted - from Operations'}
{'data_set_name': '可以使用:fnd6_eventv110_txdbclq', 'description': '不可使用,仅供参考:Current Deferred Tax Liability'}
{'data_set_name': '可以使用:fnd6_newqeventv110_spcepq', 'description': '不可使用,仅供参考:S&P Core Earnings - Preliminary'}
{'data_set_name': '可以使用:fnd6_ranks', 'description': '不可使用,仅供参考:Ranking'}
{'data_set_name': '可以使用:fnd6_prcl', 'description': '不可使用,仅供参考:Price Low - Annual'}
{'data_set_name': '可以使用:anl4_basicdetailqfv110_prevval', 'description': '不可使用,仅供参考:The previous estimation of financial item'}
{'data_set_name': '可以使用:rp_css_credit_ratings', 'description': '不可使用,仅供参考:Composite sentiment score of credit ratings news'}
{'data_set_name': '可以使用:fnd2_itxreexftfedstyitxrt', 'description': '不可使用,仅供参考:Income tax amount computed at the federal tax rate, before any adjustments'}
{'data_set_name': '可以使用:nws12_mainz_2p', 'description': '不可使用,仅供参考:The minimum of L or S above for 2 minute bucket'}
{'data_set_name': '可以使用:cash_flow_from_investing', 'description': '不可使用,仅供参考:Cash Flow from Investing - Value'}
{'data_set_name': '可以使用:earnings_per_share_nongaap_value', 'description': '不可使用,仅供参考:Non-GAAP Earnings Per Share - Actual Value'}
{'data_set_name': '可以使用:news_post_vwap', 'description': '不可使用,仅供参考:Post-session volume-weighted average price'}
{'data_set_name': '可以使用:nws12_prez_tonlast', 'description': '不可使用,仅供参考:Price at the time of news'}
{'data_set_name': '可以使用:fnd6_newq_xoptdqp', 'description': '不可使用,仅供参考:Implied Option EPS Diluted Preliminary'}
{'data_set_name': '可以使用:fn_debt_issuance_costs_q', 'description': '不可使用,仅供参考:Amount of debt issuance costs (for example, but not limited to, legal, accounting, broker, and regulatory fees).'}
{'data_set_name': '可以使用:news_max_dn_ret', 'description': '不可使用,仅供参考:Percent change from the price at the time of the news to the after the news low'}
{'data_set_name': '可以使用:nws12_prez_120_min', 'description': '不可使用,仅供参考:The percent change in price in the first 120 minutes following the news release'}
{'data_set_name': '可以使用:pv13_hierarchy_min20_513_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:nws12_afterhsz_01l', 'description': '不可使用,仅供参考:Number of minutes that elapsed before price went up 10 percentage points'}
{'data_set_name': '可以使用:fnd6_dd4', 'description': '不可使用,仅供参考:Debt Due in 4th Year'}
{'data_set_name': '可以使用:nws12_mainz_5p', 'description': '不可使用,仅供参考:The minimum of L or S above for 5-minute bucket'}
{'data_set_name': '可以使用:nws12_prez_dayopen', 'description': '不可使用,仅供参考:Price at the session open'}
{'data_set_name': '可以使用:fnd6_cptnewqv1300_dpq', 'description': '不可使用,仅供参考:Depreciation and Amortization - Total'}
{'data_set_name': '可以使用:fnd2_dfdfritxexp', 'description': '不可使用,仅供参考:Income Tax Expense, Deferred - Foreign'}
{'data_set_name': '可以使用:pv13_hierarchy_min10_1000_513_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:nws18_qmb', 'description': '不可使用,仅供参考:News sentiment specializing in editorials on global markets'}
{'data_set_name': '可以使用:fnd6_newqeventv110_prcaq', 'description': '不可使用,仅供参考:Core Post-Retirement Adjustment'}
{'data_set_name': '可以使用:market', 'description': '不可使用,仅供参考:Market grouping'}
{'data_set_name': '可以使用:fnd6_cptrank_gvkeymap', 'description': '不可使用,仅供参考:technical code for a company, no need to use it for research'}
{'data_set_name': '可以使用:pv13_hierarchy_min25_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:nws12_mainz_postvwap', 'description': '不可使用,仅供参考:Post session volume weighted average price'}
{'data_set_name': '可以使用:fnd6_cptnewqeventv110_dlttq', 'description': '不可使用,仅供参考:Long-Term Debt - Total'}
{'data_set_name': '可以使用:fnd6_newqeventv110_aol2q', 'description': '不可使用,仅供参考:Assets Level 2 (Observable)'}
{'data_set_name': '可以使用:pretax_income_actual_reported_value', 'description': '不可使用,仅供参考:Reported Pretax income- announced financial value'}
{'data_set_name': '可以使用:pv13_5l_scibr', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:anl4_qf_az_eps_number', 'description': '不可使用,仅供参考:Earnings per share - number of estimations'}
{'data_set_name': '可以使用:fnd6_eventv110_xaccq', 'description': '不可使用,仅供参考:Accrued Expenses'}
{'data_set_name': '可以使用:fnd2_q_flintasamt1expytwo', 'description': '不可使用,仅供参考: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.'}
{'data_set_name': '可以使用:nws12_afterhsz_4s', 'description': '不可使用,仅供参考:Number of minutes that elapsed before price went down 4 percentage points'}
{'data_set_name': '可以使用:fnd6_eventv110_aqepsq', 'description': '不可使用,仅供参考:Acquisition/Merger Basic EPS Effect'}
{'data_set_name': '可以使用:sales_estimate_minimum', 'description': '不可使用,仅供参考:Sales - The lowest estimation'}
{'data_set_name': '可以使用:fn_finite_lived_intangible_assets_gross_q', 'description': '不可使用,仅供参考:Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.'}
{'data_set_name': '可以使用:fnd6_newqv1300_spiq', 'description': '不可使用,仅供参考:Special Items'}
{'data_set_name': '可以使用:fnd6_cptnewqeventv110_actq', 'description': '不可使用,仅供参考:Current Assets - Total'}
{'data_set_name': '可以使用:fnd2_dfdtxasoprlcarryfwd', 'description': '不可使用,仅供参考:Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards.'}
{'data_set_name': '可以使用:news_tot_ticks', 'description': '不可使用,仅供参考:Total number of ticks for the trading day'}
{'data_set_name': '可以使用:anl4_ebit_number', 'description': '不可使用,仅供参考:Earnings before interest and taxes - number of estimations'}
{'data_set_name': '可以使用:fnd6_newqv1300_intanoq', 'description': '不可使用,仅供参考:Other Intangibles'}
{'data_set_name': '可以使用:fnd6_newqv1300_ppentq', 'description': '不可使用,仅供参考:Property Plant and Equipment - Total (Net)'}
{'data_set_name': '可以使用:pcr_oi_720', 'description': "不可使用,仅供参考:Ratio of put open interest to call open interest on a stock's options with expiration 720 days in the future."}
{'data_set_name': '可以使用:systematic_risk_last_90_days', 'description': '不可使用,仅供参考:Systematic Risk Last 90 Days'}
========================= 数据字段结束 =======================================
以上数据字段和操作符, 按照Description说明组合, 但是每一个 alpha 组合的使用的数据字段和操作符不要过于集中, 在符合语法的情况下, 多尝试不同的组合
你再检查一下, 如果你使用了
Operator abs does not support event inputs
Operator ts_mean does not support event inputs
Operator ts_scale does not support event inputs
Operator add does not support event inputs
Operator sign does not support event inputs
Operator greater does not support event inputs
Operator ts_av_diff does not support event inputs
Operator ts_quantile does not support event inputs
Operator ts_arg_min does not support event inputs
Operator divide does not support event inputs
Operator ts_corr does not support event inputs
Operator ts_decay_linear does not support event inputs
Operator ts_sum does not support event inputs
Operator ts_delay does not support event inputs
Operator ts_arg_max does not support event inputs
Operator ts_std_dev does not support event inputs
Operator ts_regression does not support event inputs
Operator ts_backfill does not support event inputs
Operator signed_power does not support event inputs
Operator ts_product does not support event inputs
Operator ts_zscore does not support event inputs
Operator group_rank does not support event inputs
Operator subtract does not support event inputs
Operator ts_delta does not support event inputs
Operator ts_rank does not support event inputs
Operator ts_count_nans does not support event inputs
Operator ts_covariance does not support event inputs
Operator multiply does not support event inputs
Operator if_else does not support event inputs
Operator group_neutralize does not support event inputs
Operator group_zscore does not support event inputs
Operator winsorize does not support event inputs
注意, 以上操作符不能使用事件类型的数据集, 以上操作符禁止使用事件类型的数据集!!

@ -0,0 +1,347 @@
避险情绪传染效应
假设
当市场出现重大系统性风险事件(如流动性危机、地缘冲突、政策巨变)时,投资者避险情绪会迅速蔓延,但不同资产或同类别资产中不同个体对恐慌的“免疫力”存在差异。部分具备强健基本面的公司,其股价在短期恐慌中被过度抛售,形成了显著的价值背离。随着市场情绪平复,这类资产的价格修复动能和速度将远超于那些在恐慌中表现“相对抗跌”、但基本面实则脆弱的资产。对前者建立多头仓位,对后者建立空头仓位,可以捕捉恐慌消退过程中的错误定价修正收益。
实施方案
构建一个“避险期相对弱势-基本面强势”的复合识别因子。首先,使用价量数据识别过去一个月内市场经历显著下跌(例如,基准指数跌幅超过一定阈值)的“避险时期”。在该时期内,计算每只股票相对于其所属行业指数的收益率差值,筛选出“超跌”股票池(即相对弱势)。然后,在此股票池内,运用多维度基本面数据(如高现金流负债比、低短期偿债压力、稳定的盈利能力)计算一个“财务韧性综合评分”。最终,对“超跌”且“财务韧性评分高”的股票赋予正向阿尔法权重,对“抗跌”但“财务韧性评分低”的股票赋予负向权重。
阿尔法因子优化建议
建议采用动态的事件窗口定义方式,而非固定的一个月。可使用波动率突破或市场广度极端值作为“避险时期”的触发信号,以提升事件识别的敏锐度。此外,“财务韧性”的衡量标准应具有横截面可比性,建议先按行业分组计算财务指标的分位数排名,再进行加总,以实现初步的行业中性化,更纯粹地剥离出同行业内的“错杀”与“伪抗跌”标的。
Hedging Sentiment Contagion Effect
Hypothesis
When significant systemic risk events occur in the market (e.g., liquidity crises, geopolitical conflicts, major policy shifts), investor risk-off sentiment spreads rapidly. However, different assets, or different individuals within the same asset class, exhibit varying degrees of "immunity" to panic. The prices of some companies with robust fundamentals are excessively sold off during short-term panic, creating a significant value dislocation. As market sentiment stabilizes, the price recovery momentum and speed of such assets will far exceed those assets that appeared "relatively resilient" during the panic but actually have fragile fundamentals. Establishing long positions in the former and short positions in the latter can capture the mispricing correction returns during the panic dissipation process.
Implementation Plan
Construct a composite identification factor of "Relative Weakness During Risk-Off Period & Fundamental Strength". First, use price and volume data to identify "risk-off periods" in the past month where the market experienced significant declines (e.g., a benchmark index drop exceeding a certain threshold). During this period, calculate the return differential of each stock relative to its sector index to screen for an "oversold" stock pool (i.e., relative weakness). Then, within this pool, calculate a "Financial Resilience Composite Score" using multi-dimensional fundamental data (e.g., high cash flow to debt ratio, low short-term solvency pressure, stable profitability). Finally, assign positive alpha weights to stocks that are both "oversold" and have a "high Financial Resilience Score", and negative weights to stocks that are "resilient" but have a "low Financial Resilience Score".
Alpha Factor Optimization Suggestions
It is recommended to adopt a dynamic event window definition instead of a fixed one-month period. Volatility breakout or extreme market breadth values can be used as triggers for the "risk-off period" to improve the sensitivity of event identification. Furthermore, the measurement criteria for "Financial Resilience" should have cross-sectional comparability. It is suggested to first calculate the percentile ranking of financial metrics within industry groups before aggregation to achieve preliminary industry neutralization, more purely isolating the "wrongfully sold" and "falsely resilient" targets within the same industry.
*=========================================================================================*
输出格式:
输出必须是且仅是纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
===================== !!! 重点(输出方式) !!! =====================
现在,请严格遵守以上所有规则,开始生成可立即在WebSim中运行的复合因子表达式。
不要自行假设, 你需要用到的操作符 和 数据集, 必须从我提供给你的里面查找, 并严格按照里面的使用方法进行组合
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不需要赋值, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
=================================================================
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
以下是我的账号有权限使用的操作符, 请严格按照操作符, 以及我提供的数据集, 进行生成,组合 30 个alpha:
不要自行假设, 你需要用到的操作符 和 数据集, 必须从我提供给你的里面查找, 并严格按照里面的使用方法进行组合
=================================================================
ts_product ts_zscore ts_mean ts_scale add sign subtract ts_delta ts_rank greater ts_av_diff ts_quantile ts_count_nans ts_covariance
ts_arg_min divide ts_corr multiply if_else ts_sum ts_delay group_zscore ts_arg_max ts_std_de ts_backfill
以上这些操作符不能传入事件类型的数据集, 只能传入时间序列数据集, 不能传入事件数据,不能传入事件数据,不能传入事件数据
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
========================= 操作符开始 =======================================
注意: Operator: 后面的是操作符(是可以使用的),
Description: 此字段后面的是操作符对应的描述或使用说明(禁止使用, 仅供参考), Description字段后面的内容是使用说明, 不是操作符
特别注意!!!! 必须按照操作符字段Operator的使用说明生成 alphaOperator: abs(x)
Description: Absolute value of x
Operator: add(x, y, filter = false)
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)
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)
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)
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.
========================= 操作符结束 =======================================
========================= 数据字段开始 =======================================
注意: data_set_name: 后面的是数据字段(可以使用), description: 此字段后面的是数据字段对应的描述或使用说明(不能使用), description_cn字段后面的内容是中文使用说明(不能使用)
{'data_set_name': '可以使用:forward_price_120', 'description': '不可使用,仅供参考: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.'}
{'data_set_name': '可以使用:fnd6_capxv', 'description': '不可使用,仅供参考:Capital Expend Property, Plant and Equipment Schd V'}
{'data_set_name': '可以使用:fnd6_ciother', 'description': '不可使用,仅供参考:Comp. Inc. - Other Adj.'}
{'data_set_name': '可以使用:fnd6_eventv110_gdwlidq', 'description': '不可使用,仅供参考:Impairment of Goodwill Diluted EPS Effect'}
{'data_set_name': '可以使用:fnd6_eventv110_gdwlieps12', 'description': '不可使用,仅供参考:Impairment of Goodwill Basic EPS Effect 12MM'}
{'data_set_name': '可以使用:fnd6_eventv110_gdwliepsq', 'description': '不可使用,仅供参考:Impairment of Goodwill Basic EPS Effect'}
{'data_set_name': '可以使用:fnd6_newqeventv110_gdwlamq', 'description': '不可使用,仅供参考:Amortization of Goodwill'}
{'data_set_name': '可以使用:fnd6_newqeventv110_gdwlia12', 'description': '不可使用,仅供参考:Impairments of Goodwill After-Tax - 12MM'}
{'data_set_name': '可以使用:fnd6_newqeventv110_gdwliaq', 'description': '不可使用,仅供参考:Impairment of Goodwill After-tax'}
{'data_set_name': '可以使用:fnd6_newqeventv110_gdwlipq', 'description': '不可使用,仅供参考:Impairment of Goodwill Pretax'}
{'data_set_name': '可以使用:fnd6_newqeventv110_spcedq', 'description': '不可使用,仅供参考:S&P Core Earnings EPS Diluted'}
{'data_set_name': '可以使用:fnd6_newqv1300_ciotherq', 'description': '不可使用,仅供参考:Comp Inc - Other Adj'}
{'data_set_name': '可以使用:goodwill', 'description': '不可使用,仅供参考:Goodwill (net)'}
{'data_set_name': '可以使用:sales_ps', 'description': '不可使用,仅供参考:Sales per Share (Quarterly)'}
{'data_set_name': '可以使用:fscore_bfl_total', 'description': '不可使用,仅供参考:The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.'}
{'data_set_name': '可以使用:multi_factor_acceleration_score_derivative', 'description': '不可使用,仅供参考:Change in the acceleration of multi-factor score compared to previous period.'}
{'data_set_name': '可以使用:anl4_netdebt_flag', 'description': '不可使用,仅供参考:Net debt - forecast type (revision/new/...)'}
{'data_set_name': '可以使用:anl4_totgw_high', 'description': '不可使用,仅供参考:Total Goodwill - The highest estimation'}
{'data_set_name': '可以使用:anl4_totgw_median', 'description': '不可使用,仅供参考:Total Goodwill - median of estimations'}
{'data_set_name': '可以使用:min_reported_eps_guidance', 'description': '不可使用,仅供参考:Reported Earnings Per Share - Minimum guidance value for the annual period'}
{'data_set_name': '可以使用:total_goodwill_amount', 'description': '不可使用,仅供参考:Total Goodwill - Value'}
{'data_set_name': '可以使用:pv13_com_rk_au', 'description': '不可使用,仅供参考:the HITS authority score of competitors'}
{'data_set_name': '可以使用:news_max_up_amt', 'description': '不可使用,仅供参考:The after the news high minus the price at the time of the news'}
{'data_set_name': '可以使用:nws18_sse', 'description': '不可使用,仅供参考:Sentiment of phrases impacting the company'}
{'data_set_name': '可以使用:fn_comp_not_rec_stock_options_a', 'description': '不可使用,仅供参考:Unrecognized cost of unvested stock option awards.'}
{'data_set_name': '可以使用:fn_comp_not_rec_stock_options_q', 'description': '不可使用,仅供参考:Unrecognized cost of unvested stock option awards.'}
{'data_set_name': '可以使用:fn_def_tax_assets_liab_net_q', 'description': '不可使用,仅供参考:Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.'}
{'data_set_name': '可以使用:fn_def_tax_liab_a', 'description': '不可使用,仅供参考:Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.'}
{'data_set_name': '可以使用:fn_treasury_stock_shares_a', 'description': '不可使用,仅供参考:Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.'}
{'data_set_name': '可以使用:fn_accrued_liab_curr_q', 'description': '不可使用,仅供参考: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.'}
{'data_set_name': '可以使用:nws12_mainz_prevday', 'description': "不可使用,仅供参考:Percent change between the previous day's open and close"}
{'data_set_name': '可以使用:pv13_h_min51_f3_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:fnd6_optdr', 'description': '不可使用,仅供参考:Dividend Rate - Assumption (%)'}
{'data_set_name': '可以使用:pv13_hierarchy_min10_sector_3000_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:pv13_rha2_min30_3000_513_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:anl4_adjusted_netincome_ft', 'description': '不可使用,仅供参考:Adjusted net income - forecast type (revision/new/...)'}
{'data_set_name': '可以使用:capital_expenditure_max_guidance_qtr', 'description': '不可使用,仅供参考:The maximum guidance value for Capital Expenditures'}
{'data_set_name': '可以使用:nws12_prez_90_min', 'description': '不可使用,仅供参考:The percent change in price in the first 90 minutes following the news release'}
{'data_set_name': '可以使用:max_adjusted_net_income_guidance', 'description': '不可使用,仅供参考:The maximum guidance value for Adjusted net income.'}
{'data_set_name': '可以使用:rp_nip_marketing', 'description': '不可使用,仅供参考:News impact projection of marketing news'}
{'data_set_name': '可以使用:news_cap', 'description': '不可使用,仅供参考:Reported market capitalization for the calendar day of the session'}
{'data_set_name': '可以使用:anl4_epsr_mean', 'description': '不可使用,仅供参考:GAAP Earnings per share - mean of estimations'}
{'data_set_name': '可以使用:fnd6_lcoxdr', 'description': '不可使用,仅供参考:Current Liabilities - Other - Excluding Deferred Revenue'}
{'data_set_name': '可以使用:fn_oth_income_loss_fx_transaction_and_tax_translation_adj_a', 'description': '不可使用,仅供参考:Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity, and intra-entity foreign currency transactions that are of a long-term-investment nature.'}
{'data_set_name': '可以使用:fn_comp_non_opt_forfeited_q', 'description': '不可使用,仅供参考:The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.'}
{'data_set_name': '可以使用:nws12_afterhsz_1l', 'description': '不可使用,仅供参考:Number of minutes that elapsed before price went up 1 percentage points'}
{'data_set_name': '可以使用:fn_entity_common_stock_shares_out_a', 'description': "不可使用,仅供参考:Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument."}
{'data_set_name': '可以使用:fnd6_newqv1300_fcaq', 'description': '不可使用,仅供参考:Foreign Exchange Income (Loss)'}
{'data_set_name': '可以使用:pv13_revere_level', 'description': '不可使用,仅供参考:Level of the sector within the hierarchy'}
{'data_set_name': '可以使用:fnd6_obs', 'description': '不可使用,仅供参考:Order Backlog'}
{'data_set_name': '可以使用:pv13_hierarchy_min2_focused_only_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:nws12_prez_highexcstddev', 'description': '不可使用,仅供参考:(EODHigh - TONLast)/StdDev, where StdDev is one standard deviation for the close price for 30 calendar days'}
{'data_set_name': '可以使用:pv13_hierarchy_min30_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:shareholders_equity_reported_value', 'description': "不可使用,仅供参考:Shareholders' Equity - Total Value"}
{'data_set_name': '可以使用:news_open_vol', 'description': '不可使用,仅供参考:Main open volume'}
{'data_set_name': '可以使用:anl4_dez1basicafv4v104_preest', 'description': '不可使用,仅供参考:The previous estimation of financial item'}
{'data_set_name': '可以使用:fnd6_mfma1_dpc', 'description': '不可使用,仅供参考:Depreciation and Amortization (Cash Flow)'}
{'data_set_name': '可以使用:fnd6_optvolq', 'description': '不可使用,仅供参考:Volatility - Assumption (%)'}
{'data_set_name': '可以使用:nws12_prez_dayopen', 'description': '不可使用,仅供参考:Price at the session open'}
{'data_set_name': '可以使用:fnd6_newqv1300_rdipaq', 'description': '不可使用,仅供参考:In Process R&D Expense After-tax'}
{'data_set_name': '可以使用:anl4_qfv4_div_high', 'description': '不可使用,仅供参考:Dividend per share - The highest estimation'}
{'data_set_name': '可以使用:anl4_eaz1laf_estvalue', 'description': '不可使用,仅供参考:Estimation value'}
{'data_set_name': '可以使用:nws12_mainz_01l', 'description': '不可使用,仅供参考:Number of minutes that elapsed before price went up 10 percentage points'}
{'data_set_name': '可以使用:fnd6_mrcta', 'description': '不可使用,仅供参考:Thereafter Portion of Leases'}
{'data_set_name': '可以使用:fnd6_divd', 'description': '不可使用,仅供参考:Cash Dividends - Daily'}
{'data_set_name': '可以使用:fnd6_newqeventv110_pnrshoq', 'description': '不可使用,仅供参考:Nonred Pfd Shares Outs (000) - Quarterly'}
{'data_set_name': '可以使用:fnd6_am', 'description': '不可使用,仅供参考:Amortization of Intangibles'}
{'data_set_name': '可以使用:anl4_eaz2lqfv110_estvalue', 'description': '不可使用,仅供参考:Estimation value'}
{'data_set_name': '可以使用:pv13_revere_comproduct_company', 'description': '不可使用,仅供参考:Company product'}
{'data_set_name': '可以使用:nws12_afterhsz_4l', 'description': '不可使用,仅供参考:Number of minutes that elapsed before price went up 4 percentage points'}
{'data_set_name': '可以使用:cashflow_per_share_maximum', 'description': '不可使用,仅供参考:Cash Flow - The highest estimation, per share, with a delay of 1 quarter'}
{'data_set_name': '可以使用:fnd2_dfdtxlbsgwllandintas', 'description': '不可使用,仅供参考:Amount of deferred tax liability attributable to taxable temporary differences from intangible assets including goodwill.'}
{'data_set_name': '可以使用:fnd6_newa1v1300_dvc', 'description': '不可使用,仅供参考:Dividends Common/Ordinary'}
{'data_set_name': '可以使用:anl4_cff_value', 'description': '不可使用,仅供参考:Cash Flow From Financing - announced financial value'}
{'data_set_name': '可以使用:nws12_prez_open_vol', 'description': '不可使用,仅供参考:Main open volume'}
{'data_set_name': '可以使用:max_adjusted_net_profit_guidance', 'description': '不可使用,仅供参考:The maximum guidance value for adjusted net profit on an annual basis.'}
{'data_set_name': '可以使用:fnd6_optprcey', 'description': '不可使用,仅供参考:Options Outstanding End of Year - Price'}
{'data_set_name': '可以使用:selling_general_admin_expense_actual_value', 'description': '不可使用,仅供参考:Selling, General & Administrative Expense - actual value'}
{'data_set_name': '可以使用:pv13_h_min22_1000_sector', 'description': '不可使用,仅供参考:Grouping fields for top 1000'}
{'data_set_name': '可以使用:implied_volatility_mean_360', 'description': '不可使用,仅供参考:At-the-money option-implied volatility mean for 360 days'}
{'data_set_name': '可以使用:pv13_hierarchy_min52_513_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:fn_liab_fair_val_l1_a', 'description': '不可使用,仅供参考:Liabilities Fair Value, Recurring, Level 1'}
{'data_set_name': '可以使用:ticker', 'description': '不可使用,仅供参考:Ticker'}
{'data_set_name': '可以使用:news_mins_2_pct_dn', 'description': '不可使用,仅供参考:Number of minutes that elapsed before price went down 2 percentage points'}
{'data_set_name': '可以使用:fnd2_unrgtxbnfrdsrefpstf', 'description': '不可使用,仅供参考:Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations.'}
{'data_set_name': '可以使用:fnd6_optlife', 'description': '不可使用,仅供参考:Life of Options - Assumption (# yrs)'}
{'data_set_name': '可以使用:fnd6_optprcca', 'description': '不可使用,仅供参考:Options Cancelled - Price'}
{'data_set_name': '可以使用:fn_comp_options_exercisable_number_q', 'description': '不可使用,仅供参考:The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.'}
{'data_set_name': '可以使用:nws12_mainz_02s', 'description': '不可使用,仅供参考:Number of minutes that elapsed before price went down 20 percentage points'}
{'data_set_name': '可以使用:fnd6_newa2v1300_txt', 'description': '不可使用,仅供参考:Income Taxes - Total'}
{'data_set_name': '可以使用:fn_comp_options_exercises_weighted_avg_a', 'description': '不可使用,仅供参考:Share-Based Compensation, Options Assumed, Weighted Average Exercise Price'}
{'data_set_name': '可以使用:fnd6_newa1v1300_epsfx', 'description': '不可使用,仅供参考:Earnings Per Share (Diluted) - Excluding Extraordinary Items'}
{'data_set_name': '可以使用:pcr_vol_1080', 'description': "不可使用,仅供参考:Ratio of put volume to call volume on a stock's options with expiration 1080 days in the future."}
{'data_set_name': '可以使用:nws12_prez_mainvwap', 'description': '不可使用,仅供参考:Main session volume-weighted average price'}
{'data_set_name': '可以使用:fn_comp_non_opt_forfeited_a', 'description': '不可使用,仅供参考:The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.'}
{'data_set_name': '可以使用:pv13_hierarchy23_513_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:tangible_book_value_per_share_max_guidance', 'description': '不可使用,仅供参考:Tangible Book Value per Share - Maximum guidance value'}
{'data_set_name': '可以使用:max_investing_cashflow_guidance', 'description': '不可使用,仅供参考:The maximum guidance value for Cash Flow from Investing.'}
{'data_set_name': '可以使用:fnd2_a_sbcpnargmpmtwgtm', 'description': '不可使用,仅供参考:The weighted average period between the balance sheet date and expiration for all awards outstanding under the plan, which may be expressed in a decimal value for number of years.'}
{'data_set_name': '可以使用:anl4_capex_value', 'description': '不可使用,仅供参考:Capital Expenditures - announced financial value'}
{'data_set_name': '可以使用:implied_volatility_mean_skew_60', 'description': '不可使用,仅供参考:At-the-money option-implied volatility mean skew for 60 days'}
{'data_set_name': '可以使用:nws12_mainz_eodvwap', 'description': '不可使用,仅供参考:Volume weighted average price between the time of news and the end of the session'}
{'data_set_name': '可以使用:fnd6_cibegni', 'description': '不可使用,仅供参考:Comp Inc - Beginning Net Income'}
{'data_set_name': '可以使用:parkinson_volatility_30', 'description': "不可使用,仅供参考:Parkinson model's historical volatility over 30 days"}
{'data_set_name': '可以使用:selling_general_admin_expense', 'description': '不可使用,仅供参考:Selling, General & Administrative Expense Value'}
{'data_set_name': '可以使用:anl4_gric_mean', 'description': '不可使用,仅供参考:Gross income - mean of estimations'}
{'data_set_name': '可以使用:anl4_ads1detailafv110_person', 'description': '不可使用,仅供参考:Broker Id'}
{'data_set_name': '可以使用:pv13_hierarchy_min51_f3_513_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:anl4_ads1detailafv110_prevval', 'description': '不可使用,仅供参考:The Previous Estimation of Financial Item'}
{'data_set_name': '可以使用:fnd2_sbcpnshardpreops', 'description': '不可使用,仅供参考:Share-based compensation shares authorized under stock option plans exercise price range number of exercisable options'}
{'data_set_name': '可以使用:nws12_prez_1p', 'description': '不可使用,仅供参考:The minimum of L or S above for 1-minute bucket'}
{'data_set_name': '可以使用:anl4_fsguidanceafv4_item', 'description': '不可使用,仅供参考:Financial item'}
{'data_set_name': '可以使用:nws12_mainz_2l', 'description': '不可使用,仅供参考:Number of minutes that elapsed before price went up 2 percentage points'}
{'data_set_name': '可以使用:anl4_basicdetaillt_prevval', 'description': '不可使用,仅供参考:The Previous Estimation of Financial Item'}
{'data_set_name': '可以使用:rp_nip_insider', 'description': '不可使用,仅供参考:News impact projection of insider trading news'}
{'data_set_name': '可以使用:pv13_revere_country', 'description': '不可使用,仅供参考:Country code'}
{'data_set_name': '可以使用:fnd6_newqv1300_invfgq', 'description': '不可使用,仅供参考:Inventory - Finished Goods'}
{'data_set_name': '可以使用:unsystematic_risk_last_360_days', 'description': '不可使用,仅供参考:Unsystematic Risk Last 360 Days - Relative to SPY'}
{'data_set_name': '可以使用:fnd6_txdfo', 'description': '不可使用,仅供参考:Deferred Taxes - Foreign'}
{'data_set_name': '可以使用:fnd6_newqeventv110_aociderglq', 'description': '不可使用,仅供参考:Accumulated Other Comprehensive Income - Derivatives Unrealized Gain/Loss'}
{'data_set_name': '可以使用:fnd6_cld4', 'description': '不可使用,仅供参考:Capitalized Leases - Due in 4th Year'}
{'data_set_name': '可以使用:isin', 'description': '不可使用,仅供参考:ISIN Value'}
{'data_set_name': '可以使用:fnd6_newa2v1300_ppegt', 'description': '不可使用,仅供参考:Property, Plant and Equipment - Total (Gross)'}
{'data_set_name': '可以使用:fnd6_txtubposdec', 'description': '不可使用,仅供参考:Decrease - Current Tax Positions'}
{'data_set_name': '可以使用:vwap', 'description': '不可使用,仅供参考:Daily volume weighted average price'}
{'data_set_name': '可以使用:implied_volatility_call_10', 'description': '不可使用,仅供参考:At-the-money option-implied volatility for call Option for 10 days'}
{'data_set_name': '可以使用:fnd6_newqeventv110_wdpq', 'description': '不可使用,仅供参考:Writedowns Pretax'}
{'data_set_name': '可以使用:anl4_detailrecv4_est', 'description': '不可使用,仅供参考:Estimation value for recommendation detail'}
{'data_set_name': '可以使用:rp_nip_price', 'description': '不可使用,仅供参考:News impact projection of stock price news'}
========================= 数据字段结束 =======================================
以上数据字段和操作符, 按照Description说明组合, 但是每一个 alpha 组合的使用的数据字段和操作符不要过于集中, 在符合语法的情况下, 多尝试不同的组合
你再检查一下, 如果你使用了
Operator abs does not support event inputs
Operator ts_mean does not support event inputs
Operator ts_scale does not support event inputs
Operator add does not support event inputs
Operator sign does not support event inputs
Operator greater does not support event inputs
Operator ts_av_diff does not support event inputs
Operator ts_quantile does not support event inputs
Operator ts_arg_min does not support event inputs
Operator divide does not support event inputs
Operator ts_corr does not support event inputs
Operator ts_decay_linear does not support event inputs
Operator ts_sum does not support event inputs
Operator ts_delay does not support event inputs
Operator ts_arg_max does not support event inputs
Operator ts_std_dev does not support event inputs
Operator ts_regression does not support event inputs
Operator ts_backfill does not support event inputs
Operator signed_power does not support event inputs
Operator ts_product does not support event inputs
Operator ts_zscore does not support event inputs
Operator group_rank does not support event inputs
Operator subtract does not support event inputs
Operator ts_delta does not support event inputs
Operator ts_rank does not support event inputs
Operator ts_count_nans does not support event inputs
Operator ts_covariance does not support event inputs
Operator multiply does not support event inputs
Operator if_else does not support event inputs
Operator group_neutralize does not support event inputs
Operator group_zscore does not support event inputs
Operator winsorize does not support event inputs
注意, 以上操作符不能使用事件类型的数据集, 以上操作符禁止使用事件类型的数据集!!

@ -0,0 +1,338 @@
名称
存货周转韧性溢价因子
假设
存货周转效率(周转次数 / 周转天数)保持稳定且持续优于行业均值的公司,具备更强的供应链协同能力、需求预判能力与运营管控水平,抗周期风险能力突出。这类公司能有效降低库存积压成本、减少资金占用,现金流健康度更高,长期可获得估值溢价;反之,存货周转效率剧烈波动或持续恶化的公司,往往面临需求疲软、库存减值风险,应规避或建立空头仓位。
实施方案
构建 “存货周转效率稳定性” 指标,通过时序分析工具测算过去 8 个季度存货周转天数的波动率(离散系数),同时计算每季度周转效率相对行业均值的偏离度。对波动率低于行业中位数且偏离度持续为负(即周转效率优于行业)的公司建立多头仓位;对波动率高于行业中位数或偏离度持续为正且扩大的公司建立空头仓位。采用标准化处理消除行业属性对周转效率基准值的影响。
阿尔法因子优化建议
按行业细分库存类型(如快消品 vs 重工业原材料)分组,不同品类存货的周转周期差异显著,分组后可提升因子针对性;2. 叠加库存结构数据(如产成品、在产品占比),若高周转伴随产成品占比提升,说明终端需求旺盛,可强化正向信号;3. 引入宏观需求指标(如行业景气度指数)作为调节变量,在需求下行周期,周转韧性的信号权重可适度放大,提升策略抗风险能力。
英文版本
Name
Inventory Turnover Resilience Premium Factor
Hypothesis
Companies with stable inventory turnover efficiency (turnover frequency/days) that consistently outperform the industry average possess stronger supply chain coordination capabilities, demand forecasting accuracy, and operational control. They exhibit prominent anti-cyclical risk resistance, effectively reducing inventory holding costs, minimizing capital occupation, and maintaining healthier cash flow, thus gaining long-term valuation premiums. Conversely, companies with volatile or deteriorating inventory turnover efficiency often face weak demand and inventory impairment risks, and should be avoided or shorted.
Implementation Plan
Construct an "Inventory Turnover Efficiency Stability" indicator. Use time-series analysis tools to calculate the volatility (coefficient of variation) of inventory turnover days over the past 8 quarters, and compute the quarterly deviation of turnover efficiency from the industry average. Establish long positions in companies with volatility below the industry median and consistently negative deviations (i.e., turnover efficiency outperforming the industry); establish short positions in companies with volatility above the industry median or continuously positive and expanding deviations. Adopt standardization to eliminate the impact of industry attributes on the benchmark value of turnover efficiency.
Alpha Factor Optimization Suggestions
Group by industry-specific inventory types (e.g., FMCG vs. heavy industry raw materials). The turnover cycle of different inventory categories varies significantly, and grouping can enhance factor relevance; 2. Incorporate inventory structure data (e.g., proportion of finished goods and work-in-progress). If high turnover is accompanied by an increase in the proportion of finished goods, it indicates strong end-demand, which can strengthen positive signals; 3. Introduce macro demand indicators (e.g., industry prosperity index) as adjustment variables. During periods of declining demand, the signal weight of turnover resilience can be appropriately amplified to improve the strategy's risk resistance.
*=========================================================================================*
输出格式:
输出必须是且仅是纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
===================== !!! 重点(输出方式) !!! =====================
现在,请严格遵守以上所有规则,开始生成可立即在WebSim中运行的复合因子表达式。
不要自行假设, 你需要用到的操作符 和 数据集, 必须从我提供给你的里面查找, 并严格按照里面的使用方法进行组合
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不需要赋值, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
=================================================================
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
以下是我的账号有权限使用的操作符, 请严格按照操作符, 以及我提供的数据集, 进行生成,组合 30 个alpha:
不要自行假设, 你需要用到的操作符 和 数据集, 必须从我提供给你的里面查找, 并严格按照里面的使用方法进行组合
=================================================================
ts_product ts_zscore ts_mean ts_scale add sign subtract ts_delta ts_rank greater ts_av_diff ts_quantile ts_count_nans ts_covariance
ts_arg_min divide ts_corr multiply if_else ts_sum ts_delay group_zscore ts_arg_max ts_std_de ts_backfill
以上这些操作符不能传入事件类型的数据集, 只能传入时间序列数据集, 不能传入事件数据,不能传入事件数据,不能传入事件数据
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
========================= 操作符开始 =======================================
注意: Operator: 后面的是操作符(是可以使用的),
Description: 此字段后面的是操作符对应的描述或使用说明(禁止使用, 仅供参考), Description字段后面的内容是使用说明, 不是操作符
特别注意!!!! 必须按照操作符字段Operator的使用说明生成 alphaOperator: abs(x)
Description: Absolute value of x
Operator: add(x, y, filter = false)
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)
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)
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)
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.
========================= 操作符结束 =======================================
========================= 数据字段开始 =======================================
注意: data_set_name: 后面的是数据字段(可以使用), description: 此字段后面的是数据字段对应的描述或使用说明(不能使用), description_cn字段后面的内容是中文使用说明(不能使用)
{'data_set_name': '可以使用:forward_price_120', 'description': '不可使用,仅供参考: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.'}
{'data_set_name': '可以使用:fnd6_capxv', 'description': '不可使用,仅供参考:Capital Expend Property, Plant and Equipment Schd V'}
{'data_set_name': '可以使用:fnd6_ciother', 'description': '不可使用,仅供参考:Comp. Inc. - Other Adj.'}
{'data_set_name': '可以使用:fnd6_eventv110_gdwlieps12', 'description': '不可使用,仅供参考:Impairment of Goodwill Basic EPS Effect 12MM'}
{'data_set_name': '可以使用:fnd6_eventv110_gdwliepsq', 'description': '不可使用,仅供参考:Impairment of Goodwill Basic EPS Effect'}
{'data_set_name': '可以使用:fnd6_newqeventv110_gdwliaq', 'description': '不可使用,仅供参考:Impairment of Goodwill After-tax'}
{'data_set_name': '可以使用:fnd6_newqeventv110_gdwlipq', 'description': '不可使用,仅供参考:Impairment of Goodwill Pretax'}
{'data_set_name': '可以使用:fnd6_newqv1300_ciotherq', 'description': '不可使用,仅供参考:Comp Inc - Other Adj'}
{'data_set_name': '可以使用:anl4_netdebt_flag', 'description': '不可使用,仅供参考:Net debt - forecast type (revision/new/...)'}
{'data_set_name': '可以使用:news_max_up_amt', 'description': '不可使用,仅供参考:The after the news high minus the price at the time of the news'}
{'data_set_name': '可以使用:news_mins_2_chg', 'description': '不可使用,仅供参考:The minimum of L or S above for 2-minute bucket'}
{'data_set_name': '可以使用:news_vol_stddev', 'description': '不可使用,仅供参考:(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'}
{'data_set_name': '可以使用:nws12_mainz_3p', 'description': '不可使用,仅供参考:The minimum of L or S above for 3-minute bucket'}
{'data_set_name': '可以使用:nws18_sse', 'description': '不可使用,仅供参考:Sentiment of phrases impacting the company'}
{'data_set_name': '可以使用:rp_nip_ratings', 'description': '不可使用,仅供参考:News impact projection of analyst ratings-related news'}
{'data_set_name': '可以使用:fn_def_tax_liab_a', 'description': '不可使用,仅供参考:Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.'}
{'data_set_name': '可以使用:fn_op_lease_min_pay_due_in_2y_a', 'description': '不可使用,仅供参考: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 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.'}
{'data_set_name': '可以使用:fn_treasury_stock_shares_a', 'description': '不可使用,仅供参考:Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.'}
{'data_set_name': '可以使用:nws12_prez_atrratio', 'description': '不可使用,仅供参考:Ratio of Today Range to 20-day average true range'}
{'data_set_name': '可以使用:rp_css_earnings', 'description': '不可使用,仅供参考:Composite sentiment score of earnings news'}
{'data_set_name': '可以使用:fn_comp_fair_value_assumptions_weighted_avg_vol_rate_a', 'description': '不可使用,仅供参考:Weighted average expected volatility rate of share-based compensation awards.'}
{'data_set_name': '可以使用:fnd6_newqeventv110_prcaq', 'description': '不可使用,仅供参考:Core Post-Retirement Adjustment'}
{'data_set_name': '可以使用:fnd6_eventv110_optlifeq', 'description': '不可使用,仅供参考:Life of Options - Assumption (# yrs)'}
{'data_set_name': '可以使用:est_ebitda', 'description': '不可使用,仅供参考:Earnings before interest, taxes, depreciation, and amortization - mean of estimations'}
{'data_set_name': '可以使用:fn_liab_fair_val_l1_a', 'description': '不可使用,仅供参考:Liabilities Fair Value, Recurring, Level 1'}
{'data_set_name': '可以使用:pv13_hierarchy_f3_513_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:anl4_netprofita_low', 'description': '不可使用,仅供参考:Adjusted net income - the lowest estimation'}
{'data_set_name': '可以使用:fnd6_txtubpospinc', 'description': '不可使用,仅供参考:Increase - Prior Tax Positions'}
{'data_set_name': '可以使用:fnd6_newqv1300_pncq', 'description': '不可使用,仅供参考:Core Pension Adjustment'}
{'data_set_name': '可以使用:fnd6_newqv1300_rdipepsq', 'description': '不可使用,仅供参考:In-Process R&D Expense Basic EPS Effect'}
{'data_set_name': '可以使用:implied_volatility_put_180', 'description': '不可使用,仅供参考:At-the-money option-implied volatility for put option for 180 days'}
{'data_set_name': '可以使用:fn_debt_issuance_costs_q', 'description': '不可使用,仅供参考:Amount of debt issuance costs (for example, but not limited to, legal, accounting, broker, and regulatory fees).'}
{'data_set_name': '可以使用:implied_volatility_mean_120', 'description': '不可使用,仅供参考:At-the-money option-implied volatility mean for 120 days'}
{'data_set_name': '可以使用:fnd6_newa2v1300_revt', 'description': '不可使用,仅供参考:Revenue - Total'}
{'data_set_name': '可以使用:fnd6_eventv110_pncd12', 'description': '不可使用,仅供参考:Core Pension Adjustment Diluted EPS Effect 12MM'}
{'data_set_name': '可以使用:implied_volatility_call_270', 'description': '不可使用,仅供参考:At-the-money option-implied volatility for call Option for 270 days'}
{'data_set_name': '可以使用:actual_sales_value_annual', 'description': '不可使用,仅供参考:Sales - Actual Value'}
{'data_set_name': '可以使用:anl4_bac1detaillt_item', 'description': '不可使用,仅供参考:Financial item'}
{'data_set_name': '可以使用:fnd6_mfma1_at', 'description': '不可使用,仅供参考:Assets - Total'}
{'data_set_name': '可以使用:anl4_qf_az_div_median', 'description': '不可使用,仅供参考:Dividend per share - median of estimations'}
{'data_set_name': '可以使用:news_pct_120min', 'description': '不可使用,仅供参考:The percent change in price in the first 120 minutes following the news release'}
{'data_set_name': '可以使用:min_free_cashflow_per_share_guidance', 'description': '不可使用,仅供参考:Free cash flow per share - minimum guidance value'}
{'data_set_name': '可以使用:eps_guidance_value_quarterly', 'description': '不可使用,仅供参考:Earnings Per Share - Basic value'}
{'data_set_name': '可以使用:rp_nip_marketing', 'description': '不可使用,仅供参考:News impact projection of marketing news'}
{'data_set_name': '可以使用:fnd6_cptmfmq_ceqq', 'description': '不可使用,仅供参考:Common/Ordinary Equity - Total'}
{'data_set_name': '可以使用:anl4_ebitda_flag', 'description': '不可使用,仅供参考:Earnings before interest, taxes, depreciation and amortization - forecast type (revision/new/...)'}
{'data_set_name': '可以使用:rp_css_insider', 'description': '不可使用,仅供参考:Composite sentiment score of insider trading news'}
{'data_set_name': '可以使用:fnd6_txs', 'description': '不可使用,仅供参考:Income Taxes - State'}
{'data_set_name': '可以使用:anl4_bac1detailqfv110_item', 'description': '不可使用,仅供参考:Financial item'}
{'data_set_name': '可以使用:fnd2_a_landlandiprts', 'description': '不可使用,仅供参考:Amount before accumulated depreciation and depletion of real estate held for productive use and additions or improvements to real estate held for productive use, examples include, but are not limited to, walkways, driveways, fences, and parking lots. Excludes land held for sale'}
{'data_set_name': '可以使用:pv13_hierarchy_min2_focused_pureplay_3000_513_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:fnd6_newqv1300_gdwlq', 'description': '不可使用,仅供参考:Goodwill (net)'}
{'data_set_name': '可以使用:fnd2_a_flintasamt1expyfour', 'description': '不可使用,仅供参考:Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during 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.'}
{'data_set_name': '可以使用:fnd6_cptnewqeventv110_epsfxq', 'description': '不可使用,仅供参考:Earnings Per Share (Diluted) - Excluding Extraordinary items'}
{'data_set_name': '可以使用:nws12_afterhsz_maxupamt', 'description': '不可使用,仅供参考:The after the news high minus the price at the time of the news'}
{'data_set_name': '可以使用:rel_num_all', 'description': '不可使用,仅供参考:number of the companies whose product overlapped with the instrument'}
{'data_set_name': '可以使用:total_goodwill_actual_value', 'description': '不可使用,仅供参考:Total Goodwill - announced financial value'}
{'data_set_name': '可以使用:pcr_oi_20', 'description': "不可使用,仅供参考:Ratio of put open interest to call open interest on a stock's options with expiration 20 days in the future."}
{'data_set_name': '可以使用:fnd6_sics', 'description': '不可使用,仅供参考:SIC Code'}
{'data_set_name': '可以使用:fnd6_newa1v1300_dpact', 'description': '不可使用,仅供参考:Depreciation, Depletion and Amortization (Accumulated)'}
{'data_set_name': '可以使用:fnd6_newqeventv110_pncipq', 'description': '不可使用,仅供参考:Core Pension Interest Adjustment Pretax'}
{'data_set_name': '可以使用:nws12_mainz_rangestddev', 'description': '不可使用,仅供参考:(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'}
{'data_set_name': '可以使用:nws12_afterhsz_lowexcstddev', 'description': '不可使用,仅供参考:(TONLast - EODLow) / StdDev, where StdDev is one standard deviation for the close price for 30 calendar days'}
{'data_set_name': '可以使用:fnd6_txndbr', 'description': '不可使用,仅供参考:Deferred Tax Residual'}
{'data_set_name': '可以使用:fn_accum_oth_income_loss_fx_adj_net_of_tax_q', 'description': '不可使用,仅供参考:Accumulated adjustment, net of tax, that results from the process of translating subsidiary financial statements and foreign equity investments into the reporting currency from the functional currency of the reporting entity, net of reclassification of realized foreign currency translation gains or losses.'}
{'data_set_name': '可以使用:pv13_h_min10_top3000_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:nws12_prez_01s', 'description': '不可使用,仅供参考:Number of minutes that elapsed before price went down 10 percentage points'}
{'data_set_name': '可以使用:fn_accrued_liab_curr_q', 'description': '不可使用,仅供参考: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.'}
{'data_set_name': '可以使用:fnd6_dd3', 'description': '不可使用,仅供参考:Debt Due in 3rd Year'}
{'data_set_name': '可以使用:anl4_eaz2lafv110_prevval', 'description': '不可使用,仅供参考:The previous estimation of financial item'}
{'data_set_name': '可以使用:pv13_r2_liquid_min5_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:fnd2_dbplanbnfpaid', 'description': '不可使用,仅供参考: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.'}
{'data_set_name': '可以使用:max_reported_eps_guidance', 'description': '不可使用,仅供参考:Reported Earnings Per Share - Maximum guidance value'}
{'data_set_name': '可以使用:fn_business_acq_ppne_q', 'description': '不可使用,仅供参考:Business Combination, Assumed Property Plant And Equipment'}
{'data_set_name': '可以使用:fnd6_newqeventv110_spceq', 'description': '不可使用,仅供参考:S&P Core Earnings'}
{'data_set_name': '可以使用:gross_income_reported_value', 'description': '不可使用,仅供参考:Gross Income value for the quarter'}
{'data_set_name': '可以使用:dividend_max_guidance_value', 'description': '不可使用,仅供参考:The maximum guidance value for Dividend per share on an annual basis.'}
{'data_set_name': '可以使用:rp_nip_inverstor', 'description': '不可使用,仅供参考:News impact projection of investor relations news'}
{'data_set_name': '可以使用:option_breakeven_150', 'description': "不可使用,仅供参考:Price at which a stock's options with expiration 150 days in the future break even based on its recent bid/ask mean."}
{'data_set_name': '可以使用:fnd2_a_unrgtxbnfthatwdiptetxr', 'description': '不可使用,仅供参考:The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate.'}
{'data_set_name': '可以使用:pv13_hierarchy_min52_1k_513_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:scl12_buzz', 'description': '不可使用,仅供参考:relative sentiment volume'}
{'data_set_name': '可以使用:nws12_prez_57p', 'description': '不可使用,仅供参考:The minimum of L or S above for 7.5-minute bucket'}
{'data_set_name': '可以使用:fnd6_eventv110_txdbclq', 'description': '不可使用,仅供参考:Current Deferred Tax Liability'}
{'data_set_name': '可以使用:rel_num_comp', 'description': "不可使用,仅供参考:number of the instrument's competitors"}
{'data_set_name': '可以使用:net_profit_adjusted_value', 'description': '不可使用,仅供参考:Adjusted net income- announced financial value'}
{'data_set_name': '可以使用:fn_accum_depr_depletion_and_amortization_ppne_q', 'description': '不可使用,仅供参考:Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.'}
{'data_set_name': '可以使用:anl4_bvps_low', 'description': '不可使用,仅供参考:Book value - the lowest estimation, per share'}
{'data_set_name': '可以使用:fnd2_sbcpnshardpreops', 'description': '不可使用,仅供参考:Share-based compensation shares authorized under stock option plans exercise price range number of exercisable options'}
{'data_set_name': '可以使用:high', 'description': '不可使用,仅供参考:Daily high price'}
{'data_set_name': '可以使用:news_atr14', 'description': '不可使用,仅供参考:14-day Average True Range'}
{'data_set_name': '可以使用:put_breakeven_150', 'description': "不可使用,仅供参考:Price at which a stock's put options with expiration 150 days in the future break even based on its recent bid/ask mean."}
{'data_set_name': '可以使用:fnd6_newqeventv110_prcdq', 'description': '不可使用,仅供参考:Core Post-Retirement Adjustment Diluted EPS Effect'}
{'data_set_name': '可以使用:implied_volatility_mean_skew_90', 'description': '不可使用,仅供参考:At-the-money option-implied volatility mean skew for 90 days'}
{'data_set_name': '可以使用:est_sales', 'description': '不可使用,仅供参考:Sales - mean of estimations'}
{'data_set_name': '可以使用:fnd6_newqv1300_dcomq', 'description': '不可使用,仅供参考:Deferred Compensation'}
{'data_set_name': '可以使用:fnd6_newqeventv110_prce12', 'description': '不可使用,仅供参考:Core Post Retirement Adjustment 12MM'}
{'data_set_name': '可以使用:max_net_profit_guidance', 'description': '不可使用,仅供参考:The maximum guidance value for net profit on an annual basis.'}
{'data_set_name': '可以使用:fnd2_unremittedfrer', 'description': '不可使用,仅供参考:Unremitted Foreign Earnings'}
{'data_set_name': '可以使用:ticker', 'description': '不可使用,仅供参考:Ticker'}
{'data_set_name': '可以使用:pv13_revere_company_total', 'description': '不可使用,仅供参考:Total number of companies in the sector'}
{'data_set_name': '可以使用:nws12_afterhsz_open_vol', 'description': '不可使用,仅供参考:Main open volume'}
{'data_set_name': '可以使用:news_open_gap', 'description': '不可使用,仅供参考:(DayOpen - PrevClose) / PrevClose'}
{'data_set_name': '可以使用:fn_allowance_for_doubtful_accounts_receivable_q', 'description': '不可使用,仅供参考:For an unclassified balance sheet, a valuation allowance for receivables due a company that are expected to be uncollectible.'}
{'data_set_name': '可以使用:fnd6_lifr', 'description': '不可使用,仅供参考:LIFO Reserve'}
{'data_set_name': '可以使用:fnd6_newqeventv110_mibnq', 'description': '不可使用,仅供参考:NonRedeemable Noncontrolling Interest (Balance Sheet) - Quarterly'}
{'data_set_name': '可以使用:anl4_ebitda_value', 'description': '不可使用,仅供参考:Earnings before interest, taxes, depreciation and amortization - announced financial value'}
{'data_set_name': '可以使用:anl4_qf_az_wol_spfc', 'description': '不可使用,仅供参考:Cash Flow Per Share - The lowest estimation'}
{'data_set_name': '可以使用:fnd6_txtubposdec', 'description': '不可使用,仅供参考:Decrease - Current Tax Positions'}
{'data_set_name': '可以使用:fn_mne_a', 'description': '不可使用,仅供参考:Amount before accumulated depreciation of tangible personal property used to produce goods and services, including, but is not limited to, tools, dies and molds, computer and office equipment.'}
{'data_set_name': '可以使用:fn_treasury_stock_shares_q', 'description': '不可使用,仅供参考:Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.'}
{'data_set_name': '可以使用:fnd6_newqeventv110_lqpl1q', 'description': '不可使用,仅供参考:Liabilities Level 1 (Quoted Prices)'}
{'data_set_name': '可以使用:pv13_hierarchy_min51_f3_513_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:returns', 'description': '不可使用,仅供参考:Daily returns'}
{'data_set_name': '可以使用:fnd6_newqeventv110_invoq', 'description': '不可使用,仅供参考:Inventory - Other'}
{'data_set_name': '可以使用:nws12_prez_4p', 'description': '不可使用,仅供参考:The minimum of L or S above for 4-minute bucket'}
{'data_set_name': '可以使用:fnd6_ch', 'description': '不可使用,仅供参考:Cash'}
{'data_set_name': '可以使用:nws12_afterhsz_result2', 'description': '不可使用,仅供参考:Percent change between the price at the time of the news release to the price at the close of the session'}
========================= 数据字段结束 =======================================
以上数据字段和操作符, 按照Description说明组合, 但是每一个 alpha 组合的使用的数据字段和操作符不要过于集中, 在符合语法的情况下, 多尝试不同的组合
你再检查一下, 如果你使用了
Operator abs does not support event inputs
Operator ts_mean does not support event inputs
Operator ts_scale does not support event inputs
Operator add does not support event inputs
Operator sign does not support event inputs
Operator greater does not support event inputs
Operator ts_av_diff does not support event inputs
Operator ts_quantile does not support event inputs
Operator ts_arg_min does not support event inputs
Operator divide does not support event inputs
Operator ts_corr does not support event inputs
Operator ts_decay_linear does not support event inputs
Operator ts_sum does not support event inputs
Operator ts_delay does not support event inputs
Operator ts_arg_max does not support event inputs
Operator ts_std_dev does not support event inputs
Operator ts_regression does not support event inputs
Operator ts_backfill does not support event inputs
Operator signed_power does not support event inputs
Operator ts_product does not support event inputs
Operator ts_zscore does not support event inputs
Operator group_rank does not support event inputs
Operator subtract does not support event inputs
Operator ts_delta does not support event inputs
Operator ts_rank does not support event inputs
Operator ts_count_nans does not support event inputs
Operator ts_covariance does not support event inputs
Operator multiply does not support event inputs
Operator if_else does not support event inputs
Operator group_neutralize does not support event inputs
Operator group_zscore does not support event inputs
Operator winsorize does not support event inputs
注意, 以上操作符不能使用事件类型的数据集, 以上操作符禁止使用事件类型的数据集!!

@ -0,0 +1,368 @@
名称
供应商集中度动态调整因子
假设
供应商集中度(前五大供应商采购额占总采购额比重)的动态变化直接反映企业供应链风险的管控能力。若企业供应商集中度从高位持续回落,意味着其正在主动分散供应链依赖风险,能够有效降低单一供应商违约、提价或断供带来的经营冲击,进而提升盈利稳定性与抗风险能力,这类企业应享有估值溢价,适合建立多头仓位;反之,若供应商集中度从低位持续攀升,企业对少数供应商的依赖度加深,供应链脆弱性上升,经营不确定性增加,适合建立空头仓位。此外,集中度调整的速度与幅度和超额收益呈正相关,快速且合理的分散调整比缓慢调整更具信号价值。
实施方案
计算核心指标:基于企业采购数据,测算供应商集中度比率(CR5 = 前五大供应商采购金额 / 总采购金额);
时序趋势分析:使用时序趋势算子(ts_trend)拟合过去 12 个月 CR5 的变化斜率,区分 “持续下降(斜率为负且绝对值大于阈值)”“持续上升(斜率为正且绝对值大于阈值)”“平稳波动” 三类标的;
规模与行业校准:将 CR5 除以企业总采购额的对数以消除规模影响,同时计算标的 CR5 与行业均值的偏离度;
构建多空策略:做多 “CR5 持续下降 + 当前 CR5 低于行业均值” 的标的;做空 “CR5 持续上升 + 当前 CR5 高于行业均值” 的标的;剔除 CR5 平稳波动且偏离行业均值较小的标的以降低噪声。
阿尔法因子优化建议
引入行业差异化阈值:不同行业的供应商集中度基准值差异显著(如半导体行业核心物料供应商集中度天然偏高,快消品行业集中度偏低),建议采用行业分位数算子替代固定阈值,在行业内部分层判断集中度调整的合理性;
叠加供应商质量验证:整合供应商信用评级、合作年限等数据,当集中度下降伴随 “新增供应商信用评级高于原有供应商” 时,强化多头信号权重;若集中度上升源于 “优质供应商排他性合作”,则弱化空头信号;
事件驱动权重调整:运用事件触发算子,在行业性供应链危机(如原材料涨价潮、地缘政治导致的物料断供)发生时,放大该因子的配置权重,捕捉危机期间供应链稳健企业的超额收益;
分档加权优化:采用分层算子将集中度调整幅度分为 “大幅调整”“中度调整”“小幅调整” 三档,针对不同档位设置差异化仓位权重,提升策略的风险收益比。
Name
Dynamic Adjustment Factor of Supplier Concentration
Hypothesis
The dynamic change in supplier concentration (measured by the proportion of purchases from the top 5 suppliers to total purchases) directly reflects an enterprise's ability to control supply chain risks. If a company's supplier concentration continues to decline from a high level, it indicates that it is actively diversifying supply chain dependence risks, which can effectively reduce operational shocks caused by default, price increase or supply disruption of a single supplier, thereby improving profit stability and risk resistance. Such enterprises deserve a valuation premium and are suitable for establishing long positions. Conversely, if supplier concentration continues to rise from a low level, the enterprise's dependence on a few suppliers deepens, supply chain vulnerability increases, and operational uncertainty rises, making it suitable for establishing short positions. In addition, the speed and magnitude of concentration adjustment are positively correlated with excess returns—fast and reasonable diversification adjustments have higher signal value than slow adjustments.
Implementation Plan
Calculate core indicators: Based on enterprise procurement data, measure the supplier concentration ratio (CR5 = purchase amount from top 5 suppliers / total purchase amount);
Time-series trend analysis: Use the time-series trend operator (ts_trend) to fit the change slope of CR5 over the past 12 months, and classify targets into three categories: "continuous decline (negative slope with absolute value greater than threshold)", "continuous rise (positive slope with absolute value greater than threshold)", and "stable fluctuation";
Scale and industry calibration: Divide CR5 by the logarithm of the enterprise's total purchase amount to eliminate scale effects, and calculate the deviation of the target's CR5 from the industry average;
Construct long-short strategy: Establish long positions on targets with "continuously declining CR5 + current CR5 below industry average"; establish short positions on targets with "continuously rising CR5 + current CR5 above industry average"; exclude targets with stable CR5 fluctuation and small deviation from industry average to reduce noise.
Alpha Factor Optimization Suggestions
Introduce industry-differentiated thresholds: There are significant differences in the benchmark values of supplier concentration across industries (e.g., the concentration of core material suppliers in the semiconductor industry is naturally high, while that in the consumer goods industry is low). It is recommended to use the industry quantile operator instead of fixed thresholds to judge the rationality of concentration adjustment by stratification within the industry;
Superimpose supplier quality verification: Integrate data such as supplier credit ratings and cooperation years. When the decline in concentration is accompanied by "the credit rating of new suppliers being higher than that of original suppliers", strengthen the weight of long signals; if the rise in concentration stems from "exclusive cooperation with high-quality suppliers", weaken the short signals;
Event-driven weight adjustment: Use the event trigger operator to increase the allocation weight of this factor during industry-wide supply chain crises (such as raw material price surges, material supply disruptions caused by geopolitics), capturing excess returns of supply chain-robust enterprises during crises;
Tiered weighting optimization: Use the stratification operator to divide the concentration adjustment range into three tiers: "significant adjustment", "moderate adjustment" and "minor adjustment", and set differentiated position weights for different tiers to improve the risk-return ratio of the strategy.
*=========================================================================================*
输出格式:
输出必须是且仅是纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
===================== !!! 重点(输出方式) !!! =====================
现在,请严格遵守以上所有规则,开始生成可立即在WebSim中运行的复合因子表达式。
不要自行假设, 你需要用到的操作符 和 数据集, 必须从我提供给你的里面查找, 并严格按照里面的使用方法进行组合
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不需要赋值, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
=================================================================
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
以下是我的账号有权限使用的操作符, 请严格按照操作符, 以及我提供的数据集, 进行生成,组合 30 个alpha:
不要自行假设, 你需要用到的操作符 和 数据集, 必须从我提供给你的里面查找, 并严格按照里面的使用方法进行组合
=================================================================
ts_product ts_zscore ts_mean ts_scale add sign subtract ts_delta ts_rank greater ts_av_diff ts_quantile ts_count_nans ts_covariance
ts_arg_min divide ts_corr multiply if_else ts_sum ts_delay group_zscore ts_arg_max ts_std_de ts_backfill
以上这些操作符不能传入事件类型的数据集, 只能传入时间序列数据集, 不能传入事件数据,不能传入事件数据,不能传入事件数据
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
========================= 操作符开始 =======================================
注意: Operator: 后面的是操作符(是可以使用的),
Description: 此字段后面的是操作符对应的描述或使用说明(禁止使用, 仅供参考), Description字段后面的内容是使用说明, 不是操作符
特别注意!!!! 必须按照操作符字段Operator的使用说明生成 alphaOperator: abs(x)
Description: Absolute value of x
Operator: add(x, y, filter = false)
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)
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)
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)
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.
========================= 操作符结束 =======================================
========================= 数据字段开始 =======================================
注意: data_set_name: 后面的是数据字段(可以使用), description: 此字段后面的是数据字段对应的描述或使用说明(不能使用), description_cn字段后面的内容是中文使用说明(不能使用)
{'data_set_name': '可以使用:forward_price_120', 'description': '不可使用,仅供参考: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.'}
{'data_set_name': '可以使用:fnd6_acdo', 'description': '不可使用,仅供参考:Current Assets of Discontinued Operations'}
{'data_set_name': '可以使用:fnd6_capxv', 'description': '不可使用,仅供参考:Capital Expend Property, Plant and Equipment Schd V'}
{'data_set_name': '可以使用:fnd6_ciother', 'description': '不可使用,仅供参考:Comp. Inc. - Other Adj.'}
{'data_set_name': '可以使用:fnd6_lul3', 'description': '不可使用,仅供参考:Liabilities Level 3 (Unobservable)'}
{'data_set_name': '可以使用:fnd6_newqeventv110_lul3q', 'description': '不可使用,仅供参考:Liabilities Level 3 (Unobservable)'}
{'data_set_name': '可以使用:fnd6_newqeventv110_spcedq', 'description': '不可使用,仅供参考:S&P Core Earnings EPS Diluted'}
{'data_set_name': '可以使用:fnd6_newqv1300_ciotherq', 'description': '不可使用,仅供参考:Comp Inc - Other Adj'}
{'data_set_name': '可以使用:fnd6_newqv1300_lul3q', 'description': '不可使用,仅供参考:Liabilities Level 3 (Unobservable)'}
{'data_set_name': '可以使用:fnd6_newqv1300_spceepsp12', 'description': '不可使用,仅供参考:S&P Core 12MM EPS - Basic - Preliminary'}
{'data_set_name': '可以使用:sales_ps', 'description': '不可使用,仅供参考:Sales per Share (Quarterly)'}
{'data_set_name': '可以使用:fscore_bfl_total', 'description': '不可使用,仅供参考:The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.'}
{'data_set_name': '可以使用:fscore_total', 'description': '不可使用,仅供参考:The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.'}
{'data_set_name': '可以使用:multi_factor_acceleration_score_derivative', 'description': '不可使用,仅供参考:Change in the acceleration of multi-factor score compared to previous period.'}
{'data_set_name': '可以使用:anl4_netdebt_flag', 'description': '不可使用,仅供参考:Net debt - forecast type (revision/new/...)'}
{'data_set_name': '可以使用:min_reported_eps_guidance', 'description': '不可使用,仅供参考:Reported Earnings Per Share - Minimum guidance value for the annual period'}
{'data_set_name': '可以使用:pv13_h2_min2_1k_sector', 'description': '不可使用,仅供参考:Grouping fields for top 1000'}
{'data_set_name': '可以使用:pv13_h_min22_1000_sector', 'description': '不可使用,仅供参考:Grouping fields for top 1000'}
{'data_set_name': '可以使用:pv13_h_min24_500_sector', 'description': '不可使用,仅供参考:Grouping fields for top 500'}
{'data_set_name': '可以使用:pv13_h_min2_focused_sector', 'description': '不可使用,仅供参考:Grouping fields for top 200'}
{'data_set_name': '可以使用:pv13_h_min52_1k_sector', 'description': '不可使用,仅供参考:Grouping fields for top 1000'}
{'data_set_name': '可以使用:news_max_up_amt', 'description': '不可使用,仅供参考:The after the news high minus the price at the time of the news'}
{'data_set_name': '可以使用:news_mins_2_chg', 'description': '不可使用,仅供参考:The minimum of L or S above for 2-minute bucket'}
{'data_set_name': '可以使用:nws12_mainz_3p', 'description': '不可使用,仅供参考:The minimum of L or S above for 3-minute bucket'}
{'data_set_name': '可以使用:nws18_sse', 'description': '不可使用,仅供参考:Sentiment of phrases impacting the company'}
{'data_set_name': '可以使用:rp_nip_ratings', 'description': '不可使用,仅供参考:News impact projection of analyst ratings-related news'}
{'data_set_name': '可以使用:fn_def_tax_assets_liab_net_q', 'description': '不可使用,仅供参考:Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.'}
{'data_set_name': '可以使用:fn_def_tax_liab_a', 'description': '不可使用,仅供参考:Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.'}
{'data_set_name': '可以使用:fn_liab_fair_val_a', 'description': '不可使用,仅供参考:Liabilities Fair Value, Recurring, Total'}
{'data_set_name': '可以使用:fn_liab_fair_val_l1_a', 'description': '不可使用,仅供参考:Liabilities Fair Value, Recurring, Level 1'}
{'data_set_name': '可以使用:fn_liab_fair_val_l1_q', 'description': '不可使用,仅供参考:Liabilities Fair Value, Recurring, Level 1'}
{'data_set_name': '可以使用:fn_liab_fair_val_l2_a', 'description': '不可使用,仅供参考:Liabilities Fair Value, Recurring, Level 2'}
{'data_set_name': '可以使用:fn_liab_fair_val_l2_q', 'description': '不可使用,仅供参考:Liabilities Fair Value, Recurring, Level 2'}
{'data_set_name': '可以使用:fn_op_lease_min_pay_due_in_2y_a', 'description': '不可使用,仅供参考: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 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.'}
{'data_set_name': '可以使用:fn_treasury_stock_shares_a', 'description': '不可使用,仅供参考:Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.'}
{'data_set_name': '可以使用:fnd2_dbplanepdfbnfpnext12m', 'description': '不可使用,仅供参考:Amount of benefits from a defined benefit plan expected to be paid 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.'}
{'data_set_name': '可以使用:fnd2_itxreclstatelocalitxes', 'description': '不可使用,仅供参考: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).'}
{'data_set_name': '可以使用:min_financing_cashflow_guidance_2', 'description': '不可使用,仅供参考:Minimum guidance value for Cash Flow From Financing on an annual basis'}
{'data_set_name': '可以使用:fnd6_fic', 'description': '不可使用,仅供参考:identifies the country in which the company is incorporated or legally registered'}
{'data_set_name': '可以使用:pv13_new_2l_scibr', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:previous_quarterly_guidance_estimate', 'description': '不可使用,仅供参考:The previous estimation of finanicial item'}
{'data_set_name': '可以使用:implied_volatility_mean_skew_720', 'description': '不可使用,仅供参考:At-the-money option-implied volatility mean skew for 720 days'}
{'data_set_name': '可以使用:pcr_vol_30', 'description': "不可使用,仅供参考:Ratio of put volume to call volume on a stock's options with expiration 30 days in the future."}
{'data_set_name': '可以使用:option_breakeven_1080', 'description': "不可使用,仅供参考:Price at which a stock's options with expiration 1080 days in the future break even based on its recent bid/ask mean."}
{'data_set_name': '可以使用:fnd6_optprcey', 'description': '不可使用,仅供参考:Options Outstanding End of Year - Price'}
{'data_set_name': '可以使用:fnd6_mfma1_invch', 'description': '不可使用,仅供参考:Mortgages - Decrease (Increase)'}
{'data_set_name': '可以使用:fnd6_newqeventv110_spcepq', 'description': '不可使用,仅供参考:S&P Core Earnings - Preliminary'}
{'data_set_name': '可以使用:anl4_fsguidanceafv4_item', 'description': '不可使用,仅供参考:Financial item'}
{'data_set_name': '可以使用:anl4_cff_number', 'description': '不可使用,仅供参考:Cash Flow From Financing - number of estimations'}
{'data_set_name': '可以使用:fnd6_dltp', 'description': '不可使用,仅供参考:Long-Term Debt - Tied to Prime'}
{'data_set_name': '可以使用:fnd6_eventv110_spidq', 'description': '不可使用,仅供参考:Other Special Items Diluted EPS Effect'}
{'data_set_name': '可以使用:fnd6_newqeventv110_aociotherq', 'description': '不可使用,仅供参考:Accum Other Comp Inc - Other Adjustments'}
{'data_set_name': '可以使用:pv13_r2_liquid_min2_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:nws12_afterhsz_eodhigh', 'description': '不可使用,仅供参考:Highest price reached between the time of news and the end of the session'}
{'data_set_name': '可以使用:fnd6_ceql', 'description': '不可使用,仅供参考:Common Equity - Liquidation Value'}
{'data_set_name': '可以使用:est_ebit', 'description': '不可使用,仅供参考:Earnings before interest and taxes - mean of estimations'}
{'data_set_name': '可以使用:nws12_prez_01p', 'description': '不可使用,仅供参考:The minimum of L or S above for 10-minute bucket'}
{'data_set_name': '可以使用:ticker', 'description': '不可使用,仅供参考:Ticker'}
{'data_set_name': '可以使用:pv13_h_f3_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:sales_max_guidance_value', 'description': '不可使用,仅供参考:Maximum guidance value for annual sales'}
{'data_set_name': '可以使用:anl4_dez1qfv4_est', 'description': '不可使用,仅供参考:Estimation value'}
{'data_set_name': '可以使用:fnd6_newa2v1300_txach', 'description': '不可使用,仅供参考:Income Taxes - Accrued - Increase/(Decrease)'}
{'data_set_name': '可以使用:pv13_custretsig_retsig', 'description': '不可使用,仅供参考:Sign of customer return'}
{'data_set_name': '可以使用:fnd6_newqeventv110_fcaq', 'description': '不可使用,仅供参考:Foreign Exchange Income (Loss)'}
{'data_set_name': '可以使用:fnd6_newa1v1300_apalch', 'description': '不可使用,仅供参考:Accounts Payable and Accrued Liabilities - Increase/(Decrease)'}
{'data_set_name': '可以使用:pv13_r2_min20_1000_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:snt_social_volume', 'description': '不可使用,仅供参考:Normalized tweet volume'}
{'data_set_name': '可以使用:pv13_hierarchy_min30_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:anl4_fsactualqfv4_actual', 'description': '不可使用,仅供参考:Announced financial data'}
{'data_set_name': '可以使用:rp_css_mna', 'description': '不可使用,仅供参考:Composite sentiment score of mergers and acquisitions-related news'}
{'data_set_name': '可以使用:fnd6_prclq', 'description': '不可使用,仅供参考:Price Low - Quarter'}
{'data_set_name': '可以使用:fn_proceeds_from_stock_options_exercised_q', 'description': '不可使用,仅供参考:The cash inflow associated with the amount received from holders exercising their stock options. This item inherently excludes any excess tax benefit, which the entity may have realized and reported separately.'}
{'data_set_name': '可以使用:fnd6_newqv1300_cibegniq', 'description': '不可使用,仅供参考:Comp Inc - Beginning Net Income'}
{'data_set_name': '可以使用:put_breakeven_180', 'description': "不可使用,仅供参考:Price at which a stock's put options with expiration 180 days in the future break even based on its recent bid/ask mean."}
{'data_set_name': '可以使用:fnd6_ias', 'description': '不可使用,仅供参考:Identifiable (Total) Assets'}
{'data_set_name': '可以使用:fnd6_sppe', 'description': '不可使用,仅供参考:Sale of Property'}
{'data_set_name': '可以使用:fnd6_xaccq', 'description': '不可使用,仅供参考:Accrued Expenses'}
{'data_set_name': '可以使用:fn_goodwill_acquired_during_period_a', 'description': '不可使用,仅供参考: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.'}
{'data_set_name': '可以使用:option_breakeven_270', 'description': "不可使用,仅供参考:Price at which a stock's options with expiration 270 days in the future break even based on its recent bid/ask mean."}
{'data_set_name': '可以使用:fnd6_xpr', 'description': '不可使用,仅供参考:Pension and Retirement Expense'}
{'data_set_name': '可以使用:fnd6_newqv1300_aqpl1q', 'description': '不可使用,仅供参考:Assets Level 1 (Quoted Prices)'}
{'data_set_name': '可以使用:debt_lt', 'description': '不可使用,仅供参考:Long-Term Debt - Total'}
{'data_set_name': '可以使用:anl4_qfv4_div_number', 'description': '不可使用,仅供参考:Dividend - number of estimations'}
{'data_set_name': '可以使用:fnd6_newqv1300_ivstq', 'description': '不可使用,仅供参考:Short-Term Investments - Total'}
{'data_set_name': '可以使用:pretax_income_reported_min_guidance_qtr', 'description': '不可使用,仅供参考:Reported Pretax income- minimum guidance value'}
{'data_set_name': '可以使用:fnd2_q_inventoryrawmaterials', 'description': '不可使用,仅供参考:Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within 1 year or operating cycle, if longer.'}
{'data_set_name': '可以使用:topsp500', 'description': '不可使用,仅供参考:20140630'}
{'data_set_name': '可以使用:fnd6_cptmfmq_dpq', 'description': '不可使用,仅供参考:Depreciation and Amortization - Total'}
{'data_set_name': '可以使用:anl4_cff_flag', 'description': '不可使用,仅供参考:Cash Flow From Financing Activities - forecast type (revision/new/...)'}
{'data_set_name': '可以使用:anl4_eaz1lqfv110_bk', 'description': '不可使用,仅供参考:Broker name (int)'}
{'data_set_name': '可以使用:operating_expense', 'description': '不可使用,仅供参考:Operating Expense - Total'}
{'data_set_name': '可以使用:rp_ess_price', 'description': '不可使用,仅供参考:Event sentiment score of stock price news'}
{'data_set_name': '可以使用:fnd6_newqeventv110_txtq', 'description': '不可使用,仅供参考:Income Taxes - Total'}
{'data_set_name': '可以使用:nws12_prez_57s', 'description': '不可使用,仅供参考:Number of minutes that elapsed before price went down 7.5 percentage points'}
{'data_set_name': '可以使用:max_adjusted_eps_guidance', 'description': '不可使用,仅供参考:The maximum guidance value for adjusted earnings per share.'}
{'data_set_name': '可以使用:fnd6_fato', 'description': '不可使用,仅供参考:Plant, Property and Equipment at Cost - Other'}
{'data_set_name': '可以使用:fnd6_newqv1300_intanq', 'description': '不可使用,仅供参考:Intangible Assets - Total'}
{'data_set_name': '可以使用:min_adjusted_funds_from_operations_guidance', 'description': '不可使用,仅供参考:Funds from operation - minimum guidance value'}
{'data_set_name': '可以使用:fnd6_txdbcl', 'description': '不可使用,仅供参考:Deferred Tax Liability - Current'}
{'data_set_name': '可以使用:fnd6_newqv1300_optrfrq', 'description': '不可使用,仅供参考:Risk-Free Rate - Assumption (%)'}
{'data_set_name': '可以使用:fnd6_txdba', 'description': '不可使用,仅供参考:Deferred Tax Asset - Long Term'}
{'data_set_name': '可以使用:implied_volatility_mean_skew_120', 'description': '不可使用,仅供参考:At-the-money option-implied volatility mean skew for 120 days'}
{'data_set_name': '可以使用:fnd6_newa1v1300_gp', 'description': '不可使用,仅供参考:Gross Profit (Loss)'}
{'data_set_name': '可以使用:anl4_detailltv4_preest', 'description': '不可使用,仅供参考:The previous estimation of financial item'}
{'data_set_name': '可以使用:sales_estimate_count_quarterly', 'description': '不可使用,仅供参考:Sales - number of estimations'}
{'data_set_name': '可以使用:pv13_revere_company_total', 'description': '不可使用,仅供参考:Total number of companies in the sector'}
{'data_set_name': '可以使用:fn_op_lease_min_pay_due_in_3y_a', 'description': '不可使用,仅供参考:Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the 3rd 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.'}
{'data_set_name': '可以使用:anl4_eaz1lqfv110_prevval', 'description': '不可使用,仅供参考:The previous estimation of financial item'}
{'data_set_name': '可以使用:fnd6_newqv1300_lltq', 'description': '不可使用,仅供参考:Long-Term Liabilities (Total)'}
{'data_set_name': '可以使用:min_basic_shares_guidance', 'description': '不可使用,仅供参考:Shares Basic - Minimum guidance value'}
{'data_set_name': '可以使用:fn_effect_of_exchange_rate_on_cash_and_equiv_a', 'description': '不可使用,仅供参考:Amount of increase (decrease) from the effect of exchange rate changes on cash and cash equivalent balances held in foreign currencies.'}
{'data_set_name': '可以使用:est_tot_assets', 'description': '不可使用,仅供参考:Total Assets - mean of estimations'}
{'data_set_name': '可以使用:fnd6_newqeventv110_aocisecglq', 'description': '不可使用,仅供参考:Accum. Other Comp. Inc. - Unreal G/L Ret. Int. in Sec. Assets'}
{'data_set_name': '可以使用:fnd6_newqv1300_miiq', 'description': '不可使用,仅供参考:Noncontrolling Interest - Income Account'}
{'data_set_name': '可以使用:fnd6_newqv1300_oepsxq', 'description': '不可使用,仅供参考:Earnings Per Share - Diluted - from Operations'}
{'data_set_name': '可以使用:anl4_eaz2lrec_person', 'description': '不可使用,仅供参考:Broker Id'}
{'data_set_name': '可以使用:anl4_afv4_div_number', 'description': '不可使用,仅供参考:Number of estimations for Dividend per share - annually'}
{'data_set_name': '可以使用:sales_estimate_dispersion', 'description': '不可使用,仅供参考:Standard deviation of Sales estimations for the annual period.'}
{'data_set_name': '可以使用:fnd6_newqeventv110_dvpq', 'description': '不可使用,仅供参考:Dividends - Preferred/Preference'}
{'data_set_name': '可以使用:option_breakeven_20', 'description': "不可使用,仅供参考:Price at which a stock's options with expiration 20 days in the future break even based on its recent bid/ask mean."}
{'data_set_name': '可以使用:news_mins_10_pct_dn', 'description': '不可使用,仅供参考:Number of minutes that elapsed before price went down 10 percentage points'}
{'data_set_name': '可以使用:anl4_ads1detailafv110_person', 'description': '不可使用,仅供参考:Broker Id'}
{'data_set_name': '可以使用:pv13_h_min2_3000_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:pretax_income_reported', 'description': '不可使用,仅供参考:Reported Pretax income - actual value for the annual fiscal period'}
{'data_set_name': '可以使用:fnd6_oprepsx', 'description': '不可使用,仅供参考:Earnings Per Share - Diluted - from Operations'}
{'data_set_name': '可以使用:pv13_rha2_min10_1000_513_sector', 'description': '不可使用,仅供参考:grouping fields'}
{'data_set_name': '可以使用:news_ls', 'description': '不可使用,仅供参考: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.'}
{'data_set_name': '可以使用:max_selling_general_admin_guidance', 'description': '不可使用,仅供参考:The maximum guidance value for Selling, General & Administrative Expense'}
{'data_set_name': '可以使用:max_tangible_book_value_per_share_guidance', 'description': '不可使用,仅供参考:Tangible Book Value per Share - maximum guidance value'}
{'data_set_name': '可以使用:nws12_prez_eodlow', 'description': '不可使用,仅供参考:Lowest price reached between the time of news and the end of the session.'}
{'data_set_name': '可以使用:nws12_prez_peratio', 'description': '不可使用,仅供参考:Reported price to earnings ratio for the calendar day of the session'}
{'data_set_name': '可以使用:fnd6_newqeventv110_ancq', 'description': '不可使用,仅供参考:Non-Current Assets - Total'}
{'data_set_name': '可以使用:fnd2_a_sbcpnargmpmtwopsffesip', 'description': '不可使用,仅供参考:The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan.'}
{'data_set_name': '可以使用:max_research_development_expense_guidance', 'description': '不可使用,仅供参考:The maximum guidance value for Research and Development Expense.'}
{'data_set_name': '可以使用:fn_line_of_credit_facility_amount_out_q', 'description': '不可使用,仅供参考:Amount borrowed under the credit facility as of the balance sheet date.'}
{'data_set_name': '可以使用:nws12_allz_newrecord', 'description': '不可使用,仅供参考:Tracks whether the news is first instance or a duplicate'}
{'data_set_name': '可以使用:fnd6_newqeventv110_invrmq', 'description': '不可使用,仅供参考:Inventory - Raw Materials'}
========================= 数据字段结束 =======================================
以上数据字段和操作符, 按照Description说明组合, 但是每一个 alpha 组合的使用的数据字段和操作符不要过于集中, 在符合语法的情况下, 多尝试不同的组合
你再检查一下, 如果你使用了
Operator abs does not support event inputs
Operator ts_mean does not support event inputs
Operator ts_scale does not support event inputs
Operator add does not support event inputs
Operator sign does not support event inputs
Operator greater does not support event inputs
Operator ts_av_diff does not support event inputs
Operator ts_quantile does not support event inputs
Operator ts_arg_min does not support event inputs
Operator divide does not support event inputs
Operator ts_corr does not support event inputs
Operator ts_decay_linear does not support event inputs
Operator ts_sum does not support event inputs
Operator ts_delay does not support event inputs
Operator ts_arg_max does not support event inputs
Operator ts_std_dev does not support event inputs
Operator ts_regression does not support event inputs
Operator ts_backfill does not support event inputs
Operator signed_power does not support event inputs
Operator ts_product does not support event inputs
Operator ts_zscore does not support event inputs
Operator group_rank does not support event inputs
Operator subtract does not support event inputs
Operator ts_delta does not support event inputs
Operator ts_rank does not support event inputs
Operator ts_count_nans does not support event inputs
Operator ts_covariance does not support event inputs
Operator multiply does not support event inputs
Operator if_else does not support event inputs
Operator group_neutralize does not support event inputs
Operator group_zscore does not support event inputs
Operator winsorize does not support event inputs
注意, 以上操作符不能使用事件类型的数据集, 以上操作符禁止使用事件类型的数据集!!

@ -1,13 +1,32 @@
Liquidity Stratification Pricing Factor
名称
供应商集中度动态调整因子
假设
供应商集中度(前五大供应商采购额占总采购额比重)的动态变化直接反映企业供应链风险的管控能力。若企业供应商集中度从高位持续回落,意味着其正在主动分散供应链依赖风险,能够有效降低单一供应商违约、提价或断供带来的经营冲击,进而提升盈利稳定性与抗风险能力,这类企业应享有估值溢价,适合建立多头仓位;反之,若供应商集中度从低位持续攀升,企业对少数供应商的依赖度加深,供应链脆弱性上升,经营不确定性增加,适合建立空头仓位。此外,集中度调整的速度与幅度和超额收益呈正相关,快速且合理的分散调整比缓慢调整更具信号价值。
实施方案
计算核心指标:基于企业采购数据,测算供应商集中度比率(CR5 = 前五大供应商采购金额 / 总采购金额);
时序趋势分析:使用时序趋势算子(ts_trend)拟合过去 12 个月 CR5 的变化斜率,区分 “持续下降(斜率为负且绝对值大于阈值)”“持续上升(斜率为正且绝对值大于阈值)”“平稳波动” 三类标的;
规模与行业校准:将 CR5 除以企业总采购额的对数以消除规模影响,同时计算标的 CR5 与行业均值的偏离度;
构建多空策略:做多 “CR5 持续下降 + 当前 CR5 低于行业均值” 的标的;做空 “CR5 持续上升 + 当前 CR5 高于行业均值” 的标的;剔除 CR5 平稳波动且偏离行业均值较小的标的以降低噪声。
阿尔法因子优化建议
引入行业差异化阈值:不同行业的供应商集中度基准值差异显著(如半导体行业核心物料供应商集中度天然偏高,快消品行业集中度偏低),建议采用行业分位数算子替代固定阈值,在行业内部分层判断集中度调整的合理性;
叠加供应商质量验证:整合供应商信用评级、合作年限等数据,当集中度下降伴随 “新增供应商信用评级高于原有供应商” 时,强化多头信号权重;若集中度上升源于 “优质供应商排他性合作”,则弱化空头信号;
事件驱动权重调整:运用事件触发算子,在行业性供应链危机(如原材料涨价潮、地缘政治导致的物料断供)发生时,放大该因子的配置权重,捕捉危机期间供应链稳健企业的超额收益;
分档加权优化:采用分层算子将集中度调整幅度分为 “大幅调整”“中度调整”“小幅调整” 三档,针对不同档位设置差异化仓位权重,提升策略的风险收益比。
Name
Dynamic Adjustment Factor of Supplier Concentration
Hypothesis
During periods of liquidity tightening or market stress, investors' preference for asset liquidity increases sharply, leading to an intensified phenomenon of liquidity stratification. High-liquidity stocks experience relatively smaller declines due to a "liquidity premium," while low-liquidity stocks are sold off significantly due to a "liquidity discount." When market stress eases and the liquidity environment shifts towards easing, previously overly discounted low-liquidity stocks often exhibit stronger mean reversion and generate more substantial rebounds. Conversely, in the initial phase of a shift from loose to tight market liquidity, high-liquidity stocks may demonstrate stronger defensive characteristics.
The dynamic change in supplier concentration (measured by the proportion of purchases from the top 5 suppliers to total purchases) directly reflects an enterprise's ability to control supply chain risks. If a company's supplier concentration continues to decline from a high level, it indicates that it is actively diversifying supply chain dependence risks, which can effectively reduce operational shocks caused by default, price increase or supply disruption of a single supplier, thereby improving profit stability and risk resistance. Such enterprises deserve a valuation premium and are suitable for establishing long positions. Conversely, if supplier concentration continues to rise from a low level, the enterprise's dependence on a few suppliers deepens, supply chain vulnerability increases, and operational uncertainty rises, making it suitable for establishing short positions. In addition, the speed and magnitude of concentration adjustment are positively correlated with excess returns—fast and reasonable diversification adjustments have higher signal value than slow adjustments.
Implementation Plan
Construct a comprehensive liquidity measurement indicator incorporating trading volume, turnover rate, bid-ask spread, and the Amihud illiquidity ratio. Use a time-series market regime identification operator (e.g., based on thresholds for market breadth, monetary conditions index, or volatility index VIX) to determine the prevailing "liquidity regime" of the market. During phases identified as a transition from "tight" to "easy," apply positive weights to the portfolio of stocks with the worst prior liquidity (bottom 20% based on the composite indicator). In the initial phase of liquidity "tightening," apply positive weights to the portfolio of stocks with the best liquidity (top 20%). Utilize cross-sectional ranking and group assignment to construct the investment portfolio.
Calculate core indicators: Based on enterprise procurement data, measure the supplier concentration ratio (CR5 = purchase amount from top 5 suppliers / total purchase amount);
Time-series trend analysis: Use the time-series trend operator (ts_trend) to fit the change slope of CR5 over the past 12 months, and classify targets into three categories: "continuous decline (negative slope with absolute value greater than threshold)", "continuous rise (positive slope with absolute value greater than threshold)", and "stable fluctuation";
Scale and industry calibration: Divide CR5 by the logarithm of the enterprise's total purchase amount to eliminate scale effects, and calculate the deviation of the target's CR5 from the industry average;
Construct long-short strategy: Establish long positions on targets with "continuously declining CR5 + current CR5 below industry average"; establish short positions on targets with "continuously rising CR5 + current CR5 above industry average"; exclude targets with stable CR5 fluctuation and small deviation from industry average to reduce noise.
Alpha Factor Optimization Suggestions
Pure liquidity metrics can be strongly influenced by firm market capitalization and industry attributes. A two-step neutralization process is recommended: First, perform liquidity ranking within industries to eliminate differences in industry trading characteristics. Second, after factor construction, control for exposure to the size factor. Furthermore, introducing the "duration of liquidity shock" as a weighting parameter could help refine the strategy. Stocks that have endured liquidity pressure for a longer period could be assigned higher weights during the reversal phase to more precisely capture the rebound momentum following suppression.
Introduce industry-differentiated thresholds: There are significant differences in the benchmark values of supplier concentration across industries (e.g., the concentration of core material suppliers in the semiconductor industry is naturally high, while that in the consumer goods industry is low). It is recommended to use the industry quantile operator instead of fixed thresholds to judge the rationality of concentration adjustment by stratification within the industry;
Superimpose supplier quality verification: Integrate data such as supplier credit ratings and cooperation years. When the decline in concentration is accompanied by "the credit rating of new suppliers being higher than that of original suppliers", strengthen the weight of long signals; if the rise in concentration stems from "exclusive cooperation with high-quality suppliers", weaken the short signals;
Event-driven weight adjustment: Use the event trigger operator to increase the allocation weight of this factor during industry-wide supply chain crises (such as raw material price surges, material supply disruptions caused by geopolitics), capturing excess returns of supply chain-robust enterprises during crises;
Tiered weighting optimization: Use the stratification operator to divide the concentration adjustment range into three tiers: "significant adjustment", "moderate adjustment" and "minor adjustment", and set differentiated position weights for different tiers to improve the risk-return ratio of the strategy.
*=========================================================================================*

@ -1,12 +1,14 @@
Liquidity Stratification Pricing Factor
Name
Dynamic Adjustment Factor of Supplier Concentration
Hypothesis
During periods of liquidity tightening or market stress, investors' preference for asset liquidity increases sharply, leading to an intensified phenomenon of liquidity stratification. High-liquidity stocks experience relatively smaller declines due to a "liquidity premium," while low-liquidity stocks are sold off significantly due to a "liquidity discount." When market stress eases and the liquidity environment shifts towards easing, previously overly discounted low-liquidity stocks often exhibit stronger mean reversion and generate more substantial rebounds. Conversely, in the initial phase of a shift from loose to tight market liquidity, high-liquidity stocks may demonstrate stronger defensive characteristics.
The dynamic change in supplier concentration (measured by the proportion of purchases from the top 5 suppliers to total purchases) directly reflects an enterprise's ability to control supply chain risks. If a company's supplier concentration continues to decline from a high level, it indicates that it is actively diversifying supply chain dependence risks, which can effectively reduce operational shocks caused by default, price increase or supply disruption of a single supplier, thereby improving profit stability and risk resistance. Such enterprises deserve a valuation premium and are suitable for establishing long positions. Conversely, if supplier concentration continues to rise from a low level, the enterprise's dependence on a few suppliers deepens, supply chain vulnerability increases, and operational uncertainty rises, making it suitable for establishing short positions. In addition, the speed and magnitude of concentration adjustment are positively correlated with excess returns—fast and reasonable diversification adjustments have higher signal value than slow adjustments.
Implementation Plan
Construct a comprehensive liquidity measurement indicator incorporating trading volume, turnover rate, bid-ask spread, and the Amihud illiquidity ratio. Use a time-series market regime identification operator (e.g., based on thresholds for market breadth, monetary conditions index, or volatility index VIX) to determine the prevailing "liquidity regime" of the market. During phases identified as a transition from "tight" to "easy," apply positive weights to the portfolio of stocks with the worst prior liquidity (bottom 20% based on the composite indicator). In the initial phase of liquidity "tightening," apply positive weights to the portfolio of stocks with the best liquidity (top 20%). Utilize cross-sectional ranking and group assignment to construct the investment portfolio.
Calculate core indicators: Based on enterprise procurement data, measure the supplier concentration ratio (CR5 = purchase amount from top 5 suppliers / total purchase amount);
Time-series trend analysis: Use the time-series trend operator (ts_trend) to fit the change slope of CR5 over the past 12 months, and classify targets into three categories: "continuous decline (negative slope with absolute value greater than threshold)", "continuous rise (positive slope with absolute value greater than threshold)", and "stable fluctuation";
Scale and industry calibration: Divide CR5 by the logarithm of the enterprise's total purchase amount to eliminate scale effects, and calculate the deviation of the target's CR5 from the industry average;
Construct long-short strategy: Establish long positions on targets with "continuously declining CR5 + current CR5 below industry average"; establish short positions on targets with "continuously rising CR5 + current CR5 above industry average"; exclude targets with stable CR5 fluctuation and small deviation from industry average to reduce noise.
Alpha Factor Optimization Suggestions
Pure liquidity metrics can be strongly influenced by firm market capitalization and industry attributes. A two-step neutralization process is recommended: First, perform liquidity ranking within industries to eliminate differences in industry trading characteristics. Second, after factor construction, control for exposure to the size factor. Furthermore, introducing the "duration of liquidity shock" as a weighting parameter could help refine the strategy. Stocks that have endured liquidity pressure for a longer period could be assigned higher weights during the reversal phase to more precisely capture the rebound momentum following suppression.
"volume", "turnover", "spread", "illiquidity", "amihud", "bid", "ask", "vix", "liquidity", "tight", "easy", "monetary", "condition", "stress", "market", "breadth", "regime", "duration"
Introduce industry-differentiated thresholds: There are significant differences in the benchmark values of supplier concentration across industries (e.g., the concentration of core material suppliers in the semiconductor industry is naturally high, while that in the consumer goods industry is low). It is recommended to use the industry quantile operator instead of fixed thresholds to judge the rationality of concentration adjustment by stratification within the industry;
Superimpose supplier quality verification: Integrate data such as supplier credit ratings and cooperation years. When the decline in concentration is accompanied by "the credit rating of new suppliers being higher than that of original suppliers", strengthen the weight of long signals; if the rise in concentration stems from "exclusive cooperation with high-quality suppliers", weaken the short signals;
Event-driven weight adjustment: Use the event trigger operator to increase the allocation weight of this factor during industry-wide supply chain crises (such as raw material price surges, material supply disruptions caused by geopolitics), capturing excess returns of supply chain-robust enterprises during crises;
Tiered weighting optimization: Use the stratification operator to divide the concentration adjustment range into three tiers: "significant adjustment", "moderate adjustment" and "minor adjustment", and set differentiated position weights for different tiers to improve the risk-return ratio of the strategy.

@ -1,59 +1,127 @@
group_scale(ts_step(1), pv13_h_min2_focused_sector)
rank(power(rel_num_cust, 2))
scale(sqrt(abs(rel_num_cust)))
normalize(vec_avg(rel_num_cust))
quantile(rank(rel_num_cust))
group_mean(rel_num_cust, rel_num_cust, pv13_r2_liquid_min2_sector)
power(rank(ebit), 1.5)
reverse(scale(sqrt(ebit)))
normalize(vec_sum(sales_ps))
quantile(rank(sales_ps), uniform)
group_scale(fscore_total, pv13_hierarchy_min20_3k_513_sector)
scale(abs(subtract(rel_num_cust, ts_step(1)), filter=true))
rank(signed_power(anl4_netprofita_value, 2))
normalize(power(fscore_bfl_total, 0.75))
group_mean(ebit, ebit, pv13_h_min22_1000_sector)
scale(log(abs(add(rel_num_cust, sales_ps, filter=true))))
quantile(rank(fnd6_cptnewqv1300_oiadpq), cauchy)
reverse(rank(multiply(rel_num_cust, ebit, filter=true)))
group_scale(sales_ps, pv13_h_min24_500_sector)
normalize(sqrt(abs(fnd6_newqv1300_teqq)))
rank(add(ebit, fscore_total, filter=true))
scale(signed_power(rel_num_cust, 3))
quantile(group_mean(sales_ps, sales_ps, pv13_h_min52_1k_sector))
reverse(scale(log(abs(anl4_ptp_mean))))
group_scale(anl4_netprofita_value, pv13_new_3l_scibr)
rank(multiply(ebit, fscore_bfl_total, filter=true))
normalize(power(rel_num_cust, 0.5))
scale(abs(subtract(sales_ps, ebit, filter=true)))
quantile(rank(fnd6_cptnewqv1300_lctq), gaussian)
group_zscore(ts_std_dev(fnd6_newqv1300_invoq, 504), pv13_hierarchy_f3_513_sector)
group_zscore(ts_rank(add(divide(ts_sum(sales_ps, 250), ts_sum(ebit, 250)), ts_av_diff(ts_zscore(sales_ps, 60), 20)), 60), pv13_h_min2_focused_sector)
group_zscore(ts_mean(fnd6_newqv1300_invoq, 504), pv13_hierarchy_f3_513_sector)
group_zscore(ts_rank(multiply(ts_delta(sales_ps, 5), ts_corr(sales_ps, ebit, 20)), 120), pv13_h_min2_focused_sector)
subtract(group_zscore(ts_mean(fnd6_newqv1300_invoq, 504), pv13_hierarchy_f3_513_sector), group_zscore(ts_std_dev(fnd6_newqv1300_invoq, 504), pv13_hierarchy_f3_513_sector))
subtract(ts_rank(ts_zscore(sales_ps, 60), 250), ts_rank(ts_zscore(ebit, 60), 250))
ts_rank(ts_std_dev(fnd6_newqv1300_invoq, 504), 126)
multiply(sign(ts_delta(sales_ps, 10)), ts_rank(ts_av_diff(sales_ps, 20), 60))
ts_rank(ts_mean(fnd6_newqv1300_invoq, 504), 126)
ts_rank(add(ts_zscore(sales_ps, 60), ts_zscore(divide(sales_ps, ebit), 60)), 120)
subtract(ts_rank(ts_mean(fnd6_newqv1300_invoq, 504), 126), ts_rank(ts_std_dev(fnd6_newqv1300_invoq, 504), 126))
if_else(ts_rank(sales_ps, 60) > ts_rank(ebit, 60), ts_rank(sales_ps, 60), ts_rank(ebit, 60))
ts_zscore(ts_std_dev(fnd6_newqv1300_invoq, 504), 252)
group_zscore(ts_rank(divide(ts_sum(sales_ps, 120), ts_sum(ebit, 120)), 120), pv13_h_min2_focused_sector)
ts_zscore(ts_mean(fnd6_newqv1300_invoq, 504), 252)
subtract(ts_rank(ts_mean(sales_ps, 20), 60), ts_rank(ts_mean(ebit, 20), 60))
subtract(ts_zscore(ts_mean(fnd6_newqv1300_invoq, 504), 252), ts_zscore(ts_std_dev(fnd6_newqv1300_invoq, 504), 252))
multiply(ts_delta(sales_ps, 5), ts_corr(sales_ps, ebit, 20))
ts_delta(ts_mean(fnd6_newqv1300_invoq, 504), 63)
ts_rank(divide(ts_zscore(sales_ps, 60), ts_zscore(ebit, 60)), 120)
ts_delta(ts_std_dev(fnd6_newqv1300_invoq, 504), 63)
group_zscore(ts_rank(add(ts_delta(sales_ps, 5), ts_av_diff(divide(sales_ps, ebit), 10)), 60), pv13_h_min2_focused_sector)
subtract(ts_delta(ts_mean(fnd6_newqv1300_invoq, 504), 63), ts_delta(ts_std_dev(fnd6_newqv1300_invoq, 504), 63))
ts_rank(multiply(sign(ts_delta(sales_ps, 10)), ts_zscore(sales_ps, 60)), 120)
ts_corr(ts_mean(fnd6_newqv1300_invoq, 504), ts_std_dev(fnd6_newqv1300_invoq, 504), 252)
subtract(ts_rank(ts_sum(sales_ps, 20), 60), ts_rank(ts_sum(ebit, 20), 60))
ts_covariance(ts_mean(fnd6_newqv1300_invoq, 504), ts_std_dev(fnd6_newqv1300_invoq, 504), 252)
if_else(ts_rank(sales_ps, 60) > 0.7, ts_rank(divide(sales_ps, ebit), 60), ts_rank(sales_ps, 60))
divide(ts_mean(fnd6_newqv1300_invoq, 504), ts_std_dev(fnd6_newqv1300_invoq, 504))
group_zscore(ts_rank(ts_corr(sales_ps, ebit, 20), 60), pv13_h_min2_focused_sector)
ts_av_diff(ts_mean(fnd6_newqv1300_invoq, 504), 504)
ts_av_diff(ts_std_dev(fnd6_newqv1300_invoq, 504), 504)
subtract(ts_av_diff(ts_mean(fnd6_newqv1300_invoq, 504), 504), ts_av_diff(ts_std_dev(fnd6_newqv1300_invoq, 504), 504))
ts_quantile(ts_mean(fnd6_newqv1300_invoq, 504), 504)
ts_quantile(ts_std_dev(fnd6_newqv1300_invoq, 504), 504)
subtract(ts_quantile(ts_mean(fnd6_newqv1300_invoq, 504), 504), ts_quantile(ts_std_dev(fnd6_newqv1300_invoq, 504), 504))
ts_sum(ts_mean(fnd6_newqv1300_invoq, 504), 126)
ts_sum(ts_std_dev(fnd6_newqv1300_invoq, 504), 126)
subtract(ts_sum(ts_mean(fnd6_newqv1300_invoq, 504), 126), ts_sum(ts_std_dev(fnd6_newqv1300_invoq, 504), 126))
ts_product(ts_mean(fnd6_newqv1300_invoq, 504), 63)
ts_product(ts_std_dev(fnd6_newqv1300_invoq, 504), 63)
divide(ts_product(ts_mean(fnd6_newqv1300_invoq, 504), 63), ts_product(ts_std_dev(fnd6_newqv1300_invoq, 504), 63))
ts_arg_min(ts_mean(fnd6_newqv1300_invoq, 504), 504)
ts_arg_max(ts_std_dev(fnd6_newqv1300_invoq, 504), 504)
subtract(ts_arg_min(ts_mean(fnd6_newqv1300_invoq, 504), 504), ts_arg_max(ts_std_dev(fnd6_newqv1300_invoq, 504), 504))
ts_count_nans(fnd6_newqv1300_invoq, 504)
ts_backfill(fnd6_newqv1300_invoq, 504)
subtract(ts_backfill(fnd6_newqv1300_invoq, 504), ts_count_nans(fnd6_newqv1300_invoq, 504))
group_zscore(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), pv13_hierarchy_f3_513_sector)
group_neutralize(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), pv13_hierarchy_f3_513_sector)
ts_zscore(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504)
ts_rank(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504)
group_rank(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), pv13_hierarchy_f3_513_sector)
ts_mean(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504)
ts_std_dev(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504)
divide(ts_std_dev(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504), ts_mean(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504))
ts_delta(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 63)
ts_regression(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), ts_step(1), 504, 0, 1)
ts_av_diff(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504)
group_zscore(ts_mean(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504), pv13_hierarchy_f3_513_sector)
group_neutralize(ts_std_dev(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504), pv13_hierarchy_f3_513_sector)
multiply(group_zscore(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), pv13_hierarchy_f3_513_sector), -1)
ts_zscore(ts_delta(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 63), 504)
group_zscore(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), pv13_hierarchy_min2_focused_pureplay_3000_513_sector)
multiply(divide(fnd6_newqv1300_invoq, est_sales), 365)
group_zscore(fnd6_newqv1300_invoq, pv13_hierarchy_f3_513_sector)
ts_zscore(fnd6_newqv1300_invoq, 504)
divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt)
group_zscore(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), pv13_hierarchy_f3_513_sector)
ts_mean(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 504)
ts_std_dev(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 504)
multiply(ts_rank(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 504), -1)
ts_quantile(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 504)
group_scale(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), pv13_hierarchy_f3_513_sector)
normalize(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25))
quantile(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25))
scale(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25))
winsorize(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25), 4)
zscore(multiply(divide(fnd6_newqv1300_invoq, fnd6_newa1v1300_revt), 91.25))
Loading…
Cancel
Save