A:用户通过证券时间序列数据专家提取数据,在自己的程序中也可以实现同样的功能。在证券数据专家中单击运行按钮右边的第二个按钮(小人头)可以得到代码,可以直接放到程序中,加上相应的系统参数的设置,即可以运行出同样的结果,也可以通过QueryWithPeriod,for等其他方式实现。
参考说明:
代码实现数据专家说明:FAQ:
Q:如何用代码实现证券时间序列专家的功能
数据专家中获取可执行代码:FAQ:
Q:天软表格ID与指标ID
QueryWithPeriod方法的使用:FAQ:
QueryWithPeriod
for循环的说明:FAQ:
FOR
实现范例
范例1:通过QueryWithPeriod访问代码列表的行情数据
//代码列表
stockarr:=array("SZ000002","SH600000","SH600006","SH600007","SH600008");
stockstr:=array2str(stockarr);
setsysparam(pn_begt(),inttodate(20120801)); //系统开始日期
setsysparam(pn_endt(),inttodate(20121001)); //系统截止日期
setsysparam(pn_cycle(),cy_day()); //系统周期
setsysparam(pn_rate(),1); //系统复权方式
setsysparam(pn_rateday(),0); //系统复权基准日
setsysparam(pn_Precision(),2); //系统小数
setsysparam("TimeIndex",1); //时间主导排序
return
QueryWithPeriod("",stockstr,@True,"",
"收盘价",@close(),
"成交量",@vol(),
"成交金额",@amount());
部分结果:
范例2:通过for访问代码列表的行情数据
//代码列表
stockarr:=array("SZ000002","SH600000","SH600006","SH600007","SH600008");
begt:= inttodate(20120801); //开始日期
endt:= inttodate(20121001); //截止日期
setsysparam(pn_cycle(),cy_day()); //系统周期
tarr:= MarketTradeDayQk(begt,endt); //交易序列
setsysparam(pn_rate(),1); //系统复权方式
setsysparam(pn_rateday(),0); //系统复权基准日
setsysparam(pn_Precision(),2); //系统小数
r:=array();
x:=0;
for i,t in tarr do
begin
SetSysParam(pn_date(),t);
for j,stock in stockarr do
begin
SetSysParam(pn_stock(),stock);
name:=StockName(stock);
r[x,"时间"]:=datetostr(t);
r[x,name$"@收盘价"]:=close();
r[x,name$"@成交量"]:=vol();
r[x,name$"@成交金额"]:=amount();
end
x++;
end
SortTableByField(r,"时间",1); //日期排序
return r;
部分结果:
范例3:通过QueryWithPeriod访问板块行情数据
//板块名称
bkname:="上证A股";
setsysparam(pn_begt(),inttodate(20120801)); //系统开始日期
setsysparam(pn_endt(),inttodate(20120806)); //系统截止日期
setsysparam(pn_cycle(),cy_day()); //系统周期
setsysparam(pn_rate(),1); //系统复权方式
setsysparam(pn_rateday(),0); //系统复权基准日
setsysparam(pn_Precision(),2); //系统小数
setsysparam("TimeIndex",1); //时间主导排序
return
QueryWithPeriod(bkName,"",@True,"",
"收盘价",@close(),
"成交量",@vol(),
"成交金额",@amount());
部分结果:
范例4:通过for访问板块行情数据
//板块名称
bkname:="上证A股";
//代码列表
stockarr:=getbk(bkname);
begt:= inttodate(20120801); //开始日期
endt:= inttodate(20120806); //截止日期
setsysparam(pn_cycle(),cy_day()); //系统周期
tarr:= MarketTradeDayQk(begt,endt); //交易序列
setsysparam(pn_rate(),1); //系统复权方式
setsysparam(pn_rateday(),0); //系统复权基准日
setsysparam(pn_Precision(),2); //系统小数
r:=array();
x:=0;
for i,t in tarr do
begin
SetSysParam(pn_date(),t);
for j,stock in stockarr do
begin
SetSysParam(pn_stock(),stock);
name:=StockName(stock);
r[x,"时间"]:=datetostr(t);
r[x,name$"@收盘价"]:=close();
r[x,name$"@成交量"]:=vol();
r[x,name$"@成交金额"]:=amount();
end
x++;
end
SortTableByField(r,"时间",1); //日期排序
return r;
部分结果: