龙听期货论坛's Archiver

龙听 发表于 2018-1-29 14:15

The Volatility Band Strategy(TVBS)通道交易策略(ZT)

文/By:程式猎人

此TVBS策略是The Volatility Band Strategy,波动率通道策略。通道策略也是很多人接触程式交易会先碰到的交易策略。大家都知道,通道策略有他的弹性,可顺可逆。把通道缩窄一点,就可以做顺势;或是把通道拉宽一点,就可以做逆势,或是再搭配其他指标写成其他的交易策略等。可以发现其实通道无所不在,只是通道的取法各有不同罢了。换个角度来看,我们都只是在寻找两条线,支撑跟压力线来决定进场作多或作空,通道的上限与下限何尝不是这种概念呢!今天猎人要来介绍一个通道策略,来看看这种通道策略的绩效表现如何!

衡量价格波动的方式

有非常多的方法来衡量价格走势的波动率,其中最普遍被使用的方式就是-平均真实区间(Average True Range),其公式为下列三者取最大值:
(1) 今日最高价与最低价的距离
(2) 昨日收盘价与今日最高价的距离
(3) 昨日收盘价与今日最低价的距离

简单来说就是昨日收盘价落在今日K棒高点之上,真实区间就是昨日收盘价减去今日收盘价。如果昨日收盘价落在今日K棒低点之下,真实区间就是今日最高价减去昨日收盘价。如果昨日收盘价落在今日K棒高低点中间,真实区间就是今日最高价减去今日最低价,如下面附图所示:
[img]http://p.qhlt.cn/filestores/2018/01/29/ec145bd21309d1dcdbe4f7b76946e0eb.jpg[/img]


为了使平均真实区间的变化能更平滑一些,这边选择了用TypicalPrice,也就是
(high low close)/ 3取代原本公式所直接採用的high、low和close。因此,修改过后的真实区间公式为:
(1) 如果TypicalPrice > TypicalPrice [1] → TypicalPrice – Low[1]
(2) 如果TypicalPrice < TypicalPrice [1] → TypicalPrice [1] – Low
其中,TypicalPrice是MC内建可以直接使用的函数,至于改善后的真实区间写法就留给大家自行撰写看看。


通道组成方式

通道的组成大致上由两个因子决定,第一个就是中心线,另一个就是通道宽度。大家都知道保力加通道(BollingerBand)是由一条均线当中心线,而通道宽度是由标准差所决定。当然,这裡要介绍的也是一样,中心线是用TypicalPrice所计算出的均线,而通道宽度则是使用上面改善过后的平均真实区间(TypicalPx)来决定。讲了半天,一定很多人想说,到底怎么算阿!猎人别再卖关子了,稍微讲一下嘛!

首先先算出Deviation = (Summation(TypicalPx,Period) / Period) * DevFact;

再来就算出中心线与上下通道宽度如下所示:
MedianAvg = XAverage(TypicalPrice, BandAverage);
DevHigh = XAverage(Deviation, BandAverage);
DevLow = XAverage(Deviation, BandAverage) * LowBandAdjust;

最后可以得到我们的通道的上下限。

上限: XAverage(MedianAvg, BandAverage) DevHigh
下限: XAverage(MedianAvg, BandAverage) - DevLow
中限: XAverage(MedianAvg, BandAverage)

大家一定觉得奇怪为什么通道下限的计算中要乘上LowBandAdjust来调整呢?那是因为经由观察过后发现价格比较常接触到上限,比较不容易接触到下限,所以这边乘上一个因子来做调整,所以看你要怎么去设定都可以。基本上这裡介绍的通道宽度是由DevFact来决定的,想让通道窄一点就设定小一点,想让通道宽一点就设定大一点。所以画出来的通道图就像下图一样。


[img]http://p.qhlt.cn/filestores/2018/01/29/97fa00548db8503a1d10120f2fec8307.jpg[/img]


测试模型:TVBS通道策略

规格与设定 -
• 交易型态:留仓
• 标的商品:台指期
• 週期设定:15分K线
• 回测时间:2002/1/2~2013/9/23
• 回测成本设定:$1000/来回
• 回测软体:MultiCharts

进场规则-
(1) 当high由上往下穿过上限,在Highest(high, N)进场作多。
(2) 当low由下往上穿过下限,在Lowest(low, N)进场放空。

滤网-
(1) 进场时间设定在09:00到13:30。
(2) 结算当日不进场。

出场规则-
(1) 结算日出场。
(2) 停损点设定为亏损75点。
(3) 500点停利。

首先看到策略绩效表,可以发现总绩效还不错,有到260万,最大策略亏损只有27万多,主要是因为进场次数少,而且停损点数小的关係。


[img]http://p.qhlt.cn/filestores/2018/01/29/4eb0a3850b02ffa589e5b06917e67718.jpg[/img]


再来看到总交易分析表,可以看到进场次数只有400多次,不过胜率很低,只有不到40%,这样的策略交易起来心裡会不太舒服就是了。

[img]http://p.qhlt.cn/filestores/2018/01/29/7bb72b57fd5c933721ce9db49d83da63.jpg[/img]


最后看到年週期分析表,可以发现今年竟然赚超过20万,表现得还不错,不过过去几年虽然有点差强人意,但是还是可以获利。

[img]http://p.qhlt.cn/filestores/2018/01/29/43b4ea581d614d4b27a457bf3d5f8f36.jpg[/img]


基本上这个策略有点逆势的感觉,因为他是拉回后,突破再进场。跟一般顺势策略直接突破进场有所不同,所以提供给大家参考。希望可以激发出大家更多的灵感,当然不同参数的设定会有不同的结果,大家有兴趣可以去跑最佳化看看何种参数组合较好,甚至可以改变进场方式看看,比如说:原本是拉回做多,你可以改成直接穿越上限后作多也可以,当然,猎人测过这样还是可以获利的,大家可以试试看!

通道策略的好处在于宽一点的通道可以做逆势策略,窄一点的通道可以做顺势策略.当然你也可以把它组合成顺势加逆势的综合策略.不管是什么策略,可以赚钱就是好策略!

瑋元 发表于 2018-5-5 02:26

下载 学习 谢谢大大 {:biggrin:}

龙听 发表于 2021-10-4 17:27

程式码部分移步:[url]http://www.qhlt.cn/thread-115006-1-1.html[/url]

页: [1]