jack 2 months ago
parent c0955d2cd7
commit 41f0010890
  1. 225
      generated_alpha/2025-12-12/154831.txt
  2. 205
      generated_alpha/2025-12-12/155502.txt
  3. 240
      generated_alpha/2025-12-12/155552.txt
  4. 165
      generated_alpha/2025-12-12/161043.txt
  5. 898
      manual_prompt/manual_prompt_20251212140534.txt
  6. 898
      manual_prompt/manual_prompt_20251212150134.txt
  7. 898
      manual_prompt/manual_prompt_20251212154430.txt
  8. 175
      prepare_prompt/alpha_prompt.txt
  9. 122
      prompt_set_ref/alpha_prompt002.txt

@ -0,0 +1,225 @@
multiply(group_mean(ts_delta(close, 5), 1, bucket(rank(volume), range="0,3,0.4")), ts_corr(volume, returns, 10))
if_else(ts_rank(ts_std_dev(returns, 20), 120) > 0.7, ts_delta(close, 5), ts_delta(close, 30))
multiply(group_mean(ts_regression(close, ts_step(1), 20, 0, 1), 1, industry), ts_corr(group_rank(returns, industry), returns, 10))
multiply(reverse(ts_rank(divide(volume, ts_mean(volume, 20)), 10)), ts_mean(returns, 30))
multiply(if_else(rank(volume) > 0.7, ts_delta(close, 10), ts_delta(close, 30)), ts_av_diff(returns, 5))
if_else(ts_std_dev(returns, 60) > 0.02, ts_delta(close, 10), group_mean(ts_delta(close, 60), 1, bucket(rank(volume), range="0,3,0.4")))
multiply(ts_zscore(volume, 20), ts_decay_linear(ts_delta(close, 5), 10))
multiply(group_mean(ts_delta(close, 20), 1, industry), ts_rank(group_mean(returns, 1, industry), 30))
if_else(ts_rank(ts_mean(abs(returns), 30), 60) > 0.5, ts_delta(ts_delta(close, 5), 10), ts_delta(close, 20))
multiply(ts_corr(ts_delta(close, 10), ts_delta(volume, 10), 20), if_else(bucket(rank(volume), range="0,3,0.4") == 0, 1, reverse(1)))
group_mean(ts_sum(returns, 10), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_rank(ts_std_dev(returns, 10), 30) > 0.8, ts_delta(close, 5) / ts_std_dev(returns, 10), ts_delta(close, 20) / ts_std_dev(returns, 30))
multiply(ts_corr(group_mean(returns, 1, sector), returns, 30), ts_regression(close, ts_step(1), 60, 0, 1))
multiply(reverse(ts_rank(divide(volume, ts_mean(volume, 60)), 20)), ts_corr(returns, ts_delta(close, 5), 10))
if_else(ts_std_dev(returns, 20) > ts_mean(ts_std_dev(returns, 120), 20), ts_delta(close, 10), group_mean(ts_delta(close, 30), 1, industry))
multiply(ts_mean(returns, 10), if_else(rank(ts_std_dev(returns, 20)) > 0.7, reverse(1), 1))
multiply(group_mean(ts_rank(returns, 5), 1, bucket(rank(volume), range="0,3,0.4")), ts_decay_linear(ts_delta(close, 1), 10))
if_else(ts_rank(ts_mean(returns, 20), 60) > 0.5, ts_delta(close, 10), reverse(ts_delta(close, 10)))
multiply(ts_corr(ts_delta(close, 5), ts_delta(high, 5), 10), if_else(bucket(rank(volume), range="0,3,0.4") == 0, ts_zscore(close, 20), 0))
group_mean(ts_delta(close, 5) / ts_std_dev(returns, 20), 1, industry)
if_else(ts_std_dev(returns, 30) > 0.015, ts_mean(returns, 5), ts_mean(returns, 20))
multiply(ts_rank(volume, 30), ts_regression(close, ts_step(1), 10, 0, 1))
multiply(group_zscore(ts_delta(close, 10), industry), ts_corr(returns, group_mean(returns, 1, industry), 30))
if_else(ts_rank(divide(volume, ts_mean(volume, 30)), 60) > 0.7, reverse(ts_delta(close, 5)), ts_delta(close, 20))
multiply(ts_av_diff(returns, 5), if_else(rank(volume) > 0.8, 1, reverse(1)))
group_mean(ts_delta(close, 20) * sign(ts_delta(volume, 20)), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_mean(abs(returns), 10) > 0.02, ts_delta(close, 5), group_mean(ts_delta(close, 30), 1, industry))
multiply(ts_corr(ts_delta(close, 10), ts_delta(vwap, 10), 15), ts_rank(ts_mean(returns, 10), 20))
multiply(reverse(ts_rank(ts_std_dev(returns, 10), 30)), ts_sum(returns, 10))
if_else(bucket(rank(volume), range="0,3,0.4") == 0, ts_delta(close, 10) / ts_std_dev(returns, 10), ts_delta(close, 30) / ts_std_dev(returns, 30))
multiply(group_scale(ts_delta(close, 5), industry), ts_corr(returns, ts_delta(volume, 5), 10))
if_else(ts_rank(ts_mean(returns, 5), 20) > 0.7, ts_delta(close, 5), reverse(ts_delta(close, 5)))
multiply(ts_mean(ts_delta(close, 1), 10), if_else(rank(ts_zscore(volume, 30)) > 0.5, 1, reverse(1)))
group_mean(ts_delta(close, 30) * ts_corr(close, volume, 30), 1, industry)
if_else(ts_std_dev(returns, 60) > ts_mean(ts_std_dev(returns, 120), 60), ts_delta(close, 10), ts_delta(close, 60))
multiply(ts_rank(ts_delta(close, 5), 20), if_else(bucket(rank(volume), range="0,3,0.4") == 2, reverse(1), 1))
multiply(group_neutralize(ts_delta(close, 20), industry), ts_zscore(volume, 20))
if_else(ts_rank(divide(volume, ts_mean(volume, 90)), 120) > 0.6, ts_delta(close, 10), group_mean(ts_delta(close, 20), 1, bucket(rank(volume), range="0,3,0.4")))
multiply(ts_decay_linear(returns, 10), ts_corr(returns, group_mean(returns, 1, sector), 30))
multiply(reverse(ts_rank(ts_delta(volume, 5), 15)), ts_regression(close, ts_step(1), 30, 0, 1))
if_else(ts_mean(abs(returns), 20) > 0.01, group_mean(ts_delta(close, 5), 1, industry), group_mean(ts_delta(close, 20), 1, industry))
multiply(ts_scale(ts_delta(close, 10), 20), if_else(rank(volume) > 0.7, ts_zscore(returns, 10), 0))
group_mean(ts_sum(if_else(returns > 0, returns, 0), 10), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_std_dev(returns, 30) > 0.025, ts_delta(close, 5) / ts_std_dev(returns, 5), ts_delta(close, 30) / ts_std_dev(returns, 30))
multiply(ts_corr(group_rank(close, industry), ts_rank(volume, 20), 20), ts_delta(close, 10))
multiply(ts_rank(ts_mean(returns, 30), 60), if_else(bucket(rank(volume), range="0,3,0.4") == 0, 1, reverse(1)))
group_mean(ts_delta(close, 5) * ts_delta(volume, 5), 1, industry)
if_else(ts_rank(ts_std_dev(returns, 10), 40) > 0.8, reverse(ts_delta(close, 5)), ts_delta(close, 20))
multiply(ts_zscore(ts_delta(close, 1), 10), ts_corr(returns, ts_delta(volume, 1), 15))
multiply(reverse(ts_rank(divide(volume, ts_mean(volume, 40)), 30)), ts_mean(ts_delta(close, 1), 20))
if_else(bucket(rank(volume), range="0,3,0.4") == 0, ts_delta(close, 10), ts_delta(close, 30) / ts_std_dev(returns, 30))
multiply(group_scale(ts_regression(close, ts_step(1), 20, 0, 1), industry), ts_rank(ts_mean(volume, 10), 20))
if_else(ts_mean(returns, 10) > 0, ts_delta(close, 10), reverse(ts_delta(close, 10)))
multiply(ts_mean(returns, 5), if_else(rank(ts_std_dev(returns, 20)) > 0.6, 1, reverse(1)))
group_mean(ts_delta(close, 15) / ts_mean(abs(returns), 15), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_std_dev(returns, 50) > 0.02, group_mean(ts_delta(close, 5), 1, industry), ts_delta(close, 30))
multiply(ts_corr(ts_delta(close, 20), ts_delta(ts_mean(volume, 5), 20), 30), ts_av_diff(returns, 5))
multiply(reverse(ts_rank(ts_zscore(volume, 20), 40)), ts_sum(ts_delta(close, 1), 10))
if_else(ts_rank(ts_mean(returns, 15), 30) > 0.5, ts_delta(close, 10), group_mean(ts_delta(close, 20), 1, industry))
multiply(if_else(rank(volume) > 0.5, ts_zscore(close, 20), reverse(ts_zscore(close, 20))), ts_decay_linear(returns, 15))
group_mean(ts_delta(close, 10) * ts_corr(close, volume, 10), 1, industry)
if_else(ts_mean(abs(returns), 25) > 0.015, ts_delta(close, 5) / ts_std_dev(returns, 5), ts_delta(close, 25) / ts_std_dev(returns, 25))
multiply(ts_rank(ts_delta(close, 3), 10), ts_corr(returns, group_mean(returns, 1, sector), 20))
multiply(ts_scale(ts_mean(returns, 10), 15), if_else(bucket(rank(volume), range="0,3,0.4") == 1, 1, reverse(1)))
group_mean(ts_sum(if_else(ts_delta(close, 1) > 0, 1, reverse(1)), 10), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_std_dev(returns, 70) > ts_mean(ts_std_dev(returns, 140), 70), ts_delta(close, 10), ts_delta(close, 40))
multiply(ts_corr(group_rank(returns, industry), ts_rank(ts_delta(volume, 5), 10), 15), ts_regression(close, ts_step(1), 25, 0, 1))
multiply(reverse(ts_rank(divide(ts_delta(volume, 1), ts_mean(volume, 20)), 25)), ts_mean(ts_delta(close, 2), 15))
if_else(bucket(rank(volume), range="0,3,0.4") == 0, ts_delta(close, 15) / ts_mean(abs(returns), 15), ts_delta(close, 30) / ts_mean(abs(returns), 30))
multiply(group_zscore(ts_delta(close, 5), sector), ts_corr(returns, ts_delta(volume, 10), 20))
if_else(ts_mean(returns, 20) > 0, group_mean(ts_delta(close, 10), 1, industry), reverse(group_mean(ts_delta(close, 10), 1, industry)))
multiply(ts_zscore(ts_delta(close, 1), 20), if_else(rank(ts_std_dev(returns, 10)) > 0.7, 1, reverse(1)))
group_mean(ts_delta(close, 8) * sign(ts_delta(volume, 8)), 1, industry)
if_else(ts_std_dev(returns, 35) > 0.018, ts_delta(close, 8), group_mean(ts_delta(close, 35), 1, bucket(rank(volume), range="0,3,0.4")))
multiply(ts_corr(ts_mean(returns, 5), ts_mean(volume, 5), 15), ts_rank(ts_delta(close, 5), 10))
multiply(ts_rank(ts_mean(volume, 30), 60), ts_av_diff(close, 10))
if_else(ts_rank(divide(volume, ts_mean(volume, 50)), 100) > 0.65, reverse(ts_delta(close, 10)), ts_delta(close, 25))
multiply(if_else(rank(ts_zscore(close, 30)) > 0.5, ts_delta(close, 10), reverse(ts_delta(close, 10))), ts_decay_linear(returns, 20))
group_mean(ts_delta(close, 12) / ts_std_dev(returns, 12), 1, industry)
if_else(ts_mean(abs(returns), 30) > 0.012, ts_delta(close, 10), ts_delta(close, 30) / ts_std_dev(returns, 30))
multiply(ts_corr(group_mean(ts_delta(close, 1), 1, sector), returns, 40), ts_regression(close, ts_step(1), 15, 0, 1))
multiply(reverse(ts_rank(ts_delta(volume, 10), 20)), ts_sum(ts_delta(close, 1) * sign(volume), 15))
if_else(bucket(rank(volume), range="0,3,0.4") == 0, ts_delta(close, 20) * ts_corr(close, volume, 20), ts_delta(close, 40))
multiply(group_scale(ts_mean(returns, 8), industry), ts_corr(ts_delta(close, 5), ts_delta(volume, 5), 10))
if_else(ts_rank(ts_mean(returns, 12), 24) > 0.5, group_mean(ts_delta(close, 12), 1, industry), reverse(group_mean(ts_delta(close, 12), 1, industry)))
multiply(ts_zscore(volume, 15), ts_delta(ts_delta(close, 5), 10))
group_mean(ts_sum(if_else(ts_delta(close, 1) > ts_mean(returns, 5), 1, reverse(1)), 8), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_std_dev(returns, 80) > 0.022, ts_delta(close, 10) / ts_std_dev(returns, 10), group_mean(ts_delta(close, 40), 1, industry))
multiply(ts_corr(ts_rank(close, 10), ts_rank(volume, 10), 20), ts_delta(close, 15))
multiply(ts_scale(ts_delta(close, 6), 12), if_else(bucket(rank(volume), range="0,3,0.4") == 2, reverse(1), 1))
group_mean(ts_delta(close, 18) * ts_zscore(volume, 18), 1, industry)
if_else(ts_mean(abs(returns), 40) > 0.01, reverse(ts_delta(close, 10)), ts_delta(close, 30))
multiply(ts_rank(ts_delta(close, 4), 8), ts_corr(returns, group_zscore(volume, 10), 15))
multiply(reverse(ts_rank(divide(volume, ts_mean(volume, 25)), 50)), ts_mean(ts_delta(close, 3), 12))
if_else(bucket(rank(volume), range="0,3,0.4") == 1, ts_delta(close, 15) / ts_mean(abs(returns), 15), ts_delta(close, 30) / ts_std_dev(returns, 30))
multiply(group_neutralize(ts_regression(close, ts_step(1), 18, 0, 1), sector), ts_rank(ts_mean(volume, 15), 30))
if_else(ts_mean(returns, 25) > 0, ts_delta(close, 15), reverse(ts_delta(close, 15)))
multiply(ts_mean(returns, 6), if_else(rank(ts_std_dev(returns, 15)) > 0.55, 1, reverse(1)))
group_mean(ts_delta(close, 9) / ts_mean(abs(returns), 9), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_std_dev(returns, 45) > ts_mean(ts_std_dev(returns, 90), 45), ts_delta(close, 9), group_mean(ts_delta(close, 45), 1, industry))
multiply(ts_corr(group_rank(ts_delta(close, 1), industry), ts_zscore(volume, 20), 25), ts_av_diff(close, 5))
multiply(ts_rank(ts_mean(volume, 20), 40), ts_sum(ts_delta(close, 1) * if_else(returns > 0, 1, reverse(1)), 10))
if_else(ts_rank(divide(volume, ts_mean(volume, 35)), 70) > 0.6, ts_delta(close, 12), group_mean(ts_delta(close, 24), 1, bucket(rank(volume), range="0,3,0.4")))
multiply(if_else(rank(ts_zscore(close, 25)) > 0.6, ts_delta(close, 8), ts_delta(close, 20)), ts_decay_linear(returns, 15))
group_mean(ts_delta(close, 14) * ts_corr(close, ts_mean(volume, 5), 14), 1, industry)
if_else(ts_mean(abs(returns), 22) > 0.014, ts_delta(close, 7) / ts_std_dev(returns, 7), ts_delta(close, 22) / ts_std_dev(returns, 22))
multiply(ts_corr(group_mean(ts_delta(close, 2), 1, sector), ts_delta(volume, 2), 30), ts_regression(close, ts_step(1), 22, 0, 1))
multiply(reverse(ts_rank(ts_delta(volume, 8), 18)), ts_mean(ts_delta(close, 2) * sign(ts_delta(volume, 2)), 14))
if_else(bucket(rank(volume), range="0,3,0.4") == 0, ts_delta(close, 25) * ts_rank(volume, 25), ts_delta(close, 50))
multiply(group_scale(ts_mean(returns, 9), sector), ts_corr(ts_delta(close, 8), ts_delta(ts_mean(volume, 3), 8), 12))
if_else(ts_rank(ts_mean(returns, 18), 36) > 0.52, group_mean(ts_delta(close, 18), 1, industry), reverse(group_mean(ts_delta(close, 18), 1, industry)))
multiply(ts_zscore(ts_delta(close, 1), 15), ts_corr(returns, ts_zscore(volume, 12), 18))
group_mean(ts_sum(if_else(ts_delta(close, 1) > group_mean(returns, 1, industry), 1, reverse(1)), 12), 1, bucket(rank(volume), range="0,3,0.4"))

