--------------------------------
我搞了一个可自定义不同品种交易单位手数的“参数设置”,但是,在交易中所下的单都为“1手”,而不是我所设定的,请高手们帮助解决问题出在哪里。
VZN:=3; //(3,0,100)
VRU:=2;
VTA:=3;
VSRX:=4;
VL:=3;
STKV:=if(stricmp(strleft(stklabel,2),'ZN')=0,VZN,0) or
if(stricmp(strleft(stklabel,2),'RU')=0,VRU,0) or
if(stricmp(strleft(stklabel,2),'TA')=0,VTA,0) or
if(stricmp(strleft(stklabel,3),'SRX')=0,VSRX,0) or
if(stricmp(strleft(stklabel,1),'L')=0,VL,0);
//LD1无仓开多
if ZQMJ and STKV and THOLDING=0 then begin
Tbuy(1,STKV,MKT);
end
--------------------------------
STKV:=if(stricmp(strleft(stklabel,2),'ZN')=0,VZN,0) or
if(stricmp(strleft(stklabel,2),'RU')=0,VRU,0) or
if(stricmp(strleft(stklabel,2),'TA')=0,VTA,0) or
if(stricmp(strleft(stklabel,3),'SRX')=0,VSRX,0) or
if(stricmp(strleft(stklabel,1),'L')=0,VL,0);
这里面的每一个都是条件判断
结果是STKV的值非0就是1,如果不是这几个品种的任何一个,那结果就是0
定义一个全局变量,不同品种,赋不同值
这样即可:
STKV:if(stricmp(strleft(stklabel,2),'ZN')=0,1,
if(stricmp(strleft(stklabel,2),'RU')=0,2,
if(stricmp(strleft(stklabel,2),'TA')=0,3,
if(stricmp(strleft(stklabel,3),'SRX')=0,4,
if(stricmp(strleft(stklabel,1),'L')=0,5,0)))));
谢谢火哥,我试试。
我有一个问题,这样的写法,当第1个品种ZN满足条件后,程序还回往下运行吗?例如,在监控多个组合品种时,有时会有多个品种同时满足监控条件,下指令交易。