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

Q:期货品种、合约代码与主力线等之间的获取方法    

  • 说明:
    天软新增期货代码对照表708,可更方便期货各代码之间的相互转换,可支持:期货品种代码、期货指数代码、期货主力代码、期货连续代码之间的两两相互转换。
    相关数据说明请参考:FAQ:2020-03-08-数据更新-期货数据001:关于增加期货品种代码对照表数据及其访问方法(更新版)

    用户可通过设置当前证券为期货代码/期货主力代码/连续代码/品种代码或’品种代码.qh’等代表期货合约的有效代码,用base(字段id)提取到其对应的其它的期货代码,其字段id对照表如下:
    ID类型名称
    708001Char品种代码
    708002Integer变动日
    708003Char品种名称
    708004Char主力代码
    708005Char指数线代码
    708006Char连续代码
    708007Char连一代码
    708008Char连二代码
    708009Char连三代码
    708010Char连四代码

    两两之间的互转

    //主力->连续
    setsysparam(pn_stock(),'ZL000004');
    return base(708006);//返回:LXFU00
    //连续->主力
    setsysparam(pn_stock(),'LXFU00');
    return base(708004); //返回:ZL000004
    //连续->品种
    setsysparam(pn_stock(),'LXFU00');
    return base(708001); //返回:FU
    //其他等等都可用此方式获取


    根据数据情况,提供了通过其它期货代码得到品种代码的函数:FuturesCodeToPZ
    定义:FuturesCodeToPZ(StockID:String):String
    说明:通过期货合约代码得到该合约的品种代码
     支持通过期货合约代码、主力代码、指数代码、连续代码得到期货品种代码
     可与当前证券代码相关,若无参数StockID,则取当前证券代码为指定代码。
    参数:
    StockID:字符串,合约代码
    返回:字符串,若该合约不存在则返回nil。
    范例:

    //与当前证券代码相关的用法:取当前合约IF2001对应的品种代码
    setsysparam(pn_stock(),'IF2001');
       return FuturesCodeToPZ();//返回’IF’
    //得到连豆一连一合约代码对应的品种代码
    return FuturesCodeToPZ('LXA01'); //返回'A'
    //得到指定期货合约ss2101对应的品种代码
      return FuturesCodeToPZ('SS2101'); //返回'SS'

    应用范例(根据708表):
    应用一:通过品种代码得到其它合约
    范例01:获取期货黄大豆1号的指数线代码

     Setsysparam(pn_stock(),'a');
     Return base(708005); //返回’ QI000014’

    应用二:期货代码之间的相互转换,下面范例均以黄大豆1号的合约为例
    范例02:期货实际合约->主力合约

       stockid:='a2001';
       pz:= FuturesCodeToPZ(stockid);
       pzid:=pz$'.qh';
       setsysparam(pn_stock(),pzid);
       return base(708004);//返回:’ZL000014’
    //可简写为:return spec(base(708004),FuturesCodeToPZ('a2001')$'.qh');

    应用三:取所有期货代码对照数据
    范例03:

      //取所有期货品种代码
      stocks:=getbk('期货品种代码');//板块可更改为:'期货指数线'或'期货主力'或'期货连续'

      //取所有期货代码对照表数据
      t:= select *
        from infotable 708 of stocks order by ['主力代码'] end;
      return t;

    //返回结果
    StockIDStockName品种代码变动日品种名称主力代码指数线代码连续代码连一代码连二代码连三代码连四代码
    IC中证500指数IC20150416中证500指数IC00ICIndIC01IC02IC03IC04
    IF沪深300指数IF20100416沪深300指数IF00IFIndIF01IF02IF03IF04
    IH上证50指数IH20150416上证50指数IH00IHIndIH01IH02IH03IH04
    T10年期国债T2015032010年期国债T00TIndT01T02T03
    TF5年期国债TF201309065年期国债TF00TFIndTF01TF02TF03
    TS2年期国债TS201808172年期国债TS00TSIndTS01TS02TS03
    alal19920528ZL000001QI000001LXAL00LXAL01LXAL02LXAL03LXAL04
    au黄金au20080109黄金ZL000002QI000002LXAU00LXAU01LXAU02LXAU03LXAU04
    cucu19930301ZL000003QI000003LXCU00LXCU01LXCU02LXCU03LXCU04
    fu燃料油fu20040825燃料油ZL000004QI000004LXFU00LXFU01LXFU02LXFU03LXFU04
    ru天然橡胶ru19931101天然橡胶ZL000005QI000005LXRU00LXRU01LXRU02LXRU03LXRU04
    znzn20070326ZL000006QI000006LXZN00LXZN01LXZN02LXZN03LXZN04
    CF棉花CF20040601棉花ZL000007QI000007LXCF00LXCF01LXCF02LXCF03LXCF04
    OI菜籽油OI20120716菜籽油ZL000009QI000009LXOI00LXOI01LXOI02LXOI03LXOI04
    RO菜籽油RO20070608菜籽油ZL000009QI000009LXRO00LXRO01LXRO02LXRO03LXRO04
    SR白糖SR20060106白糖ZL000010QI000010LXSR00LXSR01LXSR02LXSR03LXSR04
    TAPTATA20061218PTAZL000011QI000011LXTA00LXTA01LXTA02LXTA03LXTA04
    WH强麦WH20120724强麦ZL000012QI000012LXWH00LXWH01LXWH02LXWH03LXWH04
    WS强麦WS20030328强麦ZL000012QI000012LXWS00LXWS01LXWS02LXWS03LXWS04
    PM普麦PM20120117普麦ZL000013QI000013LXWT00LXWT01LXWT02LXWT03LXWT04
    WT硬麦WT19980101硬麦ZL000013QI000013LXWT00LXWT01LXWT02LXWT03LXWT04
    a黄大豆1号a20020315黄大豆1号ZL000014QI000014LXA00LXA01LXA02LXA03LXA04
    b黄大豆2号b20041222黄大豆2号ZL000015QI000015LXB00LXB01LXB02LXB03LXB04
    c玉米c20040922玉米ZL000016QI000016LXC00LXC01LXC02LXC03LXC04
    l聚乙烯l20070731聚乙烯ZL000017QI000017LXL00LXL01LXL02LXL03LXL04
    m豆粕m20000717豆粕ZL000018QI000018LXM00LXM01LXM02LXM03LXM04
    p棕榈油p20071029棕榈油ZL000019QI000019LXP00LXP01LXP02LXP03LXP04
    y豆油y20060109豆油ZL000020QI000020LXY00LXY01LXY02LXY03LXY04
    RI早籼稻RI20120724早籼稻ZL000021QI000021LXRI00LXRI01LXRI02LXRI03LXRI04
    ER早籼稻ER20090420早籼稻ZL000021QI000021LXER00LXER01LXER02LXER03LXER04
    wr线材wr20090327线材ZL000022QI000022LXWR00LXWR01LXWR02LXWR03LXWR04
    rb螺纹钢rb20090327螺纹钢ZL000023QI000023LXRB00LXRB01LXRB02LXRB03LXRB04
    v聚氯乙烯v20090525聚氯乙烯ZL000024QI000024LXV00LXV01LXV02LXV03LXV04
    pbpb20110324ZL000025QI000025LXPB00LXPB01LXPB02LXPB03LXPB04
    j焦炭j20110415焦炭ZL000026QI000026LXJ00LXJ01LXJ02LXJ03LXJ04
    MA甲醇MA20140617甲醇ZL000027QI000027LXMA00LXMA01LXMA02LXMA03LXMA04
    ME甲醇ME20111028甲醇ZL000027QI000027LXME00LXME01LXME02LXME03LXME04
    ag白银ag20120510白银ZL000028QI000028LXAG00LXAG01LXAG02LXAG03LXAG04
    FG玻璃FG20121203玻璃ZL000029QI000029LXFG00LXFG01LXFG02LXFG03LXFG04
    RS油菜籽RS20121228油菜籽ZL000030QI000030LXRS00LXRS01LXRS02LXRS03
    RM菜籽粕RM20121228菜籽粕ZL000031QI000031LXRM00LXRM01LXRM02LXRM03LXRM04
    jm焦煤jm20130322焦煤ZL000032QI000032LXJM00LXJM01LXJM02LXJM03LXJM04
    bu沥青bu20131009沥青ZL000033QI000033LXBU00LXBU01LXBU02LXBU03LXBU04
    i铁矿石i20131018铁矿石ZL000034QI000034LXI00LXI01LXI02LXI03LXI04
    TC动力煤TC20130926动力煤ZL000035QI000035LXTC00LXTC01LXTC02LXTC03LXTC04
    ZC动力煤ZC20150518动力煤ZL000035QI000035LXZC00LXZC01LXZC02LXZC03LXZC04
    fb纤维板fb20131206纤维板ZL000036QI000036LXFB00LXFB01LXFB02LXFB03LXFB04
    bb胶合板bb20131206胶合板ZL000037QI000037LXBB00LXBB01LXBB02LXBB03LXBB04
    JR粳稻JR20131118粳稻ZL000038QI000038LXJR00LXJR01LXJR02LXJR03LXJR04
    jd鸡蛋jd20131108鸡蛋ZL000039QI000039LXJD00LXJD01LXJD02LXJD03LXJD04
    hc热轧卷板hc20140321热轧卷板ZL000040QI000040LXHC00LXHC01LXHC02LXHC03LXHC04
    pp聚丙烯pp20140228聚丙烯ZL000041QI000041LXPP00LXPP01LXPP02LXPP03LXPP04
    LR晚籼稻LR20140708晚籼稻ZL000042QI000042LXLR00LXLR01LXLR02LXLR03LXLR04
    SF硅铁SF20140808硅铁ZL000043QI000043LXSF00LXSF01LXSF02LXSF03LXSF04
    SM锰硅SM20140808锰硅ZL000044QI000044LXSM00LXSM01LXSM02LXSM03LXSM04
    cs玉米淀粉cs20141219玉米淀粉ZL000045QI000045LXCS00LXCS01LXCS02LXCS03LXCS04
    nini20150327ZL000046QI000046LXNI00LXNI01LXNI02LXNI03LXNI04
    snsn20150327ZL000047QI000047LXSN00LXSN01LXSN02LXSN03LXSN04
    CY棉纱CY20170818棉纱ZL000048QI000048LXCY00LXCY01LXCY02LXCY03LXCY04
    AP苹果AP20171222苹果ZL000049QI000049LXAP00LXAP01LXAP02LXAP03LXAP04
    sc原油sc20180326原油ZL000050QI000050LXSC00LXSC01LXSC02LXSC03LXSC04
    sp纸浆sp20181127纸浆ZL000051QI000051LXSP00LXSP01LXSP02LXSP03LXSP04
    eg乙二醇eg20181210乙二醇ZL000052QI000052LXEG00LXEG01LXEG02LXEG03LXEG04
    CJ红枣CJ20190430红枣ZL000053QI000053LXCJ00LXCJ01LXCJ02LXCJ03LXCJ04
    nr20号胶nr2019081220号胶ZL000054QI000054LXNR00LXNR01LXNR02LXNR03LXNR04
    UR尿素UR20190809尿素ZL000055QI000055LXUR00LXUR01LXUR02LXUR03LXUR04
    rr粳米rr20190816粳米ZL000056QI000056LXRR00LXRR01LXRR02LXRR03LXRR04
    ss不锈钢ss20190925不锈钢ZL000057QI000057LXSS00LXSS01LXSS02LXSS03LXSS04
    eb苯乙烯eb20190926苯乙烯ZL000058QI000058LXEB00LXEB01LXEB02LXEB03LXEB04
    SA纯碱SA20191206纯碱ZL000059QI000059LXSA00LXSA01LXSA02LXSA03LXSA04
    pg液化石油气pg20200330液化石油气ZL000060QI000060LXPG00LXPG01LXPG02LXPG03LXPG04
    lu低硫燃料油lu20200622低硫燃料油ZL000061QI000061LXLU00LXLU01LXLU02LXLU03LXLU04



    //以前的用法,现在同样有效
    应用一:通过合约代码得到交易品种、主力合约等相关信息

    //范例01:获取合约代码AL1912所对应的交易品种
    setsysparam(pn_stock(),'AL1912');
    return base(703006);
    //返回'铝'

    /范例02:获取合约代码AL1912所对应的交易品种代码
    setsysparam(pn_stock(),'AL1912');
    return base(703003);
    //返回'al'

    //范例03:得到沪铝1912合约对应的主力合约代码
    setsysparam(pn_stock(),'AL1912');
    return FuturesIDToZL();
    //返回:'ZL000001'

    //范例04:得到沪铝1912合约品种在2019-11-27日对应的主力实际合约代码
    setsysparam(pn_stock(),'AL1912');
    return zlCode:=FuturesZL(20191127T);
    //返回:'al2001'


    应用二:通过品种代码得到相关合约代码

    //范例05:获取品种AL的主力合约代码
    setsysparam(pn_stock(),'AL');
    return FuturesIDToZL();
    //返回:'ZL000001'

    //范例06:获取品种AL在2019-11-27日的主力合约对应的实际合约代码
    setsysparam(pn_stock(),'AL');
    return FuturesZL(20191127T);
    //返回:'al2001'

    //范例07:获得沪铝期货品种在2019-11-27日在市交易的所有合约
    return GetFuturesID('AL',20191127T);
    //返回:

    al1912
    al2001
    al2002
    al2003
    al2004
    al2005
    al2006
    al2007
    al2008
    al2009
    al2010
    al2011



    应用三:通过主力合约或连续合约,得到指定日对应实际合约代码

    //范例08:返回沪铝期货品种2019-11-27日的主力合约对应的实际合约代码
    return ZLToFuturesID('ZL000001',20191127T);
    //返回:'al2001'

    范例09:返回沪铝期货品种2019-11-27日的当月连续对应的实际合约代码
    return ZLToFuturesID('LXAL00',20191127T);
    //返回:'al1912'
    注:连一、连二等都可通过该函数得到。

    范例10:提取指定日所有主力合约对应的实际合约代码

      zls:= getbk('期货主力');//获取当前所有主力虚拟代码
      endt:=20210708T;
      stocks:=array();
      for i:=0 to length(zls)-1 do
       stocks[i]:= ZLToFuturesID(zls[i],endt);//取指定日实际主力合约代码
      return stocks;

    更多期货合约代码相关信息请参考:
    FAQ:Q:期货代码、名称(连续合约、主力合约、指数合约)编制规则