范例01:取个股盘口行情
setsysparam(pn_stock(),'SZ000002');
rds := array(datetimetostr(sp_time()),
rd(0),//股票代码
rd(1),//股票名称
rd(2),//开盘价
rd(3) //昨收
);
return rds;
返回结果:
范例02:取多个股票盘口行情
stocks:=getbk('A股');//所有A股个股
ret:=array();
for i:=0 to length(stocks)-1 do
begin
setsysparam(Pn_stock(),stocks[i]);
ret[i,'StockID']:=stocks[i];
ret[i,'StockName']:=StockName(stocks[i]);
ret[i,'盘口时间']:=datetimetostr(rd(-1));
ret[i,'价格']:=rd(6);
ret[i,'成交量']:=rd(8);//可以类似新增其它指标
end
return ret;
范例03:与行情函数的对比
//默认与现在指标函数对比
SetSysParam(pn_stock(),'SZ000002');
SetSysParam(pn_cycle(),cy_detail());
return array(rd(6),close());//两者返回的结果相同
//与指定日函数取数对比
SetSysParam(pn_stock(),'SZ000002');
SetSysParam(pn_cycle(),cy_detail());
SetSysParam(pn_date(),inttodate(20121212));
return array(rd(6),close());//两者返回的结果不同,rd(6)返回的是最新价格,而close()返回的是20121212这天万科A的收盘价。
差别在与rd只是得到实盘的价格数据,close()可以通过设置系统时间得到历史某个时点的价格。
//默认当前时间对比
SetSysParam(pn_stock(),'SZ000002');
SetSysParam(pn_cycle(),cy_detail());
return array(rd(-1),sp_time());//两者返回的结果相同
//指定日当前时间对比
SetSysParam(pn_stock(),'SZ000002');
SetSysParam(pn_cycle(),cy_detail());
SetSysParam(pn_date(),inttodate(20121212));
return array(rd(-1),sp_time());//两者返回的结果不同。
第一个程序都是取到万科A最新的成交时间。在第二个程序中rd(-1)取到的是当前万科A的最新成交时间,但是sp_time()取到的是2012/12/12 00:00:00这个时刻前万科A最新的成交时间。
综上rd得到的就是程序运行这个时间点的行情的最新值,系统参数的设置对rd不起作用。