FAQ > 金融建模 > 建模问题 > 平台使用

Q:QueryWithPeriod如何修改列下标?    

  • A:通过模型QueryWithPeriod获取一段时间的时间序列数据时,返回结果的列下标格式固定为“证券名称@字段名称”,需要修改可使用reindex模型

    参考指标
    FAQ:QueryWithPeriod
    FAQ:ReIndex
    修改范例
      //返回一组股票一段时间的行情数据
      oV:=BackUpSystemParameters2();
      setsysparam(pn_begt(),inttodate(20230801));
      setsysparam(pn_endt(),inttodate(20230831));
      setsysparam("TimeIndex",1);
      stocks:="SZ000002;SZ000001;SH600000;SH600004";
      data:=QueryWithPeriod("",stocks,@True,"",
                 "收盘价",@close(),
                 "成交量",@vol(),
                 "成交金额",@amount());
      //获取修改前后的列下标对照表
      stockarr:=select thisrow as "代码",StockName(thisrow) as "名称" from str2array(stocks,";") end;
      names:=array("收盘价","成交量","成交金额");
      namefields:=array();
      stockfields:=array();
      for i in stockarr do
      begin
        stockfields&=stockarr[i,"代码"]$"@"+names;
        namefields&=stockarr[i,"名称"]$"@"+names;
      end
      reindex(stockfields,namefields);
      //修改数据列下标
      reindex(data,nil,stockfields);
      return data;

    返回结果