A:下载高频行情数据到本地需要先从天软服务器获取行情数据,再使用交互模型导出数据到本地即可。
获取天软行情数据参考:FAQ:
交易明细表tradetable、分时表markettable
从天软客户端导出数据到本地参考模型:FAQ:
ExportFile
使用范例
下面提供三个范例:
范例1:下载明细
范例2:下载期货1分钟线
范例3:下载股票1分钟线-并分离出盘前集合竞价
范例一:下载A股一年交易明细数据存为本地csv文件
//保存路径
savedir:="C:\\天软高频行情\\成交明细\\";
begt:=20220101t; //开始日期
endt:=20221231t; //截止日期
setsysparam(pn_cycle(),cy_day());
datearr:=markettradedayqk(begt,endt);
rt:=array();
for i,vendt in datearr do
begin
strt:= datetostr(vendt);
stocks:=GetAbkbyDate("A股",vendt);
for j,stock in stocks do
begin
echo strt$" "$stock;
data:=select *,datetimetostr(["date"]) as "date"
from tradetable datekey vendt to vendt+16/24 of stock end;
ret:=rdo2 ExportFile(ftCSV(),"",savedir$strt$"\\"$stock$".csv",data);
if ret then zt:="导出成功";
else zt:="导出失败";
rt[x,"日期"]:=strt;
rt[x,"代码"]:=stock;
rt[x++,"取数"]:=zt;
end
end
return rt;
部分结果:
本地文件:
范例二:下载CU品种期货一年的分钟线数据存为本地xlsx文件
//保存路径
savedir:="C:\\天软高频行情\\1分钟线\\";
begt:=20220101T; //开始日期
endt:=20221231T; //截止日期
setsysparam(pn_cycle(),cy_day());
datearr:=markettradedayqk(begt,endt);
rt:=array();
setsysparam(pn_cycle(),cy_1m());
setsysparam("cyclefilter", 1);//过滤掉节假期间产生的夜盘
for i,vendt in datearr do
begin
strt:= datetostr(vendt);
//--上个交易日--确定数据开始时间,防止夜盘被漏
vBegT:=i>0?datearr[i-1]:specall(dateof(ref(sp_time(),1)),array(pn_stock():"SH000001",PN_Cycle:cy_day(),PN_Date():vendt));
stocks:=GetFuturesID("CU",vEndt);
for j,stock in stocks do
begin
echo strt$" "$stock;
data:=select ["StockID"],["StockName"],
datetimetostr(["date"]) as "date",
["close"],["high"],["open"],["low"],["vol"],["amount"],["cjbs"] as "量差",
["sectional_cjbs"] as "持仓量",
["syl1"] as "结算价",["syl2"] as "昨结算"
from markettable datekey vbegt+18/24 to vendt+18/24 of stock end;
ret:=rdo2 ExportFile(ftCSV(),"",savedir+strt$"\\"$stock$".csv",data);
if ret then zt:="导出成功";
else zt:="导出失败";
rt[x,"日期"]:=strt;
rt[x,"代码"]:=stock;
rt[x++,"取数"]:=zt;
end
end
return rt;
部分结果:
范例三:下载指定指数成份股的每日1分钟线行情,存放方式:指定日文件夹/一个股票存放一个文件
//保存路径
savedir:="C:\\天软高频行情\\1分钟线\\";
begt:=20220101t; //开始日期
endt:=20221231t; //截止日期
setsysparam(pn_cycle(),cy_day());
datearr:=markettradedayqk(begt,endt); //日线交易日序列
rt:=array();
setsysparam("cyclefilter", 3);//分离出集合竞价--若不需要的可注释
setsysparam(pn_cycle(),cy_1m());
for i,vendt in datearr do
begin
strt:= datetostr(vendt);
vBegT:=i>0?datarr[i-1]:specall(dateof(ref(sp_time(),1)),array(pn_stock():"SH000001",PN_Cycle:cy_day(),PN_Date():vendt)); //日线的昨日
stocks:=getbkbydate("SH000905",vEndt);//中证500的成份股
for j,stock in stocks do
begin
echo strt$" "$stock;
data:=select *,datetimetostr(["date"]) as "date"
from markettable datekey vbegt+16/24 to vendt+16/24 of stock end;
ret:=rdo2 ExportFile(ftXLS(),"",savedir$strt$"\\"$stock$".xlsx",data);
if ret then zt:="导出成功";
else zt:="导出失败";
rt[x,"日期"]:=strt;
rt[x,"代码"]:=stock;
rt[x++,"取数"]:=zt;
end
end
return rt;
导出结构截图:
