CTA策略之均价振幅ATR策略

一、摘要

在物理学中,振幅是在波动或振动中距离平衡位置或静止位置的最大位移,它是表示振动的范围和强度的物理量。而商品期货中的振幅就是:开盘后的当日最高价和最低价之间的差的绝对值与昨日收盘价的百分比,它在一定程度上表现该品种的活跃程度。另外还有一种当日振幅的简单的计算方式,即收盘价减去开盘价。本篇就以发明者量化平台的MY语言开发一个均价振幅ATR策略。

二、什么是振幅

对于CTA趋势跟踪策略来说,趋势行情是其获利来源,振幅直接反映了一个品种是否活跃,间接则反映了一个品种是否有趋势行情。振幅有很多计算方式:当日振幅、周期振幅等等...以周期振幅为例:

假如铁矿石10日前的收盘价是1000,当前K线最高价是1050,上涨5%,最低价是950,下跌5%,那么振幅就是10%。也就是说价格的振幅是当前K线最高价减去当前K线最低价,再除以前10日K线的收盘价就是其振富比。

除了周期振幅的计算方式外,还有一种更为简单的计算方式,即当日振幅:最高价减去最低价,或者收盘价减去开盘价。而本策略则是以N日的平均收盘价减去N日的平均开盘价为振幅的依据。

三、什么是真实波动幅度

在这个策略中,真实波动幅度主要用于判断开盘仓的买卖时机。真实波动幅度(ATR)是计算一段时期内价格波动幅度的移动平均值。最初是由Welles Wilder在《技术交易系统中的新概念》中最先提出的。

真实波动幅度(ATR)经常引用趋势跟踪策略中,如果ATR的值越高,表示价格的趋势性越强,反之ATR的值越低,表示价格的趋势性越弱。所以使用ATR作为策略开平仓条件的一部分,可以有效过滤部分震荡行情。

四、策略实现

第1步:计算均价振幅

定义均价振幅(AMP),即收盘价均线 - 开盘价均线

第2步:计算真实波动幅度

首先计算出TR(即当天的真实波幅),计算公式为:TR = 当天的高点—当天的低点;但有时候价格会出现跳空高开以及跳空低开的情况,在这种情况下,当天的TR值为:

跳空高开:TR = 当天的高点—昨天的收盘价

跳空低开:TR = 昨天的收盘价—当天的低点

由于一天TR有随机性,并不能代表最近市场整体波动率,所以用ATR更能衡量市场的波动性,常用的是14周期的ATR,即:ATR = (前13天的TR + 当天的TR)/ 14。最后为了针对部分品种,使用一个系数重新定义平均真实波幅(NATR)。

第3步:计算开平仓价格

多开价格:如果均价振幅上穿0,那么其价格是最高价+NATR

空开价格:如果均价振幅上穿0,那么其价格是最低价-NATR

多平价格:如果均价振幅下穿0,那么其价格是最低价-NATR

空平价格:如果均价振幅下穿0,那么其价格是最高价+NATR

第4步:下单交易

多头开仓:如果当前K线数量大于N,并且收盘价大于等于BKP

空头开仓:如果当前K线数量大于N,并且收盘价小于等于SKP

多头平仓:如果均价振幅是否下穿0,或者收盘价小于等于SPP

空头平仓:如果均价振幅是否上穿0,或者收盘价大于等于BPP

 

五、策略回测

回测开始日期:2016-01-01

回测结束日期:2021-04-01

数据品种:铁矿石指数

数据周期:日线

滑点:开平仓各2跳

回测配置

回测绩效

收益概览

 

六、完整策略代码

本文来源:陀螺财经 文章作者:发明者量化
收藏
举报
发明者量化
累计发布内容31篇 累计总热度10万+

陀螺财经现已开放专栏入驻,详情请见入驻指南: https://www.tuoluocaijing.cn/article/detail-27547.html

发明者量化专栏: https://www.tuoluocaijing.cn/columns/author323211/

本文网址: https://www.tuoluocaijing.cn/article/detail-10063425.html

免责声明:
1、本文版权归原作者所有,仅代表作者本人观点,不代表陀螺财经观点或立场。
2、如发现文章、图片等侵权行为,侵权责任将由作者本人承担。

相关文章