A:我们一般传统的用法是根据品种代码获取相关的合约代码(如对应的基准代码等),常见的可参考:FAQ:
Q:期货品种、合约代码与主力线等之间的获取方法
现需要通过指数代码,得到品种信息,比如通过"SH000300"得到ZLIF10,则我们可以通过下面方式实现:
注:仅支持股指期货。
第一步:封装函数,生成指数与期货合约的对照表
Function getFuturesIndexids(Indexid,bstr); //根据指数代码获取期货主力等代码
begin
//Indexid:指数代码,bstr:字段名,如"连二代码"
spzd:=array("IF","IC","IM","IH");
pztable:= select *,spec(base(703030),spec(FuturesZL(today()),["主力代码"])) as "基准代码"
from infotable 708 of spzd end;
czL:=vselect [bstr] from pztable where ["基准代码"]=Indexid end;
return czL;
end
第二步:调用
return getFuturesIndexids("SH000300","主力代码");
返回:ZLIF10
其中,可选字段可参考708表中的字段:FAQ:
Q:期货代码对照表708的使用说明
其它应用:根据指数代码,获取该股指期货的主力实际合约及其基本信息
Indexid:="SH000300";
czL:=getFuturesIndexids(Indexid,"主力代码");
sjHY:= ZLToFuturesID(czL,20250410t); //得到主力在指定日的实际合约
return select * from infotable 703 of sjHY end; //取期货合约的基本信息表
返回:
