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

Q:如何设置复权日    

  • A:
    与系统参数Pn_rateday()有关,与Pn_rate()结合使用;
    当Setsysparam(Pn_rate(),0)时,Setsysparam(Pn_rateday(),endt);无效。
    只有当Setsysparam(Pn_rate(),1)或者Setsysparam(Pn_rate(),2)时,此时为复权状态。
    Setsysparam(pn_rateday(),firstday()); 设置上市日为复权基准日(或设置为-1),则所有的数据后复权;
    Setsysparam(pn_rateday(),today()); 设置当前日期为复权基准日(或设置为0),则所有的数据前复权;系统默认为当前日期。
    Setsysparam(pn_rateday(),EndT); 当上市日<EndT<当前日期,则小于EndT的数据前复权,大于EndT的数据后复权。
    范例如下:

      setsysparam(Pn_stock(),'SZ000002');
      setsysparam(Pn_rate(),1);
      setsysparam(Pn_rateday(),firstday()); //设置上市日为复权基准日
      begt:=inttodate(20080601);
      endt:=inttodate(20081231);
      setsysparam(pn_date(),endt);
      n:=tradedays(begt,endt);
      return nday(n,'date',datetostr(sp_time()),'close',close());