证券类

大约 26 分钟

get_market_status 获取市场状态

QuoteClient.get_market_status(market=Market.ALL, lang=None)

说明

获取被查询市场的状态(开盘,盘前交易,盘后等),并获取被查询市场的最近开盘时间

请求频率

频率限制请参考:接口请求限制

参数

参数名类型是否必填描述
marketMarketYes查询的市场,可以使用 tigeropen.common.consts.Market 下提供的枚举常量,如 Market.US,参见枚举参数部分
langLanguageNo支持的语言,可以使用 tigeropen.common.consts.Language 下提供的枚举常量,如 Language.zh_CN,默认是Language.en_US,参见枚举参数部分

返回

list

元素为 MarketStatus 对象,MarketStatus结构如下:

参数名类型描述
marketstr市场名称
trading_statusstr交易状态码。未开盘 NOT_YET_OPEN; 盘前交易 PRE_HOUR_TRADING; 交易中 TRADING; 午间休市 MIDDLE_CLOSE; 盘后交易 POST_HOUR_TRADING; 已收盘 CLOSING; 提前休市 EARLY_CLOSED; 休市 MARKET_CLOSED;
statusstr交易状态描述
open_timedatetime最近的开盘、交易时间,带时区信息

示例

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年之后到本年底的日历。 如果超出范围,则起止时间会被处理到提供数据的范围内。

请求频率

频率限制请参考:接口请求限制

参数

参数名类型是否必填描述
marketMarketYes查询的市场,可以使用 tigeropen.common.consts.Market 下提供的枚举常量,如 Market.US,参见枚举参数部分
begin_datestrNo日历起始时间, 结果里包含本日。yyyy-MM-dd 格式,如 '2022-06-01'
end_datestrNo日历截至时间,结果里不包含本日。yyyy-MM-dd 格式

begin_time 和 end_time 传参处理如下:

begin_time是否传递end_time是否传递说明
yesyesbegin_time和end_time分别为所传值
yesnoend_time为begin_time往后365天
noyesbegin_time为end_time往前365天
nonobegin_time为当前日期,end_time为begin_time往后30天

返回

list

每个元素为 dict, key 的含义如下

参数名类型描述
datestr交易日日期
typestr交易日类型. 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)

说明

获取所选市场所有证券的代码列表,包含退市和不可交易的部分代码以及指数。

请求频率

频率限制请参考:接口请求限制

参数

参数名类型是否必填描述
marketMarketYes查询的市场, 可以使用tigeropen.common.consts.Market下提供的枚举常量,如Market.US
include_otcboolNo是否包含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)

说明

获取所选市场所有证券的代码及名称

请求频率

频率限制请参考:接口请求限制

参数

参数名类型是否必填描述
marketMarketYes查询的市场,可以使用tigeropen.common.consts.Market下提供的枚举常量,如 Market.US
include_otcboolNo是否包含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 接口查询

请求频率

频率限制请参考:接口请求限制

参数

参数名类型是否必填描述
symbolslist[str]Yes证券代码列表,单次上限50只,如 ['AAPL', 'TSLA']
include_hour_tradingboolNo是否包含盘前盘后分时数据,可选填,如 True 或 False
begin_timestrNo获取分时数据的起始时间, 支持毫秒级别的时间戳,或日期时间字符串。如 1639386000000 或 '2019-06-07 23:00:00' 或 '2019-06-07',默认返回当天数据
langLanguageNo支持的语言,可以使用tigeropen.common.consts.Language下提供的枚举常量,默认为英文

返回

pandas.DataFrame

结构如下:

COLUMN类型描述
symbolstr证券代码,如 AAPL
timeint精确到毫秒的时间戳,如 1639386000000
pricefloat当前分钟的收盘价
avg_pricefloat截至到当前时间的成交量加权均价
pre_closefloat昨日收盘价
volumeint这一分钟的成交量
trading_sessionstr字符串, "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)

说明

获取某一日期的历史分时数据

请求频率

频率限制请参考:接口请求限制

参数

参数名类型是否必填描述
symbolslist[str]Yes证券代码列表,单次上限50只,如 ['AAPL', 'TSLA']
datestrYes日期字符串。如 '2022-04-14'
rightQuoteRightNo行情复权,默认前复权。可以使用tigeropen.common.consts.QuoteRight的枚举值

返回

pandas.DataFrame

结构如下:

COLUMN类型描述
symbolstr证券代码,如 AAPL
timeint精确到毫秒的时间戳,如 1639386000000
pricefloat当前分钟的收盘价
avg_pricefloat截至到当前时间的成交量加权均价

示例

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)

说明

获取逐笔成交数据,该接口可以支持在收盘后查询当前交易日的全量逐笔记录,也可以支持查询盘中最新的实时逐笔记录。

请求频率

频率限制请参考:接口请求限制

参数