@ -0,0 +1,205 @@
ts_delta(close, 5) * group_mean(ts_delta(close, 20), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_rank(ts_std_dev(returns,20), 60) > 0.7, ts_delta(close,5), ts_delta(close,60))
ts_corr(ts_delta(close,5), ts_delta(volume,5), 30) * ts_rank(returns, 20)
group_mean(ts_regression(close, ts_step(1), 30, 0, 1), 1, bucket(rank(volume), range="0,3,0.4"))
ts_decay_linear(returns, 20) * if_else(ts_std_dev(returns,20) > 0.015, 1, 0.5)
multiply(ts_delta(close,10), group_rank(returns, industry)) * ts_zscore(volume, 30)
ts_delta(ts_delta(close,5), 5) / ts_std_dev(returns,20) * if_else(ts_rank(volume, 30) > 0.7, 1.2, 0.8)
group_neutralize(ts_delta(close,20), industry) * ts_corr(group_mean(returns,1,sector), group_mean(returns,1,industry), 60)
if_else(ts_rank(ts_mean(returns,20), 60) > 0.5, ts_delta(close,10), reverse(ts_delta(close,10))) * ts_std_dev(group_rank(returns, industry), 20)
multiply(ts_mean(returns,30), group_scale(ts_regression(close, ts_step(1), 60, 0, 1), industry)) * ts_zscore(volume, 20)
ts_delta(close,20) * group_mean(ts_regression(close, ts_step(1), 20, 0, 1), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_std_dev(returns,20) > 0.02, ts_delta(close,5), ts_delta(close,30)) * group_rank(returns, sector)
ts_corr(ts_delta(close,10), ts_delta(volume,10), 20) * ts_mean(rank(returns), 30)
group_neutralize(ts_decay_linear(returns, 60), industry) * ts_rank(ts_delta(close,60), 120)
multiply(ts_regression(close, ts_step(1), 30, 0, 1), group_rank(returns, industry)) * ts_zscore(volume, 60)
ts_delta(close,30) * if_else(ts_rank(ts_std_dev(returns,60), 120) > 0.7, ts_delta(close,5), ts_delta(close,60))
group_mean(ts_delta(close,20), 1, bucket(rank(volume), range="0,3,0.4")) * ts_corr(group_mean(returns,1,sector), group_mean(returns,1,industry), 30)
ts_decay_linear(returns, 30) * group_scale(ts_delta(close,10), industry) * ts_std_dev(group_rank(returns, industry), 20)
if_else(ts_rank(ts_mean(returns,10), 30) > 0.5, ts_delta(close,10), reverse(ts_delta(close,10))) * group_rank(returns, sector)
multiply(ts_mean(returns,20), group_neutralize(ts_regression(close, ts_step(1), 60, 0, 1), industry)) * ts_zscore(volume, 30)
ts_delta(close,60) * group_mean(ts_regression(close, ts_step(1), 30, 0, 1), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_std_dev(returns,30) > 0.018, ts_delta(close,5), ts_delta(close,20)) * group_rank(returns, industry)
ts_corr(ts_delta(close,5), ts_delta(volume,5), 60) * ts_mean(rank(returns), 20)
group_neutralize(ts_delta(close,30), sector) * ts_corr(group_mean(returns,1,industry), group_mean(returns,1,sector), 60)
multiply(ts_regression(close, ts_step(1), 20, 0, 1), group_scale(returns, industry)) * ts_zscore(volume, 20)
ts_delta(ts_delta(close,10), 5) / ts_std_dev(returns,30) * if_else(ts_rank(volume, 60) > 0.7, 1.1, 0.9)
group_mean(ts_decay_linear(returns, 20), 1, bucket(rank(volume), range="0,3,0.4")) * ts_rank(returns, 30)
if_else(ts_rank(ts_std_dev(returns,30), 90) > 0.7, ts_delta(close,10), ts_delta(close,60)) * group_rank(returns, sector)
ts_mean(returns,60) * group_neutralize(ts_regression(close, ts_step(1), 30, 0, 1), industry) * ts_zscore(volume, 60)
multiply(ts_delta(close,20), group_rank(returns, industry)) * ts_corr(ts_delta(close,5), ts_delta(volume,5), 30)
ts_delta(close,10) * group_mean(ts_regression(close, ts_step(1), 60, 0, 1), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_std_dev(returns,60) > 0.016, ts_delta(close,5), ts_delta(close,30)) * group_rank(returns, industry)
ts_corr(ts_delta(close,20), ts_delta(volume,20), 20) * ts_mean(rank(returns), 60)
group_neutralize(ts_decay_linear(returns, 30), sector) * ts_corr(group_mean(returns,1,sector), group_mean(returns,1,industry), 30)
multiply(ts_regression(close, ts_step(1), 60, 0, 1), group_neutralize(returns, industry)) * ts_zscore(volume, 20)
ts_delta(close,20) * if_else(ts_rank(ts_mean(returns,30), 90) > 0.5, ts_delta(close,5), reverse(ts_delta(close,5)))
group_mean(ts_delta(close,10), 1, bucket(rank(volume), range="0,3,0.4")) * ts_std_dev(group_rank(returns, industry), 30)
ts_decay_linear(returns, 60) * group_scale(ts_delta(close,20), sector) * ts_zscore(volume, 30)
if_else(ts_rank(ts_std_dev(returns,20), 60) > 0.7, ts_delta(close,10), ts_delta(close,60)) * group_rank(returns, sector)
multiply(ts_mean(returns,30), group_neutralize(ts_regression(close, ts_step(1), 20, 0, 1), industry)) * ts_zscore(volume, 20)
ts_delta(close,30) * group_mean(ts_regression(close, ts_step(1), 30, 0, 1), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_std_dev(returns,20) > 0.02, ts_delta(close,5), ts_delta(close,20)) * group_scale(returns, industry)
ts_corr(ts_delta(close,10), ts_delta(volume,10), 60) * ts_mean(rank(returns), 20)
group_neutralize(ts_delta(close,60), industry) * ts_corr(group_mean(returns,1,sector), group_mean(returns,1,industry), 60)
multiply(ts_regression(close, ts_step(1), 30, 0, 1), group_rank(returns, industry)) * ts_zscore(volume, 60)
ts_delta(ts_delta(close,20), 5) / ts_std_dev(returns,20) * if_else(ts_rank(volume, 30) > 0.7, 1.3, 0.7)
group_mean(ts_decay_linear(returns, 60), 1, bucket(rank(volume), range="0,3,0.4")) * ts_rank(returns, 20)
if_else(ts_rank(ts_mean(returns,20), 60) > 0.5, ts_delta(close,10), reverse(ts_delta(close,10))) * group_rank(returns, sector)
multiply(ts_mean(returns,20), group_neutralize(ts_regression(close, ts_step(1), 60, 0, 1), industry)) * ts_zscore(volume, 30)
ts_delta(close,10) * group_mean(ts_regression(close, ts_step(1), 20, 0, 1), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_std_dev(returns,30) > 0.018, ts_delta(close,5), ts_delta(close,60)) * group_rank(returns, industry)
ts_corr(ts_delta(close,5), ts_delta(volume,5), 30) * ts_mean(rank(returns), 60)
group_neutralize(ts_decay_linear(returns, 20), sector) * ts_corr(group_mean(returns,1,industry), group_mean(returns,1,sector), 30)
multiply(ts_regression(close, ts_step(1), 60, 0, 1), group_scale(returns, sector)) * ts_zscore(volume, 20)
ts_delta(close,60) * if_else(ts_rank(ts_std_dev(returns,60), 120) > 0.7, ts_delta(close,5), ts_delta(close,30))
group_mean(ts_delta(close,30), 1, bucket(rank(volume), range="0,3,0.4")) * ts_std_dev(group_rank(returns, industry), 20)
ts_decay_linear(returns, 30) * group_neutralize(ts_delta(close,10), industry) * ts_zscore(volume, 60)
if_else(ts_rank(ts_mean(returns,10), 30) > 0.5, ts_delta(close,5), reverse(ts_delta(close,5))) * group_rank(returns, sector)
multiply(ts_mean(returns,60), group_neutralize(ts_regression(close, ts_step(1), 30, 0, 1), sector)) * ts_zscore(volume, 20)
ts_delta(close,20) * group_mean(ts_regression(close, ts_step(1), 60, 0, 1), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_std_dev(returns,60) > 0.015, ts_delta(close,5), ts_delta(close,20)) * group_scale(returns, industry)
ts_corr(ts_delta(close,20), ts_delta(volume,20), 30) * ts_mean(rank(returns), 30)
group_neutralize(ts_delta(close,30), industry) * ts_corr(group_mean(returns,1,sector), group_mean(returns,1,industry), 60)
multiply(ts_regression(close, ts_step(1), 20, 0, 1), group_rank(returns, sector)) * ts_zscore(volume, 30)
ts_delta(ts_delta(close,5), 5) / ts_std_dev(returns,60) * if_else(ts_rank(volume, 60) > 0.7, 1.2, 0.8)
group_mean(ts_decay_linear(returns, 30), 1, bucket(rank(volume), range="0,3,0.4")) * ts_rank(returns, 60)
if_else(ts_rank(ts_std_dev(returns,20), 60) > 0.7, ts_delta(close,10), ts_delta(close,60)) * group_rank(returns, sector)
multiply(ts_mean(returns,20), group_neutralize(ts_regression(close, ts_step(1), 60, 0, 1), sector)) * ts_zscore(volume, 60)
ts_delta(close,30) * group_mean(ts_regression(close, ts_step(1), 30, 0, 1), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_std_dev(returns,20) > 0.02, ts_delta(close,5), ts_delta(close,20)) * group_neutralize(returns, industry)
ts_corr(ts_delta(close,10), ts_delta(volume,10), 60) * ts_mean(rank(returns), 20)
group_neutralize(ts_decay_linear(returns, 60), sector) * ts_corr(group_mean(returns,1,industry), group_mean(returns,1,sector), 30)
multiply(ts_regression(close, ts_step(1), 30, 0, 1), group_scale(returns, industry)) * ts_zscore(volume, 20)
ts_delta(close,10) * if_else(ts_rank(ts_mean(returns,30), 90) > 0.5, ts_delta(close,5), reverse(ts_delta(close,5)))
group_mean(ts_delta(close,20), 1, bucket(rank(volume), range="0,3,0.4")) * ts_std_dev(group_rank(returns, sector), 20)
ts_decay_linear(returns, 20) * group_neutralize(ts_delta(close,30), industry) * ts_zscore(volume, 30)
if_else(ts_rank(ts_std_dev(returns,30), 90) > 0.7, ts_delta(close,5), ts_delta(close,60)) * group_rank(returns, industry)
multiply(ts_mean(returns,60), group_neutralize(ts_regression(close, ts_step(1), 20, 0, 1), industry)) * ts_zscore(volume, 20)
ts_delta(close,60) * group_mean(ts_regression(close, ts_step(1), 60, 0, 1), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_std_dev(returns,60) > 0.016, ts_delta(close,5), ts_delta(close,30)) * group_scale(returns, sector)
ts_corr(ts_delta(close,5), ts_delta(volume,5), 20) * ts_mean(rank(returns), 60)
group_neutralize(ts_delta(close,20), sector) * ts_corr(group_mean(returns,1,industry), group_mean(returns,1,sector), 60)
multiply(ts_regression(close, ts_step(1), 60, 0, 1), group_rank(returns, industry)) * ts_zscore(volume, 60)
ts_delta(ts_delta(close,10), 5) / ts_std_dev(returns,30) * if_else(ts_rank(volume, 30) > 0.7, 1.1, 0.9)
group_mean(ts_decay_linear(returns, 60), 1, bucket(rank(volume), range="0,3,0.4")) * ts_rank(returns, 30)
if_else(ts_rank(ts_mean(returns,20), 60) > 0.5, ts_delta(close,10), reverse(ts_delta(close,10))) * group_rank(returns, sector)
multiply(ts_mean(returns,30), group_neutralize(ts_regression(close, ts_step(1), 30, 0, 1), sector)) * ts_zscore(volume, 30)
ts_delta(close,20) * group_mean(ts_regression(close, ts_step(1), 20, 0, 1), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_std_dev(returns,20) > 0.02, ts_delta(close,5), ts_delta(close,60)) * group_neutralize(returns, sector)
ts_corr(ts_delta(close,20), ts_delta(volume,20), 60) * ts_mean(rank(returns), 20)
group_neutralize(ts_decay_linear(returns, 30), industry) * ts_corr(group_mean(returns,1,sector), group_mean(returns,1,industry), 30)
multiply(ts_regression(close, ts_step(1), 20, 0, 1), group_scale(returns, industry)) * ts_zscore(volume, 20)
ts_delta(close,30) * if_else(ts_rank(ts_std_dev(returns,60), 120) > 0.7, ts_delta(close,5), ts_delta(close,20))
group_mean(ts_delta(close,10), 1, bucket(rank(volume), range="0,3,0.4")) * ts_std_dev(group_rank(returns, industry), 30)
ts_decay_linear(returns, 60) * group_neutralize(ts_delta(close,20), sector) * ts_zscore(volume, 60)
if_else(ts_rank(ts_mean(returns,10), 30) > 0.5, ts_delta(close,5), reverse(ts_delta(close,5))) * group_rank(returns, industry)
multiply(ts_mean(returns,20), group_neutralize(ts_regression(close, ts_step(1), 60, 0, 1), industry)) * ts_zscore(volume, 30)
ts_delta(close,60) * group_mean(ts_regression(close, ts_step(1), 30, 0, 1), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_std_dev(returns,30) > 0.018, ts_delta(close,5), ts_delta(close,30)) * group_scale(returns, industry)
ts_corr(ts_delta(close,5), ts_delta(volume,5), 30) * ts_mean(rank(returns), 60)
group_neutralize(ts_delta(close,10), sector) * ts_corr(group_mean(returns,1,industry), group_mean(returns,1,sector), 60)
multiply(ts_regression(close, ts_step(1), 60, 0, 1), group_rank(returns, sector)) * ts_zscore(volume, 20)
ts_delta(ts_delta(close,20),

@ -0,0 +1,240 @@
ts_delta(close, 5) - ts_mean(ts_delta(close, 5), 20)
group_mean(ts_delta(close, 10), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_rank(ts_std_dev(returns, 20), 60) > 0.7, ts_delta(close, 5), ts_delta(close, 30))
ts_regression(close, ts_step(1), 30, 0, 1) * rank(volume)
multiply(group_rank(ts_delta(close, 10), industry), ts_zscore(volume, 20))
ts_decay_linear(ts_delta(close, 1), 20) * ts_corr(ts_delta(close, 5), ts_delta(volume, 5), 30)
if_else(bucket(rank(volume), range="0,3,0.4") == 0, ts_delta(close, 20), 0)
divide(ts_delta(close, 10), ts_std_dev(returns, 30))
ts_mean(ts_delta(close, 5) / ts_std_dev(returns, 20), 60)
group_mean(ts_mean(returns, 10), 1, bucket(rank(volume), range="0,3,0.4")) - ts_mean(returns, 20)
reverse(ts_rank(volume / ts_mean(volume, 20), 10)) * ts_delta(close, 20)
ts_corr(group_mean(returns, 1, industry), ts_delta(close, 10), 60) * ts_delta(close, 20)
ts_delta(ts_mean(returns, 5), 20) * rank(volume)
if_else(ts_std_dev(returns, 20) > 0.015, ts_delta(close, 5), ts_regression(close, ts_step(1), 60, 0, 1))
group_mean(ts_delta(close, 20) / ts_std_dev(returns, 60), 1, bucket(rank(volume), range="0,3,0.4"))
multiply(ts_corr(ts_delta(close, 5), ts_delta(volume, 5), 30), group_rank(returns, industry))
ts_regression(close, ts_step(1), 20, 0, 1) - ts_mean(ts_regression(close, ts_step(1), 20, 0, 1), 120)
if_else(rank(volume) > 0.8, ts_delta(close, 10), ts_delta(close, 30) * -1)
ts_mean(ts_rank(returns, 20), 30) * ts_zscore(volume, 10)
group_mean(ts_zscore(ts_delta(close, 10), 60), 1, bucket(rank(volume), range="0,3,0.4"))
multiply(ts_rank(ts_std_dev(returns, 30), 120), ts_delta(close, 10) * -1)
divide(ts_delta(ts_mean(returns, 20), 5), ts_std_dev(returns, 60))
if_else(ts_rank(ts_corr(ts_delta(close,5), ts_delta(volume,5), 30), 60) > 0.6, ts_delta(close, 20), ts_delta(close, 60))
group_mean(ts_regression(close, ts_step(1), 30, 0, 1), 1, bucket(rank(volume), range="0,3,0.4")) * rank(ts_std_dev(returns, 60))
multiply(ts_delta(close, 5), rank(group_mean(returns, 1, industry)))
ts_mean(ts_delta(close, 10), 30) - ts_decay_linear(returns, 20)
if_else(ts_std_dev(returns, 60) > ts_mean(ts_std_dev(returns, 60), 120), ts_zscore(close, 10), ts_zscore(close, 60))
group_rank(ts_corr(ts_delta(close,5), ts_delta(volume,5), 30), industry) * rank(volume)
divide(ts_regression(close, ts_step(1), 60, 0, 1), ts_std_dev(returns, 30))
multiply(ts_mean(returns, 10), if_else(rank(volume) > 0.7, 1, -1))
ts_decay_linear(volume, 20) * ts_delta(close, 30)
if_else(ts_rank(ts_mean(returns, 20), 60) > 0.5, ts_mean(returns, 10), ts_mean(returns, 60) * -1)
group_mean(ts_delta(close, 5) - ts_delay(close, 10), 1, bucket(rank(volume), range="0,3,0.4"))
multiply(ts_zscore(returns, 20), group_rank(returns, sector))
ts_delta(close, 20) / ts_mean(ts_std_dev(returns, 20), 60)
if_else(bucket(rank(volume), range="0,3,0.4") == 1, group_mean(ts_regression(close, ts_step(1), 30, 0, 1), 1, industry), 0)
ts_corr(ts_delta(close, 5), ts_delta(volume, 5), 60) - ts_corr(ts_delta(close, 5), ts_delta(volume, 5), 20)
multiply(ts_rank(volume, 20), ts_delta(close, 5))
group_zscore(ts_mean(returns, 10), 1, bucket(rank(volume), range="0,3,0.4"))
if_else(ts_rank(ts_std_dev(returns, 20), 240) > 0.8, reverse(ts_delta(close, 5)), ts_delta(close, 30))
ts_regression(close, ts_step(1), 20, 0, 1) * ts_zscore(volume, 60)
group_mean(ts_delta(close, 10), 1, industry) * rank(volume)
multiply(ts_decay_linear(returns, 10), ts_corr(ts_delta(close, 5), ts_delta(volume, 5), 30))
divide(ts_mean(ts_delta(close, 5), 20), ts_mean(abs(ts_delta(close, 5)), 20))
if_else(rank(volume) > 0.6, ts_regression(close, ts_step(1), 20, 0, 1), ts_zscore(close, 60))
group_rank(ts_mean(returns, 30), industry) * ts_std_dev(volume, 20)
multiply(ts_rank(ts_std_dev(returns, 60), 120), group_rank(ts_mean(returns, 10), industry))
ts_mean(ts_delta(close, 10), 60) / ts_std_dev(close, 60)
if_else(ts_corr(close, volume, 20) > 0.1, ts_delta(close, 20), ts_regression(close, ts_step(1), 60, 0, 1))
group_mean(ts_zscore(returns, 30), 1, bucket(rank(volume), range="0,3,0.4")) * ts_rank(volume, 60)
reverse(ts_rank(volume, 30)) * ts_mean(returns, 20)
ts_corr(ts_delta(close, 10), ts_delta(volume, 10), 60) * ts_delta(close, 30)
if_else(ts_std_dev(returns, 20) > 0.025, ts_mean(returns, 5), ts_mean(returns, 30))
group_mean(ts_regression(close, ts_step(1), 60, 0, 1), 1, bucket(rank(volume), range="0,3,0.4")) - ts_mean(ts_regression(close, ts_step(1), 60, 0, 1), 240)
multiply(ts_rank(returns, 20), group_rank(volume, industry))
divide(ts_mean(returns, 10), ts_std_dev(returns, 60))
if_else(rank(ts_mean(volume, 20)) > 0.5, ts_delta(close, 5), ts_delta(close, 60) * -1)
ts_regression(close, ts_step(1), 30, 0, 1) * rank(ts_std_dev(returns, 30))
group_mean(ts_zscore(returns, 10), 1, industry) * ts_zscore(volume, 30)
multiply(reverse(ts_rank(returns, 30)), group_mean(ts_delta(close, 20), 1, sector))
ts_delta(close, 60) - ts_delay(close, 20)
if_else(ts_rank(ts_corr(close, volume, 30), 120) > 0.6, ts_corr(close, volume, 5), ts_corr(close, volume, 60))
group_mean(ts_mean(returns, 20), 1, bucket(rank(volume), range="0,3,0.4")) * ts_rank(close, 60)
divide(ts_std_dev(returns, 60), ts_std_dev(returns, 20))
multiply(ts_rank(ts_mean(returns, 60), 120), group_rank(volume, sector))
if_else(bucket(rank(volume), range="0,3,0.4") == 2, ts_mean(returns, 10), ts_mean(returns, 60))
ts_regression(close, ts_step(1), 10, 0, 1) + ts_regression(close, ts_step(1), 30, 0, 1) - ts_regression(close, ts_step(1), 120, 0, 1)
group_zscore(ts_regression(close, ts_step(1), 20, 0, 1), 1, industry)
multiply(rank(ts_mean(volume, 60)), ts_zscore(ts_delta(close, 20), 60))
if_else(ts_mean(abs(returns), 10) > ts_mean(abs(returns), 60), reverse(ts_delta(close, 10)), ts_delta(close, 30))
group_mean(ts_decay_linear(returns, 20), 1, bucket(rank(volume), range="0,3,0.4")) - ts_mean(ts_decay_linear(returns, 20), 60)
multiply(rank(ts_std_dev(returns, 30)), group_rank(ts_delta(close, 10), industry))
divide(ts_delay(close, 5), ts_delay(close, 20)) - 1
if_else(ts_rank(volume, 10) > 0.9, ts_zscore(close, 5), ts_zscore(close, 60))
group_mean(ts_corr(ts_delta(close,5), ts_delta(volume,5), 20), 1, industry) * rank(volume)
multiply(ts_regression(close, ts_step(1), 60, 0, 1), reverse(ts_rank(volume, 60)))
ts_std_dev(returns, 20) / ts_std_dev(ts_mean(volume, 20), 60)
if_else(group_rank(volume, sector) > 0.7, ts_mean(returns, 20), ts_mean(returns, 120))
group_mean(ts_delta(close, 30), 1, bucket(rank(volume), range="0,3,0.4")) * ts_rank(ts_mean(volume, 120), 240)
multiply(ts_rank(returns, 10) - ts_rank(returns, 60), group_rank(returns, industry))
divide(ts_sum(returns, 20), ts_sum(abs(returns), 20))
if_else(ts_rank(ts_std_dev(returns, 30), 120) > 0.7, ts_regression(close, ts_step(1), 10, 0, 1), ts_delta(close, 60))
group_mean(ts_zscore(returns, 20), 1, industry) * ts_rank(volume, 120)
reverse(ts_rank(ts_mean(volume, 60))) * ts_zscore(close, 30)
multiply(ts_corr(ts_delta(close, 10), ts_delta(volume, 10), 20), group_rank(ts_mean(returns, 10), 1, bucket(rank(volume), range="0,3,0.4")))
divide(ts_mean(returns, 10), ts_mean(volume, 120))
if_else(bucket(rank(volume), range="0,3,0.4") == 0, ts_zscore(returns, 20), ts_zscore(returns, 120) * -1)
group_mean(ts_regression(close, ts_step(1), 60, 0, 1), 1, sector) * rank(volume)
multiply(rank(ts_zscore(returns, 30)), group_rank(close, industry))
ts_mean(ts_delta(close, 5), 20) - ts_mean(ts_delta(close, 20), 60)
if_else(ts_corr(close, volume, 60) > ts_corr(close, volume, 120), ts_mean(returns, 10), ts_mean(returns, 60))
group_mean(ts_rank(returns, 30), 1, bucket(rank(volume), range="0,3,0.4")) * ts_rank(ts_std_dev(returns, 60), 120)
multiply(reverse(rank(ts_zscore(volume, 30))), ts_regression(close, ts_step(1), 30, 0, 1))
divide(ts_delay(close, 10) - ts_delay(close, 60), ts_delay(close, 60))
if_else(ts_rank(ts_zscore(volume, 10), 120) > 0.8, ts_delta(close, 5), ts_delta(close, 120))
group_mean(ts_mean(returns, 30), 1, industry) * rank(ts_mean(volume, 60), 120)
multiply(ts_std_dev(returns, 30) / ts_std_dev(returns, 120), group_rank(ts_delta(close, 20), sector))
ts_decay_linear(ts_delta(close, 1), 30) - ts_decay_linear(ts_delta(close, 1), 10)
if_else(rank(volume) > 0.9, ts_zscore(close, 5), ts_zscore(close, 120) * -1)
group_rank(ts_std_dev(returns, 60), industry) * rank(volume)
multiply(ts_corr(ts_delta(close, 20), ts_delta(volume, 20), 60), group_mean(ts_zscore(returns, 20), 1, bucket(rank(volume), range="0,3,0.4")))
divide(ts_sum(returns, 10) - ts_sum(returns, 60), ts_sum(abs(returns), 60))
if_else(ts_mean(ts_zscore(volume, 20), 60) > 0, ts_delta(close, 10), ts_regression(close, ts_step(1), 120, 0, 1))
group_mean(ts_regression(close, ts_step(1), 20, 0, 1), 1, industry) * group_rank(volume, industry)
multiply(ts_rank(returns, 30) - ts_rank(returns, 120), rank(volume))
ts_regression(close, ts_step(1), 60, 0, 1) - ts_mean(ts_regression(close, ts_step(1), 60, 0, 1), 240)
if_else(group_rank(returns, sector) > 0.6, ts_mean(returns, 10), ts_mean(returns, 120))
group_mean(ts_zscore(ts_delta(close, 10), 60), 1, bucket(rank(volume), range="0,3,0.4")) * ts_rank(ts_std_dev(returns, 30), 60)
multiply(reverse(rank(ts_mean(returns, 30))), group_rank(ts_mean(returns, 60), industry))
divide(ts_mean(returns, 20), ts_zscore(returns, 60))
if_else(bucket(rank(volume), range="0,3,0.4") == 0 and ts_rank(close, 20) > 0.8, ts_delta(close, 5), ts_delta(close, 120) * -1)
group_mean(ts_corr(ts_delta(close,5), ts_delta(volume,5), 60), 1, industry) * rank(ts_mean(volume, 30), 120)
multiply(ts_rank(ts_std_dev(returns, 30), 120), group_rank(close, sector))
ts_mean(ts_zscore(returns, 20), 60) - ts_mean(ts_zscore(returns, 20), 120)
if_else(rank(volume) > 0.8, ts_regression(close, ts_step(1), 30, 0, 1), ts_regression(close, ts_step(1), 120, 0, 1) * -1)
group_mean(ts_delta(close, 20), 1, bucket(rank(volume), range="0,3,0.4")) - ts_mean(ts_delta(close, 20), 240)
multiply(rank(ts_corr(close, volume, 30)), group_rank(ts_std_dev(returns, 60), industry))
divide(ts_rank(close, 60), ts_rank(volume, 60))
if_else(ts_mean(volume, 20) > ts_delay(ts_mean(volume, 20), 20), ts_delta(close, 10), reverse(ts_delta(close, 10)))
group_rank(ts_regression(close, ts_step(1), 60, 0, 1), sector) * rank(volume)

@ -0,0 +1,165 @@
group_mean(ts_delta(close,5),1,industry)
group_mean(ts_delta(close,10),1,industry)
group_mean(ts_delta(close,20),1,industry)
group_mean(ts_delta(close,30),1,industry)
group_mean(ts_delta(close,60),1,industry)
group_mean(ts_regression(close,ts_step(1),20,0,1),1,industry)
group_mean(ts_regression(close,ts_step(1),30,0,1),1,industry)
group_mean(ts_regression(close,ts_step(1),60,0,1),1,industry)
group_mean(ts_delta(ts_delta(close,5),10),1,industry)
group_mean(ts_delta(ts_delta(close,10),20),1,industry)
group_mean(ts_mean(ts_delta(close,1),20),1,industry)
group_mean(ts_mean(ts_delta(close,1),30),1,industry)
group_mean(ts_decay_linear(ts_delta(close,1),20),1,industry)
group_mean(ts_decay_linear(ts_delta(close,1),30),1,industry)
group_mean(ts_corr(ts_delta(close,5),ts_delta(volume,5),20),1,industry)
group_mean(ts_corr(ts_delta(close,10),ts_delta(volume,5),20),1,industry)
group_mean(if_else(rank(volume)>0.7,ts_delta(close,20),ts_delta(close,5)),1,industry)
group_mean(if_else(rank(volume)>0.8,ts_delta(close,30),ts_delta(close,10)),1,industry)
group_mean(group_mean(ts_delta(close,20),1,bucket(rank(volume),range="0,3,0.4")),1,industry)
group_mean(group_mean(ts_delta(close,30),1,bucket(rank(volume),range="0,1,0.2")),1,industry)
group_mean(ts_std_dev(group_rank(ts_delta(close,1),industry),20),1,industry)
group_mean(ts_std_dev(group_rank(ts_delta(close,1),industry),30),1,industry)
group_mean(ts_mean(rank(ts_delta(close,1)),20),1,industry)
group_mean(ts_mean(rank(ts_delta(close,1)),30),1,industry)
group_mean(ts_delta(close,5)/ts_std_dev(ts_delta(close,1),20),1,industry)
group_mean(ts_delta(close,10)/ts_std_dev(ts_delta(close,1),20),1,industry)
group_mean(if_else(ts_std_dev(ts_delta(close,1),20)>0.02,ts_delta(close,5),ts_delta(close,20)),1,industry)
group_mean(if_else(ts_std_dev(ts_delta(close,1),20)>0.03,ts_delta(close,10),ts_delta(close,30)),1,industry)
group_mean(if_else(ts_std_dev(ts_delta(close,1),20)>0.025,ts_delta(close,5),ts_delta(close,60)),1,industry)
group_mean(group_mean(ts_delta(close,d1),1,bucket(rank(volume),range="0,3,0.4")),1,industry)
group_mean(multiply(ts_delta(close,5),if_else(ts_std_dev(ts_delta(close,1),20)>0.02,1.5,1)),1,industry)
group_mean(multiply(ts_delta(close,10),if_else(ts_std_dev(ts_delta(close,1),20)>0.015,1.2,0.8)),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_rank(ts_std_dev(ts_delta(close,1),60),120)>0.7,1.3,0.7),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_rank(ts_std_dev(ts_delta(close,1),60),120)>0.7,1.3,0.7),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_rank(ts_std_dev(ts_delta(close,1),60),120)>0.7,1.3,0.7),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_rank(ts_std_dev(ts_delta(close,1),60),120)>0.7,1.3,0.7),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_mean(ts_delta(close,1),20)>0.001,1.2,0.8),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_mean(ts_delta(close,1),20)>0.001,1.2,0.8),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_mean(ts_delta(close,1),20)>0.001,1.2,0.8),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_mean(ts_delta(close,1),20)>0.001,1.2,0.8),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_mean(ts_delta(close,1),20)<-0.001,0.8,1.2),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_mean(ts_delta(close,1),20)<-0.001,0.8,1.2),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_mean(ts_delta(close,1),20)<-0.001,0.8,1.2),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_mean(ts_delta(close,1),20)<-0.001,0.8,1.2),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),20)>0.025,1.5,1),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),20)>0.025,1.5,1),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),20)>0.025,1.5,1),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),20)>0.025,1.5,1),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),20)<0.015,0.8,1.2),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),20)<0.015,0.8,1.2),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),20)<0.015,0.8,1.2),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),20)<0.015,0.8,1.2),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_rank(ts_delta(close,1),20)>0.7,1.3,0.7),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_rank(ts_delta(close,1),20)>0.7,1.3,0.7),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_rank(ts_delta(close,1),20)>0.7,1.3,0.7),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_rank(ts_delta(close,1),20)>0.7,1.3,0.7),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_rank(ts_delta(close,1),20)<0.3,0.7,1.3),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_rank(ts_delta(close,1),20)<0.3,0.7,1.3),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_rank(ts_delta(close,1),20)<0.3,0.7,1.3),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_rank(ts_delta(close,1),20)<0.3,0.7,1.3),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_rank(ts_delta(close,1),30)>0.7,1.3,0.7),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_rank(ts_delta(close,1),30)>0.7,1.3,0.7),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_rank(ts_delta(close,1),30)>0.7,1.3,0.7),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_rank(ts_delta(close,1),30)>0.7,1.3,0.7),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_rank(ts_delta(close,1),30)<0.3,0.7,1.3),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_rank(ts_delta(close,1),30)<0.3,0.7,1.3),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_rank(ts_delta(close,1),30)<0.3,0.7,1.3),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_rank(ts_delta(close,1),30)<0.3,0.7,1.3),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_rank(ts_delta(close,1),60)>0.7,1.3,0.7),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_rank(ts_delta(close,1),60)>0.7,1.3,0.7),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_rank(ts_delta(close,1),60)>0.7,1.3,0.7),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_rank(ts_delta(close,1),60)>0.7,1.3,0.7),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_rank(ts_delta(close,1),60)<0.3,0.7,1.3),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_rank(ts_delta(close,1),60)<0.3,0.7,1.3),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_rank(ts_delta(close,1),60)<0.3,0.7,1.3),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_rank(ts_delta(close,1),60)<0.3,0.7,1.3),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_mean(ts_delta(close,1),5)>0.002,1.5,1),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_mean(ts_delta(close,1),5)>0.002,1.5,1),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_mean(ts_delta(close,1),5)>0.002,1.5,1),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_mean(ts_delta(close,1),5)>0.002,1.5,1),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_mean(ts_delta(close,1),5)<-0.002,0.5,1.5),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_mean(ts_delta(close,1),5)<-0.002,0.5,1.5),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_mean(ts_delta(close,1),5)<-0.002,0.5,1.5),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_mean(ts_delta(close,1),5)<-0.002,0.5,1.5),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_mean(ts_delta(close,1),10)>0.001,1.3,0.7),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_mean(ts_delta(close,1),10)>0.001,1.3,0.7),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_mean(ts_delta(close,1),10)>0.001,1.3,0.7),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_mean(ts_delta(close,1),10)>0.001,1.3,0.7),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_mean(ts_delta(close,1),10)<-0.001,0.7,1.3),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_mean(ts_delta(close,1),10)<-0.001,0.7,1.3),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_mean(ts_delta(close,1),10)<-0.001,0.7,1.3),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_mean(ts_delta(close,1),10)<-0.001,0.7,1.3),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_mean(ts_delta(close,1),15)>0.0015,1.4,0.9),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_mean(ts_delta(close,1),15)>0.0015,1.4,0.9),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_mean(ts_delta(close,1),15)>0.0015,1.4,0.9),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_mean(ts_delta(close,1),15)>0.0015,1.4,0.9),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_mean(ts_delta(close,1),15)<-0.0015,0.6,1.4),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_mean(ts_delta(close,1),15)<-0.0015,0.6,1.4),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_mean(ts_delta(close,1),15)<-0.0015,0.6,1.4),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_mean(ts_delta(close,1),15)<-0.0015,0.6,1.4),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),5)>0.02,1.5,1),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),5)>0.02,1.5,1),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),5)>0.02,1.5,1),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),5)>0.02,1.5,1),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),5)<0.01,0.8,1.3),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),5)<0.01,0.8,1.3),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),5)<0.01,0.8,1.3),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),5)<0.01,0.8,1.3),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),10)>0.015,1.4,0.9),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),10)>0.015,1.4,0.9),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),10)>0.015,1.4,0.9),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),10)>0.015,1.4,0.9),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),10)<0.01,0.7,1.4),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),10)<0.01,0.7,1.4),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),10)<0.01,0.7,1.4),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),10)<0.01,0.7,1.4),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),15)>0.012,1.3,0.9),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),15)>0.012,1.3,0.9),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),15)>0.012,1.3,0.9),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),15)>0.012,1.3,0.9),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),15)<0.008,0.8,1.3),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),15)<0.008,0.8,1.3),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),15)<0.008,0.8,1.3),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),15)<0.008,0.8,1.3),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),20)>0.01,1.2,0.9),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),20)>0.01,1.2,0.9),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),20)>0.01,1.2,0.9),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),20)>0.01,1.2,0.9),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),20)<0.007,0.8,1.2),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),20)<0.007,0.8,1.2),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),20)<0.007,0.8,1.2),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),20)<0.007,0.8,1.2),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),25)>0.009,1.2,0.9),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),25)>0.009,1.2,0.9),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),25)>0.009,1.2,0.9),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),25)>0.009,1.2,0.9),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),25)<0.006,0.8,1.2),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),25)<0.006,0.8,1.2),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),25)<0.006,0.8,1.2),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),25)<0.006,0.8,1.2),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),30)>0.008,1.1,0.9),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),30)>0.008,1.1,0.9),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),30)>0.008,1.1,0.9),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),30)>0.008,1.1,0.9),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),30)<0.006,0.8,1.1),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),30)<0.006,0.8,1.1),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),30)<0.006,0.8,1.1),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),30)<0.006,0.8,1.1),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),60)>0.006,1.1,0.9),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),60)>0.006,1.1,0.9),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),60)>0.006,1.1,0.9),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),60)>0.006,1.1,0.9),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),60)<0.004,0.8,1.1),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),60)<0.004,0.8,1.1),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),60)<0.004,0.8,1.1),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),60)<0.004,0.8,1.1),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),120)>0.004,1.1,0.9),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),120)>0.004,1.1,0.9),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),120)>0.004,1.1,0.9),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),120)>0.004,1.1,0.9),1,industry)
group_mean(ts_delta(close,5)*if_else(ts_std_dev(ts_delta(close,1),120)<0.003,0.8,1.1),1,industry)
group_mean(ts_delta(close,10)*if_else(ts_std_dev(ts_delta(close,1),120)<0.003,0.8,1.1),1,industry)
group_mean(ts_delta(close,20)*if_else(ts_std_dev(ts_delta(close,1),120)<0.003,0.8,1.1),1,industry)
group_mean(ts_delta(close,30)*if_else(ts_std_dev(ts_delta(close,1),120)<0.003,0.8,1.1),1,industry)

