Skip to content

数据查询接口

市场基础数据

all_instruments - 所有合约基础信息

python
rqalpha.api.all_instruments(type=None)

获取中国市场全部合约的基础信息,也支持按合约类型筛选。例如可查询股票、ETF、指数,也可查询期货、现货、期权、可转债等合约基础信息。

参数

参数名类型说明
typeOptional[str]需要查询合约类型,例如:type='CS'代表股票。默认是所有类型
其中 type 参数传入的合约类型和对应的解释如下:
合约类型说明
CSCommon Stock, 即股票
ETFExchange Traded Fund, 即交易所交易基金
LOFListed Open-Ended Fund,即上市型开放式基金 (以下分级基金已并入)
INDXIndex, 即指数
FutureFutures,即期货,包含股指、国债和商品期货
SpotSpot,即现货,目前包括上海黄金交易所现货合约
Option期权,包括目前国内已上市的全部期权合约
Convertible沪深两市场内有交易的可转债合约

返回

pandas DataFrame - 所有合约的基本信息。

范例

  • 获取中国内地市场所有 LOF 基金的基础信息:
python
[In]all_instruments(type='LOF')
[Out]
    abbrev_symbol order_book_id product sector_code  symbol
0 CYGA 150303.XSHE null null 华安创业板50A
1 JY500A 150088.XSHE null null 金鹰500A
2 TD500A 150053.XSHE null null 泰达稳健
3 HS500A 150110.XSHE null null 华商500A
4 QSAJ 150235.XSHE null null 鹏华证券A

instruments - 合约详细信息

python
rqalpha.api.instruments(id_or_symbols)

获取中国市场一个或多个合约的详细信息。支持单个合约或多个合约查询,例如股票、ETF、期货等合约信息。

参数

参数名类型说明
id_or_symbolsUnion[str, List[str]]合约代码或者合约代码列表

返回

Union[ Instrument, List [Instrument]]

范例

  • 获取单一股票合约的详细信息:
python
[In]instruments('000001.XSHE')
[Out]
Instrument(order_book_id=000001.XSHE, symbol=平安银行, abbrev_symbol=PAYH, listed_date=19910403, de_listed_date=null, board_type=MainBoard, sector_code_name=金融, sector_code=Financials, round_lot=100, exchange=XSHE, special_type=Normal, status=Active)
  • 获取多个股票合约的详细信息:
python
[In]instruments(['000001.XSHE', '000024.XSHE'])
[Out]
[Instrument(order_book_id=000001.XSHE, symbol=平安银行, abbrev_symbol=PAYH, listed_date=19910403, de_listed_date=null, board_type=MainBoard, sector_code_name=金融, sector_code=Financials, round_lot=100, exchange=XSHE, special_type=Normal, status=Active), Instrument(order_book_id=000024.XSHE, symbol=招商地产, abbrev_symbol=ZSDC, listed_date=19930607, de_listed_date=null, board_type=MainBoard, sector_code_name=金融, sector_code=Financials, round_lot=100, exchange=XSHE, special_type=Normal, status=Active)]
  • 获取合约已上市天数:
python
instruments('000001.XSHE').days_from_listed()
  • 获取合约距离到期天数:
python
instruments('IF1701').days_to_expire()

get_trading_dates - 交易日列表

python
rqalpha.api.get_trading_dates(start_date, end_date)

获取中国市场给定起止日期范围内的交易日列表。

参数

参数名类型说明
start_dateUnion[str, date, datetime, Timestamp]开始日期
end_dateUnion[str, date, datetime, Timestamp]结束日期

返回

DatetimeIndex

范例

python
[In]get_trading_dates(start_date='2016-05-05', end_date='20160505')
[Out]
[datetime.date(2016, 5, 5)]

get_previous_trading_date - 上一交易日

python
get_previous_trading_date(date)

获取指定日期之前的第一个或第 n 个交易日。

参数

参数名类型说明
dateUnion[str, date, datetime, Timestamp]指定日期
nOptional[int]第 n 个交易日,默认为 1

返回

date

范例

python
[In]get_previous_trading_date(date='2016-05-02')
[Out]
[datetime.date(2016, 4, 29)]

get_next_trading_date - 下一交易日

python
rqalpha.api.get_next_trading_date(date)

获取指定日期之后的第一个或第 n 个交易日。

参数

参数名类型说明
dateUnion[str, date, datetime, Timestamp]指定日期
nOptional[int]第 n 个交易日,默认为 1

返回

date

范例

python
[In]get_next_trading_date(date='2016-05-01')
[Out]
[datetime.date(2016, 5, 3)]

get_yield_curve - 收益率曲线

python
rqalpha.api.get_yield_curve(date=None, tenor=None)

获取指定日期的中债国债收益率曲线数据。支持按标准期限查询,例如隔夜 0S、1个月 1M、1年 1Y 等期限,也支持返回全部期限。

参数

参数名类型说明
dateUnion[str, date, datetime, Timestamp, None]查询日期,默认为策略当前日期前一天
tenorOptional[str]标准期限,'0S' - 隔夜,'1M' - 1 个月,'1Y' - 1 年,默认为全部期限

返回

DataFrame

范例

python
[In]
get_yield_curve('20130104')

[Out]
                0S      1M      2M      3M      6M      9M      1Y      2Y          2013-01-04  0.0196  0.0253  0.0288  0.0279  0.0280  0.0283  0.0292  0.0310

                3Y      4Y   ...        6Y      7Y      8Y      9Y     10Y          2013-01-04  0.0314  0.0318   ...    0.0342  0.0350  0.0353  0.0357  0.0361
...

行情

history_bars - 某一合约历史 bar 数据

python
rqalpha.api.history_bars(order_book_id, bar_count, frequency, fields=None, skip_suspended=True, include_now=False, adjust_type='pre')

获取指定合约的历史 bar 行情数据,支持日线、周线和分钟线,也支持不同分钟频率查询。可获取开盘价、收盘价、成交量等字段,也支持期货的持仓量、结算价、期现差等字段。

日回测获取分钟历史数据:不支持

日回测获取日历史数据

调用时间返回数据
T 日 before_tradingT-1 日 day bar
T 日 handle_barT 日 day bar

分钟回测获取日历史数据

调用时间返回数据
T 日 before_tradingT-1 日 day bar
T 日 handle_barT-1 日 day bar

分钟回测获取分钟历史数据

调用时间返回数据
T 日 before_tradingT-1 日最后一个 minute bar
T 日 handle_barT 日当前 minute bar

参数

参数名类型说明
order_book_idstr合约代码,必填项
bar_countint获取的历史数据数量,必填项
frequencystr获取数据什么样的频率进行。'1d'、'1m' 和 '1w' 分别表示每日、每分钟和每周,必填项
fieldsUnion[str, List[str], None]返回数据字段。必填项。见下方列表
skip_suspendedOptional[bool]是否跳过停牌,默认 True,跳过停牌
include_nowOptional[bool]是否包括不完整的 bar 数据。默认为 False,不包括。举例来说,在 09:39 的时候获取上一个 5 分钟线,默认将获取到 09:31~09:35 合成的 5 分钟线。如果设置为 True,则将获取到 09:36~09:39 之间合成的"不完整"5 分钟线
adjust_typeOptional[str]复权方式,默认为pre
不复权 - none
动态前复权 - pre,后复权 - post
fields 可选字段:
fields字段名
datetime时间戳
open开盘价
high最高价
low最低价
close收盘价
volume成交量
total_turnover成交额
open_interest持仓量(期货专用)
basis_spread期现差(股指期货专用)
settlement结算价(期货日线专用)
prev_settlement结算价(期货日线专用)

返回

ndarray

范例

  • 获取最近 5 天的日线收盘价序列(策略当前日期为 20160706):
python
[In]
logger.info(history_bars('000002.XSHE', 5, '1d', 'close'))
[Out]
[ 8.69  8.7   8.71  8.81  8.81]

current_snapshot - 当前快照数据

python
rqalpha.api.current_snapshot(order_book_id)

获取当前调用时点的市场快照数据,只能在日内交易阶段调用。该快照覆盖从开盘到当前的累计行情数据。

需要注意,在实盘模拟中,该函数返回的是调用当时的市场快照情况,所以在同一个 handle_bar 中不同时点调用可能返回的数据不同。 如果当日截止到调用时候对应股票没有任何成交,那么 snapshot 中的 close, high, low, last 几个价格水平都将以 0 表示。

参数

参数名类型说明
id_or_symbolUnion[str]合约代码或简称

返回

Optional [ TickObject ]

范例

  • 在 handle_bar 中调用该函数,假设策略当前时间是 20160104 09:33:
python
[In]
logger.info(current_snapshot('000001.XSHE'))
[Out]
2016-01-04 09:33:00.00  INFO
Snapshot(order_book_id: '000001.XSHE', datetime: datetime.datetime(2016, 1, 4, 9, 33), open: 10.0, high: 10.025, low: 9.9667, last: 9.9917, volume: 2050320, total_turnover: 20485195, prev_close: 9.99)

history_ticks - 指定合约的历史 tick 数据

python
rqalpha.api.history_ticks(order_book_id, count)

获取指定合约历史 tick 数据,仅支持在 tick 级别的策略中调用。

参数

参数名类型说明
order_book_idstr合约代码
countint获取的历史 tick 数据数量

返回

List [ TickObject ]

范例

python
[In]
logger.info(history_ticks('TF1803', 2))
[Out]
2017-12-25  09:14:00.300000 INFO [Tick(ask_vols: [1.0], asks: [96.640000000000001], bid_vols: [1.0], bids: [96.635000000000005], datetime: 2017-12-22 15:34:34.700000, high: 96.64, last: 96.64, limit_down: 95.27, limit_up: 97.58, low: 96.425, open: 96.47, open_interest: 46121.0, order_book_id: TF1803, prev_close: 96.64, prev_settlement: 96.425, total_turnover: 7463149750.0, volume: 7729.0), Tick(ask_vols: [1.0], asks: [96.599999999999994], bid_vols: [1.0], bids: [96.579999999999998], datetime: 2017-12-25 09:14:00.300000, high: 96.6, last: 96.6, limit_down: 95.445, limit_up: 97.755, low: 96.6, open: 96.6, open_interest: 46115.0, order_book_id: TF1803, prev_close: 96.64, prev_settlement: 96.6, total_turnover: 8694000.0, volume: 9.0)]

get_price - 合约历史数据

python
rqalpha.api.get_price(order_book_ids, start_date, end_date=None, frequency='1d', fields=None, adjust_type='pre', skip_suspended=False, expect_df=False)

获取指定单个合约或多个合约在给定时间范围内的历史行情数据,支持日线、分钟线和 tick 查询。可获取开盘价、收盘价、成交量等字段,也支持基金净值、期货结算价、昨结算价、累计持仓量等数据。

注意,这一函数主要是为满足在研究平台编写策略习惯而引入。在编写策略中,使用 history_bars 进行数据获取会更方便。

参数