参数名类型是否必填描述
symbolslist[str]Yes证券代码列表,最多50个
trade_sessiontigeropen.common.consts.TradingSessionNo交易时段,盘前/盘中/盘后。非必填,默认返回盘中数据
begin_indexintNo起始索引,当日索引值从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_indexintNo结束索引,结束索引和起始索引的差值不能大于2000,大于2000时默认返回从起始索引开始的200条记录。当limit参数小于起始和结束索引的差值时,只会返回从起始索引开始的limit条逐笔数据。
limitintNo返回条数限制,默认返回:200,最大限制:2000
langLanguageNo支持的语言, 可以使用 tigeropen.common.consts.Language 下提供的枚举常量,默认英文

begin_index 和 end_index参数使用说明

查询方式begin_indexend_index描述
查询最新逐笔记录-1-1默认返回limit条最新的逐笔记录。limit 默认为200
根据区间查询当日逐笔具体数值具体数值举例:begin_index=10, end_index=100 ,会返回包含10到99的 90条记录。如果limit设置为20,则会返回10到29的20条记录。

返回

pandas.DataFrame

结构如下:

参数名类型描述
indexint索引值
timeint毫秒时间戳
pricefloat成交价
volumeint成交量
directionstr价格变动方向,"+"表示主动买入,"-"表示主动卖出,"*"表示中性

示例

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只股票

请求频率

频率限制请参考:接口请求限制

参数

参数名类型是否必填描述
symbolslist[str]Yes证券代码的列表,最多50只,如 ['AAPL', 'MSFT']
include_hour_tradingboolNo是否返回盘前盘后数据
langLanguageNo支持的语言,可以使用tigeropen.common.consts.Language下提供的枚举常量

返回

pandas.DataFrame

结构如下:

COLUMN类型描述
symbolstr证券代码
ask_pricefloat卖一价
ask_sizeint卖一量
bid_pricefloat买一价
bid_sizeint买一量
pre_closefloat前收价
latest_pricefloat最新价
latest_timeint最新成交时间,毫秒单位数字时间戳
volumeint成交量
openfloat开盘价
highfloat最高价
lowfloat最低价
statusstr交易状态
adj_pre_closestr复权调整后的昨收价格
hour_trading_tagstr盘前("Pre-Mkt")、盘后("Post-Mkt")标识
hour_trading_latest_pricefloat盘前盘后实时价格
hour_trading_latest_timestr最新成交时间(美东时间)
hour_trading_volumeint盘前盘后成交量
hour_trading_timestampint最新成交时间

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分钟

请求频率

频率限制请参考:接口请求限制

参数

参数名类型是否必填描述
symbolslist[str]Yes证券代码的列表,目前仅支持获取美股延迟行情。 如 ['AAPL', 'MSFT'],单次请求上限50
langLanguageNo支持的语言, 可以使用tigeropen.common.consts.Language下提供的枚举常量, 如 Language.en_US

返回

pandas.DataFrame

结构如下:

参数名类型描述
symbolstr证券代码
pre_closefloat前收价
timeint最近成交时间,毫秒为单位的数字时间戳,如 1639429200000
volumeint成交量
openfloat开盘价
highfloat最高价
lowfloat最低价
closefloat收盘价
haltedfloat标的状态 (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线数量可能会存在限制,具体请见历史行情限制

请求频率

频率限制请参考:接口请求限制

参数

参数名类型是否必填描述
symbolslist[str]Yes证券代码列表,单次上限50只, 如 ['AAPL', 'GOOG']
periodtigeropen.common.consts.BarPeriodopen in new windowNo获取的K线周期。默认 BarPeriod.DAY,可以使用 tigeropen.common.consts.BarPeriod 下提供的枚举常量,如 BarPeriod.DAY。 'day'/'week'/'month'/'year'/'1min'/'5min'/'15min'/'30min'/'60min'
begin_timeint或strNo起始时间。支持毫秒级别的时间戳或日期字符串,如 1639371600000 或 '2019-06-07 23:00:00' 或 '2019-06-07'
end_timeint或strNo截至时间。支持毫秒级别的时间戳或日期字符串,如 1639371600000 或 '2019-06-07 23:00:00' 或 '2019-06-07'
rightQuoteRightNo复权方式。默认前复权,可以使用 tigeropen.common.consts.QuoteRight 下提供的枚举常量,如 QuoteRight.BR 前复权,QuoteRight.NR 不复权
limitintNo限制数据的条数。默认 251
langLanguageNo支持的语言, 可以使用 tigeropen.common.consts.Language 下提供的枚举常量, 如 Language.zh_CN
page_tokenstrNo分页token,记录分页的位置,上次请求返回的 next_page_token 可传入作为下次请求的起始标志

返回

pandas.DataFrame

结构如下:

参数名类型描述
timeint毫秒时间戳,如 1639371600000
openfloatBar 的开盘价
closefloatBar 的收盘价
highfloatBar 的最高价
lowfloatBar 的最低价
volumefloatBar 的成交量
amountfloatBar 的成交额

示例

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线数据。

请求频率

频率限制请参考:接口请求限制

参数

参数名类型是否必填描述
symbolstrYes证券代码,每次只能查单只标的。
periodtigeropen.common.consts.BarPeriodopen in new windowNo获取的K线周期。默认 BarPeriod.DAY,可以使用 tigeropen.common.consts.BarPeriod 下提供的枚举常量,如 BarPeriod.DAY。 'day'/'week'/'month'/'year'/'1min'/'5min'/'15min'/'30min'/'60min'
begin_timeint或strNo起始时间。支持毫秒级别的时间戳或日期字符串,如 1639371600000 或 '2019-06-07 23:00:00' 或 '2019-06-07'
end_timeint或strNo截至时间。支持毫秒级别的时间戳或日期字符串,如 1639371600000 或 '2019-06-07 23:00:00' 或 '2019-06-07'
totalintNo请求bar的总数。默认:10000
page_sizeintNo每页bar的数量。默认:1000
time_intervalintNo每次请求的时间间隔,单位秒,默认:2秒
rightQuoteRightNo复权方式。默认前复权,可以使用 tigeropen.common.consts.QuoteRight 下提供的枚举常量,如 QuoteRight.BR 前复权,QuoteRight.NR 不复权
limitintNo限制数据的条数。默认 251
langLanguageNo支持的语言, 可以使用 tigeropen.common.consts.Language 下提供的枚举常量, 如 Language.zh_CN

返回

pandas.DataFrame

结构如下:

参数名类型描述
timeint毫秒时间戳,如 1639371600000
openfloatBar 的开盘价
closefloatBar 的收盘价
highfloatBar 的最高价
lowfloatBar 的最低价
volumefloatBar 的成交量
next_page_tokenstr下一页的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之后的一两分钟后更新

请求频率

频率限制请参考:接口请求限制

参数

参数名类型是否必填描述
symbolslist[str]Yes证券代码列表,单次上限50只
marketMarketYes查询的市场, 可以使用 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)