@ -0,0 +1,898 @@
任务指令
你是一个WorldQuant WebSim因子工程师。你的任务是生成 10 个用于行业轮动策略的复合型Alpha因子表达式。
核心规则
设计维度框架
维度1:时间序列动量(TM)
目标:识别价格趋势的强度、速度和持续性
可用的具体构建方法:
1. 简单动量:ts_delta(close, d) [d=5,10,20,30,60]
2. 趋势斜率:ts_regression(close, ts_step(1), d, 0, 1) [rettype=1获取斜率]
3. 动量加速度:ts_delta(ts_delta(close, d1), d2) [避免嵌套ts_regression]
4. 平滑动量:ts_mean(returns, d) [returns=ts_delta(close,1)]
5. 动量衰减:ts_decay_linear(returns, d)
6. 价量关系:ts_corr(ts_delta(close,5), ts_delta(volume,5), d)
建议组合:使用不同d参数创建短期/中期/长期动量
维度2:横截面领导力(CL)
目标:识别行业内的龙头股和相对强度
具体构建方法:
1. 龙头股筛选:if_else(rank(volume) > 0.7, 龙头值, 其他值) [使用volume代替market_cap]
2. 龙头组合:group_mean(x, 1, bucket(rank(volume), range="0,3,0.4")) [使用volume排序]
3. 行业内离散度:ts_std_dev(group_rank(returns, industry), 20)
4. 相对排名稳定性:ts_mean(rank(returns), d)
维度3:市场状态适应性(MS)
目标:根据波动率、趋势状态调整参数
具体构建方法:
1. 波动率调整:ts_delta(close,5) / ts_std_dev(returns,20)
2. 状态条件选择:if_else(ts_rank(volatility,30) > 0.7, 短期动量, 长期动量)
3. 参数动态化:if_else(ts_std_dev(returns,20) > 阈值, 5, 20) [作为d参数]
4. 趋势状态识别:ts_rank(ts_mean(returns,20), 60) > 0.5
基本结构:
复合因子 = 维度A组件 [运算符] 维度B组件 [条件调整]
=== 关键语法规则(必须遵守) ===
1. 数据字段规范:
- 可使用字段:close, volume, returns
- ❌ 错误:market_cap, marketcap, mkt_cap [这些字段不存在]
- ✅ 正确:使用volume作为规模代理,close作为价格
- returns通常定义为:ts_delta(close, 1) 或 close/ts_delay(close,1)-1
2. ts_regression使用规范:
- 避免深度嵌套ts_regression,特别是作为其他函数的参数
- ✅ 正确:reg_slope = ts_regression(close, ts_step(1), 30, 0, 1)
- ❌ 错误:ts_delta(ts_regression(close, ts_step(1), 30, 0, 1), 5)
- 替代方案:用ts_delta组合计算动量变化
3. if_else使用规范:
- 条件必须是简单布尔表达式
- 避免序列比较:❌ ts_std_dev(returns,60) > ts_mean(ts_std_dev(returns,60),120)
- 正确使用:✅ if_else(ts_rank(ts_std_dev(returns,60), 120) > 0.7, 短期动量, 长期动量)
4. bucket函数使用规范:
- bucket()返回分组ID,可用于条件判断
- ✅ 正确:bucket(rank(volume), range="0,3,0.4") == 0 [第一组为大成交量]
- ✅ 正确:group_mean(x, 1, bucket(rank(volume), range="0,3,0.4"))
- 注意字符串格式:range="起始值,组数,步长" 或 buckets="分割点列表"
=== 关键语法规则结束 ===
*=====*
注意事项:
1. 避免过度复杂的嵌套(建议不超过3层)
2. 每个表达式应有明确的经济逻辑
3. 考虑实际交易可行性(避免未来函数)
4. 包含风险控制元素(如波动率调整)
5. 只能使用可用的数据字段:close, volume, returns等
*=====*
参数逻辑:参数d(回顾期)应在[5, 10, 20, 30, 60, 120]等具有市场意义(周、月、季度、半年)的数值中合理选择并差异化。
行业隐含:通过group_mean、group_rank等函数或假设表达式在行业指数上运行来体现"行业"逻辑。
构建框架指导(请按此逻辑创造新因子):
维度融合模板(选择至少2个):
A. 领导力动量 = 时序动量 × 横截面调整
逻辑:大成交量股票的动量更强
结构:group_mean(ts_delta(close, d1), 1, bucket(rank(volume), range="0,3,0.4"))
B. 状态自适应动量 = 条件选择动量
逻辑:高波动用短期动量,低波动用长期动量
结构:if_else(ts_std_dev(returns,20) > 0.02, ts_delta(close,5), ts_delta(close,20))
C. 行业传导因子 = 领先行业动量 × 相关性强度
逻辑:与强势行业相关性高的行业未来表现好
结构:multiply(ts_corr(group_mean(returns,1,industry), group_mean(returns,1,sector), d1), ts_delta(close,d2))
D. 情绪反转 = 过度交易信号 × 基础趋势
逻辑:过度交易时反转,趋势延续时跟随
结构:multiply(reverse(ts_rank(volume/ts_mean(volume,20), 10)), ts_delta(close,20))
关键组件库(可自由组合):
1. 动量类:ts_delta(close,{d}), ts_regression(close,ts_step(1),{d},0,1)
2. 波动类:ts_std_dev(returns,{d}), ts_mean(abs(returns),{d})
3. 成交量类:volume/ts_mean(volume,{d}), ts_zscore(volume,{d})
4. 横截面类:if_else(rank(volume) > 阈值, 值1, 值2), bucket(rank(volume), range="0,3,0.4")
5. 相关性类:ts_corr({x},{y},{d})
6. 条件逻辑:if_else({condition}, {true_value}, {false_value})
参数池:d ∈ [5,10,20,30,60,120], 阈值 ∈ [0.5,0.7,0.8]
*=====*
输出格式:
输出必须是且仅是纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
===================== !!! 重点(输出方式) !!! =====================
现在,请严格遵守以上所有规则,开始生成可立即在WebSim中运行的复合因子表达式。
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
=================================================================
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子:
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
========================= 操作符开始 =======================================注意: 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.
========================= 操作符结束 =======================================
========================= 数据字段开始 =======================================注意: DataField: 后面的是数据字段, DataFieldDescription: 此字段后面的是数据字段对应的描述或使用说明, DataFieldDescription字段后面的内容是使用说明, 不是数据字段
DataField: pcr_vol_120
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 120 days in the future.
DataField: put_breakeven_270
DataFieldDescription: Price at which a stock's put options with expiration 270 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_720
DataFieldDescription: Price at which a stock's call options with expiration 720 days in the future break even based on its recent bid/ask mean.
DataField: option_breakeven_1080
DataFieldDescription: Price at which a stock's options with expiration 1080 days in the future break even based on its recent bid/ask mean.
DataField: pcr_oi_120
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 120 days in the future.
DataField: pcr_vol_1080
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 1080 days in the future.
DataField: put_breakeven_720
DataFieldDescription: Price at which a stock's put options with expiration 720 days in the future break even based on its recent bid/ask mean.
DataField: pcr_oi_20
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 20 days in the future.
DataField: put_breakeven_30
DataFieldDescription: Price at which a stock's put options with expiration 30 days in the future break even based on its recent bid/ask mean.
DataField: pcr_oi_1080
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 1080 days in the future.
DataField: forward_price_150
DataFieldDescription: Forward price at 150 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: call_breakeven_1080
DataFieldDescription: Price at which a stock's call options with expiration 1080 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_360
DataFieldDescription: Price at which a stock's put options with expiration 360 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_180
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 180 days in the future.
DataField: forward_price_1080
DataFieldDescription: Forward price at 1080 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: call_breakeven_120
DataFieldDescription: Price at which a stock's call options with expiration 120 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_20
DataFieldDescription: Price at which a stock's put options with expiration 20 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_90
DataFieldDescription: Price at which a stock's call options with expiration 90 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_20
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 20 days in the future.
DataField: call_breakeven_360
DataFieldDescription: Price at which a stock's call options with expiration 360 days in the future break even based on its recent bid/ask mean.
DataField: forward_price_60
DataFieldDescription: Forward price at 60 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: pcr_oi_720
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 720 days in the future.
DataField: forward_price_270
DataFieldDescription: Forward price at 270 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: call_breakeven_150
DataFieldDescription: Price at which a stock's call options with expiration 150 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_360
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 360 days in the future.
DataField: pcr_oi_all
DataFieldDescription: Ratio of put open interest to call open interest for all maturities on stock's options.
DataField: forward_price_180
DataFieldDescription: Forward price at 180 days derived from a synthetic long option with payoff similar to long stock + option dynamics. combination of long ATM call, and short ATM put.
DataField: pcr_vol_90
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 90 days in the future.
DataField: put_breakeven_180
DataFieldDescription: Price at which a stock's put options with expiration 180 days in the future break even based on its recent bid/ask mean.
DataField: forward_price_20
DataFieldDescription: Forward price at 20 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: fnd6_pncepsq
DataFieldDescription: Core Pension Adjustment Basic EPS Effect
DataField: fnd6_newa1v1300_cshfd
DataFieldDescription: Common Shares Used to Calc Earnings Per Share - Fully Diluted
DataField: fnd6_newqeventv110_glpq
DataFieldDescription: Gain/Loss Pretax
DataField: fnd6_newqeventv110_txdbaq
DataFieldDescription: Deferred Tax Asset - Long Term
DataField: fnd6_newqv1300_esopnrq
DataFieldDescription: Preferred ESOP Obligation - Non-Redeemable
DataField: fnd6_newa2v1300_xoptd
DataFieldDescription: Implied Option EPS Diluted
DataField: fnd6_eventv110_dd1q
DataFieldDescription: Long Term Debt Due in 1 Year
DataField: fnd6_newqeventv110_drltq
DataFieldDescription: Deferred Revenue - Long-term
DataField: fnd6_newqeventv110_rcaq
DataFieldDescription: Restructuring Cost After-tax
DataField: fnd6_newa1v1300_csho
DataFieldDescription: Common Shares Outstanding
DataField: fnd6_np
DataFieldDescription: Notes Payable - Short-Term Borrowings
DataField: fnd6_npq
DataFieldDescription: Notes Payable
DataField: fnd6_drlt
DataFieldDescription: Deferred Revenue - Long-term
DataField: fnd6_newqv1300_loxdrq
DataFieldDescription: Liabilities - Other - Excluding Deferred Revenue
DataField: fnd6_cptnewqv1300_dlttq
DataFieldDescription: Long-Term Debt - Total
DataField: fnd6_newqeventv110_seqoq
DataFieldDescription: Other Stockholders' Equity Adjustments
DataField: fnd6_newqeventv110_pncpeps12
DataFieldDescription: Core Pension Adjustment 12MM Basic EPS Effect Preliminary
DataField: fnd6_newqv1300_spceepsp12
DataFieldDescription: S&P Core 12MM EPS - Basic - Preliminary
DataField: fnd6_newqeventv110_chq
DataFieldDescription: Cash
DataField: fnd6_cptnewqeventv110_apq
DataFieldDescription: Accounts Payable/Creditors - Trade
DataField: fnd6_newqeventv110_esopnrq
DataFieldDescription: Preferred ESOP Obligation - Non-Redeemable
DataField: fnd6_newa2v1300_rect
DataFieldDescription: Receivables - Total
DataField: fnd6_cisecgl
DataFieldDescription: Comp Inc - Securities Gains/Losses
DataField: fnd6_cptnewqeventv110_oeps12
DataFieldDescription: Earnings Per Share from Operations - 12 Months Moving
DataField: fnd6_newqeventv110_pncpdq
DataFieldDescription: Core Pension Adjustment Diluted EPS Effect Preliminary
DataField: fnd6_newqeventv110_cipenq
DataFieldDescription: Comp Inc - Minimum Pension Adj
DataField: fnd6_ranks
DataFieldDescription: Ranking
DataField: fnd6_cptnewqv1300_apq
DataFieldDescription: Accounts Payable/Creditors - Trade
DataField: fnd6_newa1v1300_epspx
DataFieldDescription: Earnings Per Share (Basic) - Excluding Extraordinary Items
DataField: fnd6_newqeventv110_cheq
DataFieldDescription: Cash and Short-Term Investments
DataField: scl12_alltype_buzzvec
DataFieldDescription: sentiment volume
DataField: scl12_alltype_sentvec
DataFieldDescription: sentiment
DataField: scl12_alltype_typevec
DataFieldDescription: instrument type index
DataField: scl12_buzz
DataFieldDescription: relative sentiment volume
DataField: scl12_buzz_fast_d1
DataFieldDescription: relative sentiment volume
DataField: scl12_buzzvec
DataFieldDescription: sentiment volume
DataField: scl12_sentiment
DataFieldDescription: sentiment
DataField: scl12_sentiment_fast_d1
DataFieldDescription: sentiment
DataField: scl12_sentvec
DataFieldDescription: sentiment
DataField: scl12_typevec
DataFieldDescription: instrument type index
DataField: snt_buzz
DataFieldDescription: negative relative sentiment volume, fill nan with 0
DataField: snt_buzz_bfl
DataFieldDescription: negative relative sentiment volume, fill nan with 1
DataField: snt_buzz_bfl_fast_d1
DataFieldDescription: negative relative sentiment volume, fill nan with 1
DataField: snt_buzz_fast_d1
DataFieldDescription: negative relative sentiment volume, fill nan with 0
DataField: snt_buzz_ret
DataFieldDescription: negative return of relative sentiment volume
DataField: snt_buzz_ret_fast_d1
DataFieldDescription: negative return of relative sentiment volume
DataField: snt_value
DataFieldDescription: negative sentiment, fill nan with 0
DataField: snt_value_fast_d1
DataFieldDescription: negative sentiment, fill nan with 0
DataField: analyst_revision_rank_derivative
DataFieldDescription: Change in ranking for analyst revisions and momentum compared to previous period.
DataField: cashflow_efficiency_rank_derivative
DataFieldDescription: Change in ranking for cash flow generation and profitability compared to previous period.
DataField: composite_factor_score_derivative
DataFieldDescription: Change in overall composite factor score from the prior period.
DataField: earnings_certainty_rank_derivative
DataFieldDescription: Change in ranking for earnings sustainability and certainty compared to previous period.
DataField: fscore_bfl_growth
DataFieldDescription: The purpose of this metric is to qualify the expected MT growth potential of the stock.
DataField: fscore_bfl_momentum
DataFieldDescription: The purpose of this metric is to identify stocks which are currently undergoing either up or downward analyst revisions.
DataField: fscore_bfl_profitability
DataFieldDescription: The purpose of this metric is to rank stock based on their ability to generate cash flows.
DataField: fscore_bfl_quality
DataFieldDescription: The purpose of this metric is to measure both the sustainability and certainty of earnings.
DataField: fscore_bfl_surface
DataFieldDescription: The static score. An index between 0 & 100 is applied for each stock and each composite factor - The first ranking is a pentagon surface-based score. The larger the surface, the higher the rank.
DataField: fscore_bfl_surface_accel
DataFieldDescription: The derivative score. In a second step, we calculate the derivative of this score (ie: Is the surface of the pentagon increasing or decreasing from the previous month?).
DataField: fscore_bfl_total
DataFieldDescription: The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.
DataField: fscore_bfl_value
DataFieldDescription: The purpose of this metric is to see if the stock is under or overpriced given several well known valuation standards.
DataField: fscore_growth
DataFieldDescription: The purpose of this metric is to qualify the expected MT growth potential of the stock.
DataField: fscore_momentum
DataFieldDescription: The purpose of this metric is to identify stocks which are currently undergoing either up or downward analyst revisions.
DataField: fscore_profitability
DataFieldDescription: The purpose of this metric is to rank stock based on their ability to generate cash flows.
DataField: fscore_quality
DataFieldDescription: The purpose of this metric is to measure both the sustainability and certainty of earnings.
DataField: fscore_surface
DataFieldDescription: The static score. An index between 0 & 100 is applied for each stock and each composite factor - The first ranking is a pentagon surface-based score. The larger the surface, the higher the rank.
DataField: fscore_surface_accel
DataFieldDescription: The derivative score. In a second step, we calculate the derivative of this score (ie: Is the surface of the pentagon increasing or decreasing from the previous month?).
DataField: fscore_total
DataFieldDescription: The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.
DataField: fscore_value
DataFieldDescription: The purpose of this metric is to see if the stock is under or overpriced given several well known valuation standards.
DataField: growth_potential_rank_derivative
DataFieldDescription: Change in ranking for medium-term growth potential compared to previous period.
DataField: multi_factor_acceleration_score_derivative
DataFieldDescription: Change in the acceleration of multi-factor score compared to previous period.
DataField: multi_factor_static_score_derivative
DataFieldDescription: Change in static multi-factor score compared to previous period.
DataField: relative_valuation_rank_derivative
DataFieldDescription: Change in ranking for valuation metrics compared to previous period.
DataField: snt_social_value
DataFieldDescription: Z score of sentiment
DataField: snt_social_volume
DataFieldDescription: Normalized tweet volume
DataField: beta_last_30_days_spy
DataFieldDescription: Beta to SPY in 30 Days
DataField: beta_last_360_days_spy
DataFieldDescription: Beta to SPY in 360 Days
DataField: beta_last_60_days_spy
DataFieldDescription: Beta to SPY in 60 Days
DataField: beta_last_90_days_spy
DataFieldDescription: Beta to SPY in 90 Days
DataField: correlation_last_30_days_spy
DataFieldDescription: Correlation to SPY in 30 Days
DataField: correlation_last_360_days_spy
DataFieldDescription: Correlation to SPY in 360 Days
DataField: correlation_last_60_days_spy
DataFieldDescription: Correlation to SPY in 60 Days
DataField: correlation_last_90_days_spy
DataFieldDescription: Correlation to SPY in 90 Days
DataField: systematic_risk_last_30_days
DataFieldDescription: Systematic Risk Last 30 Days
DataField: systematic_risk_last_360_days
DataFieldDescription: Systematic Risk Last 360 Days
DataField: systematic_risk_last_60_days
DataFieldDescription: Systematic Risk Last 60 Days
DataField: systematic_risk_last_90_days
DataFieldDescription: Systematic Risk Last 90 Days
DataField: unsystematic_risk_last_30_days
DataFieldDescription: Unsystematic Risk Last 30 Days - Relative to SPY
DataField: unsystematic_risk_last_360_days
DataFieldDescription: Unsystematic Risk Last 360 Days - Relative to SPY
DataField: unsystematic_risk_last_60_days
DataFieldDescription: Unsystematic Risk Last 60 Days - Relative to SPY
DataField: unsystematic_risk_last_90_days
DataFieldDescription: Unsystematic Risk Last 90 Days - Relative to SPY
DataField: anl4_qf_az_eps
DataFieldDescription: EPS - aggregation on estimations, 50th percentile
DataField: est_netprofit_adj
DataFieldDescription: Adjusted net income - Mean of estimations
DataField: anl4_fsdtlestmtsafv4_item
DataFieldDescription: Financial item
DataField: anl4_guiqfv4_est
DataFieldDescription: Estimation value
DataField: anl4_totgw_high
DataFieldDescription: Total Goodwill - The highest estimation
DataField: anl4_gric_std
DataFieldDescription: Gross income - std of estimations
DataField: anl4_qfd1_az_cfps_median
DataFieldDescription: Cash Flow Per Share - Median value among forecasts
DataField: max_book_value_per_share_guidance
DataFieldDescription: Book value per share - Maximum value among forecasts
DataField: min_share_count_guidance
DataFieldDescription: Minimum guidance for shares on an annual basis
DataField: anl4_cuo1actualqfv110_actual
DataFieldDescription: Announced financial data
DataField: anl4_afv4_maxguidance
DataFieldDescription: Max guidance value
DataField: anl4_dez1basicqfv4v104_est
DataFieldDescription: Estimation value
DataField: cash_flow_financing_max_guidance
DataFieldDescription: Cash Flow From Financing - Maximum guidance value provided annually
DataField: anl4_qfv4_maxguidance
DataFieldDescription: Max guidance value
DataField: operating_profit_before_depr_amort
DataFieldDescription: EBITDA value - Annual
DataField: min_total_assets_guidance_2
DataFieldDescription: Minimum guidance value for Total Assets on an annual basis
DataField: anl4_qfd1_az_cfps_number
DataFieldDescription: Cash Flow Per Share - number of estimations
DataField: min_basic_shares_guidance
DataFieldDescription: Shares Basic - Minimum guidance value
DataField: anl4_bvps_value
DataFieldDescription: Book value per share - announced financial value
DataField: min_tangible_book_value_per_share_guidance
DataFieldDescription: Tangible Book Value per Share - minimum guidance value
DataField: previous_recommendation_value
DataFieldDescription: The previous estimation of financial item for recommendation
DataField: anl4_fsguidanceqfv4_minguidance
DataFieldDescription: Min guidance value
DataField: anl4_dez1safv4_est
DataFieldDescription: Estimation value
DataField: max_capital_expenditure_guidance
DataFieldDescription: The maximum guidance value for Capital Expenditures on an annual basis.
DataField: minimum_guidance_value
DataFieldDescription: Minimum guidance value for basic annual financials
DataField: anl4_rd_exp_number
DataFieldDescription: Research and Development Expense - Number of Estimations
DataField: anl4_dez1basicqfv4_est
DataFieldDescription: Estimation value
DataField: anl4_ebitda_low
DataFieldDescription: Earnings before interest, taxes, depreciation and amortization - The lowest estimation
DataField: est_ptpr
DataFieldDescription: Reported pretax income - mean of estimations
DataField: guidance_value_currency_code_qtr
DataFieldDescription: Home currency of instrument
DataField: pv13_r2_min2_3000_sector
DataFieldDescription: grouping fields
DataField: pv13_revere_index_cap
DataFieldDescription: Company market capitalization
DataField: pv13_hierarchy_min51_f2_sector
DataFieldDescription: grouping fields
DataField: primary_sector_focused_company_count
DataFieldDescription: Number of companies primarily focused in a given sector.
DataField: pv13_hierarchy_min50_f3_513_sector
DataFieldDescription: grouping fields
DataField: pv13_reportperiodend
DataFieldDescription: Stated end date for the report
DataField: pv13_hierarchy_min20_3k_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min22_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min5_f3g2_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min10_sector
DataFieldDescription: grouping fields
DataField: rel_num_all
DataFieldDescription: number of the companies whose product overlapped with the instrument
DataField: pv13_hierarchy_min10_industry_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min30_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min2_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_h_f3_sector
DataFieldDescription: grouping fields
DataField: pv13_r2_min20_3000_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min10_1000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_reveremap
DataFieldDescription: Mapping data
DataField: pv13_hierarchy_min2_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_f1_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min10_top3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min20_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min10_3k_all_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min2_focused_pureplay_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_r2_min20_1000_sector
DataFieldDescription: grouping fields
DataField: pv13_di_6l
DataFieldDescription: grouping fields
DataField: rel_num_cust
DataFieldDescription: number of the instrument's customers
DataField: pv13_revere_term_sector_total
DataFieldDescription: Number of terminal sectors for the company
DataField: pv13_com_page_rank
DataFieldDescription: the PageRank of competitors
DataField: pv13_h_min52_3000_sector
DataFieldDescription: grouping fields
DataField: implied_volatility_mean_skew_90
DataFieldDescription: At-the-money option-implied volatility mean skew for 90 days
DataField: implied_volatility_call_30
DataFieldDescription: At-the-money option-implied volatility for call Option for 30 days
DataField: implied_volatility_put_10
DataFieldDescription: At-the-money option-implied volatility for Put Option for 10 days
DataField: implied_volatility_call_180
DataFieldDescription: At-the-money option-implied volatility for call Option for 180 days
DataField: parkinson_volatility_150
DataFieldDescription: Parkinson model's historical volatility over 150 days
DataField: implied_volatility_put_90
DataFieldDescription: At-the-money option-implied volatility for Put Option for 90 days
DataField: implied_volatility_put_30
DataFieldDescription: At-the-money option-implied volatility for Put Option for 30 days
DataField: implied_volatility_call_1080
DataFieldDescription: At-the-money option-implied volatility for call option for 1080 days
DataField: implied_volatility_call_360
DataFieldDescription: At-the-money option-implied volatility for call Option for 360 days
DataField: implied_volatility_put_360
DataFieldDescription: At-the-money option-implied volatility for Put Option for 360 days
DataField: implied_volatility_mean_skew_60
DataFieldDescription: At-the-money option-implied volatility mean skew for 60 days
DataField: implied_volatility_mean_360
DataFieldDescription: At-the-money option-implied volatility mean for 360 days
DataField: implied_volatility_put_150
DataFieldDescription: At-the-money option-implied volatility for Put Option for 150 days
DataField: parkinson_volatility_10
DataFieldDescription: Parkinson model's historical volatility over 2 weeks
DataField: implied_volatility_mean_10
DataFieldDescription: At-the-money option-implied volatility mean for 10 days
DataField: implied_volatility_mean_20
DataFieldDescription: At-the-money option-implied volatility mean for 20 days
DataField: implied_volatility_mean_skew_30
DataFieldDescription: At-the-money option-implied volatility mean skew for 30 days
DataField: implied_volatility_call_10
DataFieldDescription: At-the-money option-implied volatility for call Option for 10 days
DataField: implied_volatility_put_120
DataFieldDescription: At-the-money option-implied volatility for Put Option for 120 days
DataField: implied_volatility_put_270
DataFieldDescription: At-the-money option-implied volatility for Put Option for 270 days
DataField: implied_volatility_mean_skew_720
DataFieldDescription: At-the-money option-implied volatility mean skew for 720 days
DataField: implied_volatility_mean_90
DataFieldDescription: At-the-money option-implied volatility mean for 90 days
DataField: implied_volatility_call_720
DataFieldDescription: At-the-money option-implied volatility for call Option for 720 days
DataField: implied_volatility_mean_1080
DataFieldDescription: At-the-money option-implied volatility mean for 3 years
DataField: implied_volatility_mean_150
DataFieldDescription: At-the-money option-implied volatility mean for 150 days
DataField: implied_volatility_mean_180
DataFieldDescription: At-the-money option-implied volatility mean for 180 days
DataField: implied_volatility_call_60
DataFieldDescription: At-the-money option-implied volatility for call Option for 60 days
DataField: implied_volatility_mean_skew_270
DataFieldDescription: At-the-money option-implied volatility mean skew for 270 days
DataField: implied_volatility_mean_skew_150
DataFieldDescription: At-the-money option-implied volatility mean skew for 150 days
DataField: historical_volatility_120
DataFieldDescription: Close-to-close Historical volatility over 120 days
DataField: nws12_mainz_5s
DataFieldDescription: Number of minutes that elapsed before price went down 5 percentage points
DataField: nws12_mainz_maxup
DataFieldDescription: Percent change from the price at the time of the news to the after the news high
DataField: nws12_mainz_result2
DataFieldDescription: Percent change between the price at the time of the news release to the price at the close of the session
DataField: news_mins_4_pct_up
DataFieldDescription: Number of minutes that elapsed before price went up 4 percentage points
DataField: nws12_afterhsz_tonlast
DataFieldDescription: Price at the time of news
DataField: nws12_afterhsz_range
DataFieldDescription: Session High Price - Session Low Price) / Session Low Price.
DataField: news_mins_10_pct_dn
DataFieldDescription: Number of minutes that elapsed before price went down 10 percentage points
DataField: nws12_prez_range
DataFieldDescription: Session High Price - Session Low Price) / Session Low Price.
DataField: nws12_allz_reportsess
DataFieldDescription: Index of Session on which the spreadsheet is reporting
DataField: news_pct_90min
DataFieldDescription: The percent change in price in the first 90 minutes following the news release
DataField: news_eod_low
DataFieldDescription: Lowest price reached between the time of news and the end of the session
DataField: nws12_afterhsz_1s
DataFieldDescription: Number of minutes that elapsed before price went down 1 percentage point
DataField: nws12_afterhsz_2s
DataFieldDescription: Number of minutes that elapsed before price went down 2 percentage points
DataField: news_max_dn_amt
DataFieldDescription: The price at the time of the news minus the after the news low
DataField: nws12_prez_peratio
DataFieldDescription: Reported price to earnings ratio for the calendar day of the session
DataField: nws12_afterhsz_1l
DataFieldDescription: Number of minutes that elapsed before price went up 1 percentage points
DataField: news_range_stddev
DataFieldDescription: (RangeAmt - AvgRange) / RangeStdDev, where AvgRange is the average of the daily range, and RangeStdDev is one standard deviation for the daily range, both for 30 calendar days
DataField: news_mins_3_pct_up
DataFieldDescription: Number of minutes that elapsed before price went up 3 percentage points
DataField: nws12_mainz_reportsess
DataFieldDescription: Index of Session on which the spreadsheet is reporting
DataField: news_ton_high
DataFieldDescription: Highest price reached during the session before the time of news
DataField: news_mins_7_5_pct_up
DataFieldDescription: Number of minutes that elapsed before price went up 7.5 percentage points
DataField: nws12_prez_57p
DataFieldDescription: The minimum of L or S above for 7.5-minute bucket
DataField: nws12_mainz_rangeamt
DataFieldDescription: Session High Price - Session Low Price
DataField: nws12_afterhsz_01l
DataFieldDescription: Number of minutes that elapsed before price went up 10 percentage points
DataField: nws12_afterhsz_120_min
DataFieldDescription: The percent change in price in the first 120 minutes following the news release
DataField: nws12_mainz_allvwap
DataFieldDescription: Volume weighted average price of all sessions
DataField: nws12_mainz_prev_vol
DataFieldDescription: Previous day's session volume
DataField: nws12_afterhsz_newssess
DataFieldDescription: Index of the session in which the news was reported
DataField: nws12_prez_tonlow
DataFieldDescription: Lowest price reached during the session before the time of the news
DataField: nws12_mainz_highexcstddev
DataFieldDescription: (EODHigh - TONLast)/StdDev, where StdDev is one standard deviation for the close price for 30 calendar days
DataField: top1000
DataFieldDescription: 20140630
DataField: top200
DataFieldDescription: 20140630
DataField: top3000
DataFieldDescription: 20140630
DataField: top500
DataFieldDescription: 20140630
DataField: topsp500
DataFieldDescription: 20140630
DataField: rp_ess_dividends
DataFieldDescription: Event sentiment score of dividends news
DataField: rp_ess_technical
DataFieldDescription: Event sentiment score based on technical analysis
DataField: rp_ess_legal
DataFieldDescription: Event sentiment score of legal news
DataField: rp_css_product
DataFieldDescription: Composite sentiment score of product and service-related news
DataField: rp_nip_labor
DataFieldDescription: News impact projection of labor issues news
DataField: rp_css_marketing
DataFieldDescription: Composite sentiment score of marketing news
DataField: rp_css_legal
DataFieldDescription: Composite sentiment score of legal news
DataField: rp_nip_product
DataFieldDescription: News impact projection of product and service-related news
DataField: rp_ess_insider
DataFieldDescription: Event sentiment score of insider trading news
DataField: rp_nip_ratings
DataFieldDescription: News impact projection of analyst ratings-related news
DataField: rp_nip_mna
DataFieldDescription: News impact projection of mergers and acquisitions-related news
DataField: rp_ess_labor
DataFieldDescription: Event sentiment score of labor issues news
DataField: rp_css_credit
DataFieldDescription: Composite sentiment score of credit news
DataField: rp_nip_inverstor
DataFieldDescription: News impact projection of investor relations news
DataField: rp_ess_earnings
DataFieldDescription: Event sentiment score of earnings news
DataField: rp_css_dividends
DataFieldDescription: Composite sentiment score of dividends news
DataField: rp_ess_product
DataFieldDescription: Event sentiment score of product and service-related news
DataField: rp_nip_equity
DataFieldDescription: News impact projection of equity action news
DataField: nws18_bee
DataFieldDescription: News sentiment specializing in growth of earnings
DataField: rp_ess_ratings
DataFieldDescription: Event sentiment score of analyst ratings-related news
DataField: rp_nip_partner
DataFieldDescription: News impact projection of partnership news
DataField: rp_ess_mna
DataFieldDescription: Event sentiment score of mergers and acquisitions-related news
DataField: rp_ess_price
DataFieldDescription: Event sentiment score of stock price news
DataField: rp_css_equity
DataFieldDescription: Composite sentiment score of equity action news
DataField: rp_nip_technical
DataFieldDescription: News impact projection based on technical analysis
DataField: rp_ess_credit_ratings
DataFieldDescription: Event sentiment score of credit ratings news
DataField: nws18_relevance
DataFieldDescription: Relevance of news to the company
DataField: rp_nip_business
DataFieldDescription: News impact projection of business-related news
DataField: rp_nip_marketing
DataFieldDescription: News impact projection of marketing news
DataField: rp_nip_credit
DataFieldDescription: News impact projection of credit news
DataField: fn_comp_options_grants_weighted_avg_a
DataFieldDescription: Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated.
DataField: fnd2_asdm
DataFieldDescription: Assets, Domestic
DataField: fn_op_lease_min_pay_due_in_4y_a
DataFieldDescription: Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of 1 year due in the 4th fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fnd2_dbplanartonplas
DataFieldDescription: Defined Benefit Plan, Benefits Paid, Plan Assets
DataField: fn_comp_non_opt_vested_a
DataFieldDescription: The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.
DataField: fn_def_tax_assets_liab_net_q
DataFieldDescription: Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.
DataField: fn_comp_options_exercises_weighted_avg_q
DataFieldDescription: Share-Based Compensation, Options Assumed, Weighted Average Exercise Price
DataField: fnd2_q_flintasamt1expythree
DataFieldDescription: Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the 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.
DataField: fn_repayments_of_lines_of_credit_q
DataFieldDescription: Amount of cash outflow for payment of an obligation from a lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.
DataField: fn_intangible_assets_accum_amort_q
DataFieldDescription: Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.
DataField: fn_comp_non_opt_nonvested_number_q
DataFieldDescription: The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.
DataField: fn_comp_options_out_number_a
DataFieldDescription: Number of options outstanding, including both vested and non-vested options.
DataField: fnd2_dfdfritxexp
DataFieldDescription: Income Tax Expense, Deferred - Foreign
DataField: fnd2_dbplanchgbnfolintcst
DataFieldDescription: Defined Benefit Plan Change In Benefit Obligation Interest Cost
DataField: fn_prepaid_expense_q
DataFieldDescription: Carrying amount for an unclassified balance sheet date of expenditures made in advance of when the economic benefit of the cost will be realized, and which will be expensed in future periods with the passage of time or when a triggering event occurs. For a classified balance sheet, represents the noncurrent portion of prepaid expenses (the current portion has a separate concept).
DataField: fn_comp_options_grants_fair_value_a
DataFieldDescription: Annual Share-Based Compensation Arrangement by Share-Based Payment Award Options Grants in Period Weighted Average Grant Date Fair Value
DataField: fn_liab_fair_val_l1_a
DataFieldDescription: Liabilities Fair Value, Recurring, Level 1
DataField: fn_op_lease_min_pay_due_a
DataFieldDescription: Amount of required minimum rental payments for leases having an initial or remaining non-cancelable letter-terms in excess of 1 year.
DataField: fn_comp_options_forfeitures_and_expirations_a
DataFieldDescription: For presentations that combine terminations, the number of shares under options that were canceled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan or that expired.
DataField: fn_comp_options_exercisable_number_a
DataFieldDescription: 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.
DataField: fn_incremental_shares_attributable_to_share_based_payment_q
DataFieldDescription: Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share-based payment arrangements using the treasury stock method.
DataField: fnd2_dbplanbnfpaid
DataFieldDescription: The amount of payments made for which participants are entitled under a pension plan, including pension benefits, death benefits, and benefits due on termination of employment. Also includes payments made under a postretirement benefit plan, including prescription drug benefits, health care benefits, life insurance benefits, and legal, educational and advisory services. This item represents a periodic decrease to the plan obligations and a decrease to plan assets.
DataField: fn_payments_for_repurchase_of_common_stock_q
DataFieldDescription: Value reported on Cash Flow Statement. May include shares repurchased as part of a buyback plan, as well as shares purchased for employee compensation, etc.
DataField: fnd2_a_ltrmdmrepoplinythree
DataFieldDescription: Amount of long-term debt payable, sinking fund requirements, and other securities issued that are redeemable by holder at fixed or determinable prices and dates maturing in the 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.
DataField: fn_comp_options_out_number_q
DataFieldDescription: Number of options outstanding, including both vested and non-vested options.
DataField: fn_derivative_notional_amount_q
DataFieldDescription: Nominal or face amount used to calculate payments on the derivative liability.
DataField: fn_line_of_credit_facility_max_borrowing_capacity_a
DataFieldDescription: Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.
DataField: fn_oth_income_loss_available_for_sale_securities_adj_of_tax_a
DataFieldDescription: Amount after tax and reclassification adjustments, of appreciation (loss) in value of unsold available-for-sale securities. Excludes amounts related to other than temporary impairment (OTTI) loss.
DataField: fnd2_a_acmopclcchngcfectnt
DataFieldDescription: Accumulated change, net of tax, in accumulated gains and losses from derivative instruments designated and qualifying as the effective portion of cash flow hedges. Includes an entity's share of an equity investee's Increase or Decrease in deferred hedging gains or losses.
DataField: fnd2_a_sbcpnargmsptawervl
DataFieldDescription: Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.
DataField: adv20
DataFieldDescription: Average daily volume in past 20 days
DataField: cap
DataFieldDescription: Daily market capitalization (in millions)
DataField: close
DataFieldDescription: Daily close price
DataField: country
DataFieldDescription: Country grouping
DataField: currency
DataFieldDescription: Currency
DataField: cusip
DataFieldDescription: CUSIP Value
DataField: dividend
DataFieldDescription: Dividend
DataField: exchange
DataFieldDescription: Exchange grouping
DataField: high
DataFieldDescription: Daily high price
DataField: industry
DataFieldDescription: Industry grouping
DataField: isin
DataFieldDescription: ISIN Value
DataField: low
DataFieldDescription: Daily low price
DataField: market
DataFieldDescription: Market grouping
DataField: open
DataFieldDescription: Daily open price
DataField: returns
DataFieldDescription: Daily returns
DataField: sector
DataFieldDescription: Sector grouping
DataField: sedol
DataFieldDescription: Sedol
DataField: sharesout
DataFieldDescription: Daily outstanding shares (in millions)
DataField: split
DataFieldDescription: Stock split ratio
DataField: subindustry
DataFieldDescription: Subindustry grouping
DataField: ticker
DataFieldDescription: Ticker
DataField: volume
DataFieldDescription: Daily volume
DataField: vwap
DataFieldDescription: Daily volume weighted average price
========================= 数据字段结束 =======================================

