FAQ > 金融建模 > 数据提取 > 行情数据提取

Q:取组合时间序列数据    

【简述】说明:在天软中提取各证券(股票、基金、期货、期权、债券等)行情数据的方法都是一样的, 都需要指定证券代码,数据周期,数据时间或复权(复权方式、复权基准日)等参数。在天软客户端中提取时,若不进行设置,则依次默认为(‘SH000001’,日线,今天,不复权),若是其他第三方调用,则需代码补齐这些参数,否则很有可能会影响数据的正确提取。
数据相关说明,请查阅: FAQ:Q:高频、超高频数据说明
FAQ:天软行情数据及处理机制说明
FAQ:TRADETABLE
FAQ:MARKETTABLE
FAQ:NDay

  • 范例1:取上证50成份股在指定时间段内的基本行情数据

    begt:=20190501T;
      endt:=20190513T;
      IndexID:='SH000016';
      setsysparam(pn_stock(),IndexID);
      setsysparam(pn_cycle(),cy_day());
      Tarr:=StockTradeDayQk(begt,endt);//日线交易日序列
      re:=array();
      setsysparam(pn_cycle(),cy_60m()); //行情周期
      for i:=0 to length(Tarr)-1 do
      begin
          vEndt:=Tarr[i];
          sArr:=getbkbydate(IndexID,vEndt);
          re&=select ['StockID'],['StockName'],datetimetostr(['date']) as 'date',
          ['close'],['vol'],['amount'] from markettable datekey vEndt to vEndt+0.99
          of sArr end;
      end;
      return re;

    范例2:取上证50成份股在指定时间段内的收盘价、涨幅等

    begt:=20190401T;
      endt:=20190513T;
      IndexID:='SH000016';
      setsysparam(pn_stock(),IndexID);
      setsysparam(pn_cycle(),cy_day());
      Tarr:=StockTradeDayQk(begt,endt);
      re:=array();
      k:=0;
      for i:=0 to length(Tarr)-1 do
      begin
          vEndt:=Tarr[i];
          sEndt:=datetostr(vEndt);
          setsysparam(pn_date(),vEndt);
          sArr:=getbkbydate(IndexID,vEndt);
          for j:=0 to length(sArr)-1 do
          begin
              setsysparam(pn_stock(),sArr[j]);
              re[k,'StockID']:=sArr[j] ;
              re[k,'Date']:=sEndt;
              re[k,'是否交易']:=istradeday(vEndt);
              re[k,'价格']:=close();
              re[k,'涨幅(%)']:=stockzf3();
              re[k,'PE']:=stockpe(vEndt);
              k++;
          end
      end
      return re;