当前位置: 华文星空 > 知识

程序化做趋势跟踪策略怎么精进?

2014-12-01知识

各位答主大大都说的很好,那我献丑说说我的一个改进小思路吧,因为没有看到题主的具体交易数据,我只能靠自己的感觉经验说说,可能不是很成熟, 大神请绕行~

题主的整个策略是由5个趋势型子策略组合而成,在不考虑它们互补性的情况下(看不到子策略数据,无法考虑),每个子策略表现越好,那组合策略表现就越好。

策略改进的方向之一就是优化子策略的表现 ,比如说,通过观察实盘的交易详情,看看能否发现和过滤掉部分亏损的开仓信号模式,提高策略的盈亏比。

下文就给大家介绍一个量化小技巧,能将策略的盈亏比从1.1提高到1.7 ,可能举的实例不是很恰当,大家体会大概的意思就好,先放上改进前和改进后的盈亏曲线对比,让大家先直观感受一下。

改进之前:

改进之后:

趋势策略的核心思想是「截断亏损,让利润奔跑」,显著特点就是「高盈亏比,低胜率」,一次盈利抵扣几次亏损。

趋势策略开仓信号分为「真趋势信号」和「假趋势信号」,真趋势信号就是让策略真正盈利的信号,而假趋势就是「开仓之后不久,标的价格朝反方向运行「的情况。

假趋势信号次数过多的话,不仅增加了交易次数,提高交易成本,还拉低了策略的盈亏比,因此,过滤掉策略的假趋势信号,便能有效地提高策略绩效。

如何过滤掉假趋势信号呢?这就要引入此处所要介绍技巧的核心指标——ATR(Average True Range,平均真实波动范围)。

ATR出自于【海龟交易法则】当中,经常被用于量化策略的开平仓指标构建和资金管理当中,在本技巧当中主要是用于提高突破策略开仓的「难度」,进而过滤掉部分假趋势信号。

ATR指标主要用来衡量当前标的近期波动率(行情自适应),如下图所示,其中

A = T日最高价 – T日最低价

B = ABS(T-1日收盘价 – T日最低价)

C = ABS(T-1日收盘价 – T日最高价)

TR = MAX(A,B,C)

ATR = MA(TR,N),N为周期数

价格波动越大(不管向上还是向下),TR值(下图尖峰状黑线)就越大,为了平滑单日TR极值的影响,ATR采用了平均的思想,将多个周期的TR值平均,用于衡量最近一段时期平均波动幅度的大小。

让我们先来构建一个简单的策略,看看在不使用ATR指标进行假趋势过滤时的绩效。

原始策略是纯粹基于PVT算法(算法原理详见 PVT指标 ),如下图所示,在PVT指标上穿PVT上轨时,策略开仓,采用跟踪止损的方式进行平仓。

策略回测盈亏曲线如下所示,从中看出策略绩效并不理想,主要是由于存在着较多的假趋势信号。

接下来,我们引入ATR指标,在原有的开仓方式上加入过滤条件「价格高于前期最高价+1.2倍ATR」,平仓方式保持不变。

改进后的策略回测盈亏曲线如下所示,可以看出策略绩效出现了明显的改善,这是因为新加入的ATR过滤条件过滤了部分的假趋势信号。

本次策略测试所使用的源码如下:

这只是展示了ATR波动率过滤假趋势信号和优化策略盈亏比的一个小例子,他还有更多让策略精进的方法,留待各位大大去探索了。

更多内容请见: