TdxHq_Connect 连接行情服务器
TdxHq_Connect(sHost, nPort)
说明:
建立和行情服务器的连接,缺省连接超时3000ms,另外在该函数设置了tcp 的读写超时为1000ms。
参数:
sHost -> 服务器IP,可在券商通达信软件登录界面“通讯设置”按钮内查得;
nPort -> 服务器端口;
try:
clientHq = TradeX.TdxHq_Connect(sHost, nPort)
except TradeX.TdxHq_error, e:
print "error: " + e.message
sys.exit(-1)
SetTimeout 设置行情连接超时
SetTimeout(nReadTimeout, nWriteTimeout)
说明:
设置tcp 的读写超时,单位ms,在连接行情服务器的时候缺省设置为1000ms。
行情服务器超时断开后,接口会close socket;用户需要先调用Disconnect,然后再调用Connect。
参数:
nReadTimeout -> 读(send)超时;
nWriteTimeout -> 写(recv)超时;
clientHq.SetTimeout(10000, 10000)
GetSecurityCount 获取指定市场内的证券数量
GetSecurityCount(nMarket)
说明:
获取指定市场内的证券数量。
参数:
nMarket -> 市场代码0:深圳,1:上海
nMarket = 0 # 0 - 深圳 1 - 上海
errinfo, count = clientHq.GetSecurityCount(nMarket)
if errinfo != "":
print (errinfo)
else:
print ("\t深市股票数量:", count, "\n")
GetSecurityList 获取市场内指定范围的证券代码
GetSecurityList(nMarket, nStart)
说明:
在指定市场内,抓取由指定位置起往后的1000 支证券代码数据。全市场抓取,需要循环设置位置。返回都是str类型!
参数:
nMarket -> 市场代码0:深圳,1:上海
nStart -> 指定的开始位置;开始位置取第一只股票(相对位置为0), 第二个相对位置为1,依此类推;
开始位置应参考TdxHq_GetSecurityCount 返回的证券总数确定。
nMarket = 0 # 0 - 深圳 1 - 上海
nStart = 0
errinfo, count, result = clientHq.GetSecurityList(nMarket, nStart)
if errinfo != "":
print(errinfo)
else:
print(count)
for line in result.split("\n"):
print(line)
1000
代码 一手股数 名称 保留 保留 昨收 保留 保留
395001 100 主板A股 34391 2 461.000000 0 0
395002 100 主板B股 1874 2 48.000000 0 0
395003 100 中小板 748 2 895.000000 0 0
395004 100 创业板 3825 2 705.000000 0 0
395011 100 封闭基金 3910 2 1.000000 0 0
395012 100 LOFs 661 2 238.000000 0 0
...
nMarket = 0
nStart = 0
errinfo, count, result = clientHq.GetSecurityList(nMarket, nStart)
if errinfo != "":
print(errinfo)
else:
print(count)
for line in result.split("\n"):
code = line.split("\t")[0]
print(code)
print(type(code))
1000
代码
395001
395002
395003
395004
395011
395012
...
<class 'str'>
GetSecurityQuotes 获取多个证券的盘口五档报价数据
etSecurityQuotes(((nMarket1, sStockCode1), (nMarket2, sStockCode2), …))
说明:
获取多个证券的盘口五档价格数据。
参数:
(nMarket, sStockCode) -> 元组,最大允许80 个元组,即单批最大可取证券数量不超过80。
nMarket -> 市场代码0:深圳,1:上海
sStockCode -> 证券代码(str类型)
errinfo, count, result = clientHq.GetSecurityQuotes(((0, "002180"),(0, "002190")))
if errinfo != "":
print(errinfo)
else:
print(count)
for line in result.split("\n"):
print(line)
2
市场 代码 活跃度 现价 昨收 开盘 最高 最低 保留 保留 总量 现量 总金额 内盘 外盘 保留 保留 买一价 卖一价 买一量 卖一量 买二价 卖二价 买二量 卖二量 买三价 卖三价 买三量 卖三量 买四价 卖四价 买四量 卖四量 买五价 卖五价 买五量 卖五量 保留 保留 保留 保留 保留 涨速 活跃度
0 002180 1441 30.150000 30.170000 30.389999 30.879999 30.000000 14382685 -3015 26053 11 79367120.000000 12908 13145 5 50000 30.100000 30.150000 30 48 30.090000 30.170000 20 10 30.080000 30.180000 69 31 30.070000 30.190001 24 86 30.059999 30.200001 21 17 1544 1 -4 -119 46 0.370000 1441
0 002190 1142 22.490000 23.049999 23.049999 23.180000 22.440001 14383451 -2249 13508 1 30731394.000000 8569 4939 0 5637 22.459999 22.490000 52 62 22.450001 22.500000 81 21 22.440001 22.510000 6 12 22.430000 22.520000 69 32 22.420000 22.530001 15 492 72 1 71 11 70 0.000000 1142
GetSecurityBars 获取某个范围内的证券K 线数据
GetSecurityBars(nCategory, nMarket, sStockCode, nStart, nCount)
说明:
获取市场内指定范围的证券K 线,
指定开始位置和指定K 线数量,指定数量最大值为800。
参数:
nCategory -> 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 线
nMarket -> 市场代码0:深圳,1:上海
sStockCode -> 证券代码;
nStart -> 指定的范围开始位置;
nCount -> 用户要请求的K 线数目,最大值为800。
nCategory = 7
nMarket = 0
sStockCode = '002180'
nStart = 0
nCount = 100
errinfo, count, result = clientHq.GetSecurityBars(nCategory, nMarket, sStockCode, nStart, nCount)
if errinfo != "":
print(errinfo)
else:
print(count)
print(result)
100
时间 开盘价 收盘价 最高价 最低价 成交量 成交额
2017-12-04 13:07 30.560000 30.560000 30.560000 30.560000 500 15280.000000
2017-12-04 13:08 30.560000 30.560000 30.570000 30.560000 2300 70291.000000
2017-12-04 13:09 30.550000 30.550000 30.550000 30.550000 900 27495.000000
GetIndexBars 获取某个范围内的指数K 线数据
GetIndexBars(nCategory, nMarket, sStockCode, nStart, nCount)
说明:
获取市场内指定范围的指数K 线,
指定开始位置和指定K 线数量,指定数量最大值为800。
参数:
nCategory -> 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 线
nMarket -> 市场代码0:深圳,1:上海
sStockCode -> 证券代码;
nStart -> 指定的范围开始位置;
nCount -> 用户要请求的K 线数目。
GetMinuteTimeData 获取当日分时成交数据
GetMinuteTimeData(nMarket, sStockCode)
说明:
获取当日的分时成交数据
参数:
nMarket -> 市场代码0:深圳,1:上海
sStockCode -> 证券代码。
nMarket = 0
sStockCode = "000001"
errinfo, result = clientHq.GetMinuteTimeData(nMarket, sStockCode)
if errinfo != "":
print(errinfo)
else:
print(result)
现价 成交量 保留
13.060000 39548 75
13.090000 11885 -14
13.070000 11417 20
...
GetHistoryMinuteTimeData 获取历史分时成交数据
GetHistoryMinuteTimeData(nMarket, sStockCode, nDate)
说明:
获取指定的历史交易日的分时成交数据
参数:
nMarket -> 市场代码0:深圳,1:上海
sStockCode -> 证券代码。
nDate -> 指定的历史交易日期,如2017 年2 月1 日,则为整数20170201
GetTransactionData 获取当日指定范围的分笔成交数据
GetTransactionData(nMarket, sStockCode, nStart, nCount)
说明:
获取当日指定范围的分笔成交数据
参数:
nMarket -> 市场代码0:深圳,1:上海
sStockCode -> 证券代码;
nStart -> 指定的范围开始位置;
nCount -> 请求的分笔成交笔数,最大值为2000。
nMarket = 0
sStockCode = "000001"
nStart = 0
nCount = 10
errinfo, count, result = clientHq.GetTransactionData(nMarket, sStockCode, nStart, nCount)
if errinfo != "":
print(errinfo)
else:
print(count)
print(result)
10
时间 价格 现量 笔数 买卖 保留
14:54 13.270000 53 7 1 0
14:54 13.280000 8 2 0 0
14:54 13.270000 24 4 1 0
14:54 13.280000 180 11 0 0
...
**GetHistoryTransactionData 获取历史交易日指定范围内的分笔
成交数据**
GetHistoryTransactionData(nMarket, sStockCode, nStart, nCount, nDate)
说明:
获取历史交易日指定范围内的分笔成交数据
参数:
nMarket -> 市场代码0:深圳,1:上海
sStockCode -> 证券代码;
nStart -> 指定的范围开始位置;
nCount -> 请求的分笔成交笔数,最大值为2000;
nDate -> 指定的历史交易日期,如2017 年2 月1 日,则为整数20170201。
GetXDXRInfo 获取除权除息数据
GetXDXRInfo(nMarket, sStockCode)
说明:
获取证券的除权除息数据
参数:
nMarket -> 市场代码0:深圳,1:上海
sStockCode -> 证券代码;
nMarket = 0
sStockCode = "000001"
errinfo, result = clientHq.GetXDXRInfo(nMarket, sStockCode)
if errinfo != "":
print(errinfo)
else:
print(result)
市场 证券代码 日期 保留 送现金 配股价 送股数 配股比例
0 000001 19900301 1 0.000000 3.560000 0.000000 1.000000
0 000001 19910403 5 0.000000 0.000000 2650.000000 4850.017090
0 000001 19910502 1 3.000000 0.000000 4.000000 0.000000
0 000001 19910502 2 2650.000000 4850.017090 3949.072266 8975.164063
0 000001 19910817 1 0.000000 0.000000 10.000000 0.000000
0 000001 19920323 1 2.000000 0.000000 5.000000 0.000000
...