Skip to content

数据查询接口

市场基础数据

all_instruments - 所有合约基础信息

python
rqalpha.api.all_instruments(type=None, date=None)

获取某个国家市场的所有合约信息。使用者可以通过这一方法很快地对合约信息有一个快速了解,目前仅支持中国市场。

参数

参数名类型说明
typeOptional[str]需要查询合约类型,例如:type='CS'代表股票。默认是所有类型
dateUnion[str, datetime, date, None]查询时间点
其中 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)

获取某个国家市场内一个或多个合约的详细信息。目前仅支持中国市场。

参数

参数名类型说明
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)

获取某个国家市场指定日期的收益率曲线水平。

数据为 2002 年至今的中债国债收益率曲线,来源于中央国债登记结算有限责任公司。

参数

参数名类型说明
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')

获取指定合约的历史 k 线行情,同时支持日以及分钟历史数据。不能在 init 中调用。

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

日回测获取日历史数据

调用时间返回数据
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)

获得当前市场快照数据。只能在日内交易阶段调用,获取当日调用时点的市场快照数据。 市场快照数据记录了每日从开盘到当前的数据信息,可以理解为一个动态的 day bar 数据。 在目前分钟回测中,快照数据为当日所有分钟线累积而成,一般情况下,最后一个分钟线获取到的快照数据应当与当日的日线行情保持一致。

需要注意,在实盘模拟中,该函数返回的是调用当时的市场快照情况,所以在同一个 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)

获取指定合约或合约列表的历史行情(包含起止日期,日线或分钟线),不能在'handle_bar'函数中进行调用

注意,这一函数主要是为满足在研究平台编写策略习惯而引入。在编写策略中,使用 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_datepandasTimestamp交易日期(仅限期货分钟线数据),对应期货夜盘的情况

范例

  • 获取单一股票历史日线行情:
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)

获得属于某一行业的所有股票列表。

参数

参数名类型说明
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)

获得属于某一板块的所有股票列表。

参数

参数名类型说明
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)。

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)

获取 T 日的概念股列表

参数

参数名类型说明
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)

参数

参数名类型说明
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_id 当前最近一期的快报数据

参数

参数名类型说明
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)

获取某一期货品种策略当前日期的主力合约代码。 合约首次上市时,以当日收盘同品种持仓量最大者作为从第二个交易日开始的主力合约。当同品种其他合约持仓量在收盘后超过当前主力合约 1.1 倍时,从第二个交易日开始进行主力合约的切换。日内不会进行主力合约的切换。

参数

参数名类型说明
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')

获取主力合约行情数据

参数

参数名类型说明
underlying_symbolsstr or str list期货合约品种,可传入 underlying_symbol, underlying_symbol list
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期, 最小日期为 20100104
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期
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)

获取截止 T 日的存款准备金率

参数

参数名类型说明
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)