下面是如何在程序里面调用本接口
首先需要引入
from pytdx.hq import TdxHq_API
然后,创建对象
api = TdxHq_API()
之后,通常是如下的格式
if api.connect('119.147.212.81', 7709): # ... same codes... api.disconnect()
当然,我们也支持with 语法,可以省略disconnect()
语句
with api.connect('119.147.212.81', 7709): # some codes
我们的数据获取届接口一般返回list结构,如果需要转化为pandas Dataframe接口,可以使用 api.to_df
进行转化 如:
data = api.get_security_bars(9, 0, '000001', 0, 10) #返回普通listdata = api.to_df(api.get_security_bars(9, 0, '000001', 0, 10)) # 返回DataFrame
可以使用的api方法有下列的几个。
一般来说,股票代码和文件名称使用字符串类型,其它参数都使用数值类型
可以获取多只股票的行情信息
需要传入一个列表,每个列表由一个市场代码, 一个股票代码构成的元祖构成 [ (市场代码1, 股票代码1),(市场代码2, 股票代码2) ... (市场代码n, 股票代码n) ]
如:
api.get_security_quotes([(0, '000001'), (1, '600300')])
category->
K线种类0 5分钟K线 1 15分钟K线 2 30分钟K线 3 1小时K线 4 日K线5 周K线6 月K线7 1分钟8 1分钟K线 9 日K线10 季K线11 年K线
market -> 市场代码 0:深圳,1:上海
如:
api.get_security_bars(9,0, '000001', 4, 3)
0 - 深圳, 1 - 上海
api.get_security_count(0)
参数:市场代码, 起始位置, 数量 如: 0,0 或 1,100
api.get_security_list(1, 0)
category->
K线种类0 5分钟K线 1 15分钟K线 2 30分钟K线 3 1小时K线 4 日K线5 周K线6 月K线7 1分钟8 1分钟K线 9 日K线10 季K线11 年K线
market -> 市场代码 0:深圳,1:上海
如:
api.get_index_bars(9,1, '000001', 1, 2)
参数:市场代码, 股票代码, 如: 0,000001 或 1,600300
api.get_minute_time_data(1, '600300')
参数:市场代码, 股票代码,时间 如: 0,000001,20161209 或 1,600300,20161209
api.get_history_minute_time_data(TDXParams.MARKET_SH, '600300', 20161209)
注意,在引入 TDXParams 之后, (from pytdx.params import TDXParams
) 我们可以使用 TDXParams.MARKET_SH , TDXParams.MARKET_SZ 常量来代替 1 和 0 作为参数
参数:市场代码, 股票代码,起始位置, 数量 如: 0,000001,0,10
api.get_transaction_data(TDXParams.MARKET_SZ, '000001', 0, 30)
参数:市场代码, 股票代码,起始位置,日期 数量 如: 0,000001,0,10,20170209
api.get_history_transaction_data(TDXParams.MARKET_SZ, '000001', 0, 10, 20170209)
参数:市场代码, 股票代码, 如: 0,000001 或 1,600300
api.get_company_info_category(TDXParams.MARKET_SZ, '000001')
参数:市场代码, 股票代码, 文件名, 起始位置, 数量, 如:0,000001,000001.txt,2054363,9221
api.get_company_info_content(0, '000001', '000001.txt', 0, 100)
注意这里的 起始位置, 数量 参考上面接口的返回结果。
参数:市场代码, 股票代码, 如: 0,000001 或 1,600300
api.get_xdxr_info(1, '600300')
参数:市场代码, 股票代码, 如: 0,000001 或 1,600300
api.get_finance_info(0, '000001')
参数:市场代码, 开始时间, 结束时间
get_k_data('000001','2017-07-03','2017-07-10')
参考 https://github.com/rainx/pytdx/issues/5
由于Python的特性,一般情况下,不太建议使用多线程代码,如果需要并发访问,建议使用多进程来实现,如果要使用多线程版本,请在初始化时设置multithread参数为True
api = TdxHq_API(multithread=True)
由于长时间不与服务器交互,服务器将关闭连接,所以我们实现了心跳包的机制,可以通过
api = TdxHq_API(heartbeat=True)
设置心跳包,程序会启动一个心跳包发送线程,在空闲状态下隔一段时间发送一个心跳包,注意,打开heartbeat=True选项的同时会自动打开multithread=True
如果您需要调试本代码,监控传输过程中的数据包传输情况,可以使用调试模式,使用方法是设定环境变量 TDX_DEBUG 为 1 如
> TDX_DEBUG=1 hqget -f 1
为了方便连接服务器,我把一些常用的服务器列表整理到到 hosts.py
文件中. 在程序中可以通过
from pytdx.config.hosts import hq_hosts
获取列表, 列表里的数据参考了 https://github.com/rainx/pytdx/issues/3
欢迎补充并发送pr
联系客服