@ -0,0 +1,898 @@
任务指令
你是一个WorldQuant WebSim因子工程师。你的任务是生成 100 个用于行业轮动策略的复合型Alpha因子表达式。
核心规则
设计维度框架
维度1:时间序列动量(TM)
目标:识别价格趋势的强度、速度和持续性
可用的具体构建方法:
1. 简单动量:ts_delta(close, d) [d=5,10,20,30,60]
2. 趋势斜率:ts_regression(close, ts_step(1), d, 0, 1) [rettype=1获取斜率]
3. 动量加速度:ts_delta(ts_delta(close, d1), d2) [避免嵌套ts_regression]
4. 平滑动量:ts_mean(returns, d) [returns=ts_delta(close,1)]
5. 动量衰减:ts_decay_linear(returns, d)
6. 价量关系:ts_corr(ts_delta(close,5), ts_delta(volume,5), d)
建议组合:使用不同d参数创建短期/中期/长期动量
维度2:横截面领导力(CL)
目标:识别行业内的龙头股和相对强度
具体构建方法:
1. 龙头股筛选:if_else(rank(volume) > 0.7, 龙头值, 其他值) [使用volume代替market_cap]
2. 龙头组合:group_mean(x, 1, bucket(rank(volume), range="0,3,0.4")) [使用volume排序]
3. 行业内离散度:ts_std_dev(group_rank(returns, industry), 20)
4. 相对排名稳定性:ts_mean(rank(returns), d)
维度3:市场状态适应性(MS)
目标:根据波动率、趋势状态调整参数
具体构建方法:
1. 波动率调整:ts_delta(close,5) / ts_std_dev(returns,20)
2. 状态条件选择:if_else(ts_rank(volatility,30) > 0.7, 短期动量, 长期动量)
3. 参数动态化:if_else(ts_std_dev(returns,20) > 阈值, 5, 20) [作为d参数]
4. 趋势状态识别:ts_rank(ts_mean(returns,20), 60) > 0.5
基本结构:
复合因子 = 维度A组件 [运算符] 维度B组件 [条件调整]
=== 关键语法规则(必须遵守) ===
1. 数据字段规范:
- 可使用字段:close, volume, returns
- ❌ 错误:market_cap, marketcap, mkt_cap [这些字段不存在]
- ✅ 正确:使用volume作为规模代理,close作为价格
- returns通常定义为:ts_delta(close, 1) 或 close/ts_delay(close,1)-1
2. ts_regression使用规范:
- 避免深度嵌套ts_regression,特别是作为其他函数的参数
- ✅ 正确:reg_slope = ts_regression(close, ts_step(1), 30, 0, 1)
- ❌ 错误:ts_delta(ts_regression(close, ts_step(1), 30, 0, 1), 5)
- 替代方案:用ts_delta组合计算动量变化
3. if_else使用规范:
- 条件必须是简单布尔表达式
- 避免序列比较:❌ ts_std_dev(returns,60) > ts_mean(ts_std_dev(returns,60),120)
- 正确使用:✅ if_else(ts_rank(ts_std_dev(returns,60), 120) > 0.7, 短期动量, 长期动量)
4. bucket函数使用规范:
- bucket()返回分组ID,可用于条件判断
- ✅ 正确:bucket(rank(volume), range="0,3,0.4") == 0 [第一组为大成交量]
- ✅ 正确:group_mean(x, 1, bucket(rank(volume), range="0,3,0.4"))
- 注意字符串格式:range="起始值,组数,步长" 或 buckets="分割点列表"
=== 关键语法规则结束 ===
*=====*
注意事项:
1. 避免过度复杂的嵌套(建议不超过3层)
2. 每个表达式应有明确的经济逻辑
3. 考虑实际交易可行性(避免未来函数)
4. 包含风险控制元素(如波动率调整)
5. 只能使用可用的数据字段:close, volume, returns等
*=====*
参数逻辑:参数d(回顾期)应在[5, 10, 20, 30, 60, 120]等具有市场意义(周、月、季度、半年)的数值中合理选择并差异化。
行业隐含:通过group_mean、group_rank等函数或假设表达式在行业指数上运行来体现"行业"逻辑。
构建框架指导(请按此逻辑创造新因子):
维度融合模板(选择至少2个):
A. 领导力动量 = 时序动量 × 横截面调整
逻辑:大成交量股票的动量更强
结构:group_mean(ts_delta(close, d1), 1, bucket(rank(volume), range="0,3,0.4"))
B. 状态自适应动量 = 条件选择动量
逻辑:高波动用短期动量,低波动用长期动量
结构:if_else(ts_std_dev(returns,20) > 0.02, ts_delta(close,5), ts_delta(close,20))
C. 行业传导因子 = 领先行业动量 × 相关性强度
逻辑:与强势行业相关性高的行业未来表现好
结构:multiply(ts_corr(group_mean(returns,1,industry), group_mean(returns,1,sector), d1), ts_delta(close,d2))
D. 情绪反转 = 过度交易信号 × 基础趋势
逻辑:过度交易时反转,趋势延续时跟随
结构:multiply(reverse(ts_rank(volume/ts_mean(volume,20), 10)), ts_delta(close,20))
关键组件库(可自由组合):
1. 动量类:ts_delta(close,{d}), ts_regression(close,ts_step(1),{d},0,1)
2. 波动类:ts_std_dev(returns,{d}), ts_mean(abs(returns),{d})
3. 成交量类:volume/ts_mean(volume,{d}), ts_zscore(volume,{d})
4. 横截面类:if_else(rank(volume) > 阈值, 值1, 值2), bucket(rank(volume), range="0,3,0.4")
5. 相关性类:ts_corr({x},{y},{d})
6. 条件逻辑:if_else({condition}, {true_value}, {false_value})
参数池:d ∈ [5,10,20,30,60,120], 阈值 ∈ [0.5,0.7,0.8]
*=====*
输出格式:
输出必须是且仅是纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
===================== !!! 重点(输出方式) !!! =====================
现在,请严格遵守以上所有规则,开始生成可立即在WebSim中运行的复合因子表达式。
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
=================================================================
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子:
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
========================= 操作符开始 =======================================注意: 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.
========================= 操作符结束 =======================================
========================= 数据字段开始 =======================================注意: DataField: 后面的是数据字段, DataFieldDescription: 此字段后面的是数据字段对应的描述或使用说明, DataFieldDescription字段后面的内容是使用说明, 不是数据字段
DataField: forward_price_180
DataFieldDescription: Forward price at 180 days derived from a synthetic long option with payoff similar to long stock + option dynamics. combination of long ATM call, and short ATM put.
DataField: option_breakeven_150
DataFieldDescription: Price at which a stock's options with expiration 150 days in the future break even based on its recent bid/ask mean.
DataField: forward_price_20
DataFieldDescription: Forward price at 20 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: option_breakeven_360
DataFieldDescription: Price at which a stock's options with expiration 360 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_120
DataFieldDescription: Price at which a stock's call options with expiration 120 days in the future break even based on its recent bid/ask mean.
DataField: option_breakeven_270
DataFieldDescription: Price at which a stock's options with expiration 270 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_20
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 20 days in the future.
DataField: call_breakeven_60
DataFieldDescription: Price at which a stock's call options with expiration 60 days in the future break even based on its recent bid/ask mean.
DataField: option_breakeven_720
DataFieldDescription: Price at which a stock's options with expiration 720 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_20
DataFieldDescription: Price at which a stock's call options with expiration 20 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_20
DataFieldDescription: Price at which a stock's put options with expiration 20 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_90
DataFieldDescription: Price at which a stock's call options with expiration 90 days in the future break even based on its recent bid/ask mean.
DataField: forward_price_1080
DataFieldDescription: Forward price at 1080 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: pcr_vol_10
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 10 days in the future.
DataField: option_breakeven_10
DataFieldDescription: Price at which a stock's options with expiration 10 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_270
DataFieldDescription: Price at which a stock's put options with expiration 270 days in the future break even based on its recent bid/ask mean.
DataField: pcr_oi_all
DataFieldDescription: Ratio of put open interest to call open interest for all maturities on stock's options.
DataField: call_breakeven_30
DataFieldDescription: Price at which a stock's call options with expiration 30 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_720
DataFieldDescription: Price at which a stock's put options with expiration 720 days in the future break even based on its recent bid/ask mean.
DataField: pcr_oi_1080
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 1080 days in the future.
DataField: pcr_vol_180
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 180 days in the future.
DataField: pcr_vol_720
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 720 days in the future.
DataField: pcr_vol_120
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 120 days in the future.
DataField: pcr_oi_720
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 720 days in the future.
DataField: pcr_vol_270
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 270 days in the future.
DataField: pcr_vol_30
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 30 days in the future.
DataField: pcr_oi_90
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 90 days in the future.
DataField: forward_price_270
DataFieldDescription: Forward price at 270 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: pcr_oi_60
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 60 days in the future.
DataField: pcr_vol_90
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 90 days in the future.
DataField: fnd6_sales
DataFieldDescription: Net Sales
DataField: operating_expense
DataFieldDescription: Operating Expense - Total
DataField: fnd6_cik
DataFieldDescription: nonimportant technical code
DataField: fnd6_ivaco
DataFieldDescription: Investing Activities - Other
DataField: fnd6_newa1v1300_bkvlps
DataFieldDescription: Book Value Per Share
DataField: fnd6_optlifeq
DataFieldDescription: Life of Options - Assumption (# yrs)
DataField: fnd6_invfg
DataFieldDescription: Inventories - Finished Goods
DataField: fnd6_mfmq_ibcomq
DataFieldDescription: Income Before Extraordinary Items - Available for Common
DataField: fnd6_txtubsoflimit
DataFieldDescription: Lapse of Statute of Limitations
DataField: fnd6_fyrc
DataFieldDescription: Unimportant technical code, please ignore for research purposes
DataField: fnd6_itcb
DataFieldDescription: Investment Tax Credit (Balance Sheet)
DataField: fnd6_eventv110_aqdq
DataFieldDescription: Acquisition/Merger Diluted EPS Effect
DataField: fnd6_prclq
DataFieldDescription: Price Low - Quarter
DataField: fnd6_newqeventv110_glcea12
DataFieldDescription: Gain/Loss on Sale (Core Earnings Adjusted) After-tax 12MM
DataField: fnd6_newqv1300_acomincq
DataFieldDescription: Accumulated Other Comprehensive Income (Loss)
DataField: fnd6_eventv110_pncd12
DataFieldDescription: Core Pension Adjustment Diluted EPS Effect 12MM
DataField: fnd6_newa2v1300_recch
DataFieldDescription: Accounts Receivable - Decrease (Increase)
DataField: fnd6_newqeventv110_xoptdqp
DataFieldDescription: Implied Option EPS Diluted Preliminary
DataField: fnd6_newqeventv110_ibadjq
DataFieldDescription: Income Before Extraordinary Items - Adjusted for Common Stock Equivalents
DataField: fnd6_newqv1300_wcapq
DataFieldDescription: Working Capital (Balance Sheet)
DataField: fnd6_newqeventv110_prshoq
DataFieldDescription: Redeem Pfd Shares Outs (000)
DataField: fnd6_mkvalt
DataFieldDescription: Market Value - Total
DataField: fnd6_newqeventv110_seta12
DataFieldDescription: Settlement (Litigation/Insurance) After Tax - 12mm
DataField: fnd6_cptnewqv1300_saleq
DataFieldDescription: Sales/Turnover (Net)
DataField: fnd6_newqeventv110_prcpd12
DataFieldDescription: Core Post-Retirement Adjustment 12MM Diluted EPS Effect Preliminary
DataField: fnd6_newqeventv110_gdwlq
DataFieldDescription: Goodwill (net)
DataField: fnd6_newa2v1300_tstkn
DataFieldDescription: Treasury Stock - Number of Common Shares
DataField: fnd6_newqeventv110_ivstq
DataFieldDescription: Short-Term Investments - Total
DataField: fnd6_cptmfmq_opepsq
DataFieldDescription: Earnings Per Share from Operations
DataField: fnd6_newqv1300_ltmibq
DataFieldDescription: Liabilities - Total and Noncontrolling Interest
DataField: scl12_alltype_buzzvec
DataFieldDescription: sentiment volume
DataField: scl12_alltype_sentvec
DataFieldDescription: sentiment
DataField: scl12_alltype_typevec
DataFieldDescription: instrument type index
DataField: scl12_buzz
DataFieldDescription: relative sentiment volume
DataField: scl12_buzz_fast_d1
DataFieldDescription: relative sentiment volume
DataField: scl12_buzzvec
DataFieldDescription: sentiment volume
DataField: scl12_sentiment
DataFieldDescription: sentiment
DataField: scl12_sentiment_fast_d1
DataFieldDescription: sentiment
DataField: scl12_sentvec
DataFieldDescription: sentiment
DataField: scl12_typevec
DataFieldDescription: instrument type index
DataField: snt_buzz
DataFieldDescription: negative relative sentiment volume, fill nan with 0
DataField: snt_buzz_bfl
DataFieldDescription: negative relative sentiment volume, fill nan with 1
DataField: snt_buzz_bfl_fast_d1
DataFieldDescription: negative relative sentiment volume, fill nan with 1
DataField: snt_buzz_fast_d1
DataFieldDescription: negative relative sentiment volume, fill nan with 0
DataField: snt_buzz_ret
DataFieldDescription: negative return of relative sentiment volume
DataField: snt_buzz_ret_fast_d1
DataFieldDescription: negative return of relative sentiment volume
DataField: snt_value
DataFieldDescription: negative sentiment, fill nan with 0
DataField: snt_value_fast_d1
DataFieldDescription: negative sentiment, fill nan with 0
DataField: analyst_revision_rank_derivative
DataFieldDescription: Change in ranking for analyst revisions and momentum compared to previous period.
DataField: cashflow_efficiency_rank_derivative
DataFieldDescription: Change in ranking for cash flow generation and profitability compared to previous period.
DataField: composite_factor_score_derivative
DataFieldDescription: Change in overall composite factor score from the prior period.
DataField: earnings_certainty_rank_derivative
DataFieldDescription: Change in ranking for earnings sustainability and certainty compared to previous period.
DataField: fscore_bfl_growth
DataFieldDescription: The purpose of this metric is to qualify the expected MT growth potential of the stock.
DataField: fscore_bfl_momentum
DataFieldDescription: The purpose of this metric is to identify stocks which are currently undergoing either up or downward analyst revisions.
DataField: fscore_bfl_profitability
DataFieldDescription: The purpose of this metric is to rank stock based on their ability to generate cash flows.
DataField: fscore_bfl_quality
DataFieldDescription: The purpose of this metric is to measure both the sustainability and certainty of earnings.
DataField: fscore_bfl_surface
DataFieldDescription: The static score. An index between 0 & 100 is applied for each stock and each composite factor - The first ranking is a pentagon surface-based score. The larger the surface, the higher the rank.
DataField: fscore_bfl_surface_accel
DataFieldDescription: The derivative score. In a second step, we calculate the derivative of this score (ie: Is the surface of the pentagon increasing or decreasing from the previous month?).
DataField: fscore_bfl_total
DataFieldDescription: The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.
DataField: fscore_bfl_value
DataFieldDescription: The purpose of this metric is to see if the stock is under or overpriced given several well known valuation standards.
DataField: fscore_growth
DataFieldDescription: The purpose of this metric is to qualify the expected MT growth potential of the stock.
DataField: fscore_momentum
DataFieldDescription: The purpose of this metric is to identify stocks which are currently undergoing either up or downward analyst revisions.
DataField: fscore_profitability
DataFieldDescription: The purpose of this metric is to rank stock based on their ability to generate cash flows.
DataField: fscore_quality
DataFieldDescription: The purpose of this metric is to measure both the sustainability and certainty of earnings.
DataField: fscore_surface
DataFieldDescription: The static score. An index between 0 & 100 is applied for each stock and each composite factor - The first ranking is a pentagon surface-based score. The larger the surface, the higher the rank.
DataField: fscore_surface_accel
DataFieldDescription: The derivative score. In a second step, we calculate the derivative of this score (ie: Is the surface of the pentagon increasing or decreasing from the previous month?).
DataField: fscore_total
DataFieldDescription: The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.
DataField: fscore_value
DataFieldDescription: The purpose of this metric is to see if the stock is under or overpriced given several well known valuation standards.
DataField: growth_potential_rank_derivative
DataFieldDescription: Change in ranking for medium-term growth potential compared to previous period.
DataField: multi_factor_acceleration_score_derivative
DataFieldDescription: Change in the acceleration of multi-factor score compared to previous period.
DataField: multi_factor_static_score_derivative
DataFieldDescription: Change in static multi-factor score compared to previous period.
DataField: relative_valuation_rank_derivative
DataFieldDescription: Change in ranking for valuation metrics compared to previous period.
DataField: snt_social_value
DataFieldDescription: Z score of sentiment
DataField: snt_social_volume
DataFieldDescription: Normalized tweet volume
DataField: beta_last_30_days_spy
DataFieldDescription: Beta to SPY in 30 Days
DataField: beta_last_360_days_spy
DataFieldDescription: Beta to SPY in 360 Days
DataField: beta_last_60_days_spy
DataFieldDescription: Beta to SPY in 60 Days
DataField: beta_last_90_days_spy
DataFieldDescription: Beta to SPY in 90 Days
DataField: correlation_last_30_days_spy
DataFieldDescription: Correlation to SPY in 30 Days
DataField: correlation_last_360_days_spy
DataFieldDescription: Correlation to SPY in 360 Days
DataField: correlation_last_60_days_spy
DataFieldDescription: Correlation to SPY in 60 Days
DataField: correlation_last_90_days_spy
DataFieldDescription: Correlation to SPY in 90 Days
DataField: systematic_risk_last_30_days
DataFieldDescription: Systematic Risk Last 30 Days
DataField: systematic_risk_last_360_days
DataFieldDescription: Systematic Risk Last 360 Days
DataField: systematic_risk_last_60_days
DataFieldDescription: Systematic Risk Last 60 Days
DataField: systematic_risk_last_90_days
DataFieldDescription: Systematic Risk Last 90 Days
DataField: unsystematic_risk_last_30_days
DataFieldDescription: Unsystematic Risk Last 30 Days - Relative to SPY
DataField: unsystematic_risk_last_360_days
DataFieldDescription: Unsystematic Risk Last 360 Days - Relative to SPY
DataField: unsystematic_risk_last_60_days
DataFieldDescription: Unsystematic Risk Last 60 Days - Relative to SPY
DataField: unsystematic_risk_last_90_days
DataFieldDescription: Unsystematic Risk Last 90 Days - Relative to SPY
DataField: anl4_fsguidanceqfv4_item
DataFieldDescription: Financial item
DataField: anl4_fsguidanceqfv4_minguidance
DataFieldDescription: Min guidance value
DataField: anl4_basicdetailrec_ratingvalue
DataFieldDescription: Score on the given instrument
DataField: anl4_eaz2lltv110_prevval
DataFieldDescription: The previous estimation of financial item
DataField: anl4_flag_erbfintax
DataFieldDescription: Earnings before interest and taxes - forecast type (revision/new/...)
DataField: selling_general_admin_expense
DataFieldDescription: Selling, General & Administrative Expense Value
DataField: sales_guidance_value
DataFieldDescription: Sales - Guidance value for the annual period
DataField: min_pretax_profit_guidance
DataFieldDescription: Minimum guidance value for Pretax income
DataField: anl4_qfd1_az_div_number
DataFieldDescription: Dividend per share - number of estimations
DataField: anl4_cfi_number
DataFieldDescription: Cash Flow From Investing - number of estimations
DataField: anl4_ads1detailafv110_prevval
DataFieldDescription: The Previous Estimation of Financial Item
DataField: anl4_adxqfv110_numest
DataFieldDescription: The number of forecasts counted in aggregation
DataField: est_epsa
DataFieldDescription: Earnings per share adjusted by excluding extraordinary items and stock option expenses - average of estimations
DataField: anl4_dez1basicafv4_est
DataFieldDescription: Estimation value
DataField: previous_recommendation_value
DataFieldDescription: The previous estimation of financial item for recommendation
DataField: anl4_netprofit_high
DataFieldDescription: Net Profit - The highest estimation
DataField: anl4_ebitda_high
DataFieldDescription: Earnings before interest, taxes, depreciation, and amortization - the highest estimation
DataField: anl4_qf_az_div_median
DataFieldDescription: Dividend per share - median of estimations
DataField: anl4_qfv4_cfps_mean
DataFieldDescription: Cash Flow Per Share - average of estimations
DataField: anl4_cfo_number
DataFieldDescription: Cash Flow From Operations - number of estimations
DataField: shareholders_equity_min_guidance
DataFieldDescription: Minimum guidance value for Share Equity
DataField: anl4_qfv4_eps_number
DataFieldDescription: Earnings per share - number of estimations
DataField: max_free_cashflow_guidance
DataFieldDescription: The maximum guidance value for Free Cash Flow.
DataField: anl4_baz1v110_estvalue
DataFieldDescription: Estimation value
DataField: free_cash_flow_per_share
DataFieldDescription: Free cash flow per share - actual financial value for the annual period
DataField: net_debt_min_guidance_qtr
DataFieldDescription: Minimum guidance value for Net Debt
DataField: min_research_development_expense_guidance_2
DataFieldDescription: Minimum guidance value for Research & Development Expense on an annual basis
DataField: min_adjusted_funds_from_operations_guidance
DataFieldDescription: Funds from operation - minimum guidance value
DataField: estimate_value_currency_code_detail_qtr
DataFieldDescription: Home currency of instrument
DataField: pretax_income_reported
DataFieldDescription: Reported Pretax income - actual value for the annual fiscal period
DataField: pv13_2l_scibr
DataFieldDescription: grouping fields
DataField: pv13_new_4l_scibr
DataFieldDescription: grouping fields
DataField: rel_ret_comp
DataFieldDescription: Averaged one-day return of the competing companies
DataField: pv13_revere_parent
DataFieldDescription: Code of parent sector
DataField: pv13_hierarchy_min2_focused_pureplay_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_revere_term_sector_total
DataFieldDescription: Number of terminal sectors for the company
DataField: pv13_di_6l
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_f1_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min10_top3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min10_industry_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_f4_sector
DataFieldDescription: grouping fields
DataField: pv13_ompetitorgraphrank_hub_rank
DataFieldDescription: the HITS hub score of competitors
DataField: pv13_hierarchy_min20_f3_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min2_pureplay_only_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min2_pureplay_only_513_sector
DataFieldDescription: grouping fields
DataField: pv13_h_f3_sector
DataFieldDescription: grouping fields
DataField: rel_num_cust
DataFieldDescription: number of the instrument's customers
DataField: pv13_h_min2_focused_sector
DataFieldDescription: Grouping fields for top 200
DataField: pv13_hierarchy_sector
DataFieldDescription: grouping fields
DataField: pv13_new_3l_scibr
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min25_513_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min20_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min10_3k_all_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min2_focused_pureplay_sector
DataFieldDescription: grouping fields
DataField: rel_ret_cust
DataFieldDescription: averaged one-day-return of the instrument's customers
DataField: pv13_hierarchy_min100_corr21_sector
DataFieldDescription: grouping fields
DataField: pv13_h_min2_3000_sector
DataFieldDescription: grouping fields
DataField: rel_ret_part
DataFieldDescription: Averaged one-day return of the instrument's partners
DataField: pv13_new_1l_scibr
DataFieldDescription: grouping fields
DataField: pv13_rha2_min5_1000_513_sector
DataFieldDescription: grouping fields
DataField: implied_volatility_mean_skew_60
DataFieldDescription: At-the-money option-implied volatility mean skew for 60 days
DataField: parkinson_volatility_90
DataFieldDescription: Parkinson model's historical volatility over 90 days
DataField: implied_volatility_mean_20
DataFieldDescription: At-the-money option-implied volatility mean for 20 days
DataField: implied_volatility_put_90
DataFieldDescription: At-the-money option-implied volatility for Put Option for 90 days
DataField: implied_volatility_call_270
DataFieldDescription: At-the-money option-implied volatility for call Option for 270 days
DataField: implied_volatility_call_20
DataFieldDescription: At-the-money option-implied volatility for call Option for 20 days
DataField: implied_volatility_mean_skew_720
DataFieldDescription: At-the-money option-implied volatility mean skew for 720 days
DataField: implied_volatility_put_180
DataFieldDescription: At-the-money option-implied volatility for put option for 180 days
DataField: parkinson_volatility_60
DataFieldDescription: Parkinson model's historical volatility over 60 days
DataField: implied_volatility_call_60
DataFieldDescription: At-the-money option-implied volatility for call Option for 60 days
DataField: implied_volatility_call_150
DataFieldDescription: At-the-money option-implied volatility for call Option for 150 days
DataField: implied_volatility_mean_30
DataFieldDescription: At-the-money option-implied volatility mean for 30 days
DataField: historical_volatility_30
DataFieldDescription: Close-to-close Historical volatility over 30 days
DataField: implied_volatility_call_720
DataFieldDescription: At-the-money option-implied volatility for call Option for 720 days
DataField: implied_volatility_mean_skew_10
DataFieldDescription: At-the-money option-implied volatility mean skew for 10 days
DataField: implied_volatility_mean_1080
DataFieldDescription: At-the-money option-implied volatility mean for 3 years
DataField: implied_volatility_mean_270
DataFieldDescription: At-the-money option-implied volatility mean for 270 days
DataField: implied_volatility_mean_skew_30
DataFieldDescription: At-the-money option-implied volatility mean skew for 30 days
DataField: historical_volatility_90
DataFieldDescription: Close-to-close Historical volatility over 90 days
DataField: historical_volatility_60
DataFieldDescription: Close-to-close Historical volatility over 60 days
DataField: implied_volatility_mean_skew_120
DataFieldDescription: At-the-money option-implied volatility mean skew for 120 days
DataField: implied_volatility_put_720
DataFieldDescription: At-the-money option-implied volatility for Put Option for 720 days
DataField: implied_volatility_put_60
DataFieldDescription: At-the-money option-implied volatility for Put Option for 60 days
DataField: implied_volatility_put_20
DataFieldDescription: At-the-money option-implied volatility for Put Option for 20 days
DataField: implied_volatility_mean_skew_20
DataFieldDescription: At-the-money option-implied volatility mean skew for 20 days
DataField: parkinson_volatility_150
DataFieldDescription: Parkinson model's historical volatility over 150 days
DataField: historical_volatility_150
DataFieldDescription: Close-to-close Historical volatility over 150 days
DataField: parkinson_volatility_120
DataFieldDescription: Parkinson model's historical volatility over 120 days
DataField: implied_volatility_call_120
DataFieldDescription: At-the-money option-implied volatility for call Option for 120 days
DataField: implied_volatility_put_1080
DataFieldDescription: At-the-money option-implied volatility for Put Option for 3 years
DataField: nws12_mainz_57p
DataFieldDescription: The minimum of L or S above for 7.5-minute bucket
DataField: nws12_prez_prevwap
DataFieldDescription: Pre-session volume weighted average price
DataField: nws12_mainz_02s
DataFieldDescription: Number of minutes that elapsed before price went down 20 percentage points
DataField: nws12_afterhsz_1l
DataFieldDescription: Number of minutes that elapsed before price went up 1 percentage points
DataField: nws12_afterhsz_sl
DataFieldDescription: Whether a long or short position would have been more advantageous: If (EODHigh - Last) > (Last - EODLow) Then LS = 1; If (EODHigh - Last) = (Last - EODLow) Then LS = 0; If (EODHigh - Last) < (Last - EODLow) Then LS = -1.
DataField: nws12_allz_result2
DataFieldDescription: Percent change between the price at the time of the news release and the price at the close of the session
DataField: nws12_mainz_02p
DataFieldDescription: The minimum of L or S above for 20-minute bucket
DataField: nws12_mainz_maxupamt
DataFieldDescription: The after-the-news high minus the price at the time of the news
DataField: nws12_afterhsz_57l
DataFieldDescription: Number of minutes that elapsed before price went up 7.5 percentage points
DataField: news_eod_low
DataFieldDescription: Lowest price reached between the time of news and the end of the session
DataField: nws12_afterhsz_volstddev
DataFieldDescription: (CurrentVolume - AvgVol)/VolStDev, where AvgVol is the average of the daily volume, and VolStdDev is one standard deviation for the daily volume, both for 30 calendar days
DataField: news_mins_20_pct_up
DataFieldDescription: Number of minutes that elapsed before price went up 20 percentage points
DataField: news_mins_4_chg
DataFieldDescription: The minimum of L or S above for 4-minute bucket
DataField: nws12_prez_mktcap
DataFieldDescription: Reported market capitalization for the calendar day of the session
DataField: nws12_mainz_3l
DataFieldDescription: Number of minutes that elapsed before price went up 3 percentage points
DataField: nws12_mainz_result1
DataFieldDescription: Percent change between the price at the time of the news release and the price at the close of the session
DataField: nws12_afterhsz_rangestddev
DataFieldDescription: (RangeAmt - AvgRange) / RangeStdDev, where AvgRange is the average of the daily range, and RangeStdDev is one standard deviation for the daily range, both for 30 calendar days
DataField: nws12_mainz_allvwap
DataFieldDescription: Volume weighted average price of all sessions
DataField: nws12_prez_4p
DataFieldDescription: The minimum of L or S above for 4-minute bucket
DataField: nws12_mainz_01l
DataFieldDescription: Number of minutes that elapsed before price went up 10 percentage points
DataField: nws12_prez_curr_vol
DataFieldDescription: Current day's session volume
DataField: news_curr_vol
DataFieldDescription: Current day's session volume
DataField: nws12_mainz_5p
DataFieldDescription: The minimum of L or S above for 5-minute bucket
DataField: nws12_prez_maxdown
DataFieldDescription: Percent change from the price at the time of the news to the after the news low
DataField: news_mins_5_pct_up
DataFieldDescription: Number of minutes that elapsed before price went up 5 percentage points
DataField: nws12_afterhsz_01s
DataFieldDescription: Number of minutes that elapsed before price went down 10 percentage points
DataField: nws12_prez_result_vs_index
DataFieldDescription: ((EODClose - TONLast) / TONLast) - ((SPYClose - SPYLast) / SPYLast)
DataField: nws12_afterhsz_1p
DataFieldDescription: The minimum of L or S above for 1-minute bucket
DataField: nws12_prez_open_vol
DataFieldDescription: Main open volume
DataField: news_ton_last
DataFieldDescription: Price at the time of news
DataField: top1000
DataFieldDescription: 20140630
DataField: top200
DataFieldDescription: 20140630
DataField: top3000
DataFieldDescription: 20140630
DataField: top500
DataFieldDescription: 20140630
DataField: topsp500
DataFieldDescription: 20140630
DataField: rp_ess_product
DataFieldDescription: Event sentiment score of product and service-related news
DataField: nws18_ber
DataFieldDescription: News sentiment specializing in earnings result
DataField: rp_ess_assets
DataFieldDescription: Event sentiment score of assets news
DataField: rp_ess_insider
DataFieldDescription: Event sentiment score of insider trading news
DataField: rp_nip_equity
DataFieldDescription: News impact projection of equity action news
DataField: rp_ess_equity
DataFieldDescription: Event sentiment score of equity action news
DataField: rp_css_ratings
DataFieldDescription: Composite sentiment score of analyst ratings-related news
DataField: rp_ess_labor
DataFieldDescription: Event sentiment score of labor issues news
DataField: nws18_bee
DataFieldDescription: News sentiment specializing in growth of earnings
DataField: rp_nip_society
DataFieldDescription: News impact projection of society-related news
DataField: nws18_nip
DataFieldDescription: Degree of impact of the news
DataField: rp_nip_assets
DataFieldDescription: News impact projection of assets news
DataField: rp_ess_business
DataFieldDescription: Event sentiment score of business-related news
DataField: rp_css_marketing
DataFieldDescription: Composite sentiment score of marketing news
DataField: rp_ess_ratings
DataFieldDescription: Event sentiment score of analyst ratings-related news
DataField: rp_css_labor
DataFieldDescription: Composite sentiment score of labor issues news
DataField: nws18_qcm
DataFieldDescription: News sentiment of relevant news with high confidence
DataField: rp_ess_credit_ratings
DataFieldDescription: Event sentiment score of credit ratings news
DataField: rp_css_partner
DataFieldDescription: Composite sentiment score of partnership news
DataField: nws18_ghc_lna
DataFieldDescription: Change in analyst recommendation
DataField: rp_css_ptg
DataFieldDescription: Composite sentiment score of price target news
DataField: rp_ess_society
DataFieldDescription: Event sentiment score of society-related news
DataField: nws18_sse
DataFieldDescription: Sentiment of phrases impacting the company
DataField: rp_nip_credit
DataFieldDescription: News impact projection of credit news
DataField: rp_nip_technical
DataFieldDescription: News impact projection based on technical analysis
DataField: rp_css_equity
DataFieldDescription: Composite sentiment score of equity action news
DataField: rp_css_credit_ratings
DataFieldDescription: Composite sentiment score of credit ratings news
DataField: rp_ess_ptg
DataFieldDescription: Event sentiment score of price target news
DataField: rp_nip_mna
DataFieldDescription: News impact projection of mergers and acquisitions-related news
DataField: rp_css_inverstor
DataFieldDescription: Composite sentiment score of investor relations news
DataField: fnd2_dbplanartonplas
DataFieldDescription: Defined Benefit Plan, Benefits Paid, Plan Assets
DataField: fn_repayments_of_debt_q
DataFieldDescription: The cash outflow during the period from the repayment of aggregate short-term and long-term debt. Excludes payment of capital lease obligations.
DataField: fn_op_lease_rent_exp_a
DataFieldDescription: Rental expense for the reporting period incurred under operating leases, including minimum and any contingent rent expense, net of related sublease income.
DataField: fnd2_q_seniornotes
DataFieldDescription: Including the current and noncurrent portions, carrying value as of the balance sheet date of Notes with the highest claim on the assets of the issuer in case of bankruptcy or liquidation (with maturities initially due after 1 year or beyond the operating cycle if longer). Senior note holders are paid off in full before any payments are made to junior note holders.
DataField: fnd2_itxreexftfedstyitxrt
DataFieldDescription: Income tax amount computed at the federal tax rate, before any adjustments
DataField: fn_op_lease_min_pay_due_in_5y_a
DataFieldDescription: Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of 1 year due in the 5th fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fn_line_of_credit_facility_amount_out_a
DataFieldDescription: Amount borrowed under the credit facility as of the balance sheet date.
DataField: fnd2_a_inventoryrawmaterials
DataFieldDescription: Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within 1 year or operating cycle, if longer.
DataField: fn_proceeds_from_lt_debt_q
DataFieldDescription: Proceeds From Issuance Of Debt, Long Term
DataField: fnd2_dbplanbnfpaid_ast
DataFieldDescription: The amount of payments made for which participants are entitled under a pension plan, including pension benefits, death benefits, and benefits due on termination of employment. Also includes payments made under a postretirement benefit plan, including prescription drug benefits, health care benefits, life insurance benefits, and legal, educational and advisory services. This item represents a periodic decrease to the plan obligations and a decrease to plan assets.
DataField: fn_comp_options_out_number_a
DataFieldDescription: Number of options outstanding, including both vested and non-vested options.
DataField: fnd2_a_allfdbflaccrwriteoffs
DataFieldDescription: Amount of recoveries of receivables doubtful of collection that were previously charged off.
DataField: fn_income_from_equity_investments_a
DataFieldDescription: Income From Equity Method Investments
DataField: fn_accum_oth_income_loss_fx_adj_net_of_tax_q
DataFieldDescription: 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.
DataField: fn_business_combination_purchase_price_a
DataFieldDescription: Business Combination, Purchase Price
DataField: fnd2_currfedtxexp
DataFieldDescription: Income Tax Expense, Current - Federal
DataField: fn_assets_fair_val_a
DataFieldDescription: Asset Fair Value, Recurring, Total
DataField: fnd2_dfdfritxexp
DataFieldDescription: Income Tax Expense, Deferred - Foreign
DataField: fn_income_taxes_paid_q
DataFieldDescription: The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income.
DataField: fn_employee_related_liab_q
DataFieldDescription: Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. For classified balance sheets, used to reflect the current portion of the liabilities (due within 1 year or within the normal operating cycle if longer); for unclassified balance sheets, used to reflect the total liabilities (regardless of due date).
DataField: fnd2_a_sbcpnatqsttotnsvdptfv
DataFieldDescription: Fair value of share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash.
DataField: fn_accum_oth_income_loss_net_of_tax_q
DataFieldDescription: Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.
DataField: fn_debt_instrument_interest_rate_stated_percentage_a
DataFieldDescription: Stated percentage of interest rate on debt
DataField: fnd2_a_consinprogressg
DataFieldDescription: Amount of structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service.
DataField: fnd2_a_flintasamt1expytwo
DataFieldDescription: Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the 2nd fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date
DataField: fn_eff_income_tax_rate_continuing_operations_q
DataFieldDescription: Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.
DataField: fnd2_q_lineofcrfcyrmbrgcap
DataFieldDescription: Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding).
DataField: fn_oth_comp_forfeitures_fair_value_a
DataFieldDescription: Annual Share Based Compensation Equity Instruments Other Than Options Forfeitures Weighted Average Grant Date Fair Value
DataField: fn_comp_options_exercises_weighted_avg_a
DataFieldDescription: Share-Based Compensation, Options Assumed, Weighted Average Exercise Price
DataField: fnd2_a_lhdiprtsg
DataFieldDescription: Amount before accumulated depreciation of additions or improvements to assets held under a lease arrangement.
DataField: adv20
DataFieldDescription: Average daily volume in past 20 days
DataField: cap
DataFieldDescription: Daily market capitalization (in millions)
DataField: close
DataFieldDescription: Daily close price
DataField: country
DataFieldDescription: Country grouping
DataField: currency
DataFieldDescription: Currency
DataField: cusip
DataFieldDescription: CUSIP Value
DataField: dividend
DataFieldDescription: Dividend
DataField: exchange
DataFieldDescription: Exchange grouping
DataField: high
DataFieldDescription: Daily high price
DataField: industry
DataFieldDescription: Industry grouping
DataField: isin
DataFieldDescription: ISIN Value
DataField: low
DataFieldDescription: Daily low price
DataField: market
DataFieldDescription: Market grouping
DataField: open
DataFieldDescription: Daily open price
DataField: returns
DataFieldDescription: Daily returns
DataField: sector
DataFieldDescription: Sector grouping
DataField: sedol
DataFieldDescription: Sedol
DataField: sharesout
DataFieldDescription: Daily outstanding shares (in millions)
DataField: split
DataFieldDescription: Stock split ratio
DataField: subindustry
DataFieldDescription: Subindustry grouping
DataField: ticker
DataFieldDescription: Ticker
DataField: volume
DataFieldDescription: Daily volume
DataField: vwap
DataFieldDescription: Daily volume weighted average price
========================= 数据字段结束 =======================================

