FAQ > 金融建模 > 建模问题 > 期货相关

Q:如何按今天持仓量得到明天实际主力合约?    

  • A:按收盘数据发布常律,最好在收盘半小时后计算。
    以下案例算法:取今日该品种所有在市合约的收盘后持仓量最大的合约,如果选出来为持仓量为0,则用昨日主力替代。
    注:该实现仅供参考不完全代表实际结果。
    计算主力'ZL000001'明天对应的实际合约Demo:

    ZL:='ZL000001';
       vEndt:=today();
       PZ:=spec(base(703003),ZLToFuturesID(ZL,vEndt));
       stocks:= GetFuturesID(PZ,vEndt);
       setsysparam(pn_date(),vEndt);
       ccD:=select thisrow as 'id',spec(SectionOpenInterest(),thisrow) as 'ccl'
       from stocks end;
       ccD:=select * from ccD order by ['ccl'] desc end;
    if ccD[0,'ccl']=0 then return ZLToFuturesID(ZL,vEndt-1);
       else return ccD[0,'id'];