参数名类型说明
order_book_idsUnion[str, Iterable[str]]合约代码,可传入 order_book_id, order_book_id list, symbol, symbol list
start_dateUnion[datetime.date, str]开始日期,用户必须指定
end_dateOptional[Union[datetime.date, datetime.datetime, str]]结束日期,默认为策略当前日期前一天
frequencyOptional[str]历史数据的频率。 现在支持日/分钟级别/tick的历史数据,默认为'1d'。使用者可自由选取不同频率,例如'5m'代表 5 分钟线
fieldsOptional[Iterable[str]]返回字段名称,见下方
adjust_typeOptional[str]权息修复方案。前复权 - pre,后复权 - post,不复权 - none
skip_suspendedOptional[bool]是否跳过停牌数据。默认为 False,不跳过,用停牌前数据进行补齐。True 则为跳过停牌期。注意,当设置为 True 时,函数 order_book_id 只支持单个合约传入
expect_dfOptional[bool]是否期望始终返回 DataFrame。pandas 0.25.0 以上该参数应设为 True,以避免因试图构建 Panel 产生异常

返回

Union[pd.DataFrame, pd.Panel, pd.Series]

当 expect_df 为 False 时,返回值的类型如下

  • 传入一个 order_book_id,多个 fields,函数会返回一个pandas DataFrame
  • 传入一个 order_book_id,一个 field,函数会返回pandas Series
  • 传入多个 order_book_id,一个 field,函数会返回一个pandas DataFrame
  • 传入多个 order_book_id,函数会返回一个pandas Panel
fields类型说明
openfloat开盘价
closefloat收盘价
highfloat最高价
lowfloat最低价
limit_upfloat涨停价
limit_downfloat跌停价
total_turnoverfloat总成交额
volumefloat总成交量
acc_net_valuefloat累计净值(仅限基金日线数据)
unit_net_valuefloat单位净值(仅限基金日线数据)
discount_ratefloat折价率(仅限基金日线数据)
settlementfloat结算价 (仅限期货日线数据)
prev_settlementfloat昨日结算价(仅限期货日线数据)
open_interestfloat累计持仓量(期货专用)
basis_spreadfloat基差点数(股指期货专用,股指期货收盘价-标的指数收盘价)
trading_datepandas.Timestamp交易日期(仅限期货分钟线数据),对应期货夜盘的情况

范例

  • 获取单一股票历史日线行情:
python
get_price('000001.XSHE', start_date='2015-04-01', end_date='2015-04-12')
#[Out]
#open    close    high    low    total_turnover    volume    limit_up    limit_down
#2015-04-01    10.7300    10.8249    10.9470    10.5469    2.608977e+09    236637563.0    11.7542    9.6177
#2015-04-02    10.9131    10.7164    10.9470    10.5943    2.222671e+09    202440588.0    11.9102    9.7397
#2015-04-03    10.6486    10.7503    10.8114    10.5876    2.262844e+09    206631550.0    11.7881    9.6448
#2015-04-07    10.9538    11.4015    11.5032    10.9538    4.898119e+09    426308008.0    11.8288    9.6787
#2015-04-08    11.4829    12.1543    12.2628    11.2929    5.784459e+09    485517069.0    12.5409    10.2620
#2015-04-09    12.1747    12.2086    12.9208    12.0255    5.794632e+09    456921108.0    13.3684    10.9403
#2015-04-10    12.2086    13.4294    13.4294    12.1069    6.339649e+09    480990210.0    13.4294    10.9877
#...

get_price_change_rate - 历史涨跌幅

python
rqalpha.api.get_price_change_rate(order_book_ids, count=1, expect_df=False)

获取股票或指数截止 T-1 日的历史涨跌幅数据。

参数

参数名类型说明
id_or_symbolsUnion[str, List[str]]可输入 order_book_id, order_book_id list, symbol, symbol list
countOptional[int]回溯获取的数据个数。默认为当前能够获取到的最近的数据
expect_dfOptional[bool]是否期望始终返回 DataFrame。pandas 0.25.0 以上该参数应设为 True,以避免因试图构建 Panel 产生异常

返回

Union[DataFrame, Series]

当 expect_df 为 False 时,返回值的类型如下:

  • 传入多个 order_book_id,函数会返回pandas DataFrame
  • 传入一个 order_book_id,函数会返回pandas Series

范例

  • 获取平安银行以及沪深 300 指数一段时间的涨跌幅情况:
python
get_price_change_rate(['000001.XSHE', '510050.XSHG'], 1)
# [Out]
# 2016-06-01 15:30:00.00  INFO   order_book_id  000001.XSHE  510050.XSHG
#                                date
#                                2016-05-31        0.026265     0.033964
# 2016-06-02 15:30:00.00  INFO   order_book_id  000001.XSHE  510050.XSHG
#                                date
#                                2016-06-01       -0.006635    -0.008308

股票

industry - 行业股票列表

python
rqalpha.api.industry(code)

获取属于指定行业的股票列表。支持按行业代码或行业名称查询,例如农业 A01 等行业股票。

参数

参数名类型说明
codestr OR industry_code item行业名称或行业代码。例如,农业可填写 industry_code.A01 或 'A01'
行业分类列表

我们目前使用的行业分类来自于中国国家统计局的国民经济行业分类,可以使用这里的任何一个行业代码来调用行业的股票列表:

行业代码行业名称
A01农业
A02林业
A03畜牧业
A04渔业
A05农、林、牧、渔服务业
B06煤炭开采和洗选业
B07石油和天然气开采业
B08黑色金属矿采选业
B09有色金属矿采选业
B10非金属矿采选业
B11开采辅助活动
B12其他采矿业
C13农副食品加工业
C14食品制造业
C15酒、饮料和精制茶制造业
C16烟草制品业
C17纺织业
C18纺织服装、服饰业
C19皮革、毛皮、羽毛及其制品和制鞋业
C20木材加工及木、竹、藤、棕、草制品业
C21家具制造业
C22造纸及纸制品业
C23印刷和记录媒介复制业
C24文教、工美、体育和娱乐用品制造业
C25石油加工、炼焦及核燃料加工业
C26化学原料及化学制品制造业
C27医药制造业
C28化学纤维制造业
C29橡胶和塑料制品业
C30非金属矿物制品业
C31黑色金属冶炼及压延加工业
C32有色金属冶炼和压延加工业
C33金属制品业
C34通用设备制造业
C35专用设备制造业
C36汽车制造业
C37铁路、船舶、航空航天和其它运输设备制造业
C38电气机械及器材制造业
C39计算机、通信和其他电子设备制造业
C40仪器仪表制造业
C41其他制造业
C42废弃资源综合利用业
C43金属制品、机械和设备修理业
D44电力、热力生产和供应业
D45燃气生产和供应业
D46水的生产和供应业
E47房屋建筑业
E48土木工程建筑业
E49建筑安装业
E50建筑装饰和其他建筑业
F51批发业
F52零售业
G53铁路运输业
G54道路运输业
G55水上运输业
G56航空运输业
G57管道运输业
G58装卸搬运和运输代理业
G59仓储业
G60邮政业
H61住宿业
H62餐饮业
I63电信、广播电视和卫星传输服务
I64互联网和相关服务
I65软件和信息技术服务业
J66货币金融服务
J67资本市场服务
J68保险业
J69其他金融业
K70房地产业
L71租赁业
L72商务服务业
M73研究和试验发展
M74专业技术服务业
M75科技推广和应用服务业
N76水利管理业
N77生态保护和环境治理业
N78公共设施管理业
O79居民服务业
O80机动车、电子产品和日用产品修理业
O81其他服务业
P82教育
Q83卫生
Q84社会工作
R85新闻和出版业
R86广播、电视、电影和影视录音制作业
R87文化艺术业
R88体育
R89娱乐业
S90综合

返回

List[str]

范例

python
def init(context):
    stock_list = industry('A01')
    logger.info("农业股票列表:" + str(stock_list))

#INITINFO 农业股票列表:['600354.XSHG', '601118.XSHG', '002772.XSHE', '600371.XSHG', '600313.XSHG', '600672.XSHG', '600359.XSHG', '300143.XSHE', '002041.XSHE', '600762.XSHG', '600540.XSHG', '300189.XSHE', '600108.XSHG', '300087.XSHE', '600598.XSHG', '000998.XSHE', '600506.XSHG']

sector - 板块股票列表

python
rqalpha.api.sector(code)

获取属于指定板块的股票列表。支持按板块代码查询,例如 Energy、Financials、InformationTechnology 等板块股票。

参数

参数名类型说明
codestr OR industry_code item行业名称或行业代码。例如,农业可填写 industry_code.A01 或 'A01'
板块分类列表

目前支持的 code 板块分类如下,其取值参考自 MSCI 发布的全球行业标准分类:

板块代码中文板块名称英文板块名称
Energy能源energy
Materials原材料materials
ConsumerDiscretionary非必需消费品consumer discretionary
ConsumerStaples必需消费品consumer staples
HealthCare医疗保健health care
Financials金融financials
RealEstate房地产real estate
InformationTechnology信息技术information technology
TelecommunicationServices电信服务telecommunication services
Utilities公共服务utilities
Industrials工业industrials

返回

List[str]

范例

python
def init(context):
    ids1 = sector("consumer discretionary")
    ids2 = sector("非必需消费品")
    ids3 = sector("ConsumerDiscretionary")
    assert ids1 == ids2 and ids1 == ids3
    logger.info(ids1)
#INIT INFO
#['002045.XSHE', '603099.XSHG', '002486.XSHE', '002536.XSHE', '300100.XSHE', '600633.XSHG', '002291.XSHE', ..., '600233.XSHG']

get_dividend - 获取分红数据

python
rqalpha.api.get_dividend(order_book_id, start_date)

获取指定股票从开始日期到策略当前日期前一天的分红数据。可覆盖分红宣布日、股权登记日、除权除息日、分红到账日等分红事件信息。

参数

参数名类型说明
order_book_idstr股票代码
start_dateUnion[str, date, datetime, Timestamp]开始日期,需要早于策略当前日期

返回

Optional[ndarray]

字段类型说明
declaration_announcement_datestr分红宣布日,上市公司一般会提前一段时间公布未来的分红派息事件
book_closure_datestr股权登记日
dividend_cash_before_taxfloat税前分红
ex_dividend_datestr除权除息日,该天股票的价格会因为分红而进行调整
payable_datestr分红到帐日,这一天最终分红的现金会到账
round_lotfloat分红最小单位,例如:10 代表每 10 股派发 dividend_cash_before_tax 单位的税前现金

范例

  • 获取平安银行 2013-01-04 到策略当前日期前一天的分红数据:
python
get_dividend('000001.XSHE', start_date='20130104')
#[Out]
#array([(20130614, 20130619, 20130620, 20130620,  1.7 , 10),
#       (20140606, 20140611, 20140612, 20140612,  1.6 , 10),
#       (20150407, 20150410, 20150413, 20150413,  1.74, 10),
#       (20160608, 20160615, 20160616, 20160616,  1.53, 10)],
#      dtype=[('announcement_date', '<u4'), ('book_closure_date', '<u4'), ('ex_dividend_date', '<u4'), ('payable_date', '<u4'), ('dividend_cash_before_tax', '<f8'), ('round_lot', '<u4')])

is_suspended - 全天停牌判断

python
rqalpha.api.is_suspended(order_book_id)

判断指定股票在当前或回溯区间内是否为全天停牌状态。

参数

参数名类型说明
order_book_idstr某只股票的代码或股票代码,可传入单只股票的 order_book_id, symbol
countOptional[int]回溯获取的数据个数。默认为当前能够获取到的最近的数据

返回

Union[bool, DataFrame]

范例