@ -0,0 +1,898 @@
任务指令
你是一个WorldQuant WebSim因子工程师。你的任务是生成 100 个用于行业轮动策略的复合型Alpha因子表达式。
核心规则
设计维度框架
维度1:时间序列动量(TM)
目标:识别价格趋势的强度、速度和持续性
可用的具体构建方法:
1. 简单动量:ts_delta(close, d) [d=5,10,20,30,60]
2. 趋势斜率:ts_regression(close, ts_step(1), d, 0, 1) [rettype=1获取斜率]
3. 动量加速度:ts_delta(ts_delta(close, d1), d2) [避免嵌套ts_regression]
4. 平滑动量:ts_mean(returns, d) [returns=ts_delta(close,1)]
5. 动量衰减:ts_decay_linear(returns, d)
6. 价量关系:ts_corr(ts_delta(close,5), ts_delta(volume,5), d)
建议组合:使用不同d参数创建短期/中期/长期动量
维度2:横截面领导力(CL)
目标:识别行业内的龙头股和相对强度
具体构建方法:
1. 龙头股筛选:if_else(rank(volume) > 0.7, 龙头值, 其他值) [使用volume代替market_cap]
2. 龙头组合:group_mean(x, 1, bucket(rank(volume), range="0,3,0.4")) [使用volume排序]
3. 行业内离散度:ts_std_dev(group_rank(returns, industry), 20)
4. 相对排名稳定性:ts_mean(rank(returns), d)
维度3:市场状态适应性(MS)
目标:根据波动率、趋势状态调整参数
具体构建方法:
1. 波动率调整:ts_delta(close,5) / ts_std_dev(returns,20)
2. 状态条件选择:if_else(ts_rank(volatility,30) > 0.7, 短期动量, 长期动量)
3. 参数动态化:if_else(ts_std_dev(returns,20) > 阈值, 5, 20) [作为d参数]
4. 趋势状态识别:ts_rank(ts_mean(returns,20), 60) > 0.5
基本结构:
复合因子 = 维度A组件 [运算符] 维度B组件 [条件调整]
=== 关键语法规则(必须遵守) ===
1. 数据字段规范:
- 可使用字段:close, volume, returns
- ❌ 错误:market_cap, marketcap, mkt_cap [这些字段不存在]
- ✅ 正确:使用volume作为规模代理,close作为价格
- returns通常定义为:ts_delta(close, 1) 或 close/ts_delay(close,1)-1
2. ts_regression使用规范:
- 避免深度嵌套ts_regression,特别是作为其他函数的参数
- ✅ 正确:reg_slope = ts_regression(close, ts_step(1), 30, 0, 1)
- ❌ 错误:ts_delta(ts_regression(close, ts_step(1), 30, 0, 1), 5)
- 替代方案:用ts_delta组合计算动量变化
3. if_else使用规范:
- 条件必须是简单布尔表达式
- 避免序列比较:❌ ts_std_dev(returns,60) > ts_mean(ts_std_dev(returns,60),120)
- 正确使用:✅ if_else(ts_rank(ts_std_dev(returns,60), 120) > 0.7, 短期动量, 长期动量)
4. bucket函数使用规范:
- bucket()返回分组ID,可用于条件判断
- ✅ 正确:bucket(rank(volume), range="0,3,0.4") == 0 [第一组为大成交量]
- ✅ 正确:group_mean(x, 1, bucket(rank(volume), range="0,3,0.4"))
- 注意字符串格式:range="起始值,组数,步长" 或 buckets="分割点列表"
=== 关键语法规则结束 ===
*=====*
注意事项:
1. 避免过度复杂的嵌套(建议不超过3层)
2. 每个表达式应有明确的经济逻辑
3. 考虑实际交易可行性(避免未来函数)
4. 包含风险控制元素(如波动率调整)
5. 只能使用可用的数据字段:close, volume, returns等
*=====*
参数逻辑:参数d(回顾期)应在[5, 10, 20, 30, 60, 120]等具有市场意义(周、月、季度、半年)的数值中合理选择并差异化。
行业隐含:通过group_mean、group_rank等函数或假设表达式在行业指数上运行来体现"行业"逻辑。
构建框架指导(请按此逻辑创造新因子):
维度融合模板(选择至少2个):
A. 领导力动量 = 时序动量 × 横截面调整
逻辑:大成交量股票的动量更强
结构:group_mean(ts_delta(close, d1), 1, bucket(rank(volume), range="0,3,0.4"))
B. 状态自适应动量 = 条件选择动量
逻辑:高波动用短期动量,低波动用长期动量
结构:if_else(ts_std_dev(returns,20) > 0.02, ts_delta(close,5), ts_delta(close,20))
C. 行业传导因子 = 领先行业动量 × 相关性强度
逻辑:与强势行业相关性高的行业未来表现好
结构:multiply(ts_corr(group_mean(returns,1,industry), group_mean(returns,1,sector), d1), ts_delta(close,d2))
D. 情绪反转 = 过度交易信号 × 基础趋势
逻辑:过度交易时反转,趋势延续时跟随
结构:multiply(reverse(ts_rank(volume/ts_mean(volume,20), 10)), ts_delta(close,20))
关键组件库(可自由组合):
1. 动量类:ts_delta(close,{d}), ts_regression(close,ts_step(1),{d},0,1)
2. 波动类:ts_std_dev(returns,{d}), ts_mean(abs(returns),{d})
3. 成交量类:volume/ts_mean(volume,{d}), ts_zscore(volume,{d})
4. 横截面类:if_else(rank(volume) > 阈值, 值1, 值2), bucket(rank(volume), range="0,3,0.4")
5. 相关性类:ts_corr({x},{y},{d})
6. 条件逻辑:if_else({condition}, {true_value}, {false_value})
参数池:d ∈ [5,10,20,30,60,120], 阈值 ∈ [0.5,0.7,0.8]
*=====*
输出格式:
输出必须是且仅是纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
===================== !!! 重点(输出方式) !!! =====================
现在,请严格遵守以上所有规则,开始生成可立即在WebSim中运行的复合因子表达式。
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
=================================================================
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子:
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
========================= 操作符开始 =======================================注意: 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.
========================= 操作符结束 =======================================
========================= 数据字段开始 =======================================注意: DataField: 后面的是数据字段, DataFieldDescription: 此字段后面的是数据字段对应的描述或使用说明, DataFieldDescription字段后面的内容是使用说明, 不是数据字段
DataField: forward_price_10
DataFieldDescription: Forward price at 10 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: option_breakeven_360
DataFieldDescription: Price at which a stock's options with expiration 360 days in the future break even based on its recent bid/ask mean.
DataField: call_breakeven_150
DataFieldDescription: Price at which a stock's call options with expiration 150 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_30
DataFieldDescription: Price at which a stock's put options with expiration 30 days in the future break even based on its recent bid/ask mean.
DataField: option_breakeven_150
DataFieldDescription: Price at which a stock's options with expiration 150 days in the future break even based on its recent bid/ask mean.
DataField: pcr_oi_60
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 60 days in the future.
DataField: pcr_vol_30
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 30 days in the future.
DataField: pcr_oi_150
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 150 days in the future.
DataField: pcr_oi_720
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 720 days in the future.
DataField: pcr_vol_150
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 150 days in the future.
DataField: pcr_vol_10
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 10 days in the future.
DataField: option_breakeven_120
DataFieldDescription: Price at which a stock's options with expiration 120 days in the future break even based on its recent bid/ask mean.
DataField: option_breakeven_90
DataFieldDescription: Price at which a stock's options with expiration 90 days in the future break even based on its recent bid/ask mean.
DataField: option_breakeven_10
DataFieldDescription: Price at which a stock's options with expiration 10 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_90
DataFieldDescription: Price at which a stock's put options with expiration 90 days in the future break even based on its recent bid/ask mean.
DataField: pcr_oi_1080
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 1080 days in the future.
DataField: put_breakeven_1080
DataFieldDescription: Price at which a stock's put options with expiration 1080 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_720
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 720 days in the future.
DataField: call_breakeven_360
DataFieldDescription: Price at which a stock's call options with expiration 360 days in the future break even based on its recent bid/ask mean.
DataField: put_breakeven_20
DataFieldDescription: Price at which a stock's put options with expiration 20 days in the future break even based on its recent bid/ask mean.
DataField: forward_price_150
DataFieldDescription: Forward price at 150 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: pcr_vol_180
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 180 days in the future.
DataField: forward_price_1080
DataFieldDescription: Forward price at 1080 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: pcr_oi_360
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 360 days in the future.
DataField: call_breakeven_1080
DataFieldDescription: Price at which a stock's call options with expiration 1080 days in the future break even based on its recent bid/ask mean.
DataField: pcr_vol_120
DataFieldDescription: Ratio of put volume to call volume on a stock's options with expiration 120 days in the future.
DataField: forward_price_720
DataFieldDescription: Forward price at 720 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: pcr_oi_10
DataFieldDescription: Ratio of put open interest to call open interest on a stock's options with expiration 10 days in the future.
DataField: forward_price_20
DataFieldDescription: Forward price at 20 days derived from a synthetic long option with payoff similar to long stock + option dynamics. Combination of long ATM call and short ATM put.
DataField: pcr_vol_all
DataFieldDescription: Ratio of put volume to call volume for all maturities on stock's options.
DataField: fnd6_rea
DataFieldDescription: Retained Earnings - Restatement
DataField: fnd6_newa2v1300_ppegt
DataFieldDescription: Property, Plant and Equipment - Total (Gross)
DataField: fnd6_newqv1300_mibtq
DataFieldDescription: Noncontrolling Interests - Total - Balance Sheet - Quarterly
DataField: ebit
DataFieldDescription: Earnings Before Interest and Taxes
DataField: fnd6_newqeventv110_ppegtq
DataFieldDescription: Property, Plant and Equipment - Total (Gross) - Quarterly
DataField: fnd6_newqeventv110_gdwlipq
DataFieldDescription: Impairment of Goodwill Pretax
DataField: fnd6_newqeventv110_spceepsq
DataFieldDescription: S&P Core Earnings EPS Basic
DataField: fnd6_newqeventv110_glcedq
DataFieldDescription: Gain/Loss on Sale (Core Earnings Adjusted) Diluted EPS
DataField: fnd6_newqeventv110_spceeps12
DataFieldDescription: S&P Core Earnings EPS Basic 12MM
DataField: fnd6_txdfed
DataFieldDescription: Deferred Taxes - Federal
DataField: fnd6_fatb
DataFieldDescription: Plant, Property and Equipment at Cost - Buildings
DataField: fnd6_newa1v1300_dp
DataFieldDescription: Depreciation and Amortization
DataField: fnd6_newa2v1300_prsho
DataFieldDescription: Redeem Pfd Shares Outs (000)
DataField: fnd6_newqv1300_aol2q
DataFieldDescription: Assets Level 2 (Observable)
DataField: fnd6_mfma1_dpc
DataFieldDescription: Depreciation and Amortization (Cash Flow)
DataField: fnd6_ptis
DataFieldDescription: Pretax Income
DataField: fnd6_cptnewqv1300_ceqq
DataFieldDescription: Common/Ordinary Equity - Total
DataField: fnd6_newqv1300_cogsq
DataFieldDescription: Cost of Goods Sold
DataField: fnd6_newa1v1300_dltt
DataFieldDescription: Long-Term Debt - Total
DataField: fnd6_newqv1300_invrmq
DataFieldDescription: Inventory - Raw Materials
DataField: fnd6_newqeventv110_pncq
DataFieldDescription: Core Pension Adjustment
DataField: fnd6_txtubtxtr
DataFieldDescription: Impact on Effective Tax Rate
DataField: fnd6_newa1v1300_dcom
DataFieldDescription: Deferred Compensation
DataField: fnd6_newa1v1300_ebit
DataFieldDescription: Earnings Before Interest and Taxes
DataField: fnd6_dd5
DataFieldDescription: Debt Due in 5th Year
DataField: fnd6_newqv1300_cshfdq
DataFieldDescription: Common Shares for Diluted EPS
DataField: fnd6_newa1v1300_dv
DataFieldDescription: Cash Dividends (Cash Flow)
DataField: cash
DataFieldDescription: Cash
DataField: fnd6_newqeventv110_seteps12
DataFieldDescription: Settlement (Litigation/Insurance) Basic EPS Effect 12MM
DataField: fnd6_mfma2_opeps
DataFieldDescription: Earnings Per Share from Operations
DataField: scl12_alltype_buzzvec
DataFieldDescription: sentiment volume
DataField: scl12_alltype_sentvec
DataFieldDescription: sentiment
DataField: scl12_alltype_typevec
DataFieldDescription: instrument type index
DataField: scl12_buzz
DataFieldDescription: relative sentiment volume
DataField: scl12_buzz_fast_d1
DataFieldDescription: relative sentiment volume
DataField: scl12_buzzvec
DataFieldDescription: sentiment volume
DataField: scl12_sentiment
DataFieldDescription: sentiment
DataField: scl12_sentiment_fast_d1
DataFieldDescription: sentiment
DataField: scl12_sentvec
DataFieldDescription: sentiment
DataField: scl12_typevec
DataFieldDescription: instrument type index
DataField: snt_buzz
DataFieldDescription: negative relative sentiment volume, fill nan with 0
DataField: snt_buzz_bfl
DataFieldDescription: negative relative sentiment volume, fill nan with 1
DataField: snt_buzz_bfl_fast_d1
DataFieldDescription: negative relative sentiment volume, fill nan with 1
DataField: snt_buzz_fast_d1
DataFieldDescription: negative relative sentiment volume, fill nan with 0
DataField: snt_buzz_ret
DataFieldDescription: negative return of relative sentiment volume
DataField: snt_buzz_ret_fast_d1
DataFieldDescription: negative return of relative sentiment volume
DataField: snt_value
DataFieldDescription: negative sentiment, fill nan with 0
DataField: snt_value_fast_d1
DataFieldDescription: negative sentiment, fill nan with 0
DataField: analyst_revision_rank_derivative
DataFieldDescription: Change in ranking for analyst revisions and momentum compared to previous period.
DataField: cashflow_efficiency_rank_derivative
DataFieldDescription: Change in ranking for cash flow generation and profitability compared to previous period.
DataField: composite_factor_score_derivative
DataFieldDescription: Change in overall composite factor score from the prior period.
DataField: earnings_certainty_rank_derivative
DataFieldDescription: Change in ranking for earnings sustainability and certainty compared to previous period.
DataField: fscore_bfl_growth
DataFieldDescription: The purpose of this metric is to qualify the expected MT growth potential of the stock.
DataField: fscore_bfl_momentum
DataFieldDescription: The purpose of this metric is to identify stocks which are currently undergoing either up or downward analyst revisions.
DataField: fscore_bfl_profitability
DataFieldDescription: The purpose of this metric is to rank stock based on their ability to generate cash flows.
DataField: fscore_bfl_quality
DataFieldDescription: The purpose of this metric is to measure both the sustainability and certainty of earnings.
DataField: fscore_bfl_surface
DataFieldDescription: The static score. An index between 0 & 100 is applied for each stock and each composite factor - The first ranking is a pentagon surface-based score. The larger the surface, the higher the rank.
DataField: fscore_bfl_surface_accel
DataFieldDescription: The derivative score. In a second step, we calculate the derivative of this score (ie: Is the surface of the pentagon increasing or decreasing from the previous month?).
DataField: fscore_bfl_total
DataFieldDescription: The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.
DataField: fscore_bfl_value
DataFieldDescription: The purpose of this metric is to see if the stock is under or overpriced given several well known valuation standards.
DataField: fscore_growth
DataFieldDescription: The purpose of this metric is to qualify the expected MT growth potential of the stock.
DataField: fscore_momentum
DataFieldDescription: The purpose of this metric is to identify stocks which are currently undergoing either up or downward analyst revisions.
DataField: fscore_profitability
DataFieldDescription: The purpose of this metric is to rank stock based on their ability to generate cash flows.
DataField: fscore_quality
DataFieldDescription: The purpose of this metric is to measure both the sustainability and certainty of earnings.
DataField: fscore_surface
DataFieldDescription: The static score. An index between 0 & 100 is applied for each stock and each composite factor - The first ranking is a pentagon surface-based score. The larger the surface, the higher the rank.
DataField: fscore_surface_accel
DataFieldDescription: The derivative score. In a second step, we calculate the derivative of this score (ie: Is the surface of the pentagon increasing or decreasing from the previous month?).
DataField: fscore_total
DataFieldDescription: The final score M-Score is a weighted average of both the Pentagon surface score and the Pentagon acceleration score.
DataField: fscore_value
DataFieldDescription: The purpose of this metric is to see if the stock is under or overpriced given several well known valuation standards.
DataField: growth_potential_rank_derivative
DataFieldDescription: Change in ranking for medium-term growth potential compared to previous period.
DataField: multi_factor_acceleration_score_derivative
DataFieldDescription: Change in the acceleration of multi-factor score compared to previous period.
DataField: multi_factor_static_score_derivative
DataFieldDescription: Change in static multi-factor score compared to previous period.
DataField: relative_valuation_rank_derivative
DataFieldDescription: Change in ranking for valuation metrics compared to previous period.
DataField: snt_social_value
DataFieldDescription: Z score of sentiment
DataField: snt_social_volume
DataFieldDescription: Normalized tweet volume
DataField: beta_last_30_days_spy
DataFieldDescription: Beta to SPY in 30 Days
DataField: beta_last_360_days_spy
DataFieldDescription: Beta to SPY in 360 Days
DataField: beta_last_60_days_spy
DataFieldDescription: Beta to SPY in 60 Days
DataField: beta_last_90_days_spy
DataFieldDescription: Beta to SPY in 90 Days
DataField: correlation_last_30_days_spy
DataFieldDescription: Correlation to SPY in 30 Days
DataField: correlation_last_360_days_spy
DataFieldDescription: Correlation to SPY in 360 Days
DataField: correlation_last_60_days_spy
DataFieldDescription: Correlation to SPY in 60 Days
DataField: correlation_last_90_days_spy
DataFieldDescription: Correlation to SPY in 90 Days
DataField: systematic_risk_last_30_days
DataFieldDescription: Systematic Risk Last 30 Days
DataField: systematic_risk_last_360_days
DataFieldDescription: Systematic Risk Last 360 Days
DataField: systematic_risk_last_60_days
DataFieldDescription: Systematic Risk Last 60 Days
DataField: systematic_risk_last_90_days
DataFieldDescription: Systematic Risk Last 90 Days
DataField: unsystematic_risk_last_30_days
DataFieldDescription: Unsystematic Risk Last 30 Days - Relative to SPY
DataField: unsystematic_risk_last_360_days
DataFieldDescription: Unsystematic Risk Last 360 Days - Relative to SPY
DataField: unsystematic_risk_last_60_days
DataFieldDescription: Unsystematic Risk Last 60 Days - Relative to SPY
DataField: unsystematic_risk_last_90_days
DataFieldDescription: Unsystematic Risk Last 90 Days - Relative to SPY
DataField: eps_adjusted_min_guidance_value
DataFieldDescription: The minimum guidance value for adjusted earnings per share excluding extraordinary items and stock option expenses on an annual basis.
DataField: anl4_fsguidanceafv4_minguidance
DataFieldDescription: Min guidance value
DataField: anl4_afv4_eps_high
DataFieldDescription: Earnings per share - The highest estimation
DataField: anl4_basicdetailqfv110_prevval
DataFieldDescription: The previous estimation of financial item
DataField: anl4_basicconltv110_high
DataFieldDescription: The highest estimation
DataField: dividend_previous_estimate_value
DataFieldDescription: The previous estimation of dividend
DataField: anl4_bac1conafv110_item
DataFieldDescription: Financial item
DataField: anl4_fsguidanceafv4_maxguidance
DataFieldDescription: Maximum guidance value
DataField: anl4_eaz2lafv110_prevval
DataFieldDescription: The previous estimation of financial item
DataField: anl4_fsdetailltv4v104_item
DataFieldDescription: Financial item
DataField: selling_general_admin_expense_reported_value
DataFieldDescription: Selling, General & Administrative Expense value
DataField: max_free_cashflow_guidance
DataFieldDescription: The maximum guidance value for Free Cash Flow.
DataField: anl4_cfo_value
DataFieldDescription: Cash Flow From Operations - announced financial value
DataField: anl4_fsdtlestmtbscv104_item
DataFieldDescription: Financial item
DataField: min_total_goodwill_guidance
DataFieldDescription: Total Goodwill - The lowest guidance value
DataField: anl4_qfd1_az_wol_spfc
DataFieldDescription: Cash Flow Per Share - The lowest estimation
DataField: eps_reported_min_guidance_qtr
DataFieldDescription: Reported Earnings Per Share - Minimum guidance value
DataField: anl4_gric_value
DataFieldDescription: Gross income- announced financial value
DataField: anl4_detailltv4_est
DataFieldDescription: Long term estimation value
DataField: max_pretax_profit_guidance
DataFieldDescription: The maximum guidance value for Pretax income on an annual basis.
DataField: anl4_fsguidancebasicqfv4_item
DataFieldDescription: Financial item
DataField: anl4_afv4_div_std
DataFieldDescription: Dividend per share - standard deviation of estimations
DataField: cashflow_per_share_median_value
DataFieldDescription: Cash Flow Per Share - Median value among forecasts
DataField: anl4_dei3lafv110_item
DataFieldDescription: Financial item
DataField: anl4_ady_high
DataFieldDescription: The highest estimation
DataField: anl4_epsa_flag
DataFieldDescription: Earnings per share adjusted by excluding extraordinary items and stock option expenses - forecast type (revision/new/...)
DataField: max_share_buyback_guidance
DataFieldDescription: Maximum guidance value for Shares Basic - Annual
DataField: anl4_netdebt_flag
DataFieldDescription: Net debt - forecast type (revision/new/...)
DataField: anl4_qfd1_az_cfps_median
DataFieldDescription: Cash Flow Per Share - Median value among forecasts
DataField: anl4_qfv4_minguidance
DataFieldDescription: Min guidance value
DataField: rel_ret_comp
DataFieldDescription: Averaged one-day return of the competing companies
DataField: pv13_hierarchy_min2_focused_pureplay_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min40_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min54_3000_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min2_focused_pureplay_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchys32_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min51_f1_513_sector
DataFieldDescription: grouping fields
DataField: pv13_3l_scibr
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min52_2k_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min10_top3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min52_sector
DataFieldDescription: grouping fields
DataField: pv13_2l_scibr
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min25_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min5_1000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_revere_company_total
DataFieldDescription: Total number of companies in the sector
DataField: pv13_rha2_min2_513_sector
DataFieldDescription: grouping fields
DataField: pv13_revere_term_sector_total
DataFieldDescription: Number of terminal sectors for the company
DataField: pv13_hierarchy23_513_sector
DataFieldDescription: grouping fields
DataField: pv13_custretsig_retsig
DataFieldDescription: Sign of customer return
DataField: pv13_hierarchy_min20_sector
DataFieldDescription: grouping fields
DataField: pv13_revere_term
DataFieldDescription: Indicates when a sector is the terminal sector (i.e., no sub-sectors)
DataField: pv13_hierarchy_min100_corr21_sector
DataFieldDescription: grouping fields
DataField: rel_ret_all
DataFieldDescription: Averaged one-day return of the companies whose product overlapped with the instrument
DataField: pv13_h_min2_focused_pureplay_3000_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_f4_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min2_focused_pureplay_513_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min30_3000_513_sector
DataFieldDescription: grouping fields
DataField: pv13_rha2_min5_513_sector
DataFieldDescription: grouping fields
DataField: pv13_h_min2_3000_sector
DataFieldDescription: grouping fields
DataField: pv13_hierarchy_min51_f4_513_sector
DataFieldDescription: grouping fields
DataField: implied_volatility_mean_skew_720
DataFieldDescription: At-the-money option-implied volatility mean skew for 720 days
DataField: implied_volatility_mean_skew_20
DataFieldDescription: At-the-money option-implied volatility mean skew for 20 days
DataField: implied_volatility_mean_720
DataFieldDescription: At-the-money option-implied volatility mean for 720 days
DataField: implied_volatility_call_1080
DataFieldDescription: At-the-money option-implied volatility for call option for 1080 days
DataField: implied_volatility_call_30
DataFieldDescription: At-the-money option-implied volatility for call Option for 30 days
DataField: implied_volatility_call_10
DataFieldDescription: At-the-money option-implied volatility for call Option for 10 days
DataField: implied_volatility_call_720
DataFieldDescription: At-the-money option-implied volatility for call Option for 720 days
DataField: parkinson_volatility_120
DataFieldDescription: Parkinson model's historical volatility over 120 days
DataField: implied_volatility_put_120
DataFieldDescription: At-the-money option-implied volatility for Put Option for 120 days
DataField: historical_volatility_20
DataFieldDescription: Close-to-close Historical volatility over 20 days
DataField: parkinson_volatility_60
DataFieldDescription: Parkinson model's historical volatility over 60 days
DataField: implied_volatility_call_150
DataFieldDescription: At-the-money option-implied volatility for call Option for 150 days
DataField: implied_volatility_put_270
DataFieldDescription: At-the-money option-implied volatility for Put Option for 270 days
DataField: implied_volatility_mean_120
DataFieldDescription: At-the-money option-implied volatility mean for 120 days
DataField: implied_volatility_mean_10
DataFieldDescription: At-the-money option-implied volatility mean for 10 days
DataField: implied_volatility_put_90
DataFieldDescription: At-the-money option-implied volatility for Put Option for 90 days
DataField: implied_volatility_mean_270
DataFieldDescription: At-the-money option-implied volatility mean for 270 days
DataField: implied_volatility_mean_skew_1080
DataFieldDescription: At-the-money option-implied volatility mean skew for 3 years
DataField: parkinson_volatility_30
DataFieldDescription: Parkinson model's historical volatility over 30 days
DataField: implied_volatility_call_120
DataFieldDescription: At-the-money option-implied volatility for call Option for 120 days
DataField: historical_volatility_150
DataFieldDescription: Close-to-close Historical volatility over 150 days
DataField: implied_volatility_mean_skew_120
DataFieldDescription: At-the-money option-implied volatility mean skew for 120 days
DataField: parkinson_volatility_10
DataFieldDescription: Parkinson model's historical volatility over 2 weeks
DataField: implied_volatility_mean_skew_150
DataFieldDescription: At-the-money option-implied volatility mean skew for 150 days
DataField: parkinson_volatility_90
DataFieldDescription: Parkinson model's historical volatility over 90 days
DataField: implied_volatility_mean_skew_360
DataFieldDescription: At-the-money option-implied volatility mean skew for 360 days
DataField: historical_volatility_180
DataFieldDescription: Close-to-close Historical volatility over 180 days
DataField: implied_volatility_call_180
DataFieldDescription: At-the-money option-implied volatility for call Option for 180 days
DataField: implied_volatility_put_360
DataFieldDescription: At-the-money option-implied volatility for Put Option for 360 days
DataField: implied_volatility_mean_360
DataFieldDescription: At-the-money option-implied volatility mean for 360 days
DataField: news_indx_perf
DataFieldDescription: ((EODClose - TONLast) / TONLast) - ((SPYClose - SPYLast) / SPYLast)
DataField: nws12_afterhsz_3p
DataFieldDescription: The minimum of L or S above for 3-minute bucket
DataField: news_prev_day_ret
DataFieldDescription: Percent change between the previous day's open and close
DataField: nws12_mainz_01s
DataFieldDescription: Number of minutes that elapsed before price went down 10 percentage points
DataField: nws12_prez_57s
DataFieldDescription: Number of minutes that elapsed before price went down 7.5 percentage points
DataField: nws12_afterhsz_120_min
DataFieldDescription: The percent change in price in the first 120 minutes following the news release
DataField: nws12_afterhsz_41rta
DataFieldDescription: 14-day Average True Range
DataField: nws12_afterhsz_mov_vol
DataFieldDescription: 30-day moving average session volume
DataField: nws12_allz_newssess
DataFieldDescription: Index of session in which the news was reported
DataField: nws12_mainz_2l
DataFieldDescription: Number of minutes that elapsed before price went up 2 percentage points
DataField: news_eps_actual
DataFieldDescription: The actual Earnings Per Share value that was conveyed by the news release
DataField: news_mins_3_chg
DataFieldDescription: The minimum of L or S above for 3-minute bucket
DataField: news_mins_7_5_pct_up
DataFieldDescription: Number of minutes that elapsed before price went up 7.5 percentage points
DataField: nws12_prez_maxdnamt
DataFieldDescription: The price at the time of the news minus the after the news low
DataField: nws12_afterhsz_maxdnamt
DataFieldDescription: The price at the time of the news minus the after the news low
DataField: nws12_afterhsz_02l
DataFieldDescription: Number of minutes that elapsed before price went up 20 percentage points
DataField: nws12_prez_dayopen
DataFieldDescription: Price at the session open
DataField: news_mins_5_chg
DataFieldDescription: The minimum of L or S above for 5-minute bucket
DataField: nws12_mainz_30_min
DataFieldDescription: The percent change in price in the first 30 minutes following the news release
DataField: nws12_mainz_peratio
DataFieldDescription: Reported price-to-earnings ratio for the calendar day of the session
DataField: news_pct_10min
DataFieldDescription: The percent change in price in the first 10 minutes following the news release
DataField: news_mins_5_pct_up
DataFieldDescription: Number of minutes that elapsed before price went up 5 percentage points
DataField: nws12_mainz_newrecord
DataFieldDescription: Tracks whether the news is first instance or a duplicate
DataField: nws12_prez_eodlow
DataFieldDescription: Lowest price reached between the time of news and the end of the session.
DataField: nws12_mainz_prevday
DataFieldDescription: Percent change between the previous day's open and close
DataField: nws12_prez_02p
DataFieldDescription: The minimum of L or S above for 20-minute bucket
DataField: nws12_afterhsz_div_y
DataFieldDescription: Annual yield
DataField: nws12_afterhsz_lowexcstddev
DataFieldDescription: (TONLast - EODLow) / StdDev, where StdDev is one standard deviation for the close price for 30 calendar days
DataField: nws12_afterhsz_1s
DataFieldDescription: Number of minutes that elapsed before price went down 1 percentage point
DataField: news_mins_4_chg
DataFieldDescription: The minimum of L or S above for 4-minute bucket
DataField: top1000
DataFieldDescription: 20140630
DataField: top200
DataFieldDescription: 20140630
DataField: top3000
DataFieldDescription: 20140630
DataField: top500
DataFieldDescription: 20140630
DataField: topsp500
DataFieldDescription: 20140630
DataField: rp_nip_assets
DataFieldDescription: News impact projection of assets news
DataField: rp_ess_technical
DataFieldDescription: Event sentiment score based on technical analysis
DataField: nws18_event_relevance
DataFieldDescription: Relevance of the event to the story
DataField: rp_ess_insider
DataFieldDescription: Event sentiment score of insider trading news
DataField: rp_nip_society
DataFieldDescription: News impact projection of society-related news
DataField: nws18_bam
DataFieldDescription: News sentiment specializing in mergers and acquisitions
DataField: rp_nip_marketing
DataFieldDescription: News impact projection of marketing news
DataField: nws18_sse
DataFieldDescription: Sentiment of phrases impacting the company
DataField: rp_nip_product
DataFieldDescription: News impact projection of product and service-related news
DataField: nws18_event_similarity_days
DataFieldDescription: Days since a similar event was detected
DataField: nws18_relevance
DataFieldDescription: Relevance of news to the company
DataField: rp_ess_credit
DataFieldDescription: Event sentiment score of credit news
DataField: nws18_qep
DataFieldDescription: News sentiment based on positive and negative words on global equity
DataField: nws18_ssc
DataFieldDescription: Sentiment of the news calculated using multiple techniques
DataField: rp_ess_earnings
DataFieldDescription: Event sentiment score of earnings news
DataField: rp_ess_equity
DataFieldDescription: Event sentiment score of equity action news
DataField: rp_ess_society
DataFieldDescription: Event sentiment score of society-related news
DataField: rp_nip_inverstor
DataFieldDescription: News impact projection of investor relations news
DataField: rp_ess_price
DataFieldDescription: Event sentiment score of stock price news
DataField: rp_ess_ptg
DataFieldDescription: Event sentiment score of price target news
DataField: rp_css_partner
DataFieldDescription: Composite sentiment score of partnership news
DataField: rp_nip_partner
DataFieldDescription: News impact projection of partnership news
DataField: rp_nip_credit
DataFieldDescription: News impact projection of credit news
DataField: rp_css_earnings
DataFieldDescription: Composite sentiment score of earnings news
DataField: rp_ess_dividends
DataFieldDescription: Event sentiment score of dividends news
DataField: nws18_acb
DataFieldDescription: News sentiment specializing in corporate action announcements
DataField: rp_nip_equity
DataFieldDescription: News impact projection of equity action news
DataField: nws18_nip
DataFieldDescription: Degree of impact of the news
DataField: rp_nip_labor
DataFieldDescription: News impact projection of labor issues news
DataField: rp_css_business
DataFieldDescription: Composite sentiment score of business-related news
DataField: fn_avg_diluted_sharesout_adj_a
DataFieldDescription: The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation.
DataField: fn_comp_non_opt_forfeited_q
DataFieldDescription: The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.
DataField: fn_proceeds_from_stock_options_exercised_q
DataFieldDescription: 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.
DataField: fn_profit_loss_q
DataFieldDescription: The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.
DataField: fnd2_a_sbcpnargmsawpfipwerpr
DataFieldDescription: Weighted average price of options that were either forfeited or expired.
DataField: fnd2_a_sbcpnargmpmwggil
DataFieldDescription: Amount by which the current fair value of the underlying stock exceeds the exercise price of fully vested and expected to vest options outstanding.
DataField: fn_finite_lived_intangible_assets_net_q
DataFieldDescription: Finite Lived Intangible Assets, Net
DataField: fnd2_dbplanepdfbnfpnext12m
DataFieldDescription: 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.
DataField: fnd2_a_sbcpnargmsptawervl
DataFieldDescription: Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.
DataField: fn_finite_lived_intangible_assets_gross_q
DataFieldDescription: Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.
DataField: fn_comp_non_opt_vested_q
DataFieldDescription: The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.
DataField: fnd2_dfdtxastxdfdexprssaccrs
DataFieldDescription: Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from reserves and accruals.
DataField: fnd2_a_stkrpeprogramardamt
DataFieldDescription: Amount of a stock repurchase plan authorized by an entity's Board of Directors.
DataField: fnd2_a_curritxexp
DataFieldDescription: Income Tax Expense, Current
DataField: fn_comp_non_opt_nonvested_number_a
DataFieldDescription: The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.
DataField: fn_comp_options_out_number_q
DataFieldDescription: Number of options outstanding, including both vested and non-vested options.
DataField: fnd2_a_flintasamt1expyfour
DataFieldDescription: Amount of amortization expense for assets, excluding financial assets and goodwill, lacking physical substance with a finite life expected to be recognized during the 4th fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: fnd2_q_atdlsecexfcepsastkos
DataFieldDescription: Antidilutive Shares Excluded From Earnings Per Share Amount, Stock Options
DataField: fn_accum_depr_depletion_and_amortization_ppne_a
DataFieldDescription: Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.
DataField: fn_accum_depr_depletion_and_amortization_ppne_q
DataFieldDescription: Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.
DataField: fn_finite_lived_intangible_assets_gross_a
DataFieldDescription: Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.
DataField: fnd2_a_gwllimrml
DataFieldDescription: Amount of loss from the write-down of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.
DataField: fn_repayments_of_lt_debt_a
DataFieldDescription: The cash outflow for debt initially having maturity due after 1 year or beyond the normal operating cycle, if longer.
DataField: fn_comp_not_rec_a
DataFieldDescription: Unrecognized cost of unvested share-based compensation awards.
DataField: fn_income_taxes_paid_q
DataFieldDescription: The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income.
DataField: fn_comp_options_out_intrinsic_value_a
DataFieldDescription: The intrinsic value of a stock option is the amount by which the market value of the underlying stock exceeds the exercise price of the option.
DataField: fn_income_tax_expense_q
DataFieldDescription: Income Tax Expense (Benefit)
DataField: fnd2_a_atdlsecexfcepsastkos
DataFieldDescription: Antidilutive Shares Excluded From Earnings Per Share Amount, Stock Options
DataField: fnd2_a_flintasacmamtzcsrld
DataFieldDescription: Finite Lived Intangible Assets Accumulated Amortization, Customer Related
DataField: fnd2_a_ltrmdmrepoplinnext12m
DataFieldDescription: Amount of long-term debt payable, sinking fund requirements, and other securities issued that are redeemable by holder at fixed or determinable prices and dates maturing in the next fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.
DataField: adv20
DataFieldDescription: Average daily volume in past 20 days
DataField: cap
DataFieldDescription: Daily market capitalization (in millions)
DataField: close
DataFieldDescription: Daily close price
DataField: country
DataFieldDescription: Country grouping
DataField: currency
DataFieldDescription: Currency
DataField: cusip
DataFieldDescription: CUSIP Value
DataField: dividend
DataFieldDescription: Dividend
DataField: exchange
DataFieldDescription: Exchange grouping
DataField: high
DataFieldDescription: Daily high price
DataField: industry
DataFieldDescription: Industry grouping
DataField: isin
DataFieldDescription: ISIN Value
DataField: low
DataFieldDescription: Daily low price
DataField: market
DataFieldDescription: Market grouping
DataField: open
DataFieldDescription: Daily open price
DataField: returns
DataFieldDescription: Daily returns
DataField: sector
DataFieldDescription: Sector grouping
DataField: sedol
DataFieldDescription: Sedol
DataField: sharesout
DataFieldDescription: Daily outstanding shares (in millions)
DataField: split
DataFieldDescription: Stock split ratio
DataField: subindustry
DataFieldDescription: Subindustry grouping
DataField: ticker
DataFieldDescription: Ticker
DataField: volume
DataFieldDescription: Daily volume
DataField: vwap
DataFieldDescription: Daily volume weighted average price
========================= 数据字段结束 =======================================

