本帖最后由 技术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.监控品种,务必选择 动态加载-账户栏持仓-当前账户。
具体设置如下图所示:
|