中级突破策略-防止假突破

2014-11-27 16:14
程序化

之前介绍了几个突破策略,实际上使用时会有些困恼,突破点的设定是个难题,定太高很难进场,无法提前抓到趋势,定太低则太早进场,在盘整时不断停损,另外有不时出现的假突破(突然ㄧ根大K棒,然后又拉回),这些原因常造成突破策略的绩效不好,因此,这次就来介绍个突破策略的加强版,目的是让突破的条件再严一点,可用来防止假突破

策略原理:

此策略是价格突破上下轨的同时,同时满足6条均线的价格也要超过上下轨才会开仓,可以防止假的突破开仓,减少亏损次数。策略比较适合商品是单边行情。

测试商品rb,周期为5 min。

源码如下:

Input:Btime(0930),Etime(1445);

//定义时间段。

var:Thigh(0),Tlow(0), mp(0),x(0),y(0),m(6),ma(0),flag1(0),flag2(0);

//定义变量

if datedate[1] then begin

    mp=0;

    x=0;

    y=0;

    Thigh=0;

    Tlow=0;

    flag1=0;

    flag2=0;

end;

//每天给变量重新赋值。

if time=Btime then begin

   Thigh=highD(0);

   Tlow=lowD(0);

end;

//给高点跟低点赋值,以开盘前6个bar的最高为高点,最低为低点。

value1=tl_new(date,900,thigh,date,1500,thigh);

value2=tl_new(date,900,tlow,date,1500,tlow);

//绘图上下轨。

ma=Average(close,m);

//均线价格。修改m值即可调整用来过滤的均线。

mp=marketposition;

//持仓多空定义。

if mp[1]1 and mp=1 then begin

   x=1;

end;

if mp[1]-1 and mp=-1 then begin

   y=1;

end;

//用来控制每天多空的进场次数。

if time>Btime and time=thigh then

         buy ("b1")next bar at Thigh+1 stop;

end;

//当价格上穿后且均线也上穿上轨此时做多。

      if mp-1 then sell("sp") next bar at tlow stop;

//做多后以下轨的价格做出场点位。防止反向亏损。

if time>Btime and time1 then buytocover("bp") next bar at thigh stop;

//做空后以上轨的价格做出场点位,防止反向亏损。

if time>=1450 and mp-1 then sell("sppcs") next bar at market;

if time>=1450 and mp1 then buytocover("sppcb") next bar at market;

//收盘前平仓语句。

策略加载图表案例展示:

宽客网

宽客网
程序化交易, MultiCharts

点击切换 到互动模式(当前为阅读模式)