A:用户通过证券数据专家提取数据,在自己的程序中也可以实现同样的功能。在证券数据专家中单击运行按钮右边的第二个按钮(小人头)可以得到代码,可以直接放到程序中,加上相应的系统参数的设置,即可以运行出同样的结果,也可以通过query,for等其他方式实现。
参考说明:
数据专家中获取可执行代码:FAQ:
Q:天软表格ID与指标ID
query方法的使用:FAQ:
Query
for循环的说明:FAQ:
FOR
实现范例
范例1:通过query访问代码列表的行情数据
//代码列表
stockarr:=array("SZ000002","SH600000","SH600006","SH600007","SH600008");
stockstr:=array2str(stockarr);
setsysparam(pn_date(),inttodate(20110112)); //系统时间
setsysparam(pn_cycle(),cy_day()); //系统周期
setsysparam(pn_rate(),1); //系统复权方式
setsysparam(pn_rateday(),0); //系统复权基准日
setsysparam(pn_Precision(),2); //系统小数
return Query("",stockstr,True,"",
"代码",DefaultStockID(),
"名称",CurrentStockName(),
"收盘价",close(),
"成交量",vol(),
"成交金额",amount());
返回结果:
范例2:通过for访问代码列表的行情数据
//代码列表
stockarr:=array("SZ000002","SH600000","SH600006","SH600007","SH600008");
setsysparam(pn_date(),inttodate(20110112)); //系统时间
setsysparam(pn_cycle(),cy_day()); //系统周期
setsysparam(pn_rate(),1); //系统复权方式
setsysparam(pn_rateday(),0); //系统复权基准日
setsysparam(pn_Precision(),2); //系统小数
r:=array();
for nI:=0 to length(stockArr)-1 do
begin
stockId:=stockArr[nI];
setsysparam(pn_stock(),stockId);
r[nI]['代码']:=stockId;
r[nI]['名称']:=StockName(stockId);
r[nI]['收盘价']:=close();
r[nI]['成交量']:=vol();
r[nI]['成交金额']:=amount();
end;
return r;
返回结果:
范例3:通过query访问板块行情数据
//板块名称
bkName:="上证A股;科创板";
setsysparam(pn_date(),inttodate(20110112)); //系统时间
setsysparam(pn_cycle(),cy_day()); //系统周期
setsysparam(pn_rate(),1); //系统复权方式
setsysparam(pn_rateday(),0); //系统复权基准日
setsysparam(pn_Precision(),2); //系统小数
return
Query(bkName,"",True,"","代码",DefaultStockID(),
"名称",CurrentStockName(),
"收盘价",close(),
"成交量",vol(),
"成交金额",amount());
部分结果:
范例4:通过for访问板块行情数据
//板块名称
bkName:="上证A股;科创板";
setsysparam(pn_date(),inttodate(20110112)); //系统时间
setsysparam(pn_cycle(),cy_day()); //系统周期
setsysparam(pn_rate(),1); //系统复权方式
setsysparam(pn_rateday(),0); //系统复权基准日
setsysparam(pn_Precision(),2); //系统小数
stockArr:=getbk(bkName); //取板块下面的股票,可以是系统板块,也可以是用户自定义的板块
r:=array();
for nI:=0 to length(stockArr)-1 do
begin
stockId:=stockArr[nI];
setsysparam(pn_stock(),stockId);
r[nI]['代码']:=stockId;
r[nI]['名称']:=StockName(stockId);
r[nI]['收盘价']:=close();
r[nI]['成交量']:=vol();
r[nI]['成交金额']:=amount();
end;
return r;
部分结果:
范例5:通过query访问代码列表的财务数据
//代码列表
stockarr:=array("SZ000002","SH600000","SH600006","SH600007","SH600008");
stockstr:=array2str(stockarr);
return
Query("",stockstr,True,"",
"代码",DefaultStockID(),
"名称",CurrentStockName(),
"营业收入(20081231)",report(46002,20081231),
"营业收入(20091231)",report(46002,20091231),
"归属于母公司所有者净利润(20081231)",report(46078,20081231));
返回结果: