本帖最后由 技术009 于 2022-8-19 15:43 编辑  
 
需求场景:规避开盘集中移仓换月时候的波动。 
用户可在范例代码基础上自定义 移仓换月的时间,或者额外增加其他限制性换月条件。另外由于使用了某些特定版本才有的函数,请用户使用前确保版本在6.30以及以上。 
具体代码如下: 
[PEL]  复制代码 //功能:实现非主力合约,开盘后30分钟移仓换月,可根据需要自行设置时间
//运行于后台程序化,监控品种为“动态加载---监控持仓”
//该模型可独立运行,无需集成在其他交易模型中。
openMin:=30*60; //开盘30分钟(30*60秒)时,移仓换月
opent30:=TIMETOT0(DYNAINFO(207))-TIMETOT0(opentime(1)) -openMin;
tbuyh:=TBUYHOLDINGex('',STKLABEL,1);//多头可用持仓
tsellh:=TsellHOLDINGex('',STKLABEL,1);//空头可用持仓
//多头,非主力合约,平掉老合约持仓,开新主力合约仓位
if DYNAINFO(228)=0 and opent30>0 and tbuyh>0 then 
begin
    tsell(1,tbuyh,mkt);
    tbuy(1,tbuyh,mkt,0,0,'',DYNAINFO(210));
end
//空头,非主力合约,平掉老合约持仓,开新主力合约仓位
if DYNAINFO(228)=0 and opent30>0 and tsellh>0 then 
begin
    tsellshort(1,tsellh,mkt);
    tbuyshort(1,tsellh,mkt,0,0,'',DYNAINFO(210));
end
 
 
设置须知: 
1.新建一个后台程序化,以上代码作为一个独立模型运行。 
2.信号执行模式建议选择:固定时间间隔的模式,以方便准确执行设置的时间条件 
3.监控品种,务必选择 动态加载-账户栏持仓-当前账户。 
 
具体设置如下图所示: 
 
 
 
 
 
 
 
 
 
 
 |