前言
“凯特纳通道”策略,可以说是一个比较简单而经典的趋势策略。该策略以一条简单均线为中轨,并在其基础上增减N倍ATR形成上下轨。
当突破上轨时开多,跌破下轨时开空。
如下图所示:
但是,该策略的退出方法却没有采用跟踪止盈,而是用中轨或海龟通道平仓。当作者加载到15分钟周期上时,策略表现的一塌糊涂!
如下图所示:
因此,作者打算对该策略进行改进,在原策略的基础上增加3项功能,其中比较重要的一项就是k线波幅“三级跟踪止盈”方法。
“凯特纳通道”策略改进三连!
首先来说说,为什么要改进。
让作者想对这个策略改进的原因主要是,当我加载这个原版策略到螺纹钢期货指数15分钟周期上的回测收益非常糟糕。
作者仔细观察后发现,造成这种结果的原因主要有以下:
1.参数太小。
由于所用的k线周期较小,原策略参数是用于日线的,如果将日线参数应用在15分钟上是不科学的。
因此,作者扩大了一个均线的周期参数,原策略是10,现改成60。
2.没有采用跟踪止盈。
该原因,也是造成交易次数猛增及盈亏比和胜率较低的原因。一个大的波段分几次来吃掉,期间就增加了滑点风险和手续费,使得整个策略对滑点手续费比较敏感。
因此,作者将加入最近的所开发出的k线波幅加速三级跟踪止盈算法。
3.修改ATR的周期参数。
我们都知道,凯特纳通道上轨下轨是由中轨+/-N*ATR。现在作者就将ATR周期参数修改成常见的参数14。
小结。
以上就是关于凯特纳通道改进的三个地方。核心在于增加周期参数,跟踪止盈及修改ATR的周期参数。
“凯特纳通道”策略遇上三级跟踪止盈。
1.计算开仓所需要的数值。
其中:
(1)修改ATR的周期参数。AvgRange所用的参数原来是length(10)参数,现在改成14。
KCU = AvgVal + AvgRange*Constt; // 计算通道上轨=均线+1.2倍的14周期真实波动值
KCL = AvgVal – AvgRange*Constt; // 计算通道下轨=均线-1.2倍的14周期真实波动值
(2)将下面的length周期改为60。
AvgVal = Average(Price,Length); // 计算均线 默认10周期
2.增加k线波幅加速三级跟踪止盈算法。
如下图所示:
三级跟踪止盈基本配置:
(1)ATRLength,ATR指标计算周期。
(2)Acceleration,跟踪止盈的初始速度,并按照设定的盈利级别,逐渐降低该速度。
(3)FirstBarMultp,初始止损倍数。如果开多仓,初始止损=最低价-N倍ATR。
3.改进前后效果对比。螺纹钢指数15分钟周期。
(1)改进前。
信号:
(2)改进后。
信号:
小结。
以上就是关于凯特纳策略改进的代码实现。扩大周期参数、增加跟踪止盈都能够很好的减少该策略的交易次数,从而提升策略的胜率和盈亏比。
最后
改进策略是比较重要的一项基本技能,因为你的策略开发出来后,第一次回测基本上是不理想的。因此,就要求我们将从多个方面去考虑并改善、提高它的性能。
例如:可以从策略框架和品种过滤两个大方向去改进。重点不是策略本身,而是文章中的改进方法!!!
文章及策略代码仅供学习,切勿直接实盘。