数据查询接口¶
市场基础数据¶
all_instruments - 所有合约基础信息¶
-
rqalpha.api.
all_instruments
(type=None, date=None)¶ 获取某个国家市场的所有合约信息。使用者可以通过这一方法很快地对合约信息有一个快速了解,目前仅支持中国市场。
- Parameters
type (
Optional
[str
]) -- 需要查询合约类型,例如:type='CS'代表股票。默认是所有类型date (
Union
[str
,datetime
,date
,None
]) -- 查询时间点
其中type参数传入的合约类型和对应的解释如下:
合约类型
说明
CS
Common Stock, 即股票
ETF
Exchange Traded Fund, 即交易所交易基金
LOF
Listed Open-Ended Fund,即上市型开放式基金
INDX
Index, 即指数
Future
Futures,即期货,包含股指、国债和商品期货
- Return type
DataFrame
instruments - 合约详细信息¶
-
rqalpha.api.
instruments
(id_or_symbols)¶ 获取某个国家市场内一个或多个合约的详细信息。目前仅支持中国市场。
- Parameters
id_or_symbols (
Union
[str
,List
[str
]]) -- 合约代码或者合约代码列表- Example
获取单一股票合约的详细信息:
1 2 3
[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)
获取多个股票合约的详细信息:
1 2 3
[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)]
获取合约已上市天数:
1
instruments('000001.XSHE').days_from_listed()
获取合约距离到期天数:
1
instruments('IF1701').days_to_expire()
- Return type
Union
[Instrument
,List
[Instrument
]]
get_trading_dates - 交易日列表¶
-
rqalpha.api.
get_trading_dates
(start_date, end_date)¶ 获取某个国家市场的交易日列表(起止日期加入判断)。目前仅支持中国市场。
- Parameters
start_date (
Union
[str
,date
,datetime
,Timestamp
]) -- 开始日期end_date (
Union
[str
,date
,datetime
,Timestamp
]) -- 结束如期
- Return type
DatetimeIndex
get_previous_trading_date - 上一交易日¶
-
rqalpha.api.
get_previous_trading_date
(date)¶ 获取指定日期的之前的第 n 个交易日。
- Parameters
date (
Union
[str
,date
,datetime
,Timestamp
]) -- 指定日期n (
Optional
[int
]) --
- Example
1 2 3
[In]get_previous_trading_date(date='2016-05-02') [Out] [datetime.date(2016, 4, 29)]
- Return type
date
get_next_trading_date - 下一交易日¶
-
rqalpha.api.
get_next_trading_date
(date)¶ 获取指定日期之后的第 n 个交易日
- Parameters
date (
Union
[str
,date
,datetime
,Timestamp
]) -- 指定日期n (
Optional
[int
]) --
- Example
1 2 3
[In]get_next_trading_date(date='2016-05-01') [Out] [datetime.date(2016, 5, 3)]
- Return type
date
get_yield_curve - 收益率曲线¶
-
rqalpha.api.
get_yield_curve
(date=None, tenor=None)¶ 获取某个国家市场指定日期的收益率曲线水平。
数据为2002年至今的中债国债收益率曲线,来源于中央国债登记结算有限责任公司。
- Parameters
date (
Union
[str
,date
,datetime
,Timestamp
,None
]) -- 查询日期,默认为策略当前日期前一天tenor (
Optional
[str
]) -- 标准期限,'0S' - 隔夜,'1M' - 1个月,'1Y' - 1年,默认为全部期限
- Example
1 2 3 4 5 6 7 8
[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 ...
- Return type
DataFrame
行情¶
history_bars - 某一合约历史 bar 数据¶
-
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_trading
T-1日day bar
T日handle_bar
T日day bar
分钟回测获取日历史数据
调用时间
返回数据
T日before_trading
T-1日day bar
T日handle_bar
T-1日day bar
分钟回测获取分钟历史数据
调用时间
返回数据
T日before_trading
T-1日最后一个minute bar
T日handle_bar
T日当前minute bar
- Parameters
order_book_id (
str
) -- 合约代码bar_count (
int
) -- 获取的历史数据数量,必填项frequency (
str
) -- 获取数据什么样的频率进行。'1d'、'1m' 和 '1w' 分别表示每日、每分钟和每周,必填项fields (
Union
[str
,List
[str
],None
]) -- 返回数据字段。必填项。见下方列表。skip_suspended (
Optional
[bool
]) -- 是否跳过停牌数据include_now (
Optional
[bool
]) -- 是否包含当前数据adjust_type (
Optional
[str
]) -- 复权类型,默认为前复权 pre;可选 pre, none, post
fields
字段名
datetime
时间戳
open
开盘价
high
最高价
low
最低价
close
收盘价
volume
成交量
total_turnover
成交额
open_interest
持仓量(期货专用)
basis_spread
期现差(股指期货专用)
settlement
结算价(期货日线专用)
prev_settlement
结算价(期货日线专用)
- Example
获取最近5天的日线收盘价序列(策略当前日期为20160706):
1 2 3 4
[In] logger.info(history_bars('000002.XSHE', 5, '1d', 'close')) [Out] [ 8.69 8.7 8.71 8.81 8.81]
- Return type
ndarray
current_snapshot - 当前快照数据¶
-
rqalpha.api.
current_snapshot
(order_book_id)¶ 获得当前市场快照数据。只能在日内交易阶段调用,获取当日调用时点的市场快照数据。 市场快照数据记录了每日从开盘到当前的数据信息,可以理解为一个动态的day bar数据。 在目前分钟回测中,快照数据为当日所有分钟线累积而成,一般情况下,最后一个分钟线获取到的快照数据应当与当日的日线行情保持一致。 需要注意,在实盘模拟中,该函数返回的是调用当时的市场快照情况,所以在同一个handle_bar中不同时点调用可能返回的数据不同。 如果当日截止到调用时候对应股票没有任何成交,那么snapshot中的close, high, low, last几个价格水平都将以0表示。
- Parameters
d_or_symbol -- 合约代码或简称
- Example
在handle_bar中调用该函数,假设策略当前时间是20160104 09:33:
1 2 3 4 5
[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)
- Return type
Optional
[TickObject
]
history_ticks - 指定合约的历史 tick 数据¶
-
rqalpha.api.
history_ticks
(order_book_id, count)¶ 获取指定合约历史(不晚于当前时间的)tick 对象,仅支持在 tick 级别的策略(回测、模拟交易、实盘)中调用。
- Parameters
order_book_id (
str
) -- 合约代码count (
int
) -- 获取的 tick 数量
- Return type
List
[TickObject
]
get_price - 合约历史数据¶
-
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进行数据获取会更方便。
- Parameters
order_book_ids (Union[str, Iterable[str]]) -- 合约代码,合约代码,可传入order_book_id, order_book_id list, symbol, symbol list
start_date (Union[datetime.date, str]) -- 开始日期,用户必须指定
end_date (Optional[Union[datetime.date, datetime.datetime, str]]) -- 结束日期,默认为策略当前日期前一天
frequency (Optional[str]) -- 历史数据的频率。 现在支持日/分钟级别的历史数据,默认为'1d'。使用者可自由选取不同频率,例如'5m'代表5分钟线
fields (Optional[Iterable[str]]) -- 期望返回的字段名称,如 open,close 等
adjust_type (Optional[str]) -- 权息修复方案。前复权 - pre,后复权 - post,不复权 - none
skip_suspended (Optional[bool]) -- 是否跳过停牌数据。默认为False,不跳过,用停牌前数据进行补齐。True则为跳过停牌期。注意,当设置为True时,函数order_book_id只支持单个合约传入
expect_df (Optional[bool]) -- 是否期望始终返回 DataFrame。pandas 0.25.0 以上该参数应设为 True,以避免因试图构建 Panel 产生异常
当 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
参数
类型
说明
open
float
开盘价
close
float
收盘价
high
float
最高价
low
float
最低价
limit_up
float
涨停价
limit_down
float
跌停价
total_turnover
float
总成交额
volume
float
总成交量
acc_net_value
float
累计净值(仅限基金日线数据)
unit_net_value
float
单位净值(仅限基金日线数据)
discount_rate
float
折价率(仅限基金日线数据)
settlement
float
结算价 (仅限期货日线数据)
prev_settlement
float
昨日结算价(仅限期货日线数据)
open_interest
float
累计持仓量(期货专用)
basis_spread
float
基差点数(股指期货专用,股指期货收盘价-标的指数收盘价)
trading_date
pandas.TimeStamp
交易日期(仅限期货分钟线数据),对应期货夜盘的情况
- Example
获取单一股票历史日线行情:
1 2 3 4 5 6 7 8 9 10 11
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 #...
- Return type
Union[pd.DataFrame, pd.Panel, pd.Series]
get_price_change_rate - 历史涨跌幅¶
-
rqalpha.api.
get_price_change_rate
(order_book_ids, count=1, expect_df=False)¶ 获取股票/指数截止T-1日的日涨幅
- Parameters
order_book_ids (
Union
[str
,List
[str
]]) -- 可输入 order_book_id, order_book_id list, symbol, symbol listcount (
Optional
[int
]) -- 回溯获取的数据个数。默认为当前能够获取到的最近的数据expect_df (
Optional
[bool
]) -- 是否期望始终返回 DataFrame。pandas 0.25.0 以上该参数应设为 True,以避免因试图构建 Panel 产生异常
当 expect_df 为 False 时,返回值的类型如下:
传入多个order_book_id,函数会返回pandas DataFrame
传入一个order_book_id,函数会返回pandas Series
- Example
获取平安银行以及沪深300指数一段时间的涨跌幅情况:
1 2 3 4 5 6 7 8
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
- Return type
Union
[DataFrame
,Series
]
股票¶
industry - 行业股票列表¶
-
rqalpha.api.
industry
(code)¶ 获得属于某一行业的所有股票列表。
- Parameters
code (
str
) -- 行业名称或行业代码。例如,农业可填写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
综合
- Example
1 2 3 4 5
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']
- Return type
List
[str
]
sector - 板块股票列表¶
-
rqalpha.api.
sector
(code)¶ 获得属于某一板块的所有股票列表。
- Parameters
code (
str
) -- 板块名称或板块代码。例如,能源板块可填写'Energy'、'能源'或sector_code.Energy
目前支持的板块分类如下,其取值参考自MSCI发布的全球行业标准分类:
板块代码
中文板块名称
英文板块名称
Energy
能源
energy
Materials
原材料
materials
ConsumerDiscretionary
非必需消费品
consumer discretionary
ConsumerStaples
必需消费品
consumer staples
HealthCare
医疗保健
health care
Financials
金融
financials
InformationTechnology
信息技术
information technology
TelecommunicationServices
电信服务
telecommunication services
Utilities
公共服务
utilities
Industrials
工业
industrials
- Example
1 2 3 4 5 6 7 8
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']
- Return type
List
[str
]
get_dividend - 获取分红数据¶
-
rqalpha.api.
get_dividend
(order_book_id, start_date)¶ 获取某只股票到策略当前日期前一天的分红情况(包含起止日期)。
- Parameters
order_book_id (
str
) -- 股票代码start_date (
Union
[str
,date
,datetime
,Timestamp
]) -- 开始日期,需要早于策略当前日期
fields
字段名
announcement_date
分红宣布日
book_closure_date
股权登记日
dividend_cash_before_tax
税前分红
ex_dividend_date
除权除息日
payable_date
分红到帐日
round_lot
分红最小单位
- Example
获取平安银行2013-01-04 到策略当前日期前一天的分红数据:
1 2 3 4 5 6 7
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')])
- Return type
Optional
[ndarray
]
is_suspended - 全天停牌判断¶
-
rqalpha.api.
is_suspended
(order_book_id)¶ 判断某只股票是否全天停牌。
- Parameters
order_book_id (
str
) -- 某只股票的代码或股票代码,可传入单只股票的order_book_id, symbolcount (
Optional
[int
]) -- 回溯获取的数据个数。默认为当前能够获取到的最近的数据
- Return type
Union
[bool
,DataFrame
]
is_st_stock - ST股判断¶
-
rqalpha.api.
is_st_stock
(order_book_id)¶ 判断股票在一段时间内是否为ST股(包括ST与*ST)。
ST股是有退市风险因此风险比较大的股票,很多时候您也会希望判断自己使用的股票是否是'ST'股来避开这些风险大的股票。另外,我们目前的策略比赛也禁止了使用'ST'股。
- Parameters
order_book_id (
str
) -- 某只股票的代码,可传入单只股票的order_book_id, symbolcount (
Optional
[int
]) -- 回溯获取的数据个数。默认为当前能够获取到的最近的数据
- Return type
Union
[bool
,DataFrame
]
get_split - 拆分数据¶
-
rqalpha.api.
get_split
(order_book_ids, start_date=None)¶ 获取某只股票到策略当前日期前一天的拆分情况(包含起止日期)。
- Parameters
order_book_ids (
Union
[str
,List
[str
]]) -- 证券代码,证券的独特的标识符,例如:'000001.XSHE'start_date (
Union
[str
,date
,None
]) -- 开始日期,用户必须指定,需要早于策略当前日期
- Return type
DataFrame
- Returns
查询时间段内的某个股票的拆分数据
ex_dividend_date: 除权除息日,该天股票的价格会因为拆分而进行调整
book_closure_date: 股权登记日
split_coefficient_from: 拆分因子(拆分前)
split_coefficient_to: 拆分因子(拆分后)
例如:每10股转增2股,则split_coefficient_from = 10, split_coefficient_to = 12.
- Example
1 2 3 4 5 6 7
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 - 融资融券信息¶
-
rqalpha.api.
get_securities_margin
(order_book_ids, count=1, fields=None, expect_df=False)¶ 获取融资融券信息。包括 深证融资融券数据 以及 上证融资融券数据 情况。既包括个股数据,也包括市场整体数据。需要注意,融资融券的开始日期为2010年3月31日。
- Parameters
order_book_ids (Union[str, Iterable[str]]) -- 可输入order_book_id, order_book_id list, symbol, symbol list。另外,输入'XSHG'或'sh'代表整个上证整体情况;'XSHE'或'sz'代表深证整体情况
count (Optional[int]) -- 回溯获取的数据个数。默认为当前能够获取到的最近的数据
fields (Optional[str]) -- 期望返回的字段,默认为所有字段。见下方列表
expect_df (Optional[bool]) -- 是否期望始终返回 DataFrame。pandas 0.25.0 以上该参数应设为 True,以避免因试图构建 Panel 产生异常
fields
字段名
margin_balance
融资余额
buy_on_margin_value
融资买入额
margin_repayment
融资偿还额
short_balance
融券余额
short_balance_quantity
融券余量
short_sell_value
融券卖出额
short_sell_quantity
融券卖出量
short_repayment_quantity
融券偿还量
total_balance
融资融券余额
当 expect_df 为 False 时,返回值的类型如下:
多个order_book_id,单个field的时候返回DataFrame,index为date,column为order_book_id
单个order_book_id,多个fields的时候返回DataFrame,index为date,column为fields
单个order_book_id,单个field返回Series
多个order_book_id,多个fields的时候返回DataPanel Items axis为fields Major_axis axis为时间戳 Minor_axis axis为order_book_id
- Example
获取沪深两个市场一段时间内的融资余额:
1 2 3 4 5 6 7 8
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
获取沪深两个市场一段时间内的融资余额:
1 2 3 4 5 6 7 8
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
获取上证个股以及整个上证市场融资融券情况:
1 2 3 4 5 6 7
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融资偿还额情况
1 2 3 4 5 6 7 8
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
- Return type
Union[pd.Series, pd.DataFrame, pd.Panel]
concept - 概念股列表¶
-
rqalpha.api.
concept
(*concept_names)¶ 获取T日的概念股列表
- Parameters
concept_names (
str
) -- 概念名称。可以从概念列表中选择一个或多个概念填写, 可以通过 rqdatac.concept_list() 获取概念列表- Return type
List
[str
]- Returns
属于该概念的股票 order_book_id
- Example
得到一个概念的股票列表:
1 2 3 4 5 6 7
concept('民营医院') # [Out] # ['600105.XSHG', # '002550.XSHE', # '002004.XSHE', # '002424.XSHE', # ...]
得到某几个概念的股票列表:
1 2 3 4 5 6
concept('民营医院', '国企改革') # [Out] # ['601607.XSHG', # '600748.XSHG', # '600630.XSHG', # ...]
get_margin_stocks - 融资融券列表¶
-
rqalpha.api.
get_margin_stocks
(exchange=None, margin_type='all')¶ 获取某个日期深证、上证融资融券股票列表。
- Parameters
exchange (
Optional
[str
]) -- 交易所,默认为 None,返回所有字段。可选字段包括:'XSHE', 'sz' 代表深交所;'XSHG', 'sh' 代表上交所margin_type (
str
) -- 'stock' 代表融券卖出,'cash',代表融资买入,'all',代表包含融资和融券,默认为'all'
- Return type
List
[str
]- Returns
属于该概念的股票 order_book_id
- Example
获取沪深市场的融券卖出列表:
1 2 3 4 5 6
get_margin_stocks(exchange=None,margin_type='stock') # [Out] # ['000001.XSHE', # '000002.XSHE', # '000006.XSHE', # ...]
获取沪深市场融资买入列表:
1 2 3 4 5 6
get_margin_stocks(exchange='XSHE',margin_type='stock') # [Out] # ['000001.XSHE', # '000002.XSHE', # '000006.XSHE', # ...]
获取上证融资买入列表:
1 2 3 4 5 6
get_margin_stocks(exchange='XSHG',margin_type='cash') # [Out] # ['510050.XSHG', # '510160.XSHG', # '510180.XSHG', # ...]
get_turnover_rate - 历史换手率¶
-
rqalpha.api.
get_turnover_rate
(order_book_ids, count=1, fields=None, expect_df=False)¶ 获取截止T-1交易日的换手率数据
- param order_book_ids
可输入 order_book_id, order_book_id list, symbol, symbol list
- param count
回溯获取的数据个数。默认为当前能够获取到的最近的数据
- param fields
期望返回的字段,默认为所有字段。见下方列表
- param expect_df
是否期望始终返回 DataFrame。pandas 0.25.0 以上该参数应设为 True,以避免因试图构建 Panel 产生异常
fields
字段名
today
当天换手率
week
过去一周平均换手率
month
过去一个月平均换手率
three_month
过去三个月平均换手率
six_month
过去六个月平均换手率
year
过去一年平均换手率
current_year
当年平均换手率
total
上市以来平均换手率
当 expect_df 为 False 时,返回值的类型如下:
如果只传入一个order_book_id,多个fields,返回 pandas.DataFrame
如果传入order_book_id list,并指定单个field,函数会返回一个 pandas.DataFrame
如果传入order_book_id list,并指定多个fields,函数会返回一个 pandas.Panel
- example
获取平安银行历史换手率情况:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
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
- Return type
Union[pd.Series, pd.DataFrame, pd.Panel]
get_factor - 因子¶
-
rqalpha.api.
get_factor
(order_book_ids, factors, count=1, universe=None, expect_df=False)¶ 获取股票截止T-1日的因子数据
- Parameters
order_book_ids (Union[str, List[str]]) -- 合约代码,可传入order_book_id, order_book_id list
factors (Union[str, List[str]]) -- 因子名称,可查询 rqdatac.get_all_factor_names() 得到所有有效因子字段
count (Optional[int]) -- 获取多少个交易日的数据
universe (Optional[Union[str, List[Union]]]) -- 当获取横截面因子时,universe指定了因子计算时的股票池
expect_df (Optional[bool]) -- 默认为False。当设置为True时,总是返回 multi-index DataFrame。pandas 0.25.0 以上该参数应设为 True,以避免因试图构建 Panel 产生异常
- Return type
pd.DataFrame
get_industry - 行业股票列表¶
-
rqalpha.api.
get_industry
(industry, source='citics')¶ 通过传入行业名称、行业指数代码或者行业代号,拿到 T 日指定行业的股票列表
- Parameters
industry (
str
) -- 行业名字source (
Optional
[str
]) -- 默认为中信(citics),可选聚源(gildata)
- Return type
List
[str
]- Returns
list of order_book_id
get_instrument_industry - 股票行业分类¶
-
rqalpha.api.
get_instrument_industry
(order_book_ids, source='citics', level=1)¶ 获取T日时股票行业分类
- Parameters
order_book_ids (
Union
[str
,List
[str
]]) -- 合约代码,可传入order_book_id, order_book_id listsource (
Optional
[str
]) -- 默认为中信(citics),可选聚源(gildata)level (
Optional
[int
]) -- 默认为1,可选 0 1 2 3,0表示返回所有级别
- Return type
DataFrame
get_stock_connect - 沪深港通持股信息¶
-
rqalpha.api.
get_stock_connect
(order_book_ids, count=1, fields=None, expect_df=False)¶ 获取截止T-1日A股股票在香港上市交易的持股情况
- Parameters
order_book_ids (
Union
[str
,List
[str
]]) -- 合约代码,可传入order_book_id, order_book_id list,这里输入的是A股编码count (
Optional
[int
]) -- 向前获取几个交易日fields (
Optional
[str
]) -- 持股量(shares_holding),持股比例(holding_ratio),默认为所有字段expect_df (
Optional
[bool
]) -- 默认为False。当设置为True时,总是返回 multi-index DataFrame。pandas 0.25.0 以上该参数应设为 True,以避免因试图构建 Panel 产生异常
- 当 expect_df 为 False 时,返回值的类型如下:
多个order_book_id,多个fields的时候返回pandas Panel
单个order_book_id,多个fields的时候返回pandas DataFrame
单个order_book_id,单个field返回pandas Series
- Return type
DataFrame
- Returns
current_performance - 财务快报数据¶
-
rqalpha.api.
current_performance
(order_book_id, info_date=None, quarter=None, interval='1q', fields=None)¶ 默认返回给定的 order_book_id 当前最近一期的快报数据
- Parameters
order_book_id (str) -- 合约代码
info_date (Optional[str]) -- yyyymmdd 或者 yyyy-mm-dd。如果不填(info_date和quarter都为空),则返回策略运行当前日期的最新发布的快报。如果填写,则从info_date当天或者之前最新的报告开始抓取。
quarter (Optional[str]) -- info_date参数优先级高于quarter。如果info_date填写了日期,则不查看quarter这个字段。 如果info_date没有填写而quarter 有填写,则财报回溯查询的起始报告期,例如'2015q2', '2015q4'分别代表2015年半年报以及年报。默认只获取当前报告期财务信息
interval (Optional[str]) -- 查询财务数据的间隔。例如,填写'5y',则代表从报告期开始回溯5年,每年为相同报告期数据;'3q'则代表从报告期开始向前回溯3个季度。不填写默认抓取一期。
fields (Optional[str, List[str]]) -- 抓取对应有效字段返回。默认返回所有字段。具体快报字段可参看 Ricequant 官网财务数据文档。
- Return type
pd.DataFrame
get_pit_financials_ex - 季度财务信息¶
-
rqalpha.api.
get_pit_financials_ex
(order_book_ids, fields, count, statements='latest')¶ 以给定一个报告期回溯的方式获取季度基础财务数据(三大表),即利润表(income_statement),资产负债表(balance_sheet),现金流量表(cash_flow_statement)。
- Parameters
order_book_ids (
Union
[str
,List
[str
]]) -- 合约代码,可传入order_book_id, order_book_id list,这里输入的是A股编码fields (
Union
[str
,List
[str
]]) -- 需要返回的财务字段count (
int
) -- 几条数据statements (
str
) -- 设置 statements 为 all 时返回所有记录,statements 等于 latest 时返回最新的一条记录,默认为 latest.
- Return type
Optional
[DataFrame
]- Returns
指数¶
index_components - 指数成分股¶
-
rqalpha.api.
index_components
(order_book_id, date=None)¶ 获取某一指数的股票构成列表,也支持指数的历史构成查询。
- Parameters
order_book_id (
str
) -- 指数代码,可传入order_book_iddate (
Union
[str
,date
,None
]) -- 查询日期,默认为策略当前日期。如指定,则应保证该日期不晚于策略当前日期
- Return type
List
[str
]- Returns
构成该指数股票的 order_book_id
- Example
得到上证指数在策略当前日期的构成股票的列表:
1 2
index_components('000001.XSHG') #[Out]['600000.XSHG', '600004.XSHG', ...]
index_weights - 指数成分股权重¶
-
rqalpha.api.
index_weights
(order_book_id, date=None)¶ 获取T-1日的指数权重
- Parameters
order_book_id (
str
) -- 指数date (
Union
[str
,date
,None
]) -- 可选,默认为T-1日
- Return type
Series
- Returns
每只股票在指数中的构成权重
- Example
获取上证50指数上个交易日的指数构成
1 2 3 4 5 6 7 8 9 10 11 12
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 - 期货主力合约¶
-
rqalpha.api.futures.
get_dominant
(underlying_symbol, rule=0)¶ 获取某一期货品种策略当前日期的主力合约代码。 合约首次上市时,以当日收盘同品种持仓量最大者作为从第二个交易日开始的主力合约。当同品种其他合约持仓量在收盘后超过当前主力合约1.1倍时,从第二个交易日开始进行主力合约的切换。日内不会进行主力合约的切换。
- Parameters
underlying_symbol (
str
) -- 期货合约品种,例如沪深300股指期货为'IF'rule (
Optional
[int
]) -- 默认是rule=0,采用最大昨仓为当日主力合约,每个合约只能做一次主力合约,不会重复出现。针对股指期货,只在当月和次月选择主力合约。 当rule=1时,主力合约的选取只考虑最大昨仓这个条件。
- Example
获取某一天的主力合约代码(策略当前日期是20160801):
1 2 3
get_dominant_future('IF') #[Out] #'IF1608'
- Return type
Optional
[str
]
futures.get_member_rank - 期货会员持仓等排名¶
-
rqalpha.api.futures.
get_member_rank
(which, count=1, rank_by='short')¶ 获取截止T-1日的期货或品种的会员排名情况
- Parameters
which (
str
) -- 期货合约或品种count (
int
) -- 获取多少个交易日的数据,默认为1rank_by (
str
) -- short/long
- Return type
DataFrame
futures.get_warehouse_stocks - 期货仓单数据¶
-
rqalpha.api.futures.
get_warehouse_stocks
(underlying_symbols, count=1)¶ 获取截止T-1日的期货仓单数据
- Parameters
underlying_symbols (
Union
[str
,List
[str
]]) -- 期货品种,可以为str或列表count (
int
) -- 获取多少个交易日的数据,默认为1
- Return type
DataFrame
futures.get_dominant_price - 期货主力合约连续合约行情数据¶
-
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')¶ 获取主力合约行情数据
- Parameters
underlying_symbols -- 期货合约品种,可传入 underlying_symbol, underlying_symbol list
start_date -- 开始日期, 最小日期为 20100104
end_date -- 结束日期
frequency -- 历史数据的频率。 支持/日/分钟/tick 级别的历史数据,默认为'1d'。 1m- 分钟线,1d-日线,分钟可选取不同频率,例如'5m'代表 5 分钟线
fields -- 字段名称列表
adjust_type -- 复权方式,不复权 - none,前复权 - pre,后复权 - post
adjust_method -- 复权方法 ,prev_close_spread/open_spread:基于价差复权因子进行复权, prev_close_ratio/open_ratio:基于比例复权因子进行复权, 默认为‘prev_close_spread',adjust_type为None 时,adjust_method 复权方法设置无效
- Returns
MultiIndex DataFrame
- Example
获取基于价差前复权计算的主力合约数据(策略当前日期是2015-01-27,则以策略当天为准,而不是已现实最新日期为准来计算复权因子):
1 2 3 4 5 6 7 8 9 10 11
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 # 2015-01-27 40260.0 40210.0