python
# 判断平安银行是否停牌
is_suspended('000001.XSHE')

is_st_stock - ST 股判断

python
rqalpha.api.is_st_stock(order_book_id)

判断指定股票在当前或回溯区间内是否为 ST 股,包含 ST 与 *ST 情况。

参数

参数名类型说明
order_book_idstr某只股票的代码,可传入单只股票的 order_book_id, symbol
countOptional[int]回溯获取的数据个数。默认为当前能够获取到的最近的数据

返回

Union[bool, DataFrame]

范例

python
is_st_stock('000001.XSHE')

get_split - 拆分数据

python
rqalpha.api.get_split(order_book_ids, start_date=None)

获取指定股票从开始日期到策略当前日期前一天的拆分数据。可覆盖除权除息日、股权登记日以及拆分前后系数等信息。

参数

参数名类型说明
order_book_idUnion[str, List[str]]证券代码,证券的独特的标识符,例如:'000001.XSHE'
start_dateUnion[str, date, None]开始日期,用户必须指定,需要早于策略当前日期

返回

pandas DataFrame - 查询时间段内的某个股票的拆分数据

字段类型说明
ex_dividend_datestr除权除息日,该天股票的价格会因为拆分而进行调整
book_closure_datestr股权登记日
split_coefficient_fromfloat拆分因子(拆分前)
split_coefficient_tofloat拆分因子(拆分后)

例如:每 10 股转增 2 股,则 split_coefficient_from = 10, split_coefficient_to = 12.

范例

python
[In]
get_split('000001.XSHE', start_date='2010-01-04')

[Out]
                 book_closure_date payable_date  split_coefficient_from  \
ex_dividend_date
2013-06-20              2013-06-19   2013-06-20                      10

                  split_coefficient_to
ex_dividend_date
2013-06-20                        16.0

get_securities_margin - 融资融券信息

python
rqalpha.api.get_securities_margin(order_book_ids, count=1, fields=None, expect_df=False)

获取融资融券数据,覆盖深证和上证市场,也支持个股与市场整体数据查询。可获取融资余额、融资买入额、融券余额等字段。

需要注意,T 日的数据将在 T+1 日上午 09:00 左右更新,所以可能无法在 before_trading 阶段获取到上一交易日的最新数据。融资融券的开始日期为 2010 年 3 月 31 日。

参数

参数名类型说明
id_or_symbolsUnion[str, Iterable[str]]可输入 order_book_id, order_book_id list, symbol, symbol list。另外,输入'XSHG'或'sh'代表整个上证整体情况;'XSHE'或'sz'代表深证整体情况
countOptional[int]回溯获取的数据个数。默认为当前能够获取到的最近的数据
fieldsOptional[str]期望返回的字段,默认为所有字段。见下方列表
expect_dfOptional[bool]是否期望始终返回 DataFrame。pandas 0.25.0 以上该参数应设为 True,以避免因试图构建 Panel 产生异常

返回

Union[pd.Series, pd.DataFrame, pd.Panel]

字段类型说明
margin_balancefloat融资余额
buy_on_margin_valuefloat融资买入额
margin_repaymentfloat融资偿还额
short_balancefloat融券余额
short_balance_quantityfloat融券余量
short_sell_quantityfloat融券卖出量
short_repayment_quantityfloat融券偿还量
total_balancefloat融资融券余额

范例

  • 获取沪深两个市场一段时间内的融资余额
python
[In]
logger.info(get_securities_margin('510050.XSHG', count=5))
[Out]
margin_balance buy_on_margin_value short_sell_quantity margin_repayment short_balance_quantity short_repayment_quantity short_balance total_balance
2016-08-01 7.811396e+09 50012306.0 3597600.0 41652042.0 15020600.0 1645576.0 NaN NaN
2016-08-02 7.826381e+09 34518238.0 2375700.0 19532586.0 14154000.0 3242300.0 NaN NaN
2016-08-03 7.733306e+09 17967333.0 4719700.0 111043009.0 16235600.0 2638100.0 NaN NaN
2016-08-04 7.741497e+09 30259359.0 6488600.0 22068637.0 17499000.0 5225200.0 NaN NaN
2016-08-05 7.726343e+09 25270756.0 2865863.0 40423859.0 14252363.0 6112500.0 NaN NaN
  • 获取沪深两个市场一段时间内的融资余额
python
[In]
logger.info(get_securities_margin(['XSHE', 'XSHG'], count=5, fields='margin_balance'))
[Out]
  XSHE  XSHG
2016-08-01 3.837627e+11 4.763557e+11
2016-08-02 3.828923e+11 4.763931e+11
2016-08-03 3.823545e+11 4.769321e+11
2016-08-04 3.833260e+11 4.776380e+11
2016-08-05 3.812751e+11 4.766928e+11
  • 获取上证个股以及整个上证市场融资融券情况
python
[In]
logger.info(get_securities_margin(['XSHG', '601988.XSHG', '510050.XSHG'], count=5))
[Out]
<class 'pandas.core.panel.Panel'>
Dimensions: 8 (items) x 5 (major_axis) x 3 (minor_axis)
Items axis: margin_balance to total_balance
Major_axis axis: 2016-08-01 00:00:00 to 2016-08-05 00:00:00
Minor_axis axis: XSHG to 510050.XSHG
  • 获取 50ETF 融资偿还额情况
python
[In]
logger.info(get_securities_margin('510050.XSHG', count=5, fields='margin_repayment'))
[Out]
2016-08-01     41652042.0
2016-08-02     19532586.0
2016-08-03    111043009.0
2016-08-04     22068637.0
2016-08-05     40423859.0
Name: margin_repayment, dtype: float64

concept - 概念股列表

python
rqalpha.api.concept(*concept_names)

