
价格的走势其实就是由大大小小的波浪构成。而构成波浪的波峰或波谷形态,我称之为”反转”,并且需要具备一定的条件才能确认为反转形态。
一般来说,波峰波谷形成的最低标准是三根k线的组合,即波峰,中间k线最高价最高,两边低,波谷反之。
如下图所示:

但价格并不是我们所想那么简单。三根k线组合成波峰波谷是远远不够的!因为这样的结构在横盘震荡区域是非常常见的,如果按突破波峰波谷的逻辑交易,估计被弄的够呛。
如下图所示:

因此,作者在接下来将对上述计算波峰波谷的逻辑进行改进,并借助交易开拓者tb量化平台,以突破或跌破,波峰波谷的关键位置为开仓信号,以跟踪止盈为平仓信号,构建波浪交易系统。
基于价格反转波浪交易系统的优化
作者在上述中讲到了,以突破波峰波谷的位置来获得开仓信号。但是,由于其波峰波谷的确定标准过为简单,可能会导致在波动较小区域来回触发交易。
如下图所示:

所以,作者将增加波峰波谷点左右两边的k线数量。由原来的左右两根k线,增加至3根,这样就能够提高其波峰波谷形成的门槛,进而达到降低信号触发的次数。
如下图所示:

当我们获取到波峰和波谷之后,就可以构建系统的交易信号。
基于价格反转波浪交易系统的开平逻辑
当我们计算出波峰波谷后,将其设置为上轨下轨并用最新价格突破或跌破轨道作为开仓信号。
具体交易逻辑如下(多头为例)。
① 开仓逻辑:
- 价格突破上轨,做多。

② 平仓逻辑:
- 价格触发加速算法跟踪止盈,平多。

但是,作者发现这样简单的上下轨突破会遇到很多假信号。因此,作者考虑将在轨道基础上增加N倍ATR,以提高信号触发的难度。
这样一来,信号就变得更少,交易次数一旦减少,胜率和盈亏比就很有可能得到显著提升。
③ 开仓信号升级:
- 最新价突破上轨+n倍ATR。
- 平仓逻辑不变。

小结。
其实,策略中的开仓价格大部分情况下都会增加N倍波动率,以降低信号的触发频率,特别是突破类策略开仓模块中,常常应用此方法。
基于价格反转波浪交易系统的代码实现
在策略实现过程中,最主要的是这个价格反转形态,波峰波谷的量化。
一、在tb中要实现这样的形态量化好比探囊取物一般,直接调用内部函数:Pivot()函数。
① 函数参数介绍:

② 策略中的Pivot函数,参数设置。

参数解析:
第一个,是计算波峰,以最高价数据传入函数进行计算。第二个,是计算波谷。
- P:用于计算波峰波谷所需要的总bar数量,P=60。
- M:是波峰波谷点左右两边所需要的bar数量,否则波峰波谷点无效,M=10。
- 第五个参数中的1:代表最近一个波峰波谷。
- 第六个参数中的1/-1:分别代表求波峰/波谷。
- 第七、八个函数是引用型参数: 分别获取波峰波谷价格及其索引。
效果如下图所示:

二、上下轨基础上增加N倍ATR,降低策略触发信号的次数。下图变量中HH,LL就是波峰波谷价格(上下轨) 其中N=2。

效果如下图所示:

三、开仓信号,螺纹期货指数1小时的历史信号,作者按照之前的开仓逻辑进行编写并回测。
如下图所示:

小结。
在策略中,最核心的是波峰波谷的计算以及加速算法跟踪止盈模块。当然了,开仓部分的ATR也是比较重要的,因为它增加了信号的触发难度,减少交易频率。
策略回测统计分析
基于文章所述的策略开平仓逻辑,作者采用螺纹钢期货指数1小时周期进行回测。回测参数及结果如下:
① 策略回测参数设置:
- 回测资金,10万。
- 交易周期,60分钟。
- 回测区间,上市年份至今。
- 仓位控制,1手。
- 滑点,1跳。
- 手续费,1%%。
② 策略交易盈亏曲线:

小结。
作者通过回测报告得出,净利润48360,盈亏比1.82,胜率54%,交易次数261,平均利润185,最回撤-5975。
整个盈利情况看,仅13年亏损-1088,15年、今年小盈。整体来说也不差!
最后
每一个价格波峰波谷的形成,都有其存在的意义。当然,并都是我们所需要的,我们要做的是找出其能够为策略带来持续收益的关键逻辑。
文章及策略代码,仅供交流学习,切勿直接实盘。
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/491286
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!