XN1:=BARSLAST(HOUR<>REF(HOUR,1))+1;
XHH1:=REF(HHV(H,XN1),XN1);
XLL1:=REF(LLV(L,XN1),XN1);
XHHH1:=REF(XHH1,XN1);
XLLL1:=REF(XLL1,XN1);
STICKLINE(CLOSE>0,XHH1,XHH1,COLORRED,0);
DRAWSL(CLOSE>0,XHH1,0,1,0,COLORRED),DOT;
DRAWSL(ISLASTBAR,XHH1,0,60,0,COLORRED),DOT;
STICKLINE(CLOSE>0,XLL1,XLL1,COLORGREEN,0);
DRAWSL(CLOSE>0,XLL1,0,1,0,COLORGREEN),DOT;
DRAWSL(ISLASTBAR,XLL1,0,60,0,COLORGREEN),DOT;
VERTLINE1(WEEKDAY<REF(WEEKDAY,1)),POINTDOT,COLORGRAY;
//周前高低画线
WN1:=BARSLAST(WEEKDAY<REF(WEEKDAY,1))+1;
WHH1:=REF(HHV(H,WN1),WN1);
WLL1:=REF(LLV(L,WN1),WN1);
WHHH1:=REF(WHH1,WN1);
WLLL1:=REF(WLL1,WN1);
STICKLINE(CLOSE>0,WHH1,WHH1,COLORRED,0);
DRAWSL(CLOSE>0,WHH1,0,1,0,COLORRED),LINETHICK2;
DRAWSL(ISLASTBAR,WHH1,0,60,0,COLORRED),LINETHICK2;
STICKLINE(CLOSE>0,WLL1,WLL1,COLORGREEN,0);
DRAWSL(CLOSE>0,WLL1,0,1,0,COLORGREEN),LINETHICK2;
DRAWSL(ISLASTBAR,WLL1,0,60,0,COLORGREEN),LINETHICK2;
//日前高低画线
RN1:=BARSLAST(DATE<>REF(DATE,1))+1;
RHH1:=REF(HHV(H,RN1),RN1);
RLL1:=REF(LLV(L,RN1),RN1);
RHHH1:=REF(RHH1,RN1);
RLLL1:=REF(RLL1,RN1);
STICKLINE(CLOSE>0,RHH1,RHH1,COLORRED,0);
DRAWSL(CLOSE>0,RHH1,0,1,0,COLORRED),LINETHICK2;
DRAWSL(ISLASTBAR,RHH1,0,60,0,COLORRED),LINETHICK2;
STICKLINE(CLOSE>0,RLL1,RLL1,COLORGREEN,0);
DRAWSL(CLOSE>0,RLL1,0,1,0,COLORGREEN),LINETHICK2;
DRAWSL(ISLASTBAR,RLL1,0,60,0,COLORGREEN),LINETHICK2;
//本小时到目前时间点的高低
XH1:=HHV(H,XN1);
XL1:=LLV(L,XN1);
//当天到目前时间点的高低
RH1:=HHV(H,RN1);
RL1:=LLV(L,RN1);
//量能支撑
N:=48;
M:=20;
XX1:=SMA(VOL,N,1);
XX2:=SMA(VOL,M,1);
//以下为上周高低 上日高低 上小时高低
上一周高:WHH1,NODRAW;
上一周低:WLL1,NODRAW;
上一日高:RHH1,NODRAW;
上一日低:RLL1,NODRAW;
上一时高:XHH1,NODRAW;
上一时低:XLL1,NODRAW;
KD1:=XHH1>XHHH1 AND XLL1>XLLL1;//开多前提一 上小时最高大于上上小时最高 上小时最低大于上上小时最低
KK1:=XHH1<XHHH1 AND XLL1<XLLL1;//开空前提一 上小时最高小于上上小时最高 上小时最低小于上上小时最低
KD2:=RHH1>RHHH1 AND RLL1>RLLL1;//开多前提二 昨日最高大于前一日最高 昨日最低大于前一日最低
KK2:=RHH1<RHHH1 AND RLL1<RLLL1;//开空前提二 昨日最高小于前一日最高 昨日最低小于前一日最低
KD3:=C>XHH1 AND VOL>XX1;// 突破上小时的最高价 即突破时开仓
KK3:=C<XLL1 AND VOL>XX1;//跌破上小时的最低价 即跌破时开空
KD:=KD1 AND KD2 AND KD3;
KK:=KK1 AND KK2 AND KK3;
PD:=C<=XLL1-1*MINPRICE;//跌破前一小时的最低价减一个价位 平多
PK:=C>=XHH1+1*MINPRICE;//突破前一小时的最高价加一个价位 平空
KD AND BKVOL=0,BK(SS);//开多指令
KK AND SKVOL=0,SK(SS);//开空指令
BC:=INTPART(SS/2);//减仓一半的手数计算
DJC:=C>=WHH1 AND BKVOL=SS;//大于上一周的最高点 减仓一半
KJC:=C>=WLL1 AND SKVOL=SS;//小于上一周的最低点 减仓一半
DJC AND BC>0,SP(BC);//多减仓指令
KJC AND BC>0,BP(BC);//空减仓指令
PD AND BKVOL>0,SP(BKVOL);//多平仓指令
PK AND SKVOL>0,BP(SKVOL);//空平仓指令
DZS:=C<REF(L,BARSBK)-1*MINPRICE;//做多开仓后,当一分钟线向上突破前一小时的高点,则在突破那根阳线的最低点减1个跳动值为止损点位;
KZS:=C>REF(H,BARSSK)+1*MINPRICE;//做空开仓后,当一分钟线向下突破前一小时的低点,则在突破那根阴线的最高点加1个跳动值为止损点位;
DZS AND BKVOL>0,SP(BKVOL);
KZS AND SKVOL>0,BP(SKVOL);
//以下为信号执行风格指令 突破即时下单开仓 平仓
CHECKSIG(BK,'A',0,'C',0,0);
CHECKSIG(SK,'A',0,'C',0,0);
CHECKSIG(BP,'A',0,'C',0,0);
CHECKSIG(SP,'A',0,'C',0,0);
//便于成交 超价下单
SETSIGPRICETYPE(BPK,CMPETITV_ORDER);
SETSIGPRICETYPE(SPK,CMPETITV_ORDER);
SETSIGPRICETYPE(BK,CMPETITV_ORDER);
SETSIGPRICETYPE(SK,CMPETITV_ORDER);
SETSIGPRICETYPE(BP,CMPETITV_ORDER);
SETSIGPRICETYPE(SP,CMPETITV_ORDER);
SETSIGPRICETYPE(CLOSEOUT,CMPETITV_ORDER);
源码没有问题的,其中SS是参数需要在参数列表中定义出来
此外,1楼源码是专业的程序化交易模型,wh6是看盘软件无法加载使用的,您了解一下
如果您是需要研究程序化交易,需要可以下载wh8软件体验一下:http://www.wenhua.com.cn/