前面已经介绍过两种,解析通达信本地Lday日线数据的方法,其实解决问题的思路有很多种,能把问题解决就可以了。 使用struct解析通达信本地Lday日线数据 使用Python解析通达信本地lday数据结构 如果你比较懒就直接使用别人封装好的代码调用即可,五行代码不到就可以读取到解析的数据,当然你也可以把自己经常使用的函数,封装成模块,以便随时可以调用。下面看看PyTdx是如何解析通达信数据文件的? 1.解析通达信本地Lday日线数据
F:/new_tdx/vipdoc/sz/lday/ 是存放深圳的日k线数据 F:/new_tdx/vipdoc/sh/lday/ 是存放上海的日k线数据 F:/new_tdx/vipdoc/bj/lday/ 是存放北证的日k线数据
from pytdx.reader import TdxDailyBarReader, TdxFileNotFoundException
reader = TdxDailyBarReader() #比如我的通达信客户端安装在E盘 datas= reader.get_df("E:/zd_cjzq/vipdoc/sh/lday/sh600519.day") print(datas)
返回数据:open high low close amount volume open high low close amount volume date 2001-08-27 34.51 37.78 32.85 35.55 1.410347e+09 406318.00 2001-08-28 34.99 37.00 34.61 36.86 4.634631e+08 129647.00 2001-08-29 36.98 37.00 36.10 36.38 1.946896e+08 53252.00 2001-08-30 36.28 37.51 36.00 37.10 1.775586e+08 48013.00 2001-08-31 37.15 37.62 36.80 37.01 8.623124e+07 23231.00 ... ... ... ... ... ... ... 2023-08-31 1860.00 1860.00 1841.01 1847.00 2.738446e+09 14820.22 2023-09-01 1852.83 1865.47 1846.03 1851.05 2.438623e+09 13145.19 2023-09-04 1862.60 1879.94 1853.53 1866.00 4.453823e+09 23871.00 2023-09-05 1868.00 1868.00 1856.80 1858.70 2.915626e+09 15658.74 2023-09-06 1858.00 1866.66 1849.01 1861.00 2.067606e+09 11121.43
[5271 rows x 6 columns]
2.解析通达信的分钟K线数据(目前支持1,5分钟k线):其文件格式为.lc1 .lc5后缀。存放的路径位置 E:/zd_cjzq/vipdoc/sh/minline/sh600519.lc1 E:/zd_cjzq/vipdoc/sh/fzline/sh600519.lc5 深圳和北交所的股票将上面的sh换成,sz和bj即可查询对应市场的数据了。
from pytdx.reader import TdxLCMinBarReader, TdxFileNotFoundException
reader = TdxLCMinBarReader()
#读1分钟数据 #datas= reader.get_df("E:/zd_cjzq/vipdoc/sh/minline/sh600519.lc1")
#读5分钟数据 datas= reader.get_df("E:/zd_cjzq/vipdoc/sh/fzline/sh600519.lc5") print(datas)
3.解析通达信的自定义板块blocknew文件夹 BlockReader_TYPE_GROUP=0,返回数据 blockname block_type code_index code blockname block_type code_index code0 机构 JG 0 3000451 机构 JG 1 0030312 机构 JG 2 3002123 机构 JG 3 0008304 机构 JG 4 000923... ... ... ... ...23447 燃料电池 RLDC 0 688339 以下是=1返回的数据,如果BlockReader_TYPE_GROUP不传参数,默认是=0
from pytdx.reader import CustomerBlockReader
#datas = CustomerBlockReader().get_df('E:/zd_cjzq/T0002/blocknew') datas= CustomerBlockReader().get_df('E:/zd_cjzq/T0002/blocknew',1) print(datas)
BlockReader_TYPE_GROUP=1返回数据:blockname,block_type,stock_count,code_list blockname ... code_list 0 机构 ... 300045,003031,300212,000830,000923,688693,6037... 1 深股通 ... 000090,002432,002703,002472,002031,002368,3004... 2 方新侠 ... 002527,002696,601858,600322,601059,002528,3014... 3 溧阳路 ... 301487,688662,002995,300081,688525,300678,3005... 4 桑田路 ... 600732,300649,300904,300094,300941,301316,6010... .. ... ... ...
|