获取属于一个或多个概念的股票列表。例如可查询民营医院、国企改革等概念股票,也支持多个概念组合查询。

参数

参数名类型说明
concept_namesstr概念名称。可以从概念列表中选择一个或多个概念填写, 可以通过 rqdatac.concept_list() 获取概念列表

返回

List[str] - 属于该概念的股票 order_book_id

范例

  • 得到一个概念的股票列表:
python
concept('民营医院')
# [Out]
# ['600105.XSHG',
# '002550.XSHE',
# '002004.XSHE',
# '002424.XSHE',
# ...]
  • 得到某几个概念的股票列表:
python
concept('民营医院', '国企改革')
# [Out]
# ['601607.XSHG',
# '600748.XSHG',
# '600630.XSHG',
# ...]

get_margin_stocks - 融资融券列表

python
rqalpha.api.get_margin_stocks(exchange=None, margin_type='all')

获取深证或上证融资融券标的股票列表。支持融资买入、融券卖出或同时包含融资和融券的标的列表查询。

参数

参数名类型说明
exchangeOptional[str]交易所,默认为 None,返回所有字段。可选字段包括:'XSHE', 'sz' 代表深交所;'XSHG', 'sh' 代表上交所
margin_typestr'stock' 代表融券卖出,'cash',代表融资买入,'all',代表包含融资和融券,默认为'all'

返回

List[str]

范例

  • 获取沪深市场的融券卖出列表:
python
get_margin_stocks(exchange=None,margin_type='stock')
# [Out]
# ['000001.XSHE',
# '000002.XSHE',
# '000006.XSHE',
# ...]
  • 获取上证融资买入列表:
python
get_margin_stocks(exchange='XSHG',margin_type='cash')
# [Out]
# ['510050.XSHG',
# '510160.XSHG',
# '510180.XSHG',
# ...]

get_shares - 流通股信息

python
rqalpha.api.get_shares(order_book_ids, count=1, fields=None, expect_df=False)

获取股票在一段时间内的股本与流通股数据。可查询总股本、流通 A 股、非流通 A 股等信息。

参数

参数名类型说明
order_book_idsUnion[str, List[str]]可输入 order_book_id, order_book_id list, symbol, symbol list
countOptional[int]回溯获取的数据个数。默认为当前能够获取到的最近的数据
fieldsOptional[str]期望返回的字段,默认为所有字段。见下方列表
expect_dfOptional[bool]是否期望始终返回 DataFrame。pandas 0.25.0 以上该参数应设为 True,以避免因试图构建 Panel 产生异常

返回

Union[DataFrame, Series]

字段类型说明
totalfloat总股本
circulation_afloat流通 A 股
management_circulationfloat已过禁售期的高管持有的股份(已废弃)
non_circulation_afloat非流通 A 股
total_afloatA 股总股本

范例

  • 获取平安银行总股本数据:
python
logger.info(get_shares('000001.XSHE', count=5, fields='total'))

get_turnover_rate - 历史换手率

python
rqalpha.api.get_turnover_rate(order_book_ids, count=1, fields=None, expect_df=False)

获取截止 T-1 交易日的股票换手率数据。可查询当天换手率、过去一周平均换手率、过去一个月平均换手率等信息。

参数

参数名类型说明
order_book_idsUnion[str, List[str]]可输入 order_book_id, order_book_id list, symbol, symbol list
countOptional[int]回溯获取的数据个数。默认为当前能够获取到的最近的数据
fieldsOptional[str]期望返回的字段,默认为所有字段。见下方列表
expect_dfOptional[bool]是否期望始终返回 DataFrame。pandas 0.25.0 以上该参数应设为 True,以避免因试图构建 Panel 产生异常

返回

Union[pd.Series, pd.DataFrame, pd.Panel]

fields说明
today当天换手率
week过去一周平均换手率
month过去一个月平均换手率
three_month过去三个月平均换手率
six_month过去六个月平均换手率
year过去一年平均换手率
current_year当年平均换手率
total上市以来平均换手率

范例

  • 获取平安银行历史换手率情况:
python
[In]
logger.info(get_turnover_rate('000001.XSHE', count=5))
[Out]
             today    week   month  three_month  six_month    year  \
2016-08-01  0.5190  0.4478  0.3213       0.2877     0.3442  0.5027
2016-08-02  0.3070  0.4134  0.3112       0.2843     0.3427  0.5019
2016-08-03  0.2902  0.3460  0.3102       0.2823     0.3432  0.4982
2016-08-04  0.9189  0.4938  0.3331       0.2914     0.3482  0.4992
2016-08-05  0.4962  0.5031  0.3426       0.2960     0.3504  0.4994

            current_year   total
2016-08-01        0.3585  1.1341
2016-08-02        0.3570  1.1341
2016-08-03        0.3565  1.1339
2016-08-04        0.3604  1.1339
2016-08-05        0.3613  1.1338

get_factor - 因子

python
rqalpha.api.get_factor(order_book_ids, factors, count=1, universe=None, expect_df=False)

获取股票截止 T-1 日的因子数据,也支持按交易日数量和股票池范围查询。

参数

参数名类型说明
order_book_idsUnion[str, List[str]]合约代码,可传入 order_book_id, order_book_id list, symbol, symbol list
factorsUnion[str, List[str]]因子名称,可查询 rqdatac.get_all_factor_names() 得到所有有效因子字段
countOptional[int]获取多少个交易日的数据
universeOptional[Union[str, List[Union]]]当获取横截面因子时,universe 指定了因子计算时的股票池
expect_dfOptional[bool]默认为 False。当设置为 True 时,总是返回 multi-index DataFrame。pandas 0.25.0 以上该参数应设为 True,以避免因试图构建 Panel 产生异常

返回

pandas DataFrame

范例

