////////////////////////////////////////////特殊条件///////////////////////////////////////////////
小短:=3;
aa:=0.01;
/////////////////////////////////////////////冬令时//////////////////////////////////////////////////
bz:=0;//=1代表冬令时
冬令时:=if(bz=0,000000,010000);
cond0:=if(date()<>ref(date(),1),1,0);//夏令时初始时间
cond1:=if((time>010000 and time<=013000 and time-ref(time,1)>8000) or time=010300,1,0);//冬令时初始时间
cond:=if(bz=0,cond0,cond1);
/////////////////////////////////////////////常规参数//////////////////////////////////////////////////
xx1:=5;
N:=barslast(cond),PRECISION0,linethick0,coloryellow;//设置当日起点为N=0
ksx:=wma(c,66),PRECISION4,LINETHICK0,coloryellow;// 200分钟的wma
Msx:=MA(CLOSE,380),PRECISion4,LINETHICK0,COLORred;//折算60图的20均线
仓:holding,LINETHICK0,coloryellow;//持仓数量
/////////////////////////////////////////////////开仓条件//////////////////////////////////////////////////////
bk31:=longcross(ksx,msx,38);
bk3:=if(sum(bk31,38)>0 and ksx>msx+2*aa and c<ksx+xx1*aa,1,0);
bkzh1:=if(bk3>0,1,0);//用于开平
sk31:=longcross(msx,ksx,38);
sk3:=if(sum(sk31,38)>0 and ksx<msx-2*aa and c>ksx-xx1*aa,1,0);
skzh1:=if(sk3>0,1,0);//用于开平
///////////////////////////////////////////////////////////////////////平仓动作///////////////////////////////////////////////////////////////////////
timexk1:=if(time<>231500+冬令时,1,0);
sell(timexk1*n>1 and skzh1>0,仓,limitr,c);//出现反手情况先平仓,增加点差,保证成交
sellSHORT(timexk1*n>1 and bkzh1>0,仓,limitr,c);//出现反手情况先平仓,增加点差,保证成交
/////////////////////////////////////////////////////////////////////////开仓动作//////////////////////////////////////////
clzd:STKINDI('','wqclzd.仓',0,17,0),PRECISION0,LINETHICK0,colorwhite;
{开多}BUY(bkzh1>0 and 仓<小短 and 小短>0,小短,limitr,c);
{开空}BUYSHORT(skzh1>0 and 仓>-小短 and 小短>0,小短,limitr,c);
以上公式,用于测试原油cl00 的3分钟图,取消倒数第三行的clzd,就可以测试,有了clzd,测试结果就是000000
公式wqclzd,没有问题且有200条以上的语句,如果,将公式wqclzd简化到50条语句以下,上述范例就能运行了
这个在改版前,用200条语句的wqclzd是可以正常测试的