说明

获取股票交易需要的信息,如每手股数,比如港股下单股数必须为每手股数的整数倍

请求频率

频率限制请参考:接口请求限制

参数

参数名类型是否必填描述
symbolslist[str]Yes证券代码列表, 上限为50

返回

pandas.DataFrame

结构如下:

COLUMN类型描述
symbolstr证券代码
lot_sizeint每手股数
min_tickfloat价格最小变动单位
spread_scalefloat报价精度

示例

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条。

参数、

参数类型是否必填描述
symbolstringYes股票代码
periodCapitalPeriodYes数据类型,取值范围(intraday:实时,day:日,week:周,month:月,year:年,quarter:季度,6month:半年)
marketMarketYesUS 美股,HK港股,CN A股(实时资金流向不支持A股)
begin_timeintNo开始时间,默认:-1,单位:毫秒(ms),前闭后开区间,即查询结果会包含起始时间数据,如查询周/月/年K线,会返回包含当前周期的数据(如:起始时间为周三,会返回从这周一的数据)
end_timeintNo结束时间,默认:-1,单位:毫秒(ms)
limitintNo单次请求返回数量,不传默认是200,limit不能超过1200,如果limit设置大于1200,只会返回1200条数据
langLangNo语言支持: zh_CN,zh_TW,en_US, 默认: en_US

返回

pandas.DataFrame

字段类型说明
symbolstring股票代码
periodstring周期
timestring标的所在市场时区的时间字符串,实时数据时为"11-25 12:48:00 EST"格式,非实时数据为"2022-11-22"格式
timestampint13位时间戳
net_inflowfloat净流入金额,负数表示流出

示例

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

说明

获取股票资金分布。

参数

参数类型是否必填描述
symbolstrYes股票代码
marketMarketYesUS 美股,HK港股,CN A股
langLangNo语言支持: zh_CN,zh_TW,en_US, 默认: en_US

返回

tigeropen.quote.domain.capital_distribution.CapitalDistribution

字段类型说明
symbolstr股票代码
net_inflowfloat净流入金额(资金总流入 - 资金总流出),负数表示流出
in_allfloat资金流入总额(大单+中单+小单)
in_bigfloat大单流入
in_midfloat中单流入
in_smallfloat小单流入
out_allfloat资金流出总额(大单+中单+小单)
out_bigfloat大单流出
out_midfloat中单流出
out_smallfloat小单流出

示例

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

说明

获取港股经纪商买卖席位。

参数、

参数类型是否必填描述
symbolstrYes股票代码
limitintNo单次请求返回买方/卖方席位数量,不传默认是40,limit不能超过60,如果limit设置大于60,只会返回60条数据
langLangNo语言支持: zh_CN,zh_TW,en_US, 默认: en_US

返回

tigeropen.quote.domain.stock_broker.StockBroker

字段类型说明
symbolstr股票代码
bid_brokertigeropen.quote.domain.stock_broker.LevelBroker买方不同价格档位数组,字段参考LevelBroker说明
ask_brokertigeropen.quote.domain.stock_broker.LevelBroker卖方不同价格档位数组,字段参考LevelBroker说明

其中LevelBroker属性如下:

fieldtypedesc
levelint价格档位
pricefloat价格
broker_countint席位数量
brokerlist[igeropen.quote.domain.stock_broker.Broker]经纪商买卖席位列表, 字段参考Broker说明

Broker attributes:

fieldtypedesc
idstrbroker id
namestrbroker 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': '巴克莱亚洲'})]})]})
上次编辑于: