vn.py实现了2个维度上的单位头寸限制,分别是单品种头寸上限是4,单个方向整体头寸上限是10。那么现在测试一下适用于国内期货品种的新海龟策略,其最优单位头寸限制数值是否与原版海龟策略一致。

 

实现步骤:

  • 对单品种头寸上限分类,直接分成3、4、5,
  • 然后基于各自的单品种头寸上限再对当个方向的整体头寸上限进行细分,分别是8、9、10、12、14、无限大。
  • 故一共构成了3*6 = 18个测试组合。

 

在回测中修改单位头寸设置:打开海龟策略文件turtleStrategy.py找到第10、第11行代码,直接修改其数值即可。

MAX_PRODUCT_POS = 4 # 单品种最大持仓
MAX_DIRECTION_POS = 10 # 单方向最大持仓

 
 

1)分类1:单品种头寸上限等于3

基于该分类一共得到6个测试组合,其回测效果如图所示。
enter image description here
enter image description here
 

这六个备选组合,按照从左到右,从高到低顺序,其夏普比率分别是1.68、1.68、1.6、1.5、1.44、1.4。可以观察到,其数据变化呈现倒“U”型,在单个方向整体头寸上限为9时,夏普比率达到顶峰,然后不管是头寸上限增加还是降低,夏普比率都会下降。

另外,从单方向头寸从14增大至无穷大(即限制取消)时,夏普比率降低得并不严重,仅仅为0.04,这说明针对国内期货品种的海龟策略,其自然达到的单方向头寸单位是大于14的,但是其差距并不是很大。

 
 

2)分类2:单品种头寸上限等于4

然后对单品种头寸上限为4的类型进行测试,其回测效果如图所示。

enter image description here
enter image description here

这六个备选组合,按照同样的观察顺序,其夏普比率分别是1.67、1.69、1.65、1.61、1.61、1.61。其夏普比率变化同样呈现倒“U”型,但是较单位头寸上限为3的更加扁平。在单个方向整体头寸上限为9时,夏普比率达到顶峰,然后不管是头寸上限增加还是降低,夏普比率都会下降。

另外,从单方向头寸从14增大至无穷大(即限制取消)时,夏普比率降低了0.14。

 
 

3)分类3:单品种头寸上限等于5

最后对单品种头寸上限为5的类型进行测试,其回测效果如图所示。

enter image description here
enter image description here
 

可以观察到,分类3的所有组合与分类2的完全一致,这表明单品种头寸单位自然到达的上限是4,再往上增加其限制已无任何意义。

综上所述,基于海龟组合,单品种头寸单位上限为4,单个方向整体头寸为9时效果最优,其最终版本的海龟策略夏普比率达到1.69。