关于趋势交易里资金回撤的一种改善思路
本文主要试图讨论一种趋势交易下的资金管理方式。
对于趋势化交易,我们的资金曲线,往往会出现类似下面的情况:
也就是在一个比较大的资金上涨之后,会跟着出现若干次连续的下降,甚至回到上涨之前。这种资金回撤,实在是打击积极性。
这种情况,我认为出现的原因如下:
1、使用了趋势化交易
如下面一个典型的趋势化交易图可以看到,趋势化交易主要是通过抓取大的波段来获利,但是其过程中,会经历不少小的震荡。而一般情况下,一波大的行情之后,容易出现一个小的平台,行情会在这个平台上辗转反侧,然后再会走向新的趋势方向。
2、使用了资金管理
这是一个相当重要的原因。由于我目前主要研究的是基于百分比调整的资金管理模式,所以我也主要对这种模式下的交易进行分析。这种资金管理,其原理是获利后账面增长时,加大交易量。
可以想象,一个趋势被捕捉到以后,碰到小平台前,资金量会出现一个比较大的资金增长。而百分比的资金管理模式,基本都会在这种情况下做出新的计算, 在下一次交易里,放大交易量。可是不幸的是,正好这个时候,是在一个平台内横盘,见上图。于是放大了的交易量,会在横盘期进行交易。多数情况下,损失不可 避免。
———————–
所以这也就导致我产生一个简单的解决思路:
1、在获取大的盈利后,减少下一次的交易量。
比如盈利前交易是10手,程序检测到是大幅度盈利后,可以判断为抓住一波趋势,于是,通过某种算法减少交易量,比如减到8手。
2、上面的调整方式是和百分比交易的资金管理是矛盾的,所以,对于这里的减少交易量,仅维持若干次交易就终止。比如上面的例子,减少到8手后,不能一直这样下去,否则资金管理就产生了混乱,而是在经历若干次交易后,恢复到正常的交易水平。
理想的情况下,减少的交易可以熬过这个横盘,并且维持一定的交易量,以防完全的踏空。
———————–
针对上述思路,我编写了程序,并且做了测试。
交易程序:某趋势化交易
资金管理:基于百分比和optiaml F基础上的改进方法(可以参见我前面文章的讨论)
回撤管理:检测到资金大幅增加后在若干次交易里减少交易量
测试程序:Tradeblazer(TB)
测试商品:SR1301、TA1301、RB1301
测试周期:2012年1月1日到~今天,5分钟线
下面是三种商品的测试曲线和数据,其中1手是固定1手的交易,用于做基础对比,资金管理,是指只引入资金管理后的测试,回撤管理,是指引入资金管理+回撤管理后的测试。
需要这里特别说明的是,由于是一种方法的探索,所以我在程序上,对减少的交易量、减少交易量的持续时间,都作为优化变量来进行测试,以期观察不同组 合下的表现。从测试过程来说,有点过度优化的倾向,但是下面的数值,并非是完全取的最优的数值,也尽量避免取那些所谓的“孤岛”现象对应的数值。所以下面 的测试数据,基本是可信且具有代表性的。
SR1301的对比测试:
其绩效的具体数值如下:
TA1301的对比测试:
其绩效的具体数值如下:
RB1301的对比测试如下:
其绩效的具体数值如下:
从测试情况来看,改善并非完全都是有效的。比如对于TA1301的交易,几乎没有什么改善。对于SR1301,回撤的改善不大,但是利润率的提高却是巨大的。对于RB1301,改善都比较大。
下面是我取的SR1301的改善前后的资金变化对比图,大家可以自行对比观察一下引入回撤管理后的影响变化。
有资金管理,无回撤管理:
有资金管理,有回撤管理:
最终结论:
不论改善的程度如何,整体来看,都是有提高的。但是引入过多的变量,会带来新的问题,谁也不知道未来是什么样的,以过去的交易来优化的数值,在未来 未必能产生效果,所以参数的取舍,是需要非常谨慎的。不过从具体的测试结果来看,大部分的参数,都能改善交易绩效,我想这主要是因为我的交易系统,有着本 文开头提到的两个固有的问题而造成的,这样来看,对于我目前的交易系统,使用回撤管理,应该还是有用的。
特别说明:
本文仅作理论性的探讨,并且对于交易系统和资金管理都是有针对性的,如果采用的是量化交易,那么我认为这种方式可能就不适用了。
为了简化问题的讨论,而让主题明确,本文忽略了具体的交易方式和资金管理模型,但是我想应该适用于通用的趋势交易和通用的百分比资金管理模型。至于其中提到的对资金变化的检测,倒是采取了一点特别的技巧,这里也一并忽略了,相信设计这样的检测程序并非难事。
另外这里纯粹是对资金管理的一种附加模型讨论,凌驾于交易模型之外,其实如果交易模型本身能设计的精巧一些,回避这样的回撤,那也是另外一种思路了。