ACCOUNTID:='800000'; //要执行自动换月的账户
//移仓换月的品种
HY1:='CU00';
HY2:='J00';
//连续对应的主力月份合约
ZL:=DYNAINFO2(210,HY1);
ZL2:=DYNAINFO2(210,HY2);
//当日主力合约月份
IF CURRENTTIME>140000 THEN
BEGIN
LSZL:=EXTGBSTRINGSET('LSZL',ZL);
LSZL2:=EXTGBSTRINGSET('LSZL2',ZL2);
END
//品种1自动换月移仓
IF STRCMP(ZL,LSZL)<>0 THEN BEGIN
PREBUYHOLD:TBUYHOLDINGEX(ACCOUNTID,LSZL,1),LINETHICK0; //上月买入持仓
PRESELLHOLD:TSELLHOLDINGEX(ACCOUNTID,LSZL,1),LINETHICK0; //上月卖出持仓
IF PREBUYHOLD>0 THEN BEGIN //多单移仓
TSELL(1,PREBUYHOLD,MKT,0,0,ACCOUNTID,LSZL);
TBUY(1,PREBUYHOLD,MKT,0,0,ACCOUNTID,ZL);
END
IF PRESELLHOLD>0 THEN BEGIN //空单移仓
TSELLSHORT(1,PRESELLHOLD,MKT,0,0,ACCOUNTID,LSZL);
TBUYSHORT(1,PRESELLHOLD,MKT,0,0,ACCOUNTID,ZL);
END
END
//品种2移仓
IF STRCMP(ZL2,LSZL2)<>0 THEN BEGIN
PREBUYHOLD2:TBUYHOLDINGEX(ACCOUNTID,LSZL2,1),LINETHICK0; //上月买入持仓
PRESELLHOLD2:TSELLHOLDINGEX(ACCOUNTID,LSZL2,1),LINETHICK0; //上月卖出持仓
IF PREBUYHOLD2>0 THEN BEGIN //多单移仓
TSELL(1,PREBUYHOLD2,MKT,0,0,ACCOUNTID,LSZL2);
TBUY(1,PREBUYHOLD2,MKT,0,0,ACCOUNTID,ZL2);
END
IF PRESELLHOLD2>0 THEN BEGIN //空单移仓
TSELLSHORT(1,PRESELLHOLD2,MKT,0,0,ACCOUNTID,LSZL2);
TBUYSHORT(1,PRESELLHOLD2,MKT,0,0,ACCOUNTID,ZL2);
END
END