波动率扩张系统主要是想在一波走势明显要发动时,可以进场抓到这波走势,并且趁势扩大获利,当然,我们都知道盘整时,指数都会在区间内震荡,趋势出现时,势必要突破这个区间后,继续发展。
而这个交易系统的进场方式其实很简单,它利用开盘价架构出一个区间,上下区间的范围不太一样,为什么呢?
因为作者认为,指数在往下走的时候,速度往往比往上还要快, 所以它的上区间比较小,下区间比较大。所以他利用每天的开盘价作为基准,再上下加减一个值当作区间。因为上涨跟下跌速度不太相同,所以上区间跟下区间的范围不太一样。
这边利用过去4根K棒长度的平均值乘上一个倍数当作上下区间值,因为上区间比较小,所以倍数值也比较小,反之,下区间的倍数值较大。所以往上突破上区间就作多,往下跌破下区间值就作空,这就是主要的进场逻辑,下面的图就是我们要建构的区间。
接着继续介绍完整的进出场方式。
进场方式
利用开盘价加上1.2倍的前4天的Range当作上限,
减掉1.8倍的前4天的Range当作下限。
并于隔天设定stop单在上限进场作多,设定stop单在下限进场作空。
出场方式
(1)当持有多头部位时,如果指数往下跌破最近4根K棒的最低点就出场。
当持有空头部位时,如果指数往上涨破最近4根K棒的最高点就出场。
(2)当有部位时,设定一个获利目标,当隔天开盘获利点数超过获利目标就出场。
(3)当经过4根K棒后且没有显著获利时出场。
完整源码(适用到multicharts平台,其它平台自行移植!)
// 策略参数定义Input:lmult(1.4), // 多头入场倍数因子smult(2.4), // 空头入场倍数因子profitpt(0), // 固定盈利点数trailbar(6), // 跟踪止损周期minpf(50); // 最小允许盈利金额(单位:点数)var: mp(0); // 声明市场持仓状态变量// 获取当前持仓方向(1=多头,-1=空头,0=无持仓)mp = marketposition;// 多头入场条件:当价格突破开盘价+10周期平均波幅*lmult时买入buy next bar at Open + Average(range,10)*lmult stop;// 空头入场条件:当价格跌破开盘价-10周期平均波幅*smult时卖出sellshort next bar at open - Average(range,10)*smult stop;// 退出逻辑模块{exit}// 多头固定止盈:当开盘价高于入场价+盈利点数+手续费时平仓if mp=1 and Open > entryprice + profitpt + commission*currentcontracts/bigpointvalue thensell next bar at Open;// 空头固定止盈:当开盘价低于入场价-盈利点数-手续费时平仓if mp=-1 and Open < entryprice - profitpt - commission*currentcontracts/bigpointvalue thenbuytocover next bar at Open;// 多头动态止损:基于trailbar周期最低价跟踪止损if mp = 1 thensell next bar at Lowest(low,trailbar) stop;// 空头动态止损:基于trailbar周期最高价跟踪止损if mp =-1 thenbuytocover next bar at Highest(high,trailbar) stop;// 时间止损:持仓超过4根K线且盈利不足minpf时强制平仓if barssinceentry > 4 and positionprofit < minpf*bigpointvalue then beginsell next bar at market;buytocover next bar at market;end;
回测效果(仅供参考)
关注我们微信及群,第一时间获取最新策略解析及程式码
关注微信:
加入群:每天接收新策略新思路
关注公众号:每天经典策略不错过!

