实现alpha 101里的因子: (-1
由 jliang创建,
- 实现alpha 101里的因子: (-1 * Ts_Rank(rank(low), 9))
- 要实现Alpha 101中的因子
(-1 TsRank(rank(low), 9))
,我们可以使用DAI的SQL函数来完成。这个因子的计算步骤如下:
- rank(low):对每日的
low
价格进行截面排名。
2. TsRank(rank(low), 9):对rank(low)
进行时间序列上的滚动排名,窗口大小为9。- -1 TsRank(rank(low), 9):将结果乘以-1。
我们可以使用DAI的crank
函数来计算截面排名,使用mrollingrank
函数来计算时间序列上的滚动排名。
以下是实现该因子的Python代码示例:
import dai
查询数据并计算因子
df = dai.query(
"""
SELECT
date,
instrument,
-1 mrollingrank(crank(low), 9) AS alpha101factor
FROM cnstockbar1d
""",
filters={"date": ["2020-01-01", "2021-01-01"]}根据需求调整时间范围
).df()
打印结果
print(df)
代码解释:
- crank(low):对每日的
low
价格进行截面排名。
2. mrollingrank(crank(low), 9):对crank(low)
进行时间序列上的滚动排名,窗口大小为9。- -1 mrollingrank(crank(low), 9):将结果乘以-1,得到最终的因子值。
注意事项:
- 如果你需要计算特定股票或特定时间段的因子,可以在
filters
中添加相应的过滤条件。
- 由于mrollingrank
是一个窗口函数,因此它会在每个时间点上计算过去9天的滚动排名。
验证结果:
你可以通过检查输出结果来验证因子的计算是否正确。确保alpha101_factor
列的值符合预期。
如果你需要进一步优化或调整因子计算逻辑,请随时告诉我! - rank(low):对每日的