IF ISLASTBAR THEN
BEGIN
Y:=YEAR;
YY:=STRRIGHT(NUMTOSTR(Y,0),2);
MT:=MONTH; //真实月份
DY:=STRCAT(YY,NUMTOSTREX(MT,0,2));
SIZETEST:=OPTIONSIZE('QQ510050',STRTONUM(DY),0); //取合约数量
M:=IF(SIZETEST>0,MT,IF(MT<12,MT+1,1)); //合约数量大于0则当月未到期,否则下月成当月
当月:=STRCAT(YY,NUMTOSTREX(M,0,2));
次月:=IF(M=12,STRCAT(STRRIGHT(NUMTOSTR(Y+1,0),2),'01'),STRCAT(YY,NUMTOSTREX(M+1,0,2)));
XJY:=IF(M=2 OR M=3 OR M=4,6,IF(M=5 OR M=6 OR M=7,9,IF(M=8 OR M=9 OR M=10,12,3)));
下季月:=IF(M>10,STRCAT(STRRIGHT(NUMTOSTR(Y+1,0),2),'03'),STRCAT(YY,NUMTOSTREX(XJY,0,2)));
GJY:=IF(M=2 OR M=3 OR M=4,9,IF(M=5 OR M=6 OR M=7,12,IF(M=8 OR M=9 OR M=10,3,6)));
隔季月:=IF(M>10,STRCAT(STRRIGHT(NUMTOSTR(Y+1,0),2),'06'),STRCAT(YY,NUMTOSTREX(GJY,0,2)));
CLEARBLOCK('50当月');
CLEARBLOCK('50次月');
CLEARBLOCK('50下季月');
CLEARBLOCK('50隔季月');
SIZEDY:=OPTIONSIZE('QQ510050',STRTONUM(当月),0); //取当月合约数量
FOR I = 1 TO SIZEDY DO
BEGIN
ADDTOBLOCK(OPTIONLABEL(I),'50当月');
END
SIZECY:=OPTIONSIZE('QQ510050',STRTONUM(次月),0); //取次月合约数量
FOR I = 1 TO SIZECY DO
BEGIN
ADDTOBLOCK(OPTIONLABEL(I),'50次月');
END
SIZEXJY:=OPTIONSIZE('QQ510050',STRTONUM(下季月),0); //取下季月合约数量
FOR I = 1 TO SIZEXJY DO
BEGIN
ADDTOBLOCK(OPTIONLABEL(I),'50下季月');
END
SIZEGJY:=OPTIONSIZE('QQ510050',STRTONUM(隔季月),0); //取隔季月合约数量
FOR I = 1 TO SIZEGJY DO
BEGIN
ADDTOBLOCK(OPTIONLABEL(I),'50隔季月');
END
OPOBYPRIRCE('QQ510050',2.2,0,0,1);
IF ISLASTBAR THEN MSGOUT(1,OPOBYPRIRCE('QQ510050',2.25,0,0,1));
END
已知问题:
1、合约加挂当天无法发现加挂合约,可能是某个系统函数的问题;
2、合约到期后要过几天才会换月,原因不明