您需要自己代码中把当前品种所有月份的成交量写出来,然后用连续的去和每一个做比较。
STKINDI('IF00','vol.VOLUME',0,1)
类似这个是取得if00的1分钟的成交量,其他依次类推。
那图表程序就不可以用了,只能用在后台了?
合约代码:=EXTGBDATA(代码);
合约头:=STRLEFT(STKLABEL,2);
tVOL:=STKINDI(合约代码,'vol.VOLUME',0,1);
IF tVOL<>VOL AND CYC=1 THEN BEGIN //如果成交量不同代表换主力合约了,找新的主力合约代码
tVOL:=STKINDI(STRCAT(合约头,'01'),'vol.VOLUME',0,1);
if tVOL=VOL THEN 合约代码:=STRCAT(合约头,'01');
tVOL:=STKINDI(STRCAT(合约头,'02'),'vol.VOLUME',0,1);
if tVOL=VOL THEN 合约代码:=STRCAT(合约头,'02');
tVOL:=STKINDI(STRCAT(合约头,'03'),'vol.VOLUME',0,1);
if tVOL=VOL THEN 合约代码:=STRCAT(合约头,'03');
tVOL:=STKINDI(STRCAT(合约头,'04'),'vol.VOLUME',0,1);
if tVOL=VOL THEN 合约代码:=STRCAT(合约头,'04');
tVOL:=STKINDI(STRCAT(合约头,'05'),'vol.VOLUME',0,1);
if tVOL=VOL THEN 合约代码:=STRCAT(合约头,'05');
tVOL:=STKINDI(STRCAT(合约头,'06'),'vol.VOLUME',0,1);
if tVOL=VOL THEN 合约代码:=STRCAT(合约头,'06');
tVOL:=STKINDI(STRCAT(合约头,'07'),'vol.VOLUME',0,1);
if tVOL=VOL THEN 合约代码:=STRCAT(合约头,'07');
tVOL:=STKINDI(STRCAT(合约头,'08'),'vol.VOLUME',0,1);
if tVOL=VOL THEN 合约代码:=STRCAT(合约头,'08');
tVOL:=STKINDI(STRCAT(合约头,'09'),'vol.VOLUME',0,1);
if tVOL=VOL THEN 合约代码:=STRCAT(合约头,'09');
tVOL:=STKINDI(STRCAT(合约头,'10'),'vol.VOLUME',0,1);
if tVOL=VOL THEN 合约代码:=STRCAT(合约头,'10');
tVOL:=STKINDI(STRCAT(合约头,'11'),'vol.VOLUME',0,1);
if tVOL=VOL THEN 合约代码:=STRCAT(合约头,'11');
tVOL:=STKINDI(STRCAT(合约头,'12'),'vol.VOLUME',0,1);
if tVOL=VOL THEN 合约代码:=STRCAT(合约头,'12');
EXTGBDATASET(代码,合约代码);
END
这段代码有什么错误么?
怎么不行,请看看.谢谢!!
另外,请教一下在IF 里面可以用STKINI函数么?
因为以前用过好象有错的.
VOL0:STKINDI(STRCAT(STRLEFT(STKLABEL,2),'00'),'vol.VOLUME',0,6);
VOL1:STKINDI(STRCAT(STRLEFT(STKLABEL,2),'01'),'vol.VOLUME',0,6);
VOL2:STKINDI(STRCAT(STRLEFT(STKLABEL,2),'02'),'vol.VOLUME',0,6);
VOL3:STKINDI(STRCAT(STRLEFT(STKLABEL,2),'03'),'vol.VOLUME',0,6);
IF VOL0=VOL1 THEN EXTGBSTRINGSET('合约代码',STRCAT(STRLEFT(STKLABEL,2),'01'));
IF VOL0=VOL2 THEN EXTGBSTRINGSET('合约代码',STRCAT(STRLEFT(STKLABEL,2),'02'));
IF VOL0=VOL3 THEN EXTGBSTRINGSET('合约代码',STRCAT(STRLEFT(STKLABEL,2),'03'));
DRAWTEXT( 1,H ,EXTGBSTRING('合约代码'))
理解下把