加载中...
AI 原生量化投研平台AI-native quantitative research platform
正在加载…Loading…
页面仍在加载,可以继续等待,或重新加载。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.
因子逻辑
12日内价格重心上移日波动占比减去下移日波动占比,类似 DMI 中+DI 与-DI 的差值。取值在-1到1之间,值越大表示上行方向的波动越占优。
因子公式
SUM(((HIGH+LOW)<=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)/(SUM(((HIGH+LOW)<=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)+SUM(((HIGH+LOW)>=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12))-SUM(((HIGH+LOW)>=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)/(SUM(((HIGH+LOW)>=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)+SUM(((HIGH+LOW)<=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12))BigQuant SQL
SELECT date, instrument, high+low AS _pre1, m_lag(high, 1)+m_lag(low, 1) AS _pre2, -1 * (m_sum(if(_pre2 IS NULL, NULL, if(_pre1>=_pre2, 0, greatest(ABS(high-m_lag(high, 1)), ABS(low-m_lag(low, 1))))), 12)+m_sum(if(_pre2 IS NULL, NULL, if(_pre1<=_pre2, 0, greatest(ABS(high-m_lag(high, 1)), ABS(low-m_lag(low, 1))))), 12)) AS _factor_temp, 1 * _factor_temp AS factorFROM cn_stock_bar1dORDER BY date, instrumentbq examples new strategies/multi_factor.py bqf_10164_strategy.py --name 'Alpha191 #50 选股' \ --set 'TABLES=["cn_stock_factors_alpha_191"]' --set 'FACTORS=["alpha_050"]' --set 'HOLD=30' \ --set 'EVERY=20' --set 'BENCHMARK="000300.SH"' --set 'START="2021-01-01"' \ --set 'END="2026-09-22"' \ && python bqf_10164_strategy.pySELECT date, instrument, alpha_050 FROM cn_stock_factors_alpha_191带入当前因子,在 Cowork 中继续研究。
from bigquant import factor
values = factor.values(["BQF_10164"], "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()