策略开发的时候,我们常常会用某种方法来判断当前市场的多空状态,以便于策略有针对性的开多或者开空。
这样做的好处是,可以减少策略在空头趋势开多,及多头趋势开空的次数。进而,提高策略的胜率,盈亏比等其他指标。
因此,策略如何定势,也是一个非常重要的课题。
有哪些方法可以进行定势?
有用均线的,如上图所示。均线多头排列为多头趋势,均线空头排列为空头趋势,这是最常见的。当然也有人用MACD的。零轴以上多头趋势,零轴以下为空头趋势。甚至,高级点的那就是跨周期使用上述方法。例如:60分钟k线价格,在周线8日均线以上,为多头趋势。空头反之。
无论采用上述的哪种方法,都会有严重的滞后性,这就是均值类指标的致命弱点。因此,策略开发者通常会使用较低滞后性或者其他不同于均线的方法对行情进行定势!每个交易者都有不同的方法对市场定势,而作者在这期文章中,将用抛物线算法及跨周期进行定势,并用海龟交易法则中的通道,进行构建程序化交易系统。策略盈亏曲线如下:
首先,跟着作者的思路,一起来了解抛物线算法吧。
首先,跟着作者的思路,一起来了解抛物线算法吧。抛物线SAR算法抛物线算法的核心,在于其内部的加速系数。这个就相当于人的大脑,控制我们四肢做出各种动作。而这个加速系数,就是用于控制指标每次上调或下调的尺寸。
( 1 ) 抛物线SAR的计算公式。
① 公式解析(多头为例):作者认为,想要理解公算法逻辑并不难。我们只需要关注AF(加速系数)和EP(反转后的最高价或最低价)变量即可。
行情创新低或新高,AF系数每次会增加0.02,未新高则延续前根k线的AF值,取值范围:0.02≤AF≤0.2。
如果创新高,AF和EP值都会变大。进而,整个抛物线抬升的尺寸就会越大。反之,则尺寸就越小。
如果未创新高,AF和EP将延续前一个根k线的值。
② SAR值分布时而密集,时而分散的原因。
从上图中我们可以看出,当价格出现新高或者新低。SAR值分布较分散,因为AF加速系数和EP越来越大。当价格不创新高或新低时,SAR值分布较为密集。因为EP和AF不变,但是每根k线的SAR值会随着原EP和AF加速系数进行计算。如下图所示:
每当产生新的k线,EP与SAR的差值会越来越小,最终导致SAR值分布密集。小结。抛物线算法的核心,在于加速系数AF与反转期间的极值EP的计算。这两个变量大小直接关乎到SAR值分布的疏密程度。上述,就是关于SAR抛物线指标的算法逻辑。接下来,作者将用SAR的跨周期算法与唐奇安通道结合,开发程序化交易系统。SAR抛物线算法与唐奇安通道结合作者之所以采用SAR抛物线进行多空趋势分割,是因为其相对于均线、MACD来说滞后性较弱。以至于我们可以快于均线、MACD等指标得到交易信号。
在上图中,我们可以看出,抛物线比MACD更早提示市场已进入空头趋势。这也是SAR算法的优势所在!那怎么用好这个指标呢?既然SAR抛物线指标具有相对低滞后性的优点,就可以通过在小周期内获取大周期的SAR值,用于划分多空趋势。并根据划分情况开多或开空。
下面是整个程序化交易系统的交易逻辑。
① 开仓逻辑(空头):
开盘价<月线的SAR,为空头趋势。
最高价跌破唐奇安通道下轨-1倍ATR。
满足上述条件,建立空头头寸。
注:ATR是平均真实波幅。
② 平仓逻辑(空头):
触发具有加速算法的跟踪止盈平仓。
③ 具有加速算法的跟踪止盈方法。第一步,每次创新低就执行一次下面这行代码。AF=AF+Min(0.05,0.2-AF);
AF变量初始值为0.05,是加速系数,决定跟踪止盈线每次调整的尺寸。
Min函数,求括号内的最小值。
第二步,将加速系数AF,控制每一次跟踪止盈线下调的尺寸。StopPrice=StopPrice-AF*(StopPrice-LowValue);
StopPrice变量初始值,为开仓k线的最高价。跟踪止盈线就是它。
LowValue变量,是持仓期间价格的最低价。
加速算法跟踪止盈效果如下:
加速算法跟踪止盈,是根据当前市场的波动进行动态调节每一次上调或下调的尺寸,自适应市场的波动。小结。以上就是整个SAR算法与唐奇安通道相结合的程序化交易系统。其核心在于利用跨周期版本的SAR抛物线算法,对趋势进行了有效分割。降低了滞后性对策略的影响。同时跟踪止盈算法也是本策略的核心之一。
策略回测分析作者用螺纹钢期货指数35分钟周期进行回测,回测结果如下?
( 1 )回测参数设置:
回测资金,10万。
交易周期,35分钟。
回测区间,上市年份至今。
仓位控制,1手。
滑点,1跳。
手续费,1%%。
( 2 )回测资金曲线:
小结。由于我们用月线的SAR进行定势,所以会丢失月线以下大级别的反弹行情。不过没关系,我们抓的就是月线级别的行情。只赚属于策略监控范围内该赚的钱。最后文章主要分享了SAR抛物线算法原理和在多空趋势分割中的具体应用。SAR算法拥有比均线类算法具有较低的滞后性。这对我们通过在小周期内,跨大周期进行趋势分割有很大的意义。同时,为了减少假突破,作者在原突破价增加了1倍ATR。使得策略获得了不错的收益!