python
# 获取平安银行的市盈率因子数据
get_factor('000001.XSHE', 'pe_ratio',count=5)

get_industry - 行业股票列表

python
rqalpha.api.get_industry(industry, source='citics')

获取指定行业名称对应的股票列表,支持中信和聚源两种行业分类来源。

参数

参数名类型说明
industrystr行业名字
sourceOptional[str]默认为中信(citics),可选聚源(gildata)

返回

List[str]

范例

python
# 获取"银行"行业的所有股票
get_industry('银行')

get_instrument_industry - 股票行业分类

python
rqalpha.api.get_instrument_industry(order_book_ids, source='citics', level=1)

获取股票的行业分类数据。支持按中信或聚源分类体系查询,也支持一级、二级、三级行业层级。

参数

参数名类型说明
order_book_idsUnion[str, List[str]]合约代码,可传入 order_book_id, order_book_id list
sourceOptional[str]默认为中信(citics),可选聚源(gildata)
levelOptional[int]默认为 1,可选 0 1 2 3,0 表示返回所有级别

返回

DataFrame

范例

python
get_instrument_industry('000001.XSHE')

get_stock_connect - 沪深港通持股信息

python
rqalpha.api.get_stock_connect(order_book_ids, count=1, fields=None, expect_df=False)

获取截止 T-1 日 A 股股票的沪深港通持股数据。可查询持股量、持股比例和调整后持股比例等信息。

参数

参数名类型说明
order_book_idsUnion[str, List[str]]合约代码,可输入 order_book_id, order_book_id list, symbol, symbol list,这里输入的是 A 股编码
countOptional[int]回溯获取的数据个数。默认为当前能够获取到的最近的数据
fieldsOptional[str]期望返回的字段,默认为所有字段。见下方列表
expect_dfOptional[bool]是否期望始终返回 DataFrame。pandas 0.25.0 以上该参数应设为 True,以避免因试图构建 Panel 产生异常

返回

DataFrame

字段类型说明
shares_holdingfloat持股量
holding_ratiofloat持股比例
adjusted_holding_ratiofloat调整后持股比例

范例

  • 获取平安银行数据
python
[In]
logger.info(get_stock_connect('000001.XSHE', count=1, fields='shares_holding'))
[Out]
2018-05-10    414866956
Name: total, dtype: float64

current_performance - 财务快报数据

python
rqalpha.api.current_performance(order_book_id, info_date=None, quarter=None, interval='1q', fields=None)

获取指定股票最近一期或按报告期回溯的财务快报数据。支持按信息发布日期、报告期和回溯区间查询。

参数

参数名类型说明
order_book_idstr合约代码
info_dateOptional[str]yyyymmdd 或者 yyyy-mm-dd。如果不填(info_date 和 quarter 都为空),则返回策略运行当前日期的最新发布的快报。如果填写,则从 info_date 当天或者之前最新的报告期开始抓取
quarterOptional[str]info_date 参数优先级高于 quarter。如果 info_date 填写了日期,则不查看 quarter 这个字段。如果 info_date 没有填写而 quarter 有填写,则财报回溯查询的起始报告期,例如'2015q2', '2015q4'分别代表 2015 年半年报以及年报。默认只获取当前报告期财务信息
intervalOptional[str]查询财务数据的间隔。例如,填写'5y',则代表从报告期开始回溯 5 年,每年为相同报告期数据;'3q'则代表从报告期开始向前回溯 3 个季度。不填写默认抓取一期
fieldsOptional[Union[str, List[str]]]抓取对应有效字段返回。默认返回所有字段。具体快报字段可参看 Ricequant 官网财务数据文档

返回

pandas DataFrame

范例

python
# 获取平安银行的财务快报数据
current_performance('000001.XSHE')

get_pit_financials_ex - 季度财务信息

python
rqalpha.api.get_pit_financials_ex(order_book_ids, fields, count, statements='latest')

以报告期回溯方式获取股票季度基础财务数据,支持利润表、资产负债表、现金流量表三大基础财报,也支持返回某一报告期的全部记录或最新一条记录。

参数

参数名类型说明
order_book_idsUnion[str, List[str]]合约代码,可传入 order_book_id, order_book_id list,这里输入的是 A 股编码
fieldsUnion[str, List[str]]需要返回的财务字段
countint回溯获取的数据个数。默认为当前能够获取到的最近的数据
statementsstr设置 statements 为 all 时返回所有记录,statements 等于 latest 时返回最新的一条记录,默认为 latest

返回

Optional[DataFrame]

