ma1:ma(c,3); ma2:ma(c,5); majc:=cross(ma1,ma2); masc:=cross(ma2,ma1);
平空开多:=majc;//默认你是走完K模式或者进行回测时候,直接用majc作为条件即可,因为走完K是会在金叉下个K下单操作;如果是固定轮询模式下,替换代码为:ref(majc,1)。使用了ref用来判断上个K是否是金叉;这点请注意! 平多开空:=masc;//原理同上
if 平空开多 then //图表策略的逻辑是同一时刻不能同时有多空持仓,因此这里以反手来处理。 begin sellshort(holding<0,holding,market); buy(holding=0,1,market); end
if 平多开空 then begin sell(holding>0,holding,market); buyshort(holding=0,1,market); end
止损价格1:ref(l,ENTERBARS+2);//开仓K前一个K的最低价,注意这里是指出信号K位置 止损价格2:ref(h,ENTERBARS+2);
sell(c<止损价格1,holding,market); sellshort(c>止损价格2,holding,market);
|