Q:如何合理下载大量高频行情数据?
【简述】说明:有些用户在天软中希望一次性提取或下载全市场行情等类大数据时,会发现电脑卡顿甚至死机。其主要原因不是因为天软限制了下载大小(天软服务器端运行内存不超过16G,返回结果集不超过1G),而是因为下载数据需要通过网络传送以及消耗本机电脑大量缓存,容易造成网络断开或电脑假死状态,若数据量过大,会导致运行失败。这里用户应该合理处理数据,可通过分段提取导出,即取一段存一段的方式,使得同一时间占用网络及本地资源不那么大,程序跑起来更流畅。
第一步:如何拆分数据更为合理呢?
重点:在天软中,取数其实是很快的,时间主要花费在数据传送到客户端及将数据从客户端处理到客户电脑上。
若将全部导出放一块,这种不方便导出不说,使用时也不方便调用。所以应该结合使用目的,通过估算数据大小合理存放。(一般建议用户分日期或证券进行文件分开存放)
下面提供一般情况下的数据大小及运行时间,案例中使用 tradetable/markettable取数并导出所有字段,stm表示导出为天软数据文件,xlsx表示导出为Excel数据文件:
1、一天一个票的交易明细:
品种 | 测试证券 | 取数日期 | 数据行数 | 取数花费时间(s) | 导出花费时间(stm/xlsx)(s) | 导出后数据大小(stm/xlsx)
|
---|
股票 | SZ000001 | 20190517T | 4813 | 0.0758514 | 0.749813/ 1.46329 | 6.02M/1.73M
|
商品期货(有夜盘) | CU1906 | 20190517T | 16418 | 0.272739 | 2.77564/ 5.58122 | 20.4M/4.51M
|
期权 | OP10001854 | 20190517T | 17927 | 0.296157 | 3.03748/ 5.71351 | 22.6M/4.95M
|
股指期货(无夜盘) | IF1906 | 20190517T | 27407 | 0.422491 | 4.5664/ 8.4998 | 34.2M/7.79M |
2、 一天一个票的1 分钟线:
品种 | 测试证券 | 取数日期 | 数据行数 | 取数花费时间(s) | 导出花费时间(stm/xlsx)(s) | 导出后数据大小(stm/xlsx)
|
---|
股票 | SZ000001 | 20190517T | 240 | 0.00667287 | 0.0765149/ 0.120979 | 308kb/106kb
|
商品期货(有夜盘) | CU1906 | 20190517T | 465 | 0.0187672 | 0.434947/ 0.166271 | 595kb/168kb
|
期权 | OP10001854 | 20190517T | 240 | 0.0116589 | 0.0840786/ 0.123015 | 310kb/83kb
|
股指期货(无夜盘) | IF1906 | 20190517T | 240 | 0.0258966 | 0.0565405/ 0.0988959 | 307kb/88kb |
3、大数据量测试(可以出结果)
重点:以一次性提取一个股票的交易明细不超过22个交易日的量来估算。
品种 | 数据规格 | 证券个数 | 交易日数 | 数据行数 | 取数花费时间 | 导出花费时间(stm/xlsx) | Cpu性能(运行中最高占用) | 导出后数据大小(stm/xlsx)
|
---|
股票 | 交易明细 | 1 | 22 | 96352 | 1.18136 | 18.3097/ 32.3787 | 65% | 120M/35M
|
股票 | 交易明细 | 25 | 1 | 114608 | 1.88083 | 22.5957/ 39.4621 | 88% | 143M/39.7M
|
股票 | 1分钟线 | 1 | 400 | 95520 | 3.89376 | 24.7214/ 38.1736 | 78% | 119M/40.8M
|
股票 | 1分钟线 | 494 | 1 | 118560 | 3.67161 | 26.605/ 46.9457 | 75% | 195M/46.3M
|
股指期货(无夜盘) | 交易明细 | 1 | 8(连续8个交易日) | 145776 | 1.68641 | 32.8014/ 54.741 | 81% | 181M/40.6M
|
股指期货(无夜盘) | 交易明细(分钟线参考股票) | 11(取相对比较活跃的合约) | 1 | 158347 | 2.33227 | 41.9881/61.2987 | 105% | 失败/44M
|
商品期货(有夜盘) | 交易明细 | 1 | 8(连续8个交易日) | 119306 | 1.68108 | 21.1816/39.9747 | 99% | 148M/33.2M
|
商品期货(有夜盘) | 1分钟线 | 1 | 250 | 103230 | 3.80371 | 19.364/34.1984 | 101% | 128M/29.2M
|
期权 | 交易明细 | 1 | 8(连续8个交易日) | 116204 | 1.44467 | 22.8526/39.1393 | 131% | 146M/32.1M
|
期权 | 1分钟线 | 10 | 100(连续100个市场交易日,) | 235200(980个日线的分钟线) | 14.0839 | 69.5164/93.6462 | 130% | 失败/73.7M |
注1:以上测试是测试人员测试结果,与当时的环境状态有关,仅供参考。
注2:数据导出到本地时天软客户端会出现假死状态,这属于正常现象,此时不要对客户端进行操作,需等待恢复。
注3:上表中失败的原因为stm文件最大不能超过200M。
注4:花费的时间还与服务器性能相关,所以可能相同的程序执行花费的时间会有所差异。
注5:以上测试电脑配置如下:
Windows版本 | Windows 10 家庭中文版2018
|
---|
处理器 | Intel(R)Cor(TM)is-8250U CPU @ 1.60GHz 1.80GHz
|
RAM | 8.00GB(7.90GB可用)
|
系统类型 | 64位操作系统,基于x64的处理器
|
Excel版本 | Microsoft Office 家庭和学生版2016
|
天软服务器版本 | 天软正式版服务器2019-05-21日最新版本
|
天软客户端版本 | 64位 2019-05-21最新版本 |
第二步,如何提取行情数据?
数据说明与提取方法案例,请查阅: FAQ:
Q:高频、超高频数据说明
FAQ:
天软行情数据及处理机制说明
交易明细的提取:FAQ:
TRADETABLE
周期线行情的提取:FAQ:
MARKETTABLE
时间序列指标的提取:FAQ:
NDay
第三步,如何实现分批次数据导出?
这步的实现可以参考链接中的
三、分批导出(大数据导出)中的范例1:FAQ:
Q:多种导出数据(txt/xls/csv/stm)到本地的方法