证券类
get_market_status 获取市场状态
QuoteClient.get_market_status(market=Market.ALL, lang=None)
说明
获取被查询市场的状态(开盘,盘前交易,盘后等),并获取被查询市场的最近开盘时间
请求频率
频率限制请参考:接口请求限制
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
market | Market | Yes | 查询的市场,可以使用 tigeropen.common.consts.Market 下提供的枚举常量,如 Market.US,参见枚举参数部分 |
lang | Language | No | 支持的语言,可以使用 tigeropen.common.consts.Language 下提供的枚举常量,如 Language.zh_CN,默认是Language.en_US,参见枚举参数部分 |
返回
list
元素为 MarketStatus 对象,MarketStatus结构如下:
参数名 | 类型 | 描述 |
---|---|---|
market | str | 市场名称 |
trading_status | str | 交易状态码。未开盘 NOT_YET_OPEN; 盘前交易 PRE_HOUR_TRADING; 交易中 TRADING; 午间休市 MIDDLE_CLOSE; 盘后交易 POST_HOUR_TRADING; 已收盘 CLOSING; 提前休市 EARLY_CLOSED; 休市 MARKET_CLOSED; |
status | str | 交易状态描述 |
open_time | datetime | 最近的开盘、交易时间,带时区信息 |
示例
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)
market_status_list = quote_client.get_market_status(Market.US)
# 查看属性
market_status = market_status_list[0]
print(market_status.market)
print(market_status.trading_status)
返回示例
[MarketStatus({'market': 'US', 'status': '盘前交易', 'open_time': datetime.datetime(2019, 1, 7, 9, 30, tzinfo=<DstTzInfo 'US/Eastern' EST-1 day, 19:00:00 STD>), 'trading_status': 'PRE_HOUR_TRADING'})]
get_trading_calendar 获取市场交易日历
获取市场交易日历
QuoteClient.get_trading_calendar(market, begin_date=None, end_date=None)
说明
获取市场交易日历. 通过去除周末和该市场节假日得出,未去除临时休市的日期.
提供2015年之后到本年底的日历。 如果超出范围,则起止时间会被处理到提供数据的范围内。
请求频率
频率限制请参考:接口请求限制
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
market | Market | Yes | 查询的市场,可以使用 tigeropen.common.consts.Market 下提供的枚举常量,如 Market.US,参见枚举参数部分 |
begin_date | str | No | 日历起始时间, 结果里包含本日。yyyy-MM-dd 格式,如 '2022-06-01' |
end_date | str | No | 日历截至时间,结果里不包含本日。yyyy-MM-dd 格式 |
begin_time 和 end_time 传参处理如下:
begin_time是否传递 | end_time是否传递 | 说明 |
---|---|---|
yes | yes | begin_time和end_time分别为所传值 |
yes | no | end_time为begin_time往后365天 |
no | yes | begin_time为end_time往前365天 |
no | no | begin_time为当前日期,end_time为begin_time往后30天 |
返回
list
每个元素为 dict, key 的含义如下
参数名 | 类型 | 描述 |
---|---|---|
date | str | 交易日日期 |
type | str | 交易日类型. TRADING为正常交易日,全天交易; EARLY_CLOSE为提前休市 |
示例
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)
calendar = openapi_client.get_trading_calendar(Market.US, begin_date='2022-11-01', end_date='2022-12-01')
print(calendar)
# 查看属性
print(calendar[0]['date'])
print(calendar[0]['type'])
返回示例
[{'date': '2022-11-01', 'type': 'TRADING'}, {'date': '2022-11-02', 'type': 'TRADING'}, {'date': '2022-11-03', 'type': 'TRADING'},
{'date': '2022-11-04', 'type': 'TRADING'}, {'date': '2022-11-07', 'type': 'TRADING'}, {'date': '2022-11-08', 'type': 'TRADING'},
{'date': '2022-11-09', 'type': 'TRADING'}, {'date': '2022-11-10', 'type': 'TRADING'}, {'date': '2022-11-11', 'type': 'TRADING'},
{'date': '2022-11-14', 'type': 'TRADING'}, {'date': '2022-11-15', 'type': 'TRADING'}, {'date': '2022-11-16', 'type': 'TRADING'},
{'date': '2022-11-17', 'type': 'TRADING'}, {'date': '2022-11-18', 'type': 'TRADING'}, {'date': '2022-11-21', 'type': 'TRADING'},
{'date': '2022-11-22', 'type': 'TRADING'}, {'date': '2022-11-23', 'type': 'TRADING'}, {'date': '2022-11-25', 'type': 'EARLY_CLOSE'},
{'date': '2022-11-28', 'type': 'TRADING'}, {'date': '2022-11-29', 'type': 'TRADING'}, {'date': '2022-11-30', 'type': 'TRADING'}]
get_symbols 获取所有证券代码列表
QuoteClient.get_symbols(market=Market.ALL, include_otc=False)
说明
获取所选市场所有证券的代码列表,包含退市和不可交易的部分代码以及指数。
请求频率
频率限制请参考:接口请求限制
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
market | Market | Yes | 查询的市场, 可以使用tigeropen.common.consts.Market下提供的枚举常量,如Market.US |
include_otc | bool | No | 是否包含OTC证券 |
返回
类型
list
元素为市场所有证券的symbol,包含退市和不可交易的部分代码。其中以.
开头的代码为指数, 如 .DJI
表示道琼斯指数。
示例
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)
symbols = quote_client.get_symbols(market.US)
print(symbols)
返回示例
['.DJI', '.IXIC', '.SPX', 'A', 'AA', 'AAA', 'AAAU', 'AAC', 'AAC.U', 'AAC.WS', 'AACG', 'AACI', 'AACIU', 'AACIW', 'AACQW', 'AADI', 'AADR', 'AAIC', 'AAIN', 'AAL', 'AAMC', 'AAME', 'AAN', 'AAOI', 'AAON', 'AAP', 'AAPL',....,'ZYME', 'ZYNE', 'ZYXI']
get_symbol_names 获取代码及名称列表
QuoteClient.get_symbol_names(market=Market.ALL, include_otc=False)
说明
获取所选市场所有证券的代码及名称
请求频率
频率限制请参考:接口请求限制
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
market | Market | Yes | 查询的市场,可以使用tigeropen.common.consts.Market下提供的枚举常量,如 Market.US |
include_otc | bool | No | 是否包含OTC证券 |
返回
list
结构如下:
list的每个对象是一个tuple,tuple的第一个元素是symbol,第二个是name。
示例
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)
symbol_names = quote_client.get_symbol_names(market=Market.ALL)
print(symbol_names)
返回示例
[('AAAP', 'Advanced Accelerator Applications SA'), ('AAAU', 'Perth Mint Physical Gold ETF'), ('AABA', 'Altaba'), ('AAC', 'AAC Holdings Inc')]
get_timeline 获取最近一个交易日的分时数据
QuoteClient.get_timeline(symbols, include_hour_trading=False, begin_time=-1, lang=None)
说明
获取最近一个交易日的分时数据,分时数据与分钟bar类似,每分钟产生一个。只支持查询最新一个交易日的数据,如果需要历史数据,请使用 get_bars
接口查询
请求频率
频率限制请参考:接口请求限制
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
symbols | list[str] | Yes | 证券代码列表,单次上限50只,如 ['AAPL', 'TSLA'] |
include_hour_trading | bool | No | 是否包含盘前盘后分时数据,可选填,如 True 或 False |
begin_time | str | No | 获取分时数据的起始时间, 支持毫秒级别的时间戳,或日期时间字符串。如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07',默认返回当天数据 |
lang | Language | No | 支持的语言,可以使用tigeropen.common.consts.Language下提供的枚举常量,默认为英文 |
返回
pandas.DataFrame
结构如下:
COLUMN | 类型 | 描述 |
---|---|---|
symbol | str | 证券代码,如 AAPL |
time | int | 精确到毫秒的时间戳,如 1639386000000 |
price | float | 当前分钟的收盘价 |
avg_price | float | 截至到当前时间的成交量加权均价 |
pre_close | float | 昨日收盘价 |
volume | int | 这一分钟的成交量 |
trading_session | str | 字符串, "pre_market" 表示盘前交易, "regular" 表示盘中交易, "after_hours"表示盘后交易。 |
示例
import pandas as pd
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)
timeline = quote_client.get_timeline(['01810'], include_hour_trading=False)
# 将 time 转换为对应时区的日期时间
timeline['cn_date'] = pd.to_datetime(timeline['time'], unit='ms').dt.tz_localize('UTC').dt.tz_convert('Asia/Shanghai')
timeline['us_date'] = pd.to_datetime(timeline['time'], unit='ms').dt.tz_localize('UTC').dt.tz_convert('US/Eastern')
# 查看最新一条数据
print(timeline.iloc[-1].price)
print(timeline.iloc[-1].volume)
# 按symbol过滤
df = timeline.loc[timeline['symbol'] == 'AAPL']
返回示例
symbol time price avg_price pre_close volume trading_session
0 01810 1547217000000 23.4700 23.211563 23.4 233000 regular
1 01810 1547217060000 23.6700 23.408620 23.4 339296 regular
2 01810 1547217120000 23.5900 23.423038 23.4 46337 regular
3 01810 1547217180000 23.5000 23.428830 23.4 66697 regular
4 01810 1547217240000 23.5108 23.433360 23.4 46762 regular
get_timeline_history 获取历史分时数据
QuoteClient.get_timeline_history(symbols, date, right)
说明
获取某一日期的历史分时数据
请求频率
频率限制请参考:接口请求限制
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
symbols | list[str] | Yes | 证券代码列表,单次上限50只,如 ['AAPL', 'TSLA'] |
date | str | Yes | 日期字符串。如 '2022-04-14' |
right | QuoteRight | No | 行情复权,默认前复权。可以使用tigeropen.common.consts.QuoteRight的枚举值 |
返回
pandas.DataFrame
结构如下:
COLUMN | 类型 | 描述 |
---|---|---|
symbol | str | 证券代码,如 AAPL |
time | int | 精确到毫秒的时间戳,如 1639386000000 |
price | float | 当前分钟的收盘价 |
avg_price | float | 截至到当前时间的成交量加权均价 |
示例
import pandas as pd
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)
timeline = quote_client.get_timeline_history(['AAPL', 'BABA'], '2021-04-11')
# 将 time 转换为对应时区的日期时间
timeline['cn_date'] = pd.to_datetime(timeline['time'], unit='ms').dt.tz_localize('UTC').dt.tz_convert('Asia/Shanghai')
timeline['us_date'] = pd.to_datetime(timeline['time'], unit='ms').dt.tz_localize('UTC').dt.tz_convert('US/Eastern')
# 按symbol过滤
df = timeline.loc[timeline['symbol'] == 'AAPL']
print(timeline)
返回示例
symbol time volume price avg_price cn_date us_date
0 AAPL 1649683800000 1569372 168.5000 168.749760 2022-04-11 21:30:00+08:00 2022-04-11 09:30:00-04:00
1 AAPL 1649683860000 323022 168.5800 168.739030 2022-04-11 21:31:00+08:00 2022-04-11 09:31:00-04:00
2 AAPL 1649683920000 362722 168.3230 168.713610 2022-04-11 21:32:00+08:00 2022-04-11 09:32:00-04:00
3 AAPL 1649683980000 511613 167.8300 168.637360 2022-04-11 21:33:00+08:00 2022-04-11 09:33:00-04:00
4 AAPL 1649684040000 332041 167.7700 168.587750 2022-04-11 21:34:00+08:00 2022-04-11 09:34:00-04:00
.. ... ... ... ... ... ... ...
385 BABA 1649706900000 98750 101.5600 102.089710 2022-04-12 03:55:00+08:00 2022-04-11 15:55:00-04:00
386 BABA 1649706960000 74946 101.5984 102.088660 2022-04-12 03:56:00+08:00 2022-04-11 15:56:00-04:00
387 BABA 1649707020000 88570 101.5900 102.087290 2022-04-12 03:57:00+08:00 2022-04-11 15:57:00-04:00
388 BABA 1649707080000 113611 101.5207 102.085380 2022-04-12 03:58:00+08:00 2022-04-11 15:58:00-04:00
389 BABA 1649707140000 430195 101.5500 102.076324 2022-04-12 03:59:00+08:00 2022-04-11 15:59:00-04:00
get_trade_ticks 获取逐笔成交数据
QuoteClient.get_trade_ticks(symbols, trade_session=None, begin_index=0, end_index=30, limit=30, lang=None)
说明
获取逐笔成交数据,该接口可以支持在收盘后查询当前交易日的全量逐笔记录,也可以支持查询盘中最新的实时逐笔记录。
请求频率
频率限制请参考:接口请求限制
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
symbols | list[str] | Yes | 证券代码列表,最多50个 |
trade_session | tigeropen.common.consts.TradingSession | No | 交易时段,盘前/盘中/盘后。非必填,默认返回盘中数据 |
begin_index | int | No | 起始索引,当日索引值从0开始,如果begin_index和end_index设置为-1,会返回最新的逐笔数据,后续查询时,可以把上次查询返回的end_index值当做begin_index,从而进行连续查询,返回数据为前闭后开集合,比如:begin_index=1,end_index=100,会返回从1到99的记录,下次查询时,设置begin_index=100,end_index=200。 |
end_index | int | No | 结束索引,结束索引和起始索引的差值不能大于2000,大于2000时默认返回从起始索引开始的200条记录。当limit参数小于起始和结束索引的差值时,只会返回从起始索引开始的limit条逐笔数据。 |
limit | int | No | 返回条数限制,默认返回:200,最大限制:2000 |
lang | Language | No | 支持的语言, 可以使用 tigeropen.common.consts.Language 下提供的枚举常量,默认英文 |
begin_index 和 end_index参数使用说明
查询方式 | begin_index | end_index | 描述 |
---|---|---|---|
查询最新逐笔记录 | -1 | -1 | 默认返回limit条最新的逐笔记录。limit 默认为200 |
根据区间查询当日逐笔 | 具体数值 | 具体数值 | 举例:begin_index=10, end_index=100 ,会返回包含10到99的 90条记录。如果limit设置为20,则会返回10到29的20条记录。 |
返回
pandas.DataFrame
结构如下:
参数名 | 类型 | 描述 |
---|---|---|
index | int | 索引值 |
time | int | 毫秒时间戳 |
price | float | 成交价 |
volume | int | 成交量 |
direction | str | 价格变动方向,"+"表示主动买入,"-"表示主动卖出,"*"表示中性 |
示例
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
from tigeropen.common.consts import TradingSession
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)
ticks = quote_client.get_trade_ticks(['00700'])
# 查询最新tick数据
ticks = quote_client.get_trade_ticks(['AAPL'], begin_index=-1, end_index=-1)
# 请求盘前tick数据
ticks = quote_client.get_trade_ticks(['AAPL'], trade_session=TradingSession.PreMarket)
# 请求盘后tick数据
ticks = quote_client.get_trade_ticks(['00700'], trade_session=TradingSession.AfterHours)
返回示例
symbol time volume price direction index
0 AAPL 1712347199527 291 169.53 - 521645
1 AAPL 1712347199564 200 169.53 - 521646
2 AAPL 1712347199564 400 169.53 - 521647
3 AAPL 1712347199564 500 169.53 - 521648
4 AAPL 1712347199566 900 169.53 - 521649
.. ... ... ... ... ... ...
395 AMD 1712347200234 40 170.40 * 556800
396 AMD 1712347200273 55 170.39 * 556801
397 AMD 1712347200274 5 170.39 * 556802
398 AMD 1712347200488 1577655 170.42 * 556803
399 AMD 1712347200489 33 170.42 * 556804
get_stock_briefs 获取股票实时行情
QuoteClient.get_stock_briefs(symbols, include_hour_trading=False, lang=None)
说明
获取股票的实时行情,使用前需购买相应的行情权限,单次请求限制50只股票
请求频率
频率限制请参考:接口请求限制
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
symbols | list[str] | Yes | 证券代码的列表,最多50只,如 ['AAPL', 'MSFT'] |
include_hour_trading | bool | No | 是否返回盘前盘后数据 |
lang | Language | No | 支持的语言,可以使用tigeropen.common.consts.Language下提供的枚举常量 |
返回
pandas.DataFrame
结构如下:
COLUMN | 类型 | 描述 |
---|---|---|
symbol | str | 证券代码 |
ask_price | float | 卖一价 |
ask_size | int | 卖一量 |
bid_price | float | 买一价 |
bid_size | int | 买一量 |
pre_close | float | 前收价 |
latest_price | float | 最新价 |
latest_time | int | 最新成交时间,毫秒单位数字时间戳 |
volume | int | 成交量 |
open | float | 开盘价 |
high | float | 最高价 |
low | float | 最低价 |
status | str | 交易状态 |
adj_pre_close | str | 复权调整后的昨收价格 |
hour_trading_tag | str | 盘前("Pre-Mkt")、盘后("Post-Mkt")标识 |
hour_trading_latest_price | float | 盘前盘后实时价格 |
hour_trading_latest_time | str | 最新成交时间(美东时间) |
hour_trading_volume | int | 盘前盘后成交量 |
hour_trading_timestamp | int | 最新成交时间 |
status(交易状态) 取值:
- "UNKNOWN": 未知
- "NORMAL": 正常
- "HALTED": 停牌
- "DELIST": 退市
- "NEW": 新股
- "ALTER": 变更
示例
import pandas as pd
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)
briefs = quote_client.get_stock_briefs(['00700'])
print(briefs)
# 将 latest_time 转换为对应时区的日期时间
briefs['cn_date'] = pd.to_datetime(briefs['latest_time'], unit='ms').dt.tz_localize('UTC').dt.tz_convert('Asia/Shanghai')
briefs['us_date'] = pd.to_datetime(briefs['latest_time'], unit='ms').dt.tz_localize('UTC').dt.tz_convert('US/Eastern')
返回示例
symbol open high low close pre_close latest_price latest_time ask_price ask_size bid_price bid_size volume status adj_pre_close hour_trading_tag hour_trading_latest_price hour_trading_pre_close hour_trading_latest_time hour_trading_volume hour_trading_timestamp cn_date us_date
0 MARA 15.28 16.74 15.24 15.67 15.32 15.67 1688760000000 15.79 200 15.75 300 60526218 NORMAL 15.67 Pre-Mkt 15.79 15.67 05:43 EDT 58654 1688982215635 2023-07-08 04:00:00+08:00 2023-07-07 16:00:00-04:00
1 MSFT 339.32 341.79 337.00 337.22 341.27 337.22 1688760000000 334.60 600 334.25 800 21214824 NORMAL 337.22 Pre-Mkt 334.27 337.22 05:43 EDT 58514 1688982207634 2023-07-08 04:00:00+08:00 2023-07-07 16:00:00-04:00
get_stock_delay_briefs 获取股票延迟行情
QuoteClient.get_stock_delay_briefs(symbols, lang=None)
说明
本接口为免费延迟行情接口。不需要购买行情权限,开通开发者账号后可直接请求使用。目前仅支持获取美股延迟行情,相对实时行情延迟15分钟
请求频率
频率限制请参考:接口请求限制
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
symbols | list[str] | Yes | 证券代码的列表,目前仅支持获取美股延迟行情。 如 ['AAPL', 'MSFT'],单次请求上限50 |
lang | Language | No | 支持的语言, 可以使用tigeropen.common.consts.Language下提供的枚举常量, 如 Language.en_US |
返回
pandas.DataFrame
结构如下:
参数名 | 类型 | 描述 |
---|---|---|
symbol | str | 证券代码 |
pre_close | float | 前收价 |
time | int | 最近成交时间,毫秒为单位的数字时间戳,如 1639429200000 |
volume | int | 成交量 |
open | float | 开盘价 |
high | float | 最高价 |
low | float | 最低价 |
close | float | 收盘价 |
halted | float | 标的状态 (0: 正常 3: 停牌 4: 退市 7: 新股 8: 变更) |
示例
import pandas as pd
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)
briefs = quote_client.get_stock_briefs(['AAPL'])
print(briefs)
# 将 time 转换为对应时区的日期时间
briefs['cn_date'] = pd.to_datetime(briefs['time'], unit='ms').dt.tz_localize('UTC').dt.tz_convert('Asia/Shanghai')
briefs['us_date'] = pd.to_datetime(briefs['time'], unit='ms').dt.tz_localize('UTC').dt.tz_convert('US/Eastern')
返回示例
symbol pre_close halted time open high low close \
0 AAPL 174.33 0.0 1639602000000 175.11 179.5 172.3108 179.3
volume cn_date us_date
0 131063257 2021-12-16 05:00:00+08:00 2021-12-15 16:00:00-05:00
get_bars 获取K线数据
QuoteClient.get_bars(symbols, period=BarPeriod.DAY, begin_time=-1, end_time=-1, right=QuoteRight.BR, limit=251, lang=NONE)
说明
获取指定股票的K线数据,可指定不同的时间粒度。目前此接口支持获取以日、周、月、年、分钟、5分钟、15分钟、30分钟、60分钟为单位的K线数据。 考虑到接口性能和稳定性,此接口请求最高限制为1200条。
对于需要更多历史数据进行分析或回测的用户,可以通过 get_bars_by_page
方法请求。也可以自行实现循环,通过多次请求的方式获取更长时间范围的历史的数据。
我们编写了一个示例以供参考,需要注意的是,可以请求的K线数量可能会存在限制,具体请见历史行情限制
请求频率
频率限制请参考:接口请求限制
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
symbols | list[str] | Yes | 证券代码列表,单次上限50只, 如 ['AAPL', 'GOOG'] |
period | tigeropen.common.consts.BarPeriod | No | 获取的K线周期。默认 BarPeriod.DAY,可以使用 tigeropen.common.consts.BarPeriod 下提供的枚举常量,如 BarPeriod.DAY。 'day'/'week'/'month'/'year'/'1min'/'5min'/'15min'/'30min'/'60min' |
begin_time | int或str | No | 起始时间。支持毫秒级别的时间戳或日期字符串,如 1639371600000 或 '2019-06-07 23:00:00' 或 '2019-06-07' |
end_time | int或str | No | 截至时间。支持毫秒级别的时间戳或日期字符串,如 1639371600000 或 '2019-06-07 23:00:00' 或 '2019-06-07' |
right | QuoteRight | No | 复权方式。默认前复权,可以使用 tigeropen.common.consts.QuoteRight 下提供的枚举常量,如 QuoteRight.BR 前复权,QuoteRight.NR 不复权 |
limit | int | No | 限制数据的条数。默认 251 |
lang | Language | No | 支持的语言, 可以使用 tigeropen.common.consts.Language 下提供的枚举常量, 如 Language.zh_CN |
page_token | str | No | 分页token,记录分页的位置,上次请求返回的 next_page_token 可传入作为下次请求的起始标志 |
返回
pandas.DataFrame
结构如下:
参数名 | 类型 | 描述 |
---|---|---|
time | int | 毫秒时间戳,如 1639371600000 |
open | float | Bar 的开盘价 |
close | float | Bar 的收盘价 |
high | float | Bar 的最高价 |
low | float | Bar 的最低价 |
volume | float | Bar 的成交量 |
amount | float | Bar 的成交额 |
示例
import pandas as pd
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)
bars = quote_client.get_bars(['AAPL'])
print(bars.head())
# 分钟k线
bars = quote_client.get_bars(symbols, period=BarPeriod.ONE_MINUTE,
begin_time='2023-06-05 00:30:00',
end_time='2023-06-10 23:31:00'
)
# 转换 time 格式
bars['cn_date'] = pd.to_datetime(bars['time'], unit='ms').dt.tz_localize('UTC').dt.tz_convert('Asia/Shanghai')
bars['us_date'] = pd.to_datetime(bars['time'], unit='ms').dt.tz_localize('UTC').dt.tz_convert('US/Eastern')
返回示例
symbol time open high low close volume amount
0 00700 1515474000000 174.5500 175.0600 173.4100 174.33 21583997 1000
1 00700 1515560400000 173.1600 174.3000 173.0000 174.29 23959895 1000
2 00700 1515646800000 174.5900 175.4886 174.4900 175.28 18667729 1000
3 00700 1515733200000 176.1800 177.3600 175.6500 177.09 25418080 1000
4 00700 1516078800000 177.9000 179.3900 176.1400 176.19 29565947 1000
get_bars_by_page 分页获取K线数据
QuoteClient.get_bars_by_page(symbol, period=BarPeriod.DAY, begin_time=-1, end_time=-1, total=10000, page_size=1000, right=QuoteRight.BR, time_interval=2, lang=None)
说明
分页获取指定股票的K线数据。
请求频率
频率限制请参考:接口请求限制
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
symbol | str | Yes | 证券代码,每次只能查单只标的。 |
period | tigeropen.common.consts.BarPeriod | No | 获取的K线周期。默认 BarPeriod.DAY,可以使用 tigeropen.common.consts.BarPeriod 下提供的枚举常量,如 BarPeriod.DAY。 'day'/'week'/'month'/'year'/'1min'/'5min'/'15min'/'30min'/'60min' |
begin_time | int或str | No | 起始时间。支持毫秒级别的时间戳或日期字符串,如 1639371600000 或 '2019-06-07 23:00:00' 或 '2019-06-07' |
end_time | int或str | No | 截至时间。支持毫秒级别的时间戳或日期字符串,如 1639371600000 或 '2019-06-07 23:00:00' 或 '2019-06-07' |
total | int | No | 请求bar的总数。默认:10000 |
page_size | int | No | 每页bar的数量。默认:1000 |
time_interval | int | No | 每次请求的时间间隔,单位秒,默认:2秒 |
right | QuoteRight | No | 复权方式。默认前复权,可以使用 tigeropen.common.consts.QuoteRight 下提供的枚举常量,如 QuoteRight.BR 前复权,QuoteRight.NR 不复权 |
limit | int | No | 限制数据的条数。默认 251 |
lang | Language | No | 支持的语言, 可以使用 tigeropen.common.consts.Language 下提供的枚举常量, 如 Language.zh_CN |
返回
pandas.DataFrame
结构如下:
参数名 | 类型 | 描述 |
---|---|---|
time | int | 毫秒时间戳,如 1639371600000 |
open | float | Bar 的开盘价 |
close | float | Bar 的收盘价 |
high | float | Bar 的最高价 |
low | float | Bar 的最低价 |
volume | float | Bar 的成交量 |
next_page_token | str | 下一页的page_token |
示例
import pandas as pd
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)
bars = quote_client.get_bars_by_page('AAPL')
print(bars.head())
返回示例
symbol time open high low close volume next_page_token
0 AAPL 1650254400000 163.92 166.5984 163.57 165.07 69023941 a2xpbmUyLjB8QUFQTHxkYXl8MTY1MTMzNDQwMDAwMHwxNj...
1 AAPL 1650340800000 165.02 167.8200 163.91 167.40 67723833 a2xpbmUyLjB8QUFQTHxkYXl8MTY1MTMzNDQwMDAwMHwxNj...
2 AAPL 1650427200000 168.76 168.8800 166.10 167.23 67929814 a2xpbmUyLjB8QUFQTHxkYXl8MTY1MTMzNDQwMDAwMHwxNj...
3 AAPL 1650513600000 168.91 171.5300 165.91 166.42 87227768 a2xpbmUyLjB8QUFQTHxkYXl8MTY1MTMzNDQwMDAwMHwxNj...
4 AAPL 1650600000000 166.46 167.8699 161.50 161.79 84882424 a2xpbmUyLjB8QUFQTHxkYXl8MTY1MTMzNDQwMDAwMHwxNj...
5 AAPL 1650859200000 161.12 163.1700 158.46 162.88 96046376 a2xpbmUyLjB8QUFQTHxkYXl8MTY1MTMzNDQwMDAwMHwxNj...
6 AAPL 1650945600000 162.25 162.3400 156.72 156.80 95623240 a2xpbmUyLjB8QUFQTHxkYXl8MTY1MTMzNDQwMDAwMHwxNj...
7 AAPL 1651032000000 155.91 159.7900 155.38 156.57 88063191 a2xpbmUyLjB8QUFQTHxkYXl8MTY1MTMzNDQwMDAwMHwxNj...
get_depth_quote 获取深度行情
QuoteClient.get_depth_quote(symbols, market)
说明
获取输入证券代码的买卖N档挂单数据,包括委托价格,数量及订单数,单次请求上限为50只
CAUTION
港股交易日收市竞价时间为16:00-16:10(于16:08与16:10之间随机收市),当天最后一条深度行情数据一般在16:10之后的一两分钟后更新
请求频率
频率限制请参考:接口请求限制
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
symbols | list[str] | Yes | 证券代码列表,单次上限50只 |
market | Market | Yes | 查询的市场, 可以使用 tigeropen.common.consts.Market 下提供的枚举常量 |
返回
dict
数据示例:
若返回单个 symbol:
{'symbol': '02833',
'asks': [(27.4, 300, 2), (27.45, 500, 1), (27.5, 4400, 1), (27.55, 0, 0), (27.6, 5700, 3), (27.65, 0, 0),
(27.7, 500, 1), (27.75, 0, 0), (27.8, 0, 0), (27.85, 0, 0)],
'bids': [(27, 4000, 3), (26.95, 200, 1), (26.9, 0, 0), (26.85, 400, 1), (26.8, 0, 0), (26.75, 0, 0),
(26.7, 0, 0), (26.65, 0, 0), (26.6, 0, 0), (26.55, 0, 0)]
}
若返回多个 symbol:
{'02833':
{'symbol': '02833',
'asks': [(27.35, 200, 1), (27.4, 2100, 2), (27.45, 500, 1), (27.5, 4400, 1), (27.55, 0, 0),
(27.6, 5700, 3), (27.65, 0, 0), (27.7, 500, 1), (27.75, 0, 0), (27.8, 0, 0)],
'bids': [(27.05, 100, 1), (27, 5000, 4), (26.95, 200, 1), (26.9, 0, 0), (26.85, 400, 1), (26.8, 0, 0),
(26.75, 0, 0), (26.7, 0, 0), (26.65, 0, 0), (26.6, 0, 0)]
},
'02828':
{'symbol': '02828',
'asks': [(106.6, 6800, 7), (106.7, 110200, 10), (106.8, 64400, 8), (106.9, 80600, 8), (107, 9440, 16),
(107.1, 31800, 5), (107.2, 11800, 4), (107.3, 9800, 2), (107.4, 9400, 1), (107.5, 21000, 9)],
'bids': [(106.5, 62800, 17), (106.4, 68200, 9), (106.3, 78400, 6), (106.2, 52400, 4), (106.1, 3060, 4),
(106, 33400, 4), (105.9, 29600, 3), (105.8, 9600, 2), (105.7, 15200, 2), (105.6, 0, 0)]}
}
asks 和 bids 对应的列表项数据含义为 (委托价格,委托数量,委托订单数) :
[(ask_price1, ask_volume1, order_count), (ask_price2, ask_volume2, order_count), ...]
[(bid_price1, bid_volume2, order_count), (bid_price2, bid_volume2, order_count), ...]
示例
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)
depth_quote = quote_client.get_depth_quote(['02833'], Market.HK)
返回示例
{'symbol': '02833',
'asks': [(27.4, 300, 2), (27.45, 500, 1), (27.5, 4400, 1), (27.55, 0, 0), (27.6, 5700, 3), (27.65, 0, 0),
(27.7, 500, 1), (27.75, 0, 0), (27.8, 0, 0), (27.85, 0, 0)],
'bids': [(27, 4000, 3), (26.95, 200, 1), (26.9, 0, 0), (26.85, 400, 1), (26.8, 0, 0), (26.75, 0, 0),
(26.7, 0, 0), (26.65, 0, 0), (26.6, 0, 0), (26.55, 0, 0)]
}
get_trade_metas 获取股票交易需要的信息
QuoteClient.get_trade_metas(symbols)
说明
获取股票交易需要的信息,如每手股数,比如港股下单股数必须为每手股数的整数倍
请求频率
频率限制请参考:接口请求限制
参数
参数名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
symbols | list[str] | Yes | 证券代码列表, 上限为50 |
返回
pandas.DataFrame
结构如下:
COLUMN | 类型 | 描述 |
---|---|---|
symbol | str | 证券代码 |
lot_size | int | 每手股数 |
min_tick | float | 价格最小变动单位 |
spread_scale | float | 报价精度 |
示例
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)
trade_metas = quote_client.get_trade_metas(symbols=['00700', '00336'])
返回示例
symbol lot_size min_tick spread_scale
0 00700 100 0.20 0
1 00336 1000 0.01 0
get_capital_flow 获取股票资金流数据
QuoteClient.get_capital_flow
说明
获取股票资金净流入数据,包括最近一个交易日的实时分钟数据,和不同周期的净流入数据。对不同的时间粒度,支持获取以日、周、月、季、半年、年为单位的数据,最高限制为1200条,默认为200条。
参数、
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
symbol | string | Yes | 股票代码 |
period | CapitalPeriod | Yes | 数据类型,取值范围(intraday:实时,day:日,week:周,month:月,year:年,quarter:季度,6month:半年) |
market | Market | Yes | US 美股,HK港股,CN A股(实时资金流向不支持A股) |
begin_time | int | No | 开始时间,默认:-1,单位:毫秒(ms),前闭后开区间,即查询结果会包含起始时间数据,如查询周/月/年K线,会返回包含当前周期的数据(如:起始时间为周三,会返回从这周一的数据) |
end_time | int | No | 结束时间,默认:-1,单位:毫秒(ms) |
limit | int | No | 单次请求返回数量,不传默认是200,limit不能超过1200,如果limit设置大于1200,只会返回1200条数据 |
lang | Lang | No | 语言支持: zh_CN,zh_TW,en_US, 默认: en_US |
返回
pandas.DataFrame
字段 | 类型 | 说明 |
---|---|---|
symbol | string | 股票代码 |
period | string | 周期 |
time | string | 标的所在市场时区的时间字符串,实时数据时为"11-25 12:48:00 EST"格式,非实时数据为"2022-11-22"格式 |
timestamp | int | 13位时间戳 |
net_inflow | float | 净流入金额,负数表示流出 |
示例
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)
result = quote_client.get_capital_flow('AAPL', market=Market.US, period=CapitalPeriod.INTRADAY)
print(result)
# 获取第一行的 net_inflow
result.iloc[0]['net_inflow']
# 或 result['net_inflow'].iloc[0]
返回示例
time timestamp net_inflow symbol period
0 2022-02-24 1645678800000 -5.889058e+08 AAPL day
1 2022-02-25 1645765200000 -1.229127e+08 AAPL day
2 2022-02-28 1646024400000 1.763644e+08 AAPL day
get_capital_distribution 获取股票资金分布
QuoteClient.get_capital_distribution
说明
获取股票资金分布。
参数
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
symbol | str | Yes | 股票代码 |
market | Market | Yes | US 美股,HK港股,CN A股 |
lang | Lang | No | 语言支持: zh_CN,zh_TW,en_US, 默认: en_US |
返回
tigeropen.quote.domain.capital_distribution.CapitalDistribution
字段 | 类型 | 说明 |
---|---|---|
symbol | str | 股票代码 |
net_inflow | float | 净流入金额(资金总流入 - 资金总流出),负数表示流出 |
in_all | float | 资金流入总额(大单+中单+小单) |
in_big | float | 大单流入 |
in_mid | float | 中单流入 |
in_small | float | 小单流入 |
out_all | float | 资金流出总额(大单+中单+小单) |
out_big | float | 大单流出 |
out_mid | float | 中单流出 |
out_small | float | 小单流出 |
示例
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)
result = quote_client.get_capital_distribution('JD', market=Market.US)
print(result)
返回示例
CapitalDistribution({'symbol': 'JD', 'net_inflow': -14178801.76, 'in_all': 157357147.5,
'in_big': 25577130.842900004, 'in_mid': 13664116.789999994, 'in_small': 118115899.86410056,
'out_all': 171535949.25, 'out_big': 22642951.677099995, 'out_mid': 12733553.691200001,
'out_small': 136159443.88620025})
get_stock_broker 获取港股经纪商买卖席位
QuoteClient.get_stock_broker
说明
获取港股经纪商买卖席位。
参数、
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
symbol | str | Yes | 股票代码 |
limit | int | No | 单次请求返回买方/卖方席位数量,不传默认是40,limit不能超过60,如果limit设置大于60,只会返回60条数据 |
lang | Lang | No | 语言支持: zh_CN,zh_TW,en_US, 默认: en_US |
返回
tigeropen.quote.domain.stock_broker.StockBroker
字段 | 类型 | 说明 |
---|---|---|
symbol | str | 股票代码 |
bid_broker | tigeropen.quote.domain.stock_broker.LevelBroker | 买方不同价格档位数组,字段参考LevelBroker说明 |
ask_broker | tigeropen.quote.domain.stock_broker.LevelBroker | 卖方不同价格档位数组,字段参考LevelBroker说明 |
其中LevelBroker属性如下:
field | type | desc |
---|---|---|
level | int | 价格档位 |
price | float | 价格 |
broker_count | int | 席位数量 |
broker | list[igeropen.quote.domain.stock_broker.Broker] | 经纪商买卖席位列表, 字段参考Broker说明 |
Broker attributes:
field | type | desc |
---|---|---|
id | str | broker id |
name | str | broker name |
Example
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
quote_client = QuoteClient(client_config)
result = quote_client.get_stock_broker('01810', limit=5)
print(result)
Return example
StockBroker({'symbol': '01810',
'bid_broker': [
LevelBroker({'level': 1, 'price': 11.46, 'broker_count': 5,
'broker': [Broker({'id': '5999', 'name': '中国创盈'}), Broker({'id': '4374', 'name': '巴克莱亚洲'}),
Broker({'id': '1438', 'name': 'Susquehanna'}), Broker({'id': '4821', 'name': '华盛'}),
Broker({'id': '6998', 'name': '中国投资'})]})],
'ask_broker': [
LevelBroker({'level': 1, 'price': 11.48, 'broker_count': 5,
'broker': [Broker({'id': '4374', 'name': '巴克莱亚洲'}), Broker({'id': '9056', 'name': '瑞银'}),
Broker({'id': '2027', 'name': '东亚'}), Broker({'id': '4821', 'name': '华盛'}),
Broker({'id': '4374', 'name': '巴克莱亚洲'})]})]})