@ -1,99 +1,126 @@
任务指令
你是一个WorldQuant WebSim因子工程师。你的任务是生成 10 个用于行业轮动策略的复合型Alpha因子表达式。
你是一个WorldQuant WebSim因子工程师。你的任务是生成 100 个用于行业轮动策略的复合型Alpha因子表达式。
核心规则
设计维度框架
维度1:时间序列动量(TM)
核心概念:捕捉行业价格的趋势、动量和形态变化
设计思路:
动量的变化率、加速度或平滑度构建
动量衰减或增强模式识别
价格与成交量关系的时序分析
目标:识别价格趋势的强度、速度和持续性
可用的具体构建方法:
1. 简单动量:ts_delta(close, d) [d=5,10,20,30,60]
2. 趋势斜率:ts_regression(close, ts_step(1), d, 0, 1) [rettype=1获取斜率]
3. 动量加速度:ts_delta(ts_delta(close, d1), d2) [避免嵌套ts_regression]
4. 平滑动量:ts_mean(returns, d) [returns=ts_delta(close,1)]
5. 动量衰减:ts_decay_linear(returns, d)
6. 价量关系:ts_corr(ts_delta(close,5), ts_delta(volume,5), d)
建议组合:使用不同d参数创建短期/中期/长期动量
维度2:横截面领导力(CL)
核心概念:识别行业内部的分化、龙头效应和相对强度
bucket(用于龙头股筛选)
设计思路:
行业内部龙头股与平均表现的差异
行业成分股的离散度分析
相对排名的变化和稳定性
目标:识别行业内的龙头股和相对强度
具体构建方法:
1. 龙头股筛选:if_else(rank(volume) > 0.7, 龙头值, 其他值) [使用volume代替market_cap]
2. 龙头组合:group_mean(x, 1, bucket(rank(volume), range="0,3,0.4")) [使用volume排序]
3. 行业内离散度:ts_std_dev(group_rank(returns, industry), 20)
4. 相对排名稳定性:ts_mean(rank(returns), d)
维度3:市场状态适应性(MS)
核心概念:根据市场环境动态调整因子逻辑
设计思路:
波动率调整的动量指标
不同市场状态(高/低波动)使用不同的回顾期
条件逻辑下的参数动态调整
维度4:行业间联动(IS)
多序列相关性分析
设计思路:
领先-滞后行业的相关性分析
行业间动量传导效应
板块轮动的早期信号识别
维度5:交易行为情绪(TS)
核心概念:基于交易行为和情绪指标的反转信号
设计思路:
超买超卖状态识别
交易拥挤度指标
情绪极端值后的均值回归
复合因子设计原则
强制要求:
每个表达式必须融合至少两个设计维度
必须使用提供的操作符列表中的函数
因子应具有经济逻辑解释性
推荐组合模式:
TM + CL:时序动量 + 横截面领导力
示例:行业动量加速度 × 龙头股相对强度
TM + MS:时序动量 + 状态适应性
示例:波动率调整后的动量指标
CL + IS:横截面 + 行业间联动
示例:龙头股表现与相关行业的领先滞后关系
MS + TS:状态适应 + 交易情绪
示例:不同市场状态下的反转信号
IS + TS:行业联动 + 交易情绪
示例:行业间相关性变化与交易拥挤度
参数化建议:
使用不同的时间窗口组合(短/中/长周期)
尝试不同的权重分配方式
考虑非线性变换(log, power, sqrt)
使用条件逻辑增强鲁棒性
表达式构建指南
目标:根据波动率、趋势状态调整参数
具体构建方法:
1. 波动率调整:ts_delta(close,5) / ts_std_dev(returns,20)
2. 状态条件选择:if_else(ts_rank(volatility,30) > 0.7, 短期动量, 长期动量)
3. 参数动态化:if_else(ts_std_dev(returns,20) > 阈值, 5, 20) [作为d参数]
4. 趋势状态识别:ts_rank(ts_mean(returns,20), 60) > 0.5
基本结构:
text
复合因子 = 维度A组件 [运算符] 维度B组件 [条件调整]
操作符限制:只能且必须使用以下列表中提供的操作符。严禁使用任何列表外的函数(例如 ts_regression_slope 不存在,必须用 ts_regression(y, x, d, 0, 1) 来获取斜率)。
操作符使用策略:
算术运算:abs(x), add(x, y, filter = false), densify(x), divide(x, y), inverse(x), max(x, y, ..), min(x, y ..), multiply(x ,y, ... , filter=false), power(x, y), reverse(x), sign(x), signed_power(x, y), sqrt(x), subtract(x, y, filter=false)
条件逻辑:and(input1, input2), if_else(input1, input2, input 3), input1 < input2, input1 <= input2, input1 == input2, input1 > input2, input1 >= input2, input1!= input2, is_nan(input), not(x), or(input1, input2)
时间序列操作:days_from_last_change(x), hump(x, hump = 0.01), kth_element(x, d, k), last_diff_value(x, d), ts_arg_max(x, d), ts_arg_min(x, d), ts_av_diff(x, d), ts_backfill(x,lookback = d, k=1, ignore="NAN"), ts_corr(x, y, d), ts_count_nans(x ,d), ts_covariance(y, x, d), ts_decay_linear(x, d, dense = false), ts_delay(x, d), ts_delta(x, d), ts_mean(x, d), ts_product(x, d), "ts_quantile(x,d, driver=""gaussian"" )", ts_rank(x, d, constant = 0), ts_regression(y, x, d, lag = 0, rettype = 0), ts_scale(x, d, constant = 0), ts_std_dev(x, d), ts_step(1), ts_sum(x, d), ts_zscore(x, d)
横截面操作: normalize(x, useStd = false, limit = 0.0), quantile(x, driver = gaussian, sigma = 1.0), rank(x, rate=2), scale(x, scale=1, longscale=1, shortscale=1), winsorize(x, std=4), zscore(x)
向量操作符:vec_avg(x), vec_sum(x)
转换操作符: bucket(rank(x), range="0, 1, 0.1" or buckets = "2,5,6,7,10"), trade_when(x, y, z)
聚合操作符: group_backfill(x, group, d, std = 4.0), group_mean(x, weight, group), group_neutralize(x, group), group_rank(x, group), group_scale(x, group), group_zscore(x, group), subtract(x, y, filter=false), multiply(x ,y, ... , filter=false), divide(x, y), add(x, y, filter = false)
=== 关键语法规则(必须遵守) ===
1. 数据字段规范:
- 可使用字段:close, volume, returns
- ❌ 错误:market_cap, marketcap, mkt_cap [这些字段不存在]
- ✅ 正确:使用volume作为规模代理,close作为价格
- returns通常定义为:ts_delta(close, 1) 或 close/ts_delay(close,1)-1
2. ts_regression使用规范:
- 避免深度嵌套ts_regression,特别是作为其他函数的参数
- ✅ 正确:reg_slope = ts_regression(close, ts_step(1), 30, 0, 1)
- ❌ 错误:ts_delta(ts_regression(close, ts_step(1), 30, 0, 1), 5)
- 替代方案:用ts_delta组合计算动量变化
3. if_else使用规范:
- 条件必须是简单布尔表达式
- 避免序列比较:❌ ts_std_dev(returns,60) > ts_mean(ts_std_dev(returns,60),120)
- 正确使用:✅ if_else(ts_rank(ts_std_dev(returns,60), 120) > 0.7, 短期动量, 长期动量)
4. bucket函数使用规范:
- bucket()返回分组ID,可用于条件判断
- ✅ 正确:bucket(rank(volume), range="0,3,0.4") == 0 [第一组为大成交量]
- ✅ 正确:group_mean(x, 1, bucket(rank(volume), range="0,3,0.4"))
- 注意字符串格式:range="起始值,组数,步长" 或 buckets="分割点列表"
=== 关键语法规则结束 ===
*=====*
注意事项:
避免过度复杂的嵌套
使用经济直觉验证逻辑合理性
考虑实际交易可行性
包含风险控制元素(如波动率调整)
1. 避免过度复杂的嵌套(建议不超过3层)
2. 每个表达式应有明确的经济逻辑
3. 考虑实际交易可行性(避免未来函数)
4. 包含风险控制元素(如波动率调整)
5. 只能使用可用的数据字段:close, volume, returns等
*=====*
参数逻辑:参数d(回顾期)应在[5, 10, 20, 30, 60, 120]等具有市场意义(周、月、季度、半年)的数值中合理选择并差异化。
行业隐含:通过group_mean、group_rank等函数或假设表达式在行业指数上运行来体现“行业”逻辑。
行业隐含:通过group_mean、group_rank等函数或假设表达式在行业指数上运行来体现"行业"逻辑。
构建框架指导(请按此逻辑创造新因子):
维度融合模板(选择至少2个):
A. 领导力动量 = 时序动量 × 横截面调整
逻辑:大成交量股票的动量更强
结构:group_mean(ts_delta(close, d1), 1, bucket(rank(volume), range="0,3,0.4"))
B. 状态自适应动量 = 条件选择动量
逻辑:高波动用短期动量,低波动用长期动量
结构:if_else(ts_std_dev(returns,20) > 0.02, ts_delta(close,5), ts_delta(close,20))
C. 行业传导因子 = 领先行业动量 × 相关性强度
逻辑:与强势行业相关性高的行业未来表现好
结构:multiply(ts_corr(group_mean(returns,1,industry), group_mean(returns,1,sector), d1), ts_delta(close,d2))
D. 情绪反转 = 过度交易信号 × 基础趋势
逻辑:过度交易时反转,趋势延续时跟随
结构:multiply(reverse(ts_rank(volume/ts_mean(volume,20), 10)), ts_delta(close,20))
关键组件库(可自由组合):
1. 动量类:ts_delta(close,{d}), ts_regression(close,ts_step(1),{d},0,1)
2. 波动类:ts_std_dev(returns,{d}), ts_mean(abs(returns),{d})
3. 成交量类:volume/ts_mean(volume,{d}), ts_zscore(volume,{d})
4. 横截面类:if_else(rank(volume) > 阈值, 值1, 值2), bucket(rank(volume), range="0,3,0.4")
5. 相关性类:ts_corr({x},{y},{d})
6. 条件逻辑:if_else({condition}, {true_value}, {false_value})
参数池:d ∈ [5,10,20,30,60,120], 阈值 ∈ [0.5,0.7,0.8]
*=====*
输出格式:
输出必须是且仅是纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
示例思维(仅供理解,不输出)
一个融合“龙头股趋势加速度(M)”与“行业整体情绪背离(R)”的因子思路,可用你的操作符实现为(此为示例, 读取操作符的使用说明, 并结合上述的维度方案, 组合并创新因子):
multiply( ts_delta(group_mean(ts_regression(close, ts_step(1), 20, 0, 1), bucket(rank(close), "0.7,1")), 5), reverse(ts_corr(ts_zscore(volume, 20), ts_zscore(close, 20), 10)) )
这里,ts_regression(..., rettype=1)获取斜率代替动量,bucket(rank(close), "0.7,1")近似选取市值前30%的龙头股,ts_corr(...)衡量价量情绪,reverse将其转化为背离信号。
===================== !!! 重点(输出方式) !!! =====================
现在,请严格遵守以上所有规则,开始生成可立即在WebSim中运行的复合因子表达式。
**输出格式**(一行一个表达式, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西):
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
请提供具体的WQ表达式。
=================================================================
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子

