当涉及到多个周期的数据之后,就可能出现,需要在多个周期上实现相应的技术指标,这和单个周期上并没有多大的区别,和官网上的文档中描述的并不一样,并不需要特殊的操作。但是,涉及到跨周期的技术指标的实现过程中,还是有一些问题需要注意的。我们通过一个跨周期实现的策略来说明,实现跨周期策略中,以及使用技术指标中,需要注意的地方
跨周期策略逻辑
-
测试的股票是工商银行的数据,分别是日数据(使用5日均线和20日均线)和周数据(使用五周均线和20周均线)。
-
当没有持仓的时候,如果5周均线大于20周均线,并且5日均线大于20日均线,使用90%的资金做多;
-
当有持仓的时候,如果5周均线小于20周均线或者5日均线小于20日均线,平多;
-
假设交易费用是万分之二,没有滑点,没有考虑涨跌停。
策略实现绩效
策略实现过程中的关键点
-
当使用多个周期的数据的时候,第一个加载得到数据一定是最小周期的数据
-
数据的对齐理念是:小周期的数据每个next会运行一次,大周期的数据会一直使用旧的数据,直到大周期的数据的时间和小周期数据的时间一致了,才会更新
-
当使用日数据和周数据的时候,一般只有周五收盘的时候,周数据确定了,才会变化,这个也符合现实情况
-
当调用大周期的数据或者指标的时候,使用self.xxx[0]代表的调用的当前的数据或者指标,在周一到周四,调用的是上周五数据或者指标,周五会进行更新
-
计算大周期的指标的时候,计算的指标使用的数据是不重复的,跟小周期计算指标方式一样;计算指标的时候,并不清楚是使用在什么周期上的。
策略分析
-
这个策略仅仅用于演示如何跨周期使用技术指标,策略有效性并不高
-
可以考虑改进策略逻辑