Dual Thrust交易策略是由Michael Chalek在上个世纪80年代开发的,该策略是一个趋势跟踪系统,曾长期位于《Future Truth》杂志评选的最赚钱的策略之列。Dual Thrust策略的优点在于适用范围广、思路简洁、拟合参数少等特点,从而被广泛应用在股票、债券、期货等市场。该策略对于市场趋势有较强的把握能力,可以为投资者带来长期稳定的收益。
金融资产的价格趋势大致可以分为两类,即趋势行情和震荡行情。震荡行情指价格在一定的区间内波动,这种波动是随机的因而难以判断价格的运动方向。而在趋势行情中,价格的动向比较容易判断,交易的胜率也会大大提高。Dual Thrust系统的目的是过滤掉震荡行情,抓住趋势从而获得收益。
Dual Thrust策略的基本方法如下:
Step1.
首先HH、NC、HC、LL分别表示如下:
LC:过去N日Close的最低价
HC:过去N日Close的最高价
LL:过去N日Low的最低价
Step2.
利用这些数据计算出震荡区间的上轨和下轨,其中
Step3.
交易规则:
没有头寸时:当价格突破上轨时开多仓,当价格突破下轨时开空仓
持有多头时:价格突破下轨时平多仓,并以相同价格开空仓
持有空头时:价格突破上轨时平空仓,并以相同价格开多仓
Open
上轨
下轨
做多
做空
HC-LL
HH-LC
HC
HH
LC
LL
我们选取沪深300指数期货当月主力合约作为交易对象。由于2015年9月中金所大幅调整沪深300、上证50和中证500三大指数期货的保证金水平和交易费用导致成交量锐减,因此我们暂且选取该调整之前的历史数据进行测试。具体的时间段为2014年1月1日至2015年9月1日,共计409个交易日。从下图可以看出,期货价格在2014年1月至11月之间处于震荡行情,12月起先是经历了一个上涨-震荡-上涨的行情,随后又出现爆跌。我们就Dual Thrust策略是否能够把握住市场趋势这一问题,分别观察策略在这三个阶段的表现。本研究所使用数据来源于Wind资讯。
我们按行情将历史数据大致分为三段,首先分别对数据进行简单的统计分析如下:
表1数据分段统计
|
第一阶段 |
第二阶段 |
第三阶段 |
交易日 |
200 |
153 |
49 |
累积涨幅 |
5.39% |
117.1% |
-29.9% |
平均对数收益率(‰) |
0. 26404 |
5.1 |
-7.9 |
平均振幅 |
33.41 |
115.52 |
255.26 |
上涨比例 |
41.50% |
59.48% |
40.82% |
从表1中可以看出,第一阶段期货指数整体平稳,平均收益率和振幅都比较小,200个交易日的振幅仅为5.39%。从K线图也可以看出,该段数据前半段处于震荡行情,随即在一个短暂的上涨趋势之后重新恢复为震荡行情。该段数据可以测试出策略在震荡行情中的表现。第二段数据为一个中期的牛市,期货指数在153个交易日内上涨了117.1%,平均对数收益率和振幅较前一段数据都有显著提升,因此本段数据是测试策略能否把握上涨趋势的最佳样本。在第三段数据中期货指数在短短的49个交易日中下跌了29.9%,平均振幅更是高达255.26。因此本段数据将检测出交易策略能否应对突如其来的股灾,在暴跌中是否能够迅速应对并调整仓位。
2015年中金所前后多次调整股指期货保证金水平,从最初的10%几次上调至最后的30%。另一方面,本研究的侧重点在于策略对多空方向的判断,因此为了简化计算,我们不考虑保证金问题,同时把佣金定为交易费用的5%。
我们首先测试最初的Dual Thrust策略,即一旦入场后不再退出,只进行方向调整,始终保持持仓数量为1,一直到交易日的最后一天再平仓退出。在该策略下我们选取
表2策略测试结果
全部交易 |
多头交易 |
空头交易 |
|
累积利润 |
1,002,246 |
698,904 |
303,342 |
总盈利 |
3,257,391 |
1,920,696 |
1,776,957 |
总亏损 |
-2,255,145 |
-1,221,792 |
-1,473,615 |
盈亏比 |
1.44 |
1.57 |
1.21 |
交易次数 |
135 |
67 |
68 |
获胜次数 |
62 |
30 |
32 |
失败次数 |
73 |
37 |
36 |
胜率 |
45.93% |
44.78% |
47.06% |
平均利润 |
7,424 |
10,431 |
4,461 |
平均盈利 |
52,539 |
108,580 |
101,793 |
平均亏损 |
-30,892 |
-60,950 |
-62,643 |
最大盈利 |
232,188 |
232,188 |
180,120 |
最大亏损 |
-99,708 |
-99,708 |
-68,868 |
最大连胜 |
15 |
11 |
6 |
交易费用 |
123,102 |
||
最大回撤率 |
-23.05% |
在401个交易日中,策略一共进行了135次交易,其中62次交易盈利,73次亏损,胜率为45.93%。尽管获胜次数要少于失败次数,但策略的平均盈利要大于平均亏损,因而整体是盈利的。这表明策略在判断失误之后能够及时调整仓位,从而避免进一步的损失。
策略在震荡行情中多空变换较频繁,而对于趋势的把握表现较好,上涨时多持有多头,下跌时多持有空头,总体的多空把握较好。从收益可以看出,策略在震荡行情中表现较差,盈亏相当并且收益较低;而在之后的上涨和下跌趋势中盈利和亏损都大幅上升,同时胜率有也有提高。值得注意的一点是第三阶段出现了很多亏损较大的交易日,而这些亏损主要出现在市场暴跌中“回光返照”的时候。
我们进一步分析每次交易的盈亏,即每次调整仓位带来的收益。图4展示了按交易划分的盈亏,可以看出前期策略整体胜率并不算高,但平均盈利要大于平均亏损。
我们以策略入场时的期货价值为初始资金,在不考虑保证金的前提下计算得到了策略的累积收益和资本回撤。策略的最终收益优于期货指数,但在第一阶段却在指数之下,因此有必要分阶段观察策略的表现。
表3策略在各阶段的表现
|
第一阶段 |
第二阶段 |
第三阶段 |
交易次数 |
71 |
48 |
16 |
获胜次数 |
28 |
23 |
11 |
胜率 |
39.44% |
47.92% |
68.75% |
分别对三个阶段的表现进行统计之后,我们可以看出策略在第一阶段的胜率很低,仅为39.44%,同时最大回撤也处于较高水平;而策略在第二、三阶段的趋势行情中胜率有所提高,同时收益也超过了基准。
对策略的改进可以从几方面进行,一是优化对参数的选择,二是加入止盈和止损,三是在考虑保证金的情况下调整杠杆大小。本报告中我们主要考虑参数的选择问题,因此我们选取不同的参数以检测各参数对策略结果的影响。
参数1:
参数2:
参数3:
参数4:
对四组参数分别进行测试后,得到结果如下:
表4各参数的测试结果对比分析
参数1 |
参数2 |
参数3 |
参数4 |
|
累积利润 |
1,002,246 |
1,055,826 |
1,195,806 |
290,166 |
交易次数 |
135 |
147 |
155 |
86 |
最大回撤率 |
-23.05% |
-17.96% |
-24.62% |
-41.86% |
最大连胜次数 |
15 |
15 |
9 |
10 |
总胜率 |
45.93% |
46.94% |
45.16% |
-33.94% |
第一阶段胜率 |
39.44% |
41.10% |
34.48% |
33.33% |
第二阶段胜率 |
47.92% |
51.85% |
53.85% |
50.00% |
第三阶段胜率 |
68.75% |
55.00% |
75.00% |
50.00% |
从四组参数的测试结果可以看出,当N从1增大至2之后,策略的交易次数、累积利润、最大回撤率、胜率等各方面都显著降低。K1减小后策略在第二阶段胜率有所提高,但在第三阶段胜率却显著降低了;K2减小后策略在第二阶段小幅提升,在第三阶段则大幅提高。由上表可以看出,参数的变动在不同的行情中效果是不尽相同的。如何选择合适的参数是优化策略的关键所在。
对于Dual Thrust策略来说,导致亏损的原因是策略发出了错误的信号,而错误的信号又可以分为以下两种:
A类错误:策略发出了错误的交易指令
B类错误:策略未能发出正确交易指令
显而易见的是,如果我们令Range扩大,策略发出的交易指令会减少,因此错误A的概率会降低,同时错误B的概率会增大;反之Range减小,策略会更频繁地发出交易指令,因而错误A的概率会增大,错误B的概率减小。具体关系如下图所示:
减小
增大
A类错误
B类错误
灵敏
稳定
参数
基于以上错误的分类,我们对参数1的亏损交易日进行了分类,结果如下:
表5亏损交易日类型及平均亏损额
|
总数 |
第一阶段 |
第二阶段 |
第三阶段 |
总亏损天数 |
199 |
114 |
66 |
19 |
A类错误 |
122 |
71 |
40 |
11 |
B类错误 |
77 |
43 |
26 |
8 |
A类平均亏损 |
-14,588 |
-5,735 |
-21,511 |
-46,553 |
B类平均亏损 |
-5,100 |
-2,057 |
-8,019 |
-11,963 |
可以看出,B类错误的平均亏损较之A类错误要小得多,减小参数
令
信号正确时可获得的利润
信号错误时产生的亏损
<
<
首先假定测试样本内的数据都是已知的,基于上面的思路,我们对
的分布进行了分析后将参数选择为
表6优化参数后的测试结果
|
全部交易 |
多头交易 |
空头交易 |
累积利润 |
1,380,013 |
888,386 |
491,627 |
总盈利 |
3,507,464 |
2,030,913 |
1,890,457 |
总亏损 |
-2,127,451 |
-1,142,527 |
-1,398,830 |
盈亏比 |
1.65 |
1.78 |
1.35 |
交易次数 |
199 |
99 |
100 |
获胜次数 |
86 |
41 |
45 |
失败次数 |
113 |
58 |
55 |
胜率 |
43.22% |
41.41% |
45.00% |
平均利润 |
6,935 |
8,974 |
4,916 |
平均盈利 |
40,784 |
85,548 |
77,944 |
平均亏损 |
-18,827 |
-36,680 |
-38,681 |
最大盈利 |
195,770 |
194,011 |
195,770 |
最大亏损 |
-58,223 |
-58,223 |
-48,876 |
最大连胜 |
9 |
7 |
6 |
交易费用 |
177,172 |
||
最大回撤率 |
-14.79% |
图5优化参数后的多空示意及单日盈亏
图6优化参
与图3对比后可以显著看出,经过参数优化后策略少了亏损极大的交易日,单日亏损被控制在一个较小的水平,有效地降低了风险。
图7优化参数后的累积收益和最大回撤率
与图6对比后可以看出,经过参数优化后,策略在第一阶段也能够优于基准,最大回撤也从23.05%大幅降低至14.79%,收益和风险两方面都显著提高。
表7优化参数后策略在各阶段的表现
第一阶段 |
第二阶段 |
第三阶段 |
|
交易次数 |
111 |
68 |
20 |
获胜次数 |
43 |
32 |
11 |
胜率 |
38.74% |
47.06% |
55.00% |
从上表可以看出,策略的胜率并没有明显的提高,总体收益的提升主要来自于单次平均亏损的降低。
优化参数的时候,我们假定整段数据都是已知的,这在实际投资中显然是不合理的。因此我们将上面的方法更进一步,利用每个交易日前
我们利用
表8引入时变参数后的测试结果
|
全部交易 |
多头交易 |
空头交易 |
累积利润 |
1,451,998 |
924,376 |
527,622 |
总盈利 |
3,409,729 |
2,046,170 |
1,846,724 |
总亏损 |
-1,957,731 |
-1,121,795 |
-1,319,102 |
盈亏比 |
1.74 |
1.82 |
1.40 |
交易次数 |
197 |
98 |
99 |
获胜次数 |
91 |
43 |
48 |
失败次数 |
106 |
55 |
51 |
胜率 |
46.19% |
43.88% |
48.48% |
平均利润 |
7,371 |
9,432 |
5,330 |
平均盈利 |
37,470 |
79,296 |
71,036 |
平均亏损 |
-18,469 |
-35,595 |
-38,387 |
最大盈利 |
208,781 |
192,201 |
208,781 |
最大亏损 |
-59,249 |
-59,249 |
-52,771 |
最大连胜 |
9 |
7 |
6 |
交易费用 |
174,963 |
|
|
最大回撤率 |
-11.98% |
从上表中可以看出,时变参数策略的平均盈利和亏损都有所降低,但平均亏损降低的幅度要大得多,从而保持了平均利润与原始策略几乎持平,总盈利则增加了约45%,最大回撤率也降低到了11.98%。
可以看出时变参数策略的单次交易亏损保持在更加低的水平上,这表明时变的参数减少了很多A类错误。
图11引入时变参数后累积收益和最大回撤率
在引入时变参数之后,策略的累积收益进一步增加,最大回撤率进一步降低,并且在振荡行情中也能保持与基准相当。
表9引入时变参数后策略在各阶段的表现
第一阶段 |
第二阶段 |
第三阶段 |
|
交易次数 |
109 |
63 |
25 |
获胜次数 |
42 |
36 |
13 |
胜率 |
38.53% |
57.14% |
52.00% |
总体来说,引入时变的参数并不能让胜率大幅提高,尤其是在第一阶段的胜率依然保持在较低水平。但时变参数让策略整体更加灵活,减少了A类错误的发生从而让平均亏损大幅度降低。因此可以认为在Dual Thrust模型中引入时变的参数是有效可行的。
Dual Thrust作为一种经典的交易策略,至今依然活跃在市场中,表明了该策略的有效性,而实证分析的结果也证实了这一点。另一方面,从对比分析的结果也可以看出,参数的选择对于策略的效果影响非常之大,因此合理地选择参数是最核心的问题之一。
在对参数选取进行优化之后,较之原始策略的累积收益提高了38%,最大回撤率从23.05%降低至14.79%,最大单日亏损和最大交易亏损也都显著下降,策略效果提升明显。而在引入了时变的参数之后,这种提升更加明显,累积收益提高了45%,最大回撤率降低至11.98%。这表明了在Dual Thrust策略中加入时变的参数是可行的。
值得注意的一点是,三种策略在第一阶段的胜率都没有超过50%,表明Dual Thrust在震荡行情中的表现不尽理想,这主要是由策略中退场机制的缺乏引起的。当前的策略一旦入场之后没有退出机制,导致了震荡行情中只能换边不能退出因而随价格的波动出现损失。在下一篇报告中我将就这一点做出改进,加入止盈止损策略从而在必要的时刻可以平仓退出,避免进一步的损失。此外,保证金和杠杆也会纳入考虑范围之中。
0
推荐