字段类型说明
fieldslist需要返回的财务字段。支持的字段仅限三大基础财报,具体可以参看财务数据页介绍。
if_adjustedint是否为非当期财报数据, 0 代表当期,1 代表非当期(比如 18 年的财报会披露本期和上年同期的数值,17 年年报的财务数值在 18 年年报中披露的记录则为非当期, 17 年年报的财务数值在 17 年年报中披露则为当期。
quarterstr报告期
info_datestr公告发布日

范例

  • 获取股票最近一个报告期的 revenue、net_profit 数据
python
[In]
get_pit_financials_ex(fields=['revenue','net_profit'], count=0,order_book_ids=['000001.XSHE'],statements='latest')
[Out]
                  info_date net_profit revenue net_profit
order_book_id quarter
000001.XSHE 2015q4     2017-03-17     2.186500e+10 9.616300e+10

指数

index_components - 指数成分股

python
rqalpha.api.index_components(order_book_id, date=None)

获取指定指数的成分股列表,也支持按日期查询历史构成。

参数

参数名类型说明
order_book_idstr指数代码,可传入 order_book_id
dateUnion[str, date, None]查询日期,默认为策略当前日期。如指定,则应保证该日期不晚于策略当前日期

返回

List[str]

范例

  • 得到上证指数在策略当前日期的构成股票的列表:
python
index_components('000001.XSHG')
#[Out]['600000.XSHG', '600004.XSHG', ...]

index_weights - 指数成分股权重

python
rqalpha.api.index_weights(order_book_id, date=None)

获取指定指数在给定日期或 T-1 日的成分股权重数据。

参数

参数名类型说明
order_book_idstr指数
dateUnion[str, date, None]可选,默认为 T-1 日

返回

Series

范例

  • 获取上证 50 指数上个交易日的指数构成
python
index_weights('000016.XSHG')
# [Out]
# Order_book_id
# 600000.XSHG    0.03750
# 600010.XSHG    0.00761
# 600016.XSHG    0.05981
# 600028.XSHG    0.01391
# 600029.XSHG    0.00822
# 600030.XSHG    0.03526
# 600036.XSHG    0.04889
# 600050.XSHG    0.00998
# 600104.XSHG    0.02122

期货

futures.get_dominant - 期货主力合约

python
rqalpha.api.futures.get_dominant(underlying_symbol, rule=0)

获取指定期货品种在策略当前日期的主力合约代码。例如可查询沪深 300 股指期货 IF 等品种的主力合约,也支持按不同主力判定规则返回结果。

参数

参数名类型说明
underlying_symbolstr期货合约品种,例如沪深 300 股指期货为'IF'
ruleOptional[int]默认是 rule=0,采用最大昨仓为当日主力合约,每个合约只能做一次主力合约,不会重复出现。针对股指期货,只在当月和次月选择主力合约。当 rule=1 时,主力合约的选取只考虑最大昨仓这个条件

返回

Optional[str]

范例

  • 获取某一天的主力合约代码(策略当前日期是 20160801):
python
futures.get_dominant('IF')
#[Out]
#'IF1608'

futures.get_member_rank - 期货会员持仓等排名

python
rqalpha.api.futures.get_member_rank(which, count=1, rank_by='short')

获取截止 T-1 日的期货合约或品种会员排名数据,支持空头和多头维度排名查询。

参数

参数名类型说明
whichstr期货合约或品种
countint获取多少个交易日的数据,默认为 1
rank_bystrshort/long

返回

DataFrame

范例

python
futures.get_member_rank('IF2301')

futures.get_warehouse_stocks - 期货仓单数据

python
rqalpha.api.futures.get_warehouse_stocks(underlying_symbols, count=1)

获取截止 T-1 日的期货仓单数据,支持单个或多个期货品种查询。

参数

参数名类型说明
underlying_symbolsUnion[str, List[str]]期货品种,可以为 str 或列表
countint获取多少个交易日的数据,默认为 1

返回

DataFrame

范例

python
futures.get_warehouse_stocks('CU2301')

futures.get_dominant_price - 期货主力合约连续合约行情数据

python
rqalpha.api.futures.get_dominant_price(underlying_symbols, start_date=None, end_date=None, frequency='1d', fields=None, adjust_type='pre', adjust_method='prev_close_spread')

获取期货主力合约连续行情数据,支持日线、分钟线和 tick 查询。可结合不同复权方式和复权方法获取主力连续合约行情。

参数

参数名类型说明
underlying_symbolsstr or str list期货合约品种,可传入 underlying_symbol, underlying_symbol list
start_datestr, datetime.date, datetime.datetime, pandas.Timestamp开始日期, 最小日期为 20100104
end_datestr, datetime.date, datetime.datetime, pandas.Timestamp结束日期
frequencystr历史数据的频率。支持/日/分钟/tick 级别的历史数据,默认为'1d'。1m-分钟线,1d-日线,分钟可选取不同频率,例如'5m'代表 5 分钟线
fieldsstr or str list字段名称列表
adjust_typestr复权方式,不复权 - none,前复权 - pre,后复权 - post
adjust_methodstr复权方法,prev_close_spread/open_spread:基于价差复权因子进行复权,prev_close_ratio/open_ratio:基于比例复权因子进行复权,默认为'prev_close_spread',adjust_type 为 None 时,adjust_method 复权方法设置无效

返回

MultiIndex DataFrame

范例

  • 获取基于价差前复权计算的主力合约数据(策略当前日期是 2015-01-27,则以策略当天为准,而不是已现实最新日期为准来计算复权因子):
python
futures.get_dominant_price(underlying_symbols='CU', start_date='2015-01-20', end_date='2015-01-23', adjust_type="pre",
                   adjust_method="prev_close_spread", fields=["close", "settlement"])
#[Out]
#                               close     settlement
# underlying_symbol date
# CU                2015-01-20  40990.0     41080.0
#                   2015-01-21  41000.0     41060.0
#                   2015-01-22  41300.0     41340.0
#                   2015-01-23  40750.0     40950.0
#                   2015-01-26  39250.0     39660.0

宏观经济

econ.get_reserve_ratio - 存款准备金率

python
rqalpha.api.econ.get_reserve_ratio(reserve_type='all', n=1)

获取存款准备金率数据。支持大型金融机构、其他金融机构或全部类别的最近若干个生效日期数据。

参数

参数名类型说明
reserve_typestr目前有大型金融机构('major') 和 其他金融机构('other')两种分类。默认为 all,即所有类别都会返回
nint返回最近 n 个生效日期的存款准备金率数据

返回

Optional[DataFrame]

范例

python
econ.get_reserve_ratio(reserve_type='major')

econ.get_money_supply - 货币供应量

python
rqalpha.api.econ.get_money_supply(n=1)

获取货币供应量数据,支持返回最近若干个消息公布日期的货币供应量指标。

参数

参数名类型说明
nint返回前 n 个消息公布日期的货币供应量指标数据

返回

Optional[DataFrame]

范例

python
econ.get_money_supply(n = 1)