@ -0,0 +1,122 @@
任务指令
你是一个WorldQuant WebSim因子工程师。你的任务是生成 10 个用于行业轮动策略的复合型Alpha因子表达式。
核心规则
设计维度框架
维度1:时间序列动量(TM)
目标:识别价格趋势的强度、速度和持续性
可用的具体构建方法:
1. 简单动量:ts_delta(close, d) [d=5,10,20,30,60]
2. 趋势斜率:ts_regression(close, ts_step(1), d, 0, 1) [rettype=1获取斜率]
3. 动量加速度:ts_delta(ts_regression(close, ts_step(1), d1, 0, 1), d2)
4. 平滑动量:ts_mean(returns, d) [returns=ts_delta(close,1)]
5. 动量衰减:ts_decay_linear(returns, d)
6. 价量关系:ts_corr(ts_delta(close,5), ts_delta(volume,5), d)
建议组合:使用不同d参数创建短期/中期/长期动量
维度2:横截面领导力(CL)
目标:识别行业内的龙头股和相对强度
具体构建方法:
1. 龙头股筛选:bucket(rank(market_cap), range="0,1,0.2") [第一组为龙头]
2. 龙头vs平均:group_mean(x, 1, bucket(rank(cap),range="0,1,0.2")) - group_mean(x, 1, 所有股票)
3. 行业内离散度:ts_std_dev(group_rank(returns, industry), 20)
4. 相对排名稳定性:ts_mean(rank(returns), d)
维度3:市场状态适应性(MS)
目标:根据波动率、趋势状态调整参数
具体构建方法:
1. 波动率调整:ts_delta(close,5) / ts_std_dev(returns,20)
2. 状态条件选择:if_else(ts_mean(returns,60)>0, 短期动量, 长期动量)
3. 参数动态化:if_else(ts_std_dev(returns,20)>X, 5, 20) [作为d参数]
4. 趋势状态识别:ts_mean(ts_delta(close,5), 20) > 0
基本结构:
复合因子 = 维度A组件 [运算符] 维度B组件 [条件调整]
*=====*
注意事项:
避免过度复杂的嵌套
使用经济直觉验证逻辑合理性
考虑实际交易可行性
包含风险控制元素(如波动率调整)
*=====*
参数逻辑:参数d(回顾期)应在[5, 10, 20, 30, 60, 120]等具有市场意义(周、月、季度、半年)的数值中合理选择并差异化。
行业隐含:通过group_mean、group_rank等函数或假设表达式在行业指数上运行来体现“行业”逻辑。
输出格式:
输出必须是且仅是纯文本。
每一行是一个完整、独立、语法正确的WebSim表达式。
严禁任何形式的解释、编号、标点包裹(如引号)、Markdown格式或额外文本。
*=====*
构建框架指导(请按此逻辑创造新因子):
维度融合模板(选择至少2个):
A. 领导力动量 = 时序动量 × 横截面调整
逻辑:强势股的动量更强
结构:group_mean(ts_momentum(close, d1), 1, bucket(rank(cap), range="0,3,0.4"))
B. 状态自适应动量 = 条件选择动量
逻辑:高波动用短期动量,低波动用长期动量
结构:if_else(ts_std_dev(ret,20)>X, ts_delta(close,5), ts_delta(close,20))
C. 行业传导因子 = 领先行业动量 × 相关性强度
逻辑:与强势行业相关性高的行业未来表现好
结构:ts_corr(group_mean(ret,1,ind_i), group_mean(ret,1,ind_j), d) × ts_delta(close,d2)
D. 情绪反转 = 过度交易信号 × 基础趋势
逻辑:过度交易时反转,趋势延续时跟随
结构:reverse(ts_rank(volume/ts_mean(volume,20), 10)) × ts_regression(close,ts_step(1),20,0,1)
关键组件库(可自由组合):
1. 动量类:ts_delta(close,{d}), ts_regression(close,ts_step(1),{d},0,1)
2. 波动类:ts_std_dev(returns,{d}), ts_mean(abs(returns),{d})
3. 成交量类:volume/ts_mean(volume,{d}), ts_zscore(volume,{d})
4. 横截面类:bucket(rank({metric}), n), rank({x, y, z, ...})
5. 相关性类:ts_corr({x},{y},{d})
6. 条件逻辑:if_else({condition}, {true_value}, {false_value})
参数池:d ∈ [5,10,20,30,60,120], n ∈ [3,5,10]
*=====*
===================== !!! 重点(输出方式) !!! =====================
现在,请严格遵守以上所有规则,开始生成可立即在WebSim中运行的复合因子表达式。
**输出格式**(一行一个表达式, 每个表达式中间需要添加一个空行, 只要表达式本身, 不要解释, 不需要序号, 也不要输出多余的东西):
表达式
表达式
表达式
...
表达式
=================================================================
=== 关键语法规则(必须遵守) ===
1. if_else使用规范:
- 条件必须是布尔值:如 ts_mean(x,20) > 0
- 不能嵌套复杂条件:避免 if_else(A > B, X, Y) 其中A和B都是序列
- 建议:if_else(ts_rank(volatility,30) > 0.7, 短期动量, 长期动量)
2. bucket函数使用规范:
- bucket()返回分组ID,不能与数字直接比较
- 正确用法:作为group_mean的group参数
- 错误用法:bucket(rank(cap), [0,0.7,1.0]) == 1 ❌
- 替代方案:用条件筛选代替
正确:if_else(rank(cap) > 0.7, 龙头因子, 非龙头因子)
3. 操作符输入数量:
- multiply, add等需要至少2个输入,但每个输入必须是单个表达式
- 避免:multiply(A, if_else(B, C, D)) 可能导致参数数量解析错误
- 建议:先计算中间变量或使用更简单结构
4. 类型兼容性:
- 比较操作符(==, >, <)两边必须是相同类型
- 分组类型不能与数值类型直接运算
=== 关键语法规则结束 ===
重申:请确保所有表达式都使用WorldQuant WebSim平台函数,不要使用pandas、numpy或其他Python库函数。输出必须是一行有效的WQ表达式。
操作符使用策略:
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
以下是我的账号有权限使用的操作符, 请严格按照操作符, 进行生成,组合因子
操作符限制:只能且必须使用以下列表中提供的操作符。严禁使用任何列表外的函数(例如 ts_regression_slope 不存在,必须用 ts_regression(y, x, d, 0, 1) 来获取斜率)。
Loading…
Cancel
Save