大家好,前几天我在发布“一个基于关联行业联动关系构建的跟进策略”后,收到了很多社区朋友的反馈,非常感谢大家。其中 @漫步者 提出了两个很有价值的建议,一是希望能够抓住板块轮动的趋势,二是添加相应的止损策略控制回撤。这两点想法是非常令我受用的,因为之前的策略回撤有一定水平,而且随时间的变化不够稳定。如果能抓住A股各版块轮动的趋势,在恰当的时间选择恰当的行业进行投入,那么很有可能带来更稳定的收益,并同时控制策略的回撤。
这个想法也引发了我很大的兴趣,因此我这两天丰富了上一个策略的功能。首先,通过增加循环,现在这套模板可以同时支持多个上下游股票对的预测与交易。在此基础上,我进一步添加了很多止损模块,包括板块止损与黑名单、个股止损与黑名单以及整个投资组合层面的止损,大家在代码中都可以看到相关的函数模块和语句。另外我对整体代码的结构进行了调整,可以方便的在整套代码的开头调整大多数关键变量,方便进行实验。从效果上来看,确实相较于之前有了一定的提升。
当然,还有些遗憾的就是目前对于上游板块的判断准则还是基于均线策略而决定什么时候买入下游的。对上游趋势的判断牵扯诸多因素,或许也不是量化指标能够完全解决的。欢迎有兴趣的朋友在我的代码基础上进行改进。蓝筹股板块的轮动可能需要将自己的想法输入其中。
在这里我给出一个同时应用两个上下游行业预测的策略。理论上这套代码可以同时实现多组上下游板块的交易,这里仅作示例。可以看出这个例子的收益也在逐渐被磨平,还是期待有更多关于板块轮动、上下游带动的好想法能够被引入其中。
代码中还有一些细节,我在此做出一些解释:
(1)g.suspendate_start、g.suspendate_end:加入此功能的目的是为了更好的把握行业的周期性。通过这两个参数的设定可以决定在一年中的某些时候不参与特定行业的交易。在示例中我没有使用这个功能,但是相关的函数块已经写好。比如希望在每年的12月20日到次年的2月1日不进行交易,则只需将两个变量的相应维度调整为“1220”和“201”(数字,不是字符串)即可。在回测中我发现这段时间策略总是很难得到好的收益。
(2)类似的,大多数其他的变量的维度都应该与希望配置的上下游预测对的数量相匹配,即g.N的数值。比如如果想实现三个股票对的策略,需要做的是把g.N改为3,然后将代码中#To be adjusted之下的诸多变量改为自己设定的三维向量即可。每一维度代表按照输入顺序对应的上下游对所需的参数。
最近经常在社区潜水,感到社区里有不少有识之士,希望多多交流。