一.效果

二.实现
1.数据下载 同上一篇

三.各个策略说明
1.不用动量,不RSRS择时,每天所有标的等权轮动
for K in [1]:
s = bt.Strategy(
"全球大类资-等权配置-K={}".format(K),
[
# bt.algos.RunDaily(), # 每日运行 因为是日线数据,这个不写其实也是日线轮动
bt.algos.SelectAll(), #因为是全部 k=1 和k=2 都是全部标的进行轮转
bt.algos.WeighEqually(),
bt.algos.Rebalance(),
],
)
all.append(s)
2.用动量指标 (signal = data.pct_change(20) # 20日涨跌幅 )
for K in [1, 2]:
s = bt.Strategy(
"全球大类资-动量前K={}".format(K),
[
# bt.algos.SelectWhere(signal_where),
SelectTopK(signal, K), # 选择20日涨幅最好的,前k个标的进行轮转
bt.algos.WeighEqually(),
bt.algos.Rebalance(),
],
)
all.append(s)
3.先RSRS折时选出符合条件的标的,再用动量指标排序,选择前K个
for K in [1, 2]:
s = bt.Strategy(
"(RSRS)全球大类资-动量前K={}".format(K),
[
bt.algos.SelectWhere(
signal_where
), # 先筛选出符合条件的标的 条件为1的(True)
SelectTopK(signal, K), # 在选择20日涨幅最好额的,前k个标的进行轮转
bt.algos.WeighEqually(),
bt.algos.Rebalance(),
],
)
all.append(s)
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/268139
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!