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

Q:期权能得到每天的认沽期权交易量和认购期权交易量的比值(PCR)吗?    

  • A:
    天软封装公用模型:Options_Vol_PCR 多个期权成交量PCR
    使用范例:获取在指定日上证50ETF期权的成交量PCR指标

     stockid:="SH510050";
     EndT:=20170405T;
     OptionArr:=OP_GetOptionChain(stockid,EndT)[:,"StockID"];//取指定日在市交易的合约集合
     setsysparam(pn_cycle(),cy_day());
     setsysparam(pn_date(),endt);//指定当前时间
     t1:=Options_Vol_PCR(OptionArr);//计算成交量PCR
     return t1;

    返回:0.740366895627408

    历史计算方式(与上面公用模型算法一致):
    用户可以根据函数OP_GetOptionChain(StockID,EndT) 获得指定期权标的stockid在指定日期EndT的所有期权合约及其相关的信息。并根据其“期权类型”判断认沽或认购后,分别对认购和认沽类的合约代码统计交易量,两者的比值即认购交易量和认沽交易量的比值。
    参考代码:

      stockid:="SH510050";
      EndT:=20170405T;
      r:=OP_GetOptionChain(stockid,EndT);
      rgo:=sselect ['StockID'] from r where ['期权类型']='认购' end;
      rgu:=sselect ['StockID'] from r where ['期权类型']='认沽' end;

      setsysparam(pn_cycle(),cy_day());
      rgo_vol:=vselect sumof(['vol']) from markettable datekey endt to endt of rgo end;
      rgu_vol:=vselect sumof(['vol']) from markettable datekey endt to endt of rgu end;
      return rgu_vol/rgo_vol;