分享

经典交易算法,基于价格波幅的枢轴区间突破系统

 dushikuaile 2020-05-19

点及财经,股票期货专业投机者。

经典交易算法,基于价格波幅的枢轴区间突破系统

前言

说起价格'枢轴'交易系统,相信每一位量化交易者或许会联想到全球收益top10的量化交易策略。

例如:R-breaker,Dual Thrust等比较经典的基于某个价格为枢轴,然后加减一定阀值得到其他关键价格(上轨、下轨等)的量化策略。

通过突破区间或突破区间后是否反转,作为交易信号的主要来源。

如下图所示:

经典交易算法,基于价格波幅的枢轴区间突破系统

注:R-breaker策略的开平仓逻辑。

而今天,作者同样是给大家分享一个基于昨日k线的枢轴交易系统,并将其称为'P_breaker',即'枢轴区间突破策略'。

同时,作者将在策略中与跨周期、跟踪止盈及波动率(ATR)过滤假突破方法相结合开发程序化交易策略,并实现自动化交易。

'P_breaker'策略中,枢轴区间的算法

文章所说的枢轴区间,可以理解成两条轨道(上轨和下轨),算法也是比较的简单。

我们只需要昨日k线的最高价、最低价和收盘价就可以计算出'P_breaker'策略的枢轴价格区间。

算法如下图所示:

经典交易算法,基于价格波幅的枢轴区间突破系统

注:上图中Pivot_Up、Pivot_Down就是所谓枢轴价格区间的上轨和下轨。'[1]'代表上一个交易日。

想要计算枢轴价格区间,我们的首先得知道Pivot_Range,也就是枢轴价差

枢轴价差,简单来讲。就是昨日k线的高低价均值与昨日k线的高低收价均值之差。

如下图所示:

经典交易算法,基于价格波幅的枢轴区间突破系统

然后,用昨日k线的高低收价均值±Pivot_Range就得到我们的枢轴价格区间Pivot_Up和Pivot_Down这两个轨道。

  • 计算公式:

经典交易算法,基于价格波幅的枢轴区间突破系统

  • 效果如下图所示:

经典交易算法,基于价格波幅的枢轴区间突破系统

这就我们枢轴价格区间的计算方法。

当价格在上轨之上,代表着多头趋势。反之,则为空头趋势

作者将其计算出来以后,迫不及待的赶紧加个开平仓指令看看他的回测效果。以下是策略的开平仓逻辑。

① 开仓逻辑:

  • 价格小于枢轴价格区间下轨。
  • 且价格跌破20周期的唐奇安通道下轨。
  • 满足上述2个条件,开空单。
  • 空头,反之。

如下图所示:

经典交易算法,基于价格波幅的枢轴区间突破系统

② 策略平仓逻辑:

  • 价格突破唐奇安通道上轨平掉多头仓位。
  • 空头,反之。

然而,说实话回测报告差的不是一点半点,而是很差!

如下图所示:

经典交易算法,基于价格波幅的枢轴区间突破系统

③ 策略交易信号:

如下图所示:

经典交易算法,基于价格波幅的枢轴区间突破系统

其他的不说,就说这交易次数。这么多交易次数,很明显就是交易过度而引起的。原因有很多,比如没有进行假突破过滤、方向过滤方法不好、止盈太过灵敏等

交易次数一旦过多,就会影响整个策略的绩效。就拿最致命的一点,那就是滑点成本!进而拉低盈亏比,胜率和平均利润指标。

因此,要想知道自己策略交易次数是否合理,需要策略逻辑与交易信号结合,仔细观察每一笔交易是否是策略应该抓住的。

如下图所示:

经典交易算法,基于价格波幅的枢轴区间突破系统

并观察,信号在震荡区域的表现。如果频繁触发止损,那么策略就还需要改进(过滤)。

因此,作者将结合策略本身特性、跨周期、跟踪止盈及波动率方法来对策略进行改进

'P_breaker'策略的 '全新升级' 版

我们都知道上述策略中,作者观察交易信号。发现策略交易次数过多,震荡区域频繁触发假信号,以及多空趋势的划分仍不够成熟。

以上因素,导致了策略绩效非常糟糕。

如下图所示:

经典交易算法,基于价格波幅的枢轴区间突破系统

而接下来,作者将在不改变原策略的主要交易逻辑的基础上对其进行改进

1. 重大改进一,将计算枢轴价格区间的时间再拉长

在之前,我们用于计算枢轴价格区间的k线仅仅是昨日一根k线。而在这里,作者将用N根日k线的价格数据,组合成一根新的k线。作者在策略中N=3,即3根日k。

利用组合后的k线数据,计算枢轴价格区间。

如下图所示:

经典交易算法,基于价格波幅的枢轴区间突破系统

2. 重大改进二,利用跨周期均线进行多空趋势过滤

在原策略中,价格在上轨之上,称为多头趋势。价格在下轨之下,称为空头趋势。这样是不够的,我们应该顺大势(大周期趋势)。

所以,除了用枢轴价格区间判断趋势外,作者还将采用周线的EMA8均线作为多空趋势过滤器。

如下图所示:

经典交易算法,基于价格波幅的枢轴区间突破系统

注:蓝色线为17分钟周期获取到的周线EMA8均线。

3. 重大改进三,利用波动率ATR过滤假突破。

由于系统在震荡区域频繁的触发假信号,导致策略反复打脸。因此,作者将在开仓价格±1倍ATR,增加信号的触发难度。以降低策略开仓的灵敏度。

如下图所示:

经典交易算法,基于价格波幅的枢轴区间突破系统

4. 重大改进四,作者将采用跟踪止盈作为策略的出场

在原策略中,我们只采用唐奇安通道作为出场。有一个很严重的问题,那就是止盈不够及时,盈利单子很可能变成亏损。

因此,作者将采用具有加速算法的跟踪止盈方法,作为策略的出场。

如下图所示:

经典交易算法,基于价格波幅的枢轴区间突破系统

小结。

以上,就是作者通过自己的一些经验结合策略逻辑,对策略进行改进。

跨周期的过滤,主要是为了顺大势,开仓更具有优势。增加波动率ATR过滤及计算枢轴价格区间所需的日k线数量,是为了让策略开仓信号不那么灵敏,可以减少交易次数。

策略回测统计分析

作者用螺纹钢期货指数17分钟周期进行回测,策略回测参数、盈亏曲线及交易信号如下图所示:

① 策略回测参数设置:

  • 回测资金,10万。
  • 交易周期,17分钟。
  • 回测区间,上市年份至今。
  • 仓位控制,1手。
  • 滑点,1跳。
  • 手续费,1%%。

② 策略交易盈亏曲线:

  • 改进后

经典交易算法,基于价格波幅的枢轴区间突破系统

  • 改进前

经典交易算法,基于价格波幅的枢轴区间突破系统

③ 策略交易信号:

经典交易算法,基于价格波幅的枢轴区间突破系统

经典交易算法,基于价格波幅的枢轴区间突破系统

小结。

从改进前后的资金曲线对比来看,通过4大方法改进之后系统有了非常大的提升。

策略的盈亏比是1.66,胜率是49%,平均利润是103,交易次数是471,最大回撤是-4930。

最后

文章策略的每一个模块都是核心。

例如:'P_breaker'策略的枢轴价幅的计算,以及策略中的跨周期、波动率ATR过滤和跟踪止盈。

这些模块的改进,让首先是让策略的交易次数瞬间骤降,同时降低了策略在震荡区间触发假信号的次数。从而大大提高了策略的胜率等其他统计指标。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多