A:在天软中,设置复权,需要设置【复权方式】,以及【复权基准日】。
其中,【复权方式】由系统参数Pn_rate()来指定,主要控制计算复权的算法,常用方式1(比例复权)。具体复权算法可参考:FAQ:
Q:天软的复权方式
【复权基准日】由系统参数Pn_rateday()来指定,控制开始复权计算的起始基准日,即小于该基准日的复权数据为向
前复权,大于该基准日的复权数据为向
后复权。
在天软中,取复权后的行情需要Pn_rateday()与Pn_rate()结合使用:
1、当Setsysparam(Pn_rate(),0)时,即不复权时,设置复权基准日Setsysparam(Pn_rateday(),endt);无效。
2、当Setsysparam(Pn_rate(),1)或者Setsysparam(Pn_rate(),2)时,此时为复权状态,然后再指定前复权与后复权:
Setsysparam(pn_rateday(),-1); 设置上市日(或指定firstday())为复权基准日,则所有的数据
后复权;
Setsysparam(pn_rateday(),0); 设置当前日期(等同于设置today())为复权基准日,则所有的数据
前复权;
系统默认为当前日期。
Setsysparam(pn_rateday(),EndT); 当上市日<EndT<当前日期,则小于EndT的数据前复权,大于EndT的数据后复权。
取后复权范例如下:
setsysparam(Pn_stock(),'SH601058');
setsysparam(Pn_rate(),1);
setsysparam(Pn_rateday(),-1); //设置上市日为复权基准日
begt:=inttodate(20140401T);
endt:=inttodate(20140601T);
setsysparam(pn_date(),endt);
n:=tradedays(begt,endt);
return nday(n,'date',datetostr(sp_time()),'close',close());