加载中...
AI 原生量化投研平台AI-native quantitative research platform
正在打开工作台Opening your workspace
页面仍在加载,可以继续等待,或重新加载。The page is still loading. You can keep waiting or reload.
部分页面资源未能加载,请重新加载。Some page resources could not load. Please reload.
设备当前处于离线状态,恢复连接后可以继续等待或重新加载。Your device is offline. Once connected, you can keep waiting or reload.
因子逻辑
按 Wilder 振动升降指标的方式,以开高低收与前一日价格计算每日摆动值,累加20日,类似 ASI 指标。值越大,表示近期价格在真实波幅框架下的累积上行越强。
因子公式
SUM(16*(CLOSE-DELAY(CLOSE,1)+(CLOSE-OPEN)/2+DELAY(CLOSE,1)-DELAY(OPEN,1))/((ABS(HIGH-DELAY(CLOSE,1))>ABS(LOW-DELAY(CLOSE,1))&ABS(HIGH-DELAY(CLOSE,1))>ABS(HIGH-DELAY(LOW,1))?ABS(HIGH-DELAY(CLOSE,1))+ABS(LOW-DELAY(CLOSE,1))/2+ABS(DELAY(CLOSE,1)-DELAY(OPEN,1))/4:(ABS(LOW-DELAY(CLOSE,1))>ABS(HIGH-DELAY(LOW,1))&ABS(LOW-DELAY(CLOSE,1))>ABS(HIGH-DELAY(CLOSE,1))?ABS(LOW-DELAY(CLOSE,1))+ABS(HIGH-DELAY(CLOSE,1))/2+ABS(DELAY(CLOSE,1)-DELAY(OPEN,1))/4:ABS(HIGH-DELAY(LOW,1))+ABS(DELAY(CLOSE,1)-DELAY(OPEN,1))/4)))*MAX(ABS(HIGH-DELAY(CLOSE,1)),ABS(LOW-DELAY(CLOSE,1))),20)BigQuant SQL
SELECT date, instrument, close+(close-open)/2-m_lag(open, 1) AS _front, ABS(high-m_lag(close, 1)) AS _front2, ABS(low-m_lag(close, 1)) AS _front3, ABS(high-m_lag(low, 1)) AS _front4, ABS(m_lag(close, 1)-m_lag(open, 1)) AS _front5, if(m_lag(close, 1) IS NULL, NULL, if(_front2>_front3 AND _front2>_front4, _front2+_front3/2+_front5/4, if(_front3>_front4 AND _front3>_front2, _front3+_front2/2+_front5/4, _front4+_front5/4))) AS _front6, -1 * ( m_sum(16*_front/_front6*greatest(_front2, _front3), 20)) AS _factor_temp, 1 * _factor_temp AS factorFROM cn_stock_bar1dORDER BY date, instrumentbq examples new strategies/multi_factor.py bqf_10175_strategy.py --name 'Alpha191 #55 选股' \ --set 'TABLES=["cn_stock_factors_alpha_191"]' --set 'FACTORS=["alpha_055"]' --set 'HOLD=30' \ --set 'EVERY=20' --set 'BENCHMARK="000300.SH"' --set 'START="2021-01-01"' \ --set 'END="2026-09-22"' \ && python bqf_10175_strategy.pySELECT date, instrument, alpha_055 FROM cn_stock_factors_alpha_191带入当前因子,在 Cowork 中继续研究。
from bigquant import factor
values = factor.values(["BQF_10175"], "2021-01-01", "2026-09-22")report = factor.analyze( values, start_date="2021-01-01", end_date="2026-09-22", universe=("all", "hs300"), neutralize=(None, "size+industry"), depth="deep",)report.render()