RiceQuant米筐量化交易平台。深圳米筐科技有限公司致力于打造亚太区最出色的量化交易平台,在我们的平台上,您可以使用我们提供高效的工具和准确的数据去构造您的策略,并进行回测以及优化,而无需担忧基础架构及数据质量问题。

Ricequant 策略研究平台

基于IPython NoteBook搭建的Ricequant研究平台为进行策略研究的您提供了丰富的工具。在这里,您既可以享受到Python分析、计算库所带来的研究上的便利性,又可以使用经过我们处理并且每日更新的各种高质量数据。

您可以在研究文件列表中看到我们已经为您预先准备好的简单范例,它有助于您的快速上手。当然,您也可以建立新的研究文档,将思考付诸实践。

Ricequant为您提供的每日更新的数据包括:

期权数据相关

支持的期权数据品种

交易所品种行权方式上市日期交易时间
上交所50ETF 期权欧式2015-02-0909:30 至 11:30, 13:00 至 15:00
郑商所SR 白糖期权美式2017-04-1921:00 至 23:30, 09:00 至 10:15, 10:30 至 11:30, 13:30 至 15:00
郑商所CF 棉花期权美式2019-01-2821:00 至 23:30, 09:00 至 10:15, 10:30 至 11:30, 13:30 至 15:00
大商所M 豆粕期权美式2017-03-3121:00 至 23:30, 09:00 至 10:15,10:30 至 11:30, 13:30 至 15:00
大商所C 玉米期权美式2019-01-2809:00 至 10:15,10:30 至 11:30, 13:30 至 15:00
上期所CU 铜期权欧式2018-09-2121:00 至 1:00, 09:00 至 10:15, 10:30 至 11:30, 13:30 至 15:00
上期所RU 橡胶期权美式2019-01-2821:00 至 23:00, 09:00 至 10:15, 10:30 至 11:30, 13:30 至 15:00

合约代码规则

合约代码(order_book_id)用以唯一标识当前合约,针对商品期权,不同交易所的命名规则有所不同。简便起见,米筐提供的期权数据统一合约规则为【标的合约代码(大写)】+【四位到期年月】+【认购认沽类型(大写)】+【行权价格水平】的方式进行:

交易所原始合约代码米筐合约代码变动规则
上期所cu1901C46000CU1901C46000标的合约代码大写
郑商所SR901C4400SR1901C4400到期月份改为4位
大商所m1901-C-2500M1901C2500标的合约代码大写,去掉连字符

上证 50ETF 期权标的分红问题

与商品期权不同,上证 50ETF 期权存在行权价以及合约乘数变动的情况(因标的 50ETF 分红而进行的调整,详情请参考上证有关合约条款)故 50ETF 期权全部以数字作为合约代码,例如:合约代码10000615对应的合约简称为510050C1612M02050,代表2016年12月到期的行权价是2.05元的认购期权。但由于 50ETF 于当年11月29日分红,交易所对合约进行了调整 —— 合约行权价由2.05变为了2.006,合约乘数由10000变为了10220,合约简称变为了510050C1612A02050,但合约代码并没有变。由于存在上述情况,您就需要通过10000615这一合约代码来获取这一期权合约的历史数据了。并且我们在日线中加入了行权价与合约乘数信息,让您能够追踪它们的变动


Ricequant IPython Notebook API

行情、交易日及合约信息

all_instruments - 获取所有合约基础信息

all_instruments(type='None', market='cn', **kwargs)

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

参数
参数类型说明
typestr需要查询合约类型,例如:type='CS'代表股票。默认是所有类型
marketstr默认是中国市场('cn'),目前仅支持中国市场
datestr, datetime.date, datetime.datetime, pandasTimestamp指定日期,筛选指定日期可交易的合约

其中type参数传入的合约类型和对应的解释如下:

合约类型说明
CSCommon Stock, 即股票
ETFExchange Traded Fund, 即交易所交易基金
LOFListed Open-Ended Fund,即上市型开放式基金 (以下分级基金已并入)
INDXIndex, 即指数
FutureFutures,即期货,包含股指、国债和商品期货
SpotSpot,即现货,目前包括上海黄金交易所现货合约
Option期权,包括目前国内已上市的全部期权合约
Convertible沪深两市场内有交易的可转债合约
返回

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

范例
[In]all_instruments()
[Out]
    abbrev_symbol    order_book_id  sector_code    symbol
0    XJDQ    000400.XSHE      Industrials        许继电气
1    HXN        002582.XSHE      ConsumerStaples    好想你
2    NFGF    300004.XSHE      Industrials        南风股份
3    FLYY    002357.XSHE      Industrials        富临运业
...
[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
...
[In]all_instruments(type='Future')
[Out]
    abbrev_symbol    order_book_id    product    sector_code    symbol
0    MH0610    CF0610    Commodity    null    棉花0610
1    LD0209    GN0209    Commodity    null    绿豆0209
...
3615    HS1301    IF1301    Index    null    沪深1301
...
[In]all_instruments(type='Future', date='20160412')
[Out]
    abbrev_symbol    order_book_id    product    symbol
0    HJ0809    AU0809    Commodity    黄金0809
1    MH1301    CF1301    Commodity    棉花1301
...
4226    XC1103    WR1103    Commodity    线材1103
...
[In]all_instruments(type='Convertible')
[Out]
     de_listed_date     exchange     listed_date     market_tplus     order_book_id     round_lot     status     symbol     type
0     2013-01-29     XSHG     2007-03-08     0     126003.XSHG     10     Delisted     07云化债     Convertible
1     2016-09-22     XSHG     2008-10-10     0     126018.XSHG     10     Delisted     08江铜债     Convertible
2     2015-06-02     XSHE     2013-08-19     0     128002.XSHE     10     Delisted     东华转债     Convertible
3     2015-02-26     XSHG     2010-09-10     0     113002.XSHG     10     Delisted     工行转债     Convertible
4     0000-00-00     XSHE     2019-01-21     0     128052.XSHE     10     Active     凯龙转债     Convertible
...

instruments - 获取合约详细信息

instruments(order_book_id, market='cn')

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

参数
参数类型说明
order_book_idstr OR str list合约代码,可传入order_book_id, order_book_id list。
中国市场的order_book_id通常类似'000001.XSHE'。需要注意,国内股票、ETF、指数合约代码分别应当以'.XSHG'或'.XSHE'结尾,前者代表上证,后者代表深证。
比如查询平安银行这个股票合约,则键入'000001.XSHE',前面的数字部分为交易所内这个股票的合约代码,后半部分为对应的交易所代码。
期货则无此要求
marketstr默认是中国市场('cn'),目前仅支持中国市场
返回

一个instrument对象,或一个instrument list。

目前系统并不支持跨国家市场的同时调用。传入 order_book_id list必须属于同一国家市场,不能混合着中美两个国家市场的order_book_id。

字段类型说明
order_book_idstr证券代码,证券的独特的标识符。应以'.XSHG'或'.XSHE'结尾,前者代表上证,后者代表深证
symbolstr证券的简称,例如'平安银行'
abbrev_symbolstr证券的名称缩写,在中国A股就是股票的拼音缩写。例如:'PAYH'就是平安银行股票的证券名缩写
round_lotint一手对应多少股,中国A股一手是100股
sector_codestr板块缩写代码,全球通用标准定义
sector_code_namestr以当地语言为标准的板块代码名
shenwan_industry_codestr申万的行业分类代码
shenwan_industry_namestr申万的行业分类命名
industry_codestr国民经济行业分类代码,具体可参考下方“Industry列表”
industry_namestr国民经济行业分类名称
listed_datestr该证券上市日期
de_listed_datestr退市日期
typestr合约类型,目前支持的类型有: 'CS', 'INDX', 'LOF', 'ETF', 'Future'
concept_namesstr概念股分类,例如:'铁路基建','基金重仓'等
underlying_order_book_idstr追踪基准的合约代码。目前仅限'ETF','LOF'
underlying_namestr追踪基准的合约名称。目前仅限'ETF','LOF'
exchangestr交易所,'XSHE' - 深交所, 'XSHG' - 上交所
board_typestr板块类别,'MainBoard' - 主板,'GEM' - 创业板
statusstr合约状态。'Active' - 正常上市, 'Delisted' - 终止上市, 'TemporarySuspended' - 暂停上市, 'PreIPO' - 发行配售期间, 'FailIPO' - 发行失败
special_typestr特别处理状态。'Normal' - 正常上市, 'ST' - ST处理, 'StarST' - *ST代表该股票正在接受退市警告, 'PT' - 代表该股票连续3年收入为负,将被暂停交易, 'Other' - 其他
字段类型说明
order_book_idstr期货代码,期货的独特的标识符(郑商所期货合约数字部分进行了补齐。例如原有代码'ZC609'补齐之后变为'ZC1609')。主力连续合约UnderlyingSymbol+88,例如'IF88' ;指数连续合约命名规则为UnderlyingSymbol+99
symbolstr期货的简称,例如'沪深1005'
margin_ratefloat期货合约的最低保证金率
round_lotfloat期货全部为1.0
listed_datestr期货的上市日期。主力连续合约与指数连续合约都为'0000-00-00'
typestr合约类型,'Future'
contract_multiplierfloat合约乘数,例如沪深300股指期货的乘数为300.0
underlying_order_book_idstr合约标的代码,目前除股指期货(IH, IF, IC)之外的期货合约,这一字段全部为'null'
underlying_symbolstr合约标的名称,例如IF1005的合约标的名称为'IF'
maturity_datestr期货到期日。主力连续合约与指数连续合约都为'0000-00-00'
exchangestr交易所,'DCE' - 大连商品交易所, 'SHFE' - 上海期货交易所,'CFFEX' - 中国金融期货交易所, 'CZCE'- 郑州商品交易所
字段类型说明
order_book_idstr合约代码,50ETF 期权为数字代码,例如10000615
symbolstr合约简称
round_lotfloat最小下单手数,期权全部为1.0
listed_datestr合约上市日期
typestr合约类型,'Option' 代表期权
contract_multiplierfloat合约乘数,50ETF 期权只保存分红调整后的最新数据,变动历史请参考日线数据
underlying_order_book_idstr合约标的代码
underlying_symbolstr合约所属品种
maturity_datestr合约到期日
exchangestr交易所,'DCE' - 大连商品交易所, 'SHFE' - 上海期货交易所,'CFFEX' - 中国金融期货交易所, 'CZCE'- 郑州商品交易所
strike_pricefloat期权行权价,50ETF 期权只保存分红调整后的最新数据,变动历史请参考日线数据
option_typestr'C' 代表认购,'P'代表认沽
exercise_typestr'E' 代表欧式期权,'A' 代表美式期权

Instrument对象也支持如下方法:

days_from_listed(date=None)

默认返回合约上市距离当前日期的天数。date支持str, 如果合约首次上市交易,天数为0;如果合约尚未上市或已经退市,则天数值为-1

days_to_expire(date=None)

如果策略已经退市,则天数值为-1

范例
[In]instruments('000001.XSHE')
[Out]
Instrument(round_lot=100.0, special_type='Normal', sector_code_name='金融', board_type='MainBoard', industry_code='J66', shenwan_industry_name='银行', order_book_id='000001.XSHE', sector_code='Financials', abbrev_symbol='PAYH', industry_name='货币金融服务', exchange='XSHE', concept_names='外资背景|本月解禁|融资融券|社保重仓|券商重仓|基金重仓|保险重仓|深圳本地', listed_date='1991-04-03', de_listed_date='0000-00-00', status='Active', shenwan_industry_code='801780.INDX', symbol='平安银行', type='CS')
[In]instruments(['000001.XSHE', '000024.XSHE'])
[Out]
[Instrument(round_lot=100.0, special_type='Normal', sector_code_name='金融', board_type='MainBoard', industry_code='J66', shenwan_industry_name='银行', order_book_id='000001.XSHE', sector_code='Financials', abbrev_symbol='PAYH', industry_name='货币金融服务', exchange='XSHE', concept_names='外资背景|本月解禁|融资融券|社保重仓|券商重仓|基金重仓|保险重仓|深圳本地', listed_date='1991-04-03', de_listed_date='0000-00-00', status='Active', shenwan_industry_code='801780.INDX', symbol='平安银行', type='CS'),
 Instrument(round_lot=100.0, special_type='Other', sector_code_name='金融', board_type='MainBoard', industry_code='K70', order_book_id='000024.XSHE', sector_code='Financials', abbrev_symbol='ZSDC', industry_name='房地产业', exchange='XSHE', concept_names='null', listed_date='1993-06-07', de_listed_date='2015-12-30', status='Delisted', symbol='招商地产', type='CS')]
[In]: instruments('10000615')
[Out]
Instrument(underlying_order_book_id='510050.XSHG', maturity_date='2016-12-28', order_book_id='10000615', market_tplus=0, symbol='510050C1612A02050', strike_price=2.006, option_type='C', contract_multiplier=10220, underlying_symbol='510050.XSHG', round_lot=1, de_listed_date='2016-12-28', trading_hours='09:31-11:30,13:01-15:00', exercise_type='E', exchange='XSHG', type='Option', listed_date='2016-04-28')
[In]instruments('000001.XSHE').days_from_listed('20160801')
[Out]
9252
[In]instruments('IF1608').days_to_expire('20160801')
[Out]
18

id_convert - 交易所代码转换

id_convert(order_book_id)

将交易所和其他平台的股票代码转换成米筐的标准合约代码,目前仅支持A股、期货和期权代码转换。 例如, 支持转换类型包括 000001.SZ, 000001SZ, SZ000001 转换为 000001.XSHE

参数
参数类型说明
order_book_idsstr or str list合约代码(来自交易所或其他平台)
返回
范例
[In]id_convert('000935.SH')
[Out]
'000935.XSHG'
[In]id_convert(['000001.SZ', '000935.SH'])
[Out]
['000001.XSHE', '000935.XSHG']
[In]id_convert('AP810')
[Out]
'AP1810'
[In]id_convert('ZC001.CZCE')
[Out]
'ZC2001'
[In]id_convert('m1901-C-2500')
[Out]
'M1901C2500'
[In]id_convert('SR901C4400')
[Out]
'SR1901C4400'

get_share_transformation - 获取股票转换股票代码信息

get_share_transformation(predecessor=None, market='cn')

查询股票因代码变更或并购等情况更换了股票代码的信息

参数
参数类型说明
predecessorstr合约代码(来自交易所或其他平台), 空值返回所有变更过股票代码的股票
marketstr目前仅支持国内市场('cn')。
返回

pandas Dataframe

字段类型说明
predecessorstr历史股票代码
successorstr变更后股票代码
effective_datestr变更生效日期
share_conversion_ratiofloat股票变更比例
predecessor_delistedboolean变更后旧代码是否退市
discretionary_executionboolean是否有变更自主选择权
predecessor_delisted_datedatetime历史股票代码退市日期
eventstr股票代码变更原因
范例
[In]get_share_transformation(predecessor="000022.XSHE")
[Out]
       predecessor     successor       effective_date      share_conversion_ratio     predecessor_delisted     discretionary_execution     predecessor_delisted_date     event
0     000022.XSHE     001872.XSHE     2018-12-26                           1.0         True                        False                    2018-12-26                  code_change

get_price - 获取合约历史行情数据

get_price(order_book_ids, start_date='2013-01-04', end_date='2014-01-04', frequency='1d', fields=None, adjust_type='pre', skip_suspended =False, market='cn',expect_df=False)

获取指定合约或合约列表的历史数据(包含起止日期,日线或分钟线)。目前仅支持中国市场的股票、可转债、期货、ETF和上金所现货的行情数据,如黄金、铂金和白银产品。

参数
参数类型说明
order_book_idsstr OR str list合约代码,可传入order_book_id, order_book_id list。获取tick数据时,只支持单个order_book_id
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期,默认为'2013-01-04'。交易使用时,用户必须指定
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,默认为'2014-01-04'。交易使用时,默认为策略当前日期前一天
frequencystr历史数据的频率。 现在支持日/分钟级别的历史数据,默认为'1d'。使用者可自由选取不同频率,例如'5m'代表5分钟线。可支持期货tick级别数据获取,此时频率为'tick'
fieldsstr OR str list字段名称
adjust_typestr权息修复方案。前复权 - pre,后复权 - post,不复权 - none,回测使用 - internal 需要注意,internal数据与回测所使用数据保持一致,仅就拆分事件对价格以及成交量进行了前复权处理,并未考虑分红派息对于股价的影响。所以在分红前后,价格会出现跳跃
skip_suspendedbool是否跳过停牌数据。默认为False,不跳过,用停牌前数据进行补齐。True则为跳过停牌期。注意,当设置为True时,函数order_book_id只支持单个合约传入
marketstr默认是中国市场('cn')
expect_dfboolean默认返回原有的数据结构。如果调为真,则返回pandas dataframe
返回
字段类型说明
openfloat开盘价
closefloat收盘价
highfloat最高价
lowfloat最低价
limit_upfloat涨停价
limit_downfloat跌停价
total_turnoverfloat成交额
volumeint成交量
num_tradesint成交笔数 (仅限股票日线数据)
settlementfloat结算价 (仅限期货日线数据)
prev_settlementfloat昨日结算价(仅限期货日线数据)
open_interestfloat累计持仓量(期货专用)
trading_datepandasTimeStamp交易日期(仅限期货分钟线数据),对应期货夜盘的情况
dominant_idstr实际合约的order_book_id,对应期货888系主力连续合约的情况
strike_pricefloat行权价,仅限 50ETF 期权日线数据
contract_multiplierfloat合约乘数,仅限 50ETF 期权日线数据
字段类型说明
openfloat当日开盘价
highfloat当日最高价
lowfloat当日最低价
lastfloat最新价
prev_settlementfloat昨日结算价
volumefloat成交量
limit_upfloat涨停价
limit_downfloat跌停价
open_interestfloat累计持仓量
datetimedatetime.datetime时间戳
a1~a5float卖一至五档报盘价格
a1_v~a5_vfloat卖一至五档报盘量
b1~b5float买一至五档报盘价
b1_v~b5_vfloat买一至五档报盘量
change_ratefloat涨跌幅
trading_datepandasTimeStamp交易日期,对应期货夜盘的情况
范例
[In]get_price('000001.XSHE', start_date='2015-04-01', end_date='2015-04-12')
[Out]

    close     limit_up     high     num_trades     total_turnover     volume     low     limit_down     open
2015-04-01     10.5038     11.4054     10.6222     72105.0     2.608977e+09     236637563.0     10.2339     9.3323     10.4116
2015-04-02     10.3985     11.5568     10.6222     72424.0     2.222671e+09     202440588.0     10.2800     9.4507     10.5893
2015-04-03     10.4314     11.4383     10.4906     61025.0     2.262844e+09     206631550.0     10.2734     9.3586     10.3326
2015-04-07     11.0632     11.4778     11.1619     131387.0     4.898119e+09     426308008.0     10.6288     9.3915     10.6288
2015-04-08     11.7937     12.1688     11.8990     135077.0     5.784459e+09     485517069.0     10.9579     9.9575     11.1421
2015-04-09     11.8463     12.9717     12.5374     148293.0     5.794632e+09     456921108.0     11.6686     10.6156     11.8134
2015-04-10     13.0310     13.0310     13.0310     139375.0     6.339649e+09     480990210.0     11.7476     10.6617     11.8463
[In]get_price('000001.XSHE', start_date='2015-04-01', end_date='2015-04-03', adjust_type='none')
[Out]
open    close    high    low    total_turnover    volume    limit_up    limit_down
2015-04-01    15.82    15.96    16.14    15.55    2.608977e+09    164331641.0    17.33    14.18
2015-04-02    16.09    15.80    16.14    15.62    2.222671e+09    140583742.0    17.56    14.36
2015-04-03    15.70    15.85    15.94    15.61    2.262844e+09    143494132.0    17.38    14.22
[In]get_price('000001.XSHE', start_date='2015-04-01', end_date='2015-04-12', fields='close',frequency='1m')
[Out]
2015-04-01 09:31:00    10.5621
2015-04-01 09:32:00    10.5354
2015-04-01 09:33:00    10.5287
2015-04-01 09:34:00    10.5354
2015-04-01 09:35:00    10.5420
2015-04-01 09:36:00    10.5688
2015-04-01 09:37:00    10.5955
2015-04-01 09:38:00    10.5487
2015-04-01 09:39:00    10.5354
2015-04-01 09:40:00    10.5354
Name: close, dtype: float64
[In]get_price('000001.XSHE', start_date='2015-04-01', end_date='2015-04-12', fields='close',frequency='1m',expect_df=True)
[Out]
                                          close
order_book_id     datetime     
000001.XSHE     2015-04-01 09:31:00     10.3985
              2015-04-01 09:32:00     10.3721
              2015-04-01 09:33:00     10.3655
[In]get_price('000001.XSHE', start_date='20180321', end_date='20180321', frequency='tick')
[Out]
    trading_date    open    last    high    low    prev_close    volume    total_turnover    limit_up    limit_down    ...    a2_v    a3_v    a4_v    a5_v    b1_v    b2_v    b3_v    b4_v    b5_v    change_rate
datetime                                                                                    
2018-03-21 09:15:00    2018-03-21    11.95    11.82    0.0000    0.00    11.82    0.0    0.000000e+00    13.0    10.64    ...    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.000000
2018-03-21 09:15:09    2018-03-21    11.95    11.82    0.0000    0.00    11.82    0.0    0.000000e+00    13.0    10.64    ...    0.0    0.0    0.0    0.0    31440.0    960.0    0.0    0.0    0.0    0.000000
2018-03-21 09:15:18    2018-03-21    11.95    11.82    0.0000    0.00    11.82    0.0    0.000000e+00    13.0    10.64    ...    0.0    0.0    0.0    0.0    75280.0    820.0    0.0    0.0    0.0    0.000000
2018-03-21 09:15:27    2018-03-21    11.95    11.82    0.0000    0.00    11.82    0.0    0.000000e+00    13.0    10.64    ...    0.0    0.0    0.0    0.0    75280.0    3520.0    0.0    0.0    0.0    0.000000
2018-03-21 09:15:36    2018-03-21    11.95    11.82    0.0000    0.00    11.82    0.0    0.000000e+00    13.0    10.64    ...    0.0    0.0    0.0    0.0    183780.0    33720.0    0.0    0.0    0.0    0.000000
2018-03-21 09:15:54    2018-03-21    11.95    11.82    0.0000    0.00    11.82    0.0    0.000000e+00    13.0    10.64    ...    0.0    0.0    0.0    0.0    183780.0    34720.0    0.0    0.0    0.0    0.000000
...
[In]get_price('000001.XSHE', start_date='2015-04-01', end_date='2015-04-01', frequency='15m')
[Out]
    total_turnover    close    low    open    high    volume
index                        
2015-04-01 09:45:00    348982890.0    10.6215    10.6215    10.7300    10.7843    31848628
2015-04-01 10:00:00    234445219.0    10.5808    10.5469    10.6283    10.6350    21618354
2015-04-01 10:15:00    125882985.0    10.6757    10.5808    10.5808    10.7368    11540023
2015-04-01 10:30:00    144396901.0    10.6622    10.6215    10.6757    10.7503    13190460
2015-04-01 10:45:00    169238918.0    10.7368    10.6554    10.6622    10.7775    15409772
2015-04-01 11:00:00    131464598.0    10.7232    10.6961    10.7436    10.7503    11977847
2015-04-01 11:15:00    83455348.0    10.7368    10.7164    10.7300    10.7639    7589260
...
[In]get_price(['000024.XSHE', '000001.XSHE', '000002.XSHE'], start_date='2015-04-01', end_date='2015-04-12', fields='close')
[Out]
000024.XSHE    000001.XSHE    000002.XSHE
2015-04-01    32.1251    10.8249    12.7398
2015-04-02    31.6400    10.7164    12.6191
2015-04-03    31.6400    10.7503    12.4891
2015-04-07    31.6400    11.4015    12.7398
2015-04-08    31.6400    12.1543    12.8327
2015-04-09    31.6400    12.2086    13.5941
2015-04-10    31.6400    13.4294    13.2969
[In]get_price(['000024.XSHE', '000001.XSHE', '000002.XSHE'], start_date='2015-04-01', end_date='2015-04-12')
[Out]
<class 'rqcommons.pandas_patch.HybridDataPanel'>
Dimensions: 8 (items) x 7 (major_axis) x 3 (minor_axis)
Items axis: open to limit_down
Major_axis axis: 2015-04-01 00:00:00 to 2015-04-10 00:00:00
Minor_axis axis: 000024.XSHE to 000002.XSHE
[In]get_price('A1601', start_date='2015-04-01', end_date='2015-04-12')
[Out]
               open     close      high      low     total_turnover  volume    settlement    prev_settlement  open_interest      limit_up    limit_down
2015-04-01    4188.0    4210.0    4231.0    4188.0    168002700.0              3988.0      4212           4204.0            42406.0                4372.0       4036.0
2015-04-02    4212.0    4192.0    4228.0    4192.0    191554400.0              4550.0      4209           4212.0            44986.0                4380.0       4044.0
2015-04-03    4191.0    4157.0    4191.0    4149.0    336611000.0              8092.0      4159           4209.0            47632.0                4377.0       4041.0
2015-04-07    4155.0    4122.0    4164.0    4121.0    213253200.0              5150.0      4140           4159.0            50678.0                4325.0       3993.0
2015-04-08    4102.0    4103.0    4123.0    4082.0    231593500.0              5646.0      4101           4140.0            50758.0                4305.0       3975.0
2015-04-09    4098.0    4069.0    4106.0    4062.0    217864900.0              5344.0      4076           4101.0            52028.0                4265.0       3937.0
2015-04-10    4068.0    4069.0    4105.0    4062.0    105630900.0              2592.0      4075           4076.0            52142.0                4239.0       3913.0
[In]get_price('IF1608', '20160801', '20160801', 'tick').head()
[Out]
trading_date    open    last    high     low  \
datetime                                                               
2016-08-01 09:29:00.000   2016-08-01  3174.0  3174.0  3174.0  3174.0   
2016-08-01 09:30:00.000   2016-08-01  3174.0  3174.0  3180.8  3174.0   
2016-08-01 09:30:00.500   2016-08-01  3174.0  3176.8  3180.8  3174.0   
2016-08-01 09:30:01.000   2016-08-01  3174.0  3176.6  3180.8  3174.0   
2016-08-01 09:30:01.500   2016-08-01  3174.0  3178.0  3180.8  3174.0   

                         prev_settlement  prev_close  volume  open_interest  \
datetime                                                                      
2016-08-01 09:29:00.000           3184.6      3181.8    61.0        31847.0   
2016-08-01 09:30:00.000           3184.6      3181.8    69.0        31843.0   
2016-08-01 09:30:00.500           3184.6      3181.8    73.0        31840.0   
2016-08-01 09:30:01.000           3184.6      3181.8    97.0        31839.0   
2016-08-01 09:30:01.500           3184.6      3181.8   106.0        31836.0   

                         total_turnover     ...       a2_v  a3_v  a4_v  a5_v  \
datetime                                    ...                                
2016-08-01 09:29:00.000      58084200.0     ...        0.0   0.0   0.0   0.0   
2016-08-01 09:30:00.000      65709540.0     ...        0.0   0.0   0.0   0.0   
2016-08-01 09:30:00.500      69523920.0     ...        0.0   0.0   0.0   0.0   
2016-08-01 09:30:01.000      92391300.0     ...        0.0   0.0   0.0   0.0   
2016-08-01 09:30:01.500     100971420.0     ...        0.0   0.0   0.0   0.0   

                         b1_v  b2_v  b3_v  b4_v  b5_v  change_rate  
datetime                                                            
2016-08-01 09:29:00.000   1.0   0.0   0.0   0.0   0.0    -0.003329  
2016-08-01 09:30:00.000   1.0   0.0   0.0   0.0   0.0    -0.003329  
2016-08-01 09:30:00.500   1.0   0.0   0.0   0.0   0.0    -0.002449  
2016-08-01 09:30:01.000   2.0   0.0   0.0   0.0   0.0    -0.002512  
2016-08-01 09:30:01.500   1.0   0.0   0.0   0.0   0.0    -0.002072 
[In]get_price('MAUTD.SGEX',start_date=20180826,end_date=20180831,adjust_type='none')
[Out]
             close     high     low     open     price_weighted     settlement_direction     settlement_volume     total_turnover     volume    open_interest
2018-08-27     265.43     265.80     263.75     263.86     265.20             空支付多                  8198200.0         1.497225e+09     5645600   324030 
2018-08-28     266.41     266.50     265.54     265.59     266.06             多支付空                  5195000.0         8.666955e+08     3257400   319886 
2018-08-29     265.54     266.69     264.80     266.40     265.33             多支付空                  2218000.0         1.900730e+09     7163600   358556 
2018-08-30     265.90     265.99     265.32     265.39     265.78             多支付空                  1859400.0         1.237019e+09     4654200   385470 
2018-08-31     266.29     266.46     264.98     265.51     265.78             多支付空                  1057200.0         9.939785e+08     3739800   386958 
[In] get_price('10000615', start_date='20161125', end_date='20161130', frequency='1d')
[Out]
    total_turnover    open_interest    open    close    volume    low    strike_price    contract_multiplier    high
2016-11-25    14745563.0    2711.0    0.3653    0.3904    4037.0    0.3500    2.050    10000.0    0.3904
2016-11-28    14495982.0    2377.0    0.4055    0.4062    3518.0    0.3995    2.050    10000.0    0.4261
2016-11-29    15053302.0    2016.0    0.3997    0.4333    3501.0    0.3843    2.006    10220.0    0.4510
2016-11-30    13510805.0    1934.0    0.4322    0.4171    3121.0    0.4118    2.006    10220.0    0.4409

get_ticks - 获取日内 tick 数据(试用版)

get_ticks(order_book_id)

获取当日给定合约的 level1 快照行情,无法获取历史。

参数

返回

pandas DataFrame

字段类型说明
openfloat当日开盘价
highfloat当日最高价
lowfloat当日最低价
lastfloat最新价
prev_settlementfloat昨日结算价
volumefloat成交量
limit_upfloat涨停价
limit_downfloat跌停价
open_interestfloat累计持仓量
datetimedatetime.datetime时间戳
a1~a5float卖一至五档报盘价格
a1_v~a5_vfloat卖一至五档报盘量
b1~b5float买一至五档报盘价
b1_v~b5_vfloat买一至五档报盘量
change_ratefloat涨跌幅
trading_datepandasTimeStamp交易日期,对应期货夜盘的情况
iopvfloat场内基金实时估算净值
prev_iopvfloat场内基金前估算净值
范例
[In]
get_ticks('000001.XSHE')
[Out]
open    last    high    low    iopv    prev_iopv    limit_up    limit_down    prev_close    volume    ...    a1_v    a2_v    a3_v    a4_v    a5_v    b1_v    b2_v    b3_v    b4_v    b5_v
datetime                                                                                    
2019-02-15 09:15:00    0.00    11.25    0.00    0.00    0.0    0.0    12.38    10.13    11.25    0.0    ...    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0
2019-02-15 09:15:09    0.00    11.25    0.00    0.00    0.0    0.0    12.38    10.13    11.25    0.0    ...    85996.0    0.0    0.0    0.0    0.0    85996.0    108304.0    0.0    0.0    0.0
2019-02-15 09:15:18    0.00    11.25    0.00    0.00    0.0    0.0    12.38    10.13    11.25    0.0    ...    87296.0    0.0    0.0    0.0    0.0    87296.0    107204.0    0.0    0.0    0.0

current_minute - 获取最近的分钟线数据

current_minute(order_book_ids,skip_suspended=False,fields)

获取当日给定合约的 level1 最近合成的1分钟行情,无法获取历史。

参数
参数类型说明
order_book_idsstr or str list可输入order_book_id, order_book_id list
skip_suspendedboolean是否跳过停牌,默认不跳过
fieldslist可挑选返回的字段。默认返回所有
返回

pandas DataFrame

字段类型说明
openfloat此分钟开盘价
highfloat此分钟最高价
lowfloat此分钟最低价
closefloat此分钟收盘价
volumeinteger此分钟成交量
turnoverfloat此分钟成交额
范例
[In]
current_minute(["000001.XSHE","600000.XSHG"])
[Out]
                                        close     high     low     open         total_turnover     volume
order_book_id     datetime                         
000001.XSHE     2019-05-22 15:00:00     12.40     12.40     12.39     12.39     6502002.0     524355
600000.XSHG     2019-05-22 15:00:00     11.16     11.16     11.15     11.15     1987596.0     178100

get_price_change_rate - 获取历史涨跌幅

get_price_change_rate(id_or_symbols, start_date='20130104', end_date='20140104', expect_df=False)

获取股票或指数的历史涨跌幅(包含起止日期)。注意目前只支持股票与指数两类合约,基金、期货等目前并不支持。历史涨跌幅基于前复权价格。

参数
参数类型说明
id_or_symbolsstr or str list可输入order_book_id, order_book_id list
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期,默认为'2013-01-04'
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,默认为'2014-01-04'
expect_dfboolean默认返回原有的数据结构。如果调为真,则返回pandas dataframe
返回
范例
[In]
get_price_change_rate(['000001.XSHE', '000300.XSHG'], '20150801', '20150807')
[Out]
order_book_id    000001.XSHE    000300.XSHG
date        
2015-08-03    0.037217    0.003285
2015-08-04    0.003120    0.031056
2015-08-05    -0.020995    -0.020581
2015-08-06    -0.004766    -0.009064
2015-08-07    0.006385    0.019597

current_snapshot - 获取当前行情快照

current_snapshot(order_book_ids, market='cn')

获取某一合约当前的 LEVEL1 行情快照,支持集合竞价数据获取。

参数
参数类型说明
order_book_idstr or strlist合约代码,可传入order_book_id, order_book_id list。
marketstr默认是中国市场('cn'),目前仅支持中国市场
返回

Tick 对象 或者一个 Tick list

属性类型注释
order_book_idstring合约代码
openfloat当日开盘价
highfloat当日最高价
lowfloat当日最低价
lastfloat最新价
prev_settlementfloat昨日结算价
prev_closefloat昨日收盘价
volumefloat成交量
limit_upfloat涨停价
limit_downfloat跌停价
open_interestfloat累计持仓量
datetimedatetime.datetime时间戳
askslist卖出报盘价格,asks[0] 代表盘口卖一档报盘价
ask_volslist卖出报盘数量,ask_vols[0] 代表盘口卖一档报盘数量
bidslist买入报盘价格,bids[0] 代表盘口买一档报盘价
bid_volslist买入报盘数量,bid_vols[0] 代表盘口买一档报盘数量
范例
[In] current_snapshot('RB1805')
[Out]
Tick(ask_vols: [73, 0, 0, 0, 0], asks: [3424.0, 0.0, 0.0, 0.0, 0.0], bid_vols: [10, 0, 0, 0, 0], bids: [3423.0, 0.0, 0.0, 0.0, 0.0], datetime: 2018-03-28 15:00:00.705000, high: 3470.0, last: 3424.0, low: 3383.0, open: 3447.0, open_interest: 1637770.0, order_book_id: RB1805, prev_close: 3433.0, prev_settlement: 3413.0, total_turnover: 126310034840.0, volume: 3680998.0)
[In] current_snapshot(['000001.XSHE','600000.XSHG'])
[Out]
[Tick(ask_vols: [996929, 1086300, 685600, 500100, 325900], asks: [8.79, 8.8, 8.81, 8.82, 8.83], bid_vols: [983300, 120780, 119000, 144600, 190800], bids: [8.78, 8.77, 8.76, 8.75, 8.74], datetime: 2018-07-19 10:54:21, high: 8.81, last: 8.78, low: 8.72, open: 8.75, open_interest: None, order_book_id: 000001.XSHE, prev_close: 8.7, prev_settlement: None, total_turnover: 188550260, volume: 21507948),
 Tick(ask_vols: [84200, 410071, 340300, 739430, 255444], asks: [9.59, 9.6, 9.61, 9.62, 9.63], bid_vols: [55100, 82700, 99600, 90025, 74200], bids: [9.58, 9.57, 9.56, 9.55, 9.54], datetime: 2018-07-19 10:54:20.750000, high: 9.62, last: 9.59, low: 9.53, open: 9.6, open_interest: None, order_book_id: 600000.XSHG, prev_close: 9.51, prev_settlement: None, total_turnover: 82485219.0, volume: 8606191)]

get_trading_dates - 获取交易日列表

get_trading_dates(start_date, end_date, market='cn')

获取某个国家市场的交易日列表(起止日期加入判断)。目前仅支持中国市场。

参数
参数类型说明
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期
marketstr默认是中国市场('cn'),目前仅支持中国市场
返回

datetime.date list - 交易日期列表

范例
[In]
get_trading_dates(start_date='20160505', end_date='20160505')
[Out]
[datetime.date(2016, 5, 5)]

get_previous_trading_date - 获取历史某个交易日

get_previous_trading_date(date,n,market='cn')

默认获取指定日期的上一交易日。

参数
参数类型说明
datestr, datetime.date, datetime.datetime, pandasTimestamp指定日期
nintn代表往前第n个交易日。默认为1,即前一个交易日
marketstr默认是中国市场('cn'),目前仅支持中国市场
返回

datetime.date - 交易日期

范例
[In]
get_previous_trading_date('20160502',n=1)
[Out]
[datetime.date(2016, 4, 29)]

get_next_trading_date - 获取未来某个交易日

get_next_trading_date(date, n, market='cn')

默认获取指定日期的国内市场的下一交易日。

参数
参数类型说明
datestr, datetime.date, datetime.datetime, pandasTimestamp指定日期
nintn代表未来第n个交易日。默认为1,即下一个交易日
marketstr目前只支持中国市场 ('cn')。
返回

datetime.date - 交易日期

范例
[In]
get_next_trading_date(date='2016-05-01',n=1)
[Out]
[datetime.date(2016, 5, 3)]

get_trading_hours - 获取合约连续竞价时间段

get_trading_hours(order_book_id, date=None, expected_fmt='str', market='cn')

默认获取当前点国内市场合约字符串形式的连续竞价交易时间段。

参数
参数类型说明
order_book_idstr合约名称
datestr, datetime.date, datetime.datetime, pandasTimestamp指定日期。使用场景,部分合约的当前和历史的连续竞价交易时间段会有不同
expected_fmtstr可选str(返回string), 也支持time(返回datetime.time)和datetime(返回datetime.datetime)
marketstr目前只支持中国市场 ('cn')。
返回

可变动,由excected_fmt指定。

范例
[In]
get_trading_hours('000001.XSHE',expected_fmt='time')
[Out]
[[datetime.time(9, 31), datetime.time(11, 30)],
 [datetime.time(13, 1), datetime.time(15, 0)]]

get_yield_curve - 获取收益率曲线

get_yield_curve(start_date='2013-01-04', end_date='2014-01-04', tenor=None, market='cn')

获取某个国家市场在一段时间内收益率曲线水平(包含起止日期)。目前仅支持中国市场。

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

参数
参数类型说明
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期,默认为'2013-01-04'
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,默认为'2014-01-04'
tenorstr标准期限,'0S' - 隔夜,'1M' - 1个月,'1Y' - 1年
marketstr默认是中国市场('cn'),目前支持中国市场。
返回

pandas DataFrame - 查询时间段内无风险收益率曲线

范例
[In]
get_yield_curve(start_date='20130104', end_date='20140104')

[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
2013-01-05  0.0171  0.0243  0.0286  0.0275  0.0277  0.0281  0.0288  0.0305
2013-01-06  0.0160  0.0238  0.0285  0.0272  0.0273  0.0280  0.0287  0.0304

                3Y      4Y   ...        6Y      7Y      8Y      9Y     10Y  \
2013-01-04  0.0314  0.0318   ...    0.0342  0.0350  0.0353  0.0357  0.0361
2013-01-05  0.0309  0.0316   ...    0.0342  0.0350  0.0352  0.0356  0.0360
2013-01-06  0.0310  0.0315   ...    0.0340  0.0350  0.0352  0.0356  0.0360
...

股票


get_fundamentals - 查询财务数据

get_fundamentals(query, entry_date, interval=None, report_quarter=False, expect_df=False)

获取历史财务数据表格。目前支持中国市场超过400个指标,具体请参考 财务数据文档 。目前仅支持中国市场。我们特别为该函数进行了优化,读取内存的操作会极大地提升数据的获取速度。需要注意,在ricequant上查询基本面数据时,我们是以所有年报的发布日期(announcement date)为准,因为只有财报发布后才成为市场上公开可以获取的数据。比如某公司第三季度的财报于11月10号发布,那么如果从查询日期为10月5号,也就是早于发布日期,那么返回的只是第二季度的财报数据。

参数
参数类型说明
querySQLAlchemyQueryObjectSQLAlchemy的Query对象。其中可在'query'内填写需要查询的指标,'filter'内填写数据过滤条件。具体可参考 sqlalchemy's query documentation 学习使用更多的方便的查询语句。从数据科学家的观点来看,sqlalchemy的使用比sql更加简单和强大
entry_datestr, datetime.date, datetime.datetime, pandasTimestamp查询财务数据的基准开始日期
intervalstr查询财务数据的间隔。例如,填写'5y',则代表从entry_date开始(包括entry_date)回溯5年,返回数据时间以为间隔。'd' - 天,'w' - 周,'m' - 月, 'q' - 季,'y' - 年
report_quarterboolean是否显示报告期,默认为不显示。'Q1' - 一季报,'Q2' - 半年报,'Q3' - 三季报,'Q4' - 年报
expect_dfboolean默认返回原有的数据结构。如果调为真,则返回pandas dataframe
返回

pandas DataPanel - 财务数据查询结果。

范例

fundamentals是一个重要的对象,其中包括了股指指标表(eod_derivative_indicator),财务指标表(financial_indicator),利润表(income_statement),资产负债表(balance_sheet),现金流量表(cash_flow_statement)以及股票列表(stock_code)等内容。结合SQLAlchemy的查找方式,能够满足用户多种查找需求。

[In]
dp = get_fundamentals(query(fundamentals.eod_derivative_indicator.pe_ratio).filter(fundamentals.stockcode == '000001.XSHE'), '2016-08-01','4q' ,report_quarter = True)
[In]
dp.minor_xs('000001.XSHE')
[Out]
        report_quarter    pe_ratio
2016-08-01    2016-Q1     7.0768
2016-04-29    2016-Q1        6.7755
2016-01-29    2015-Q3        6.5492
2015-10-29    2015-Q3        7.3809
[In] 
dp = get_fundamentals(query(fundamentals.income_statement.revenue, fundamentals.income_statement.cost_of_goods_sold).filter(fundamentals.income_statement.stockcode.in_(['002478.XSHE', '000151.XSHE'])), '2015-01-10', '5y')

[Out]
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 5 (major_axis) x 2 (minor_axis)
Items axis: revenue to cost_of_goods_sold
Major_axis axis: 2015-01-09 to 2011-01-10
Minor_axis axis: 002478.XSHE to 000151.XSHE

[In]
dp['revenue']
[Out]
            002478.XSHE        000151.XSHE
2015-01-09    2.937843e+09    1.733703e+09
2014-01-10    2.926316e+09    8.839355e+08
2013-01-10    2.616532e+09    9.488980e+08
2012-01-10    2.681016e+09    6.205934e+08
2011-01-10    2.034147e+09    4.998120e+08
[In] 
df = get_fundamentals(query(fundamentals.eod_derivative_indicator).filter(fundamentals.stockcode == '000001.XSHE'), '2016-08-01', '4q' ,report_quarter = True) #如获取eod_derivative_indicator
df.minor_xs('000001.XSHE')

[Out]
     report_quarter     peg_ratio     pcf_ratio_2     a_share_market_val     pe_ratio     pe_ratio_1     market_cap     a_share_market_val_2     dividend_yield     pcf_ratio_1     ps_ratio     pcf_ratio     pb_ratio     pe_ratio_2
2016-08-01     2016q1     -0.5897     NaN     1.59341e+11     7.0593     7.2875     1.59341e+11     1.35777e+11     1.3739     3.4679     1.5268     -87.2626     0.8312     6.5454
2016-04-29     2016q1     -0.653     NaN     1.51243e+11     6.7755     6.9171     1.51243e+11     1.24769e+11     NaN     3.2917     1.468     -82.8273     0.8063     6.2127
2016-01-29     2015q3     -0.7846     NaN     1.43087e+11     6.5441     7.2259     1.43087e+11     1.18041e+11     1.3893     1.1689     1.4879     -78.3608     0.886     6.0493
2015-10-29     2015q3     -14.3091     NaN     1.61259e+11     7.3809     8.1436     1.61259e+11     1.33032e+11     1.2328     1.3173     1.7935     6.3686     1.0262     6.8176

get_financials - 查询季度财务信息

get_financials(query, quarter, interval=None, expect_df=False)

以给定一个报告期回溯的方式获取季度基础财务数据(三大表)。financials是在查询中会使用到的重要对象,功能与上述fundamentals类似。但因为get_financials为季度财务信息查询,所以financials中支持的财务表格包括利润表(income_statement),资产负债表(balance_sheet),现金流量表(cash_flow_statement),以及财务指标(financial_indicator)。除此之外,financials中还包括了股票列表(stock_code)以及公布日期(announce_date)两个指标。

参数
参数类型说明
querySQLAlchemyQueryObjectSQLAlchemy的Query对象。其中可在'query'内填写需要查询的指标,'filter'内填写数据过滤条件
quarterstr财报回溯查询的起始报告期,例如'2015q2', '2015q4'分别代表2015年半年报以及年报。默认只获取当前报告期财务信息
intervalstr查询财务数据的间隔。例如,填写'5y',则代表从报告期开始回溯5年,每年为相同报告期数据;'3q'则代表从报告期开始向前回溯3个季度
expect_dfboolean默认返回原有的数据结构。如果调为真,则返回pandas dataframe
返回

-pandas DataPanel -pandas DataFrame -pandas Series

范例
[In]
q = query(financials.income_statement.net_profit, financials.announce_date).filter(financials.stockcode.in_(['000002.XSHE']))
[In]
get_financials(q, '2016q3', '2q')
[Out]
         net_profit announce_date
2016q3  1.12903e+10      20161028
2016q2  7.09463e+09      20160822
[In]
q = query(financials.income_statement.net_profit, financials.announce_date).filter(financials.stockcode.in_(['000002.XSHE', '601988.XSHG']))
[In]
get_financials(q, '2016q3')
[Out]
        net_profit    announce_date
601988.XSHG  1.51558e+11      20161027
000002.XSHE  1.12903e+10      20161028
[In]
q = query(financials.income_statement.net_profit).filter(financials.stockcode.in_(['000002.XSHE']))
[In]
get_financials(q, '2016q3', '3y')

[Out]
2016q3    1.12903e+10
2015q3    9.53862e+09
2014q3      7.605e+09
[In]
q = query(financials.income_statement.net_profit, financials.balance_sheet.prepayment).filter(financials.stockcode.in_(['000002.XSHE', '601988.XSHG']))
[In]
get_financials(q, '2016q3', '3y')
[Out]
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 3 (major_axis) x 2 (minor_axis)
Items axis: net_profit to prepayment
Major_axis axis: 2016q3 to 2014q3
Minor_axis axis: 601988.XSHG to 000002.XSHE
[In]
q = query(financials.cash_flow_statement_TTM).filter(financials.stockcode.in_(['000002.XSHE']))  #如获取所有的TTM滚动现金流量表数据
[In]
get_financials(q, '2016q3','2q')
[Out]
     net_finance_cashflowTTM     net_invest_cashflowTTM     sale_service_render_cashTTM     net_operate_cashflowTTM     net_cashflowTTM
2016q3     1.18796e+09     -3.71679e+10     2.74212e+11     6.37149e+10     2.78431e+10
2016q2     1.12638e+10     -3.29437e+10     2.43545e+11     4.86516e+10     2.71367e+10

deprecated_fundamental_data - 查询废弃的财务报表字段

deprecated_fundamental_data(fields=None)

默认返回所有废弃的财务字段。

参数
参数类型说明
fieldsstr or list获取对应字段的数据。如果不填则全部返回。
返回

pandas DataFrame

字段类型说明
commentstr字段注释或其他备注
tablestr字段所属表格
data_pointstr废弃字段名
范例
[In]
deprecated_fundamental_data()
[Out]
     comment     table     data_point
0     折扣与折让     income_statement     sales_discount
1     存货跌价损失     income_statement     inventory_shrinkage
2     以前年度损益调整     income_statement     pnl_adjustment

get_pit_financials - 查询季度财务信息(point-in-time形式)

get_pit_financials(fields, quarter, interval=None, order_book_ids=None, if_adjusted=None, max_info_date=None, market='cn')

以给定一个报告期回溯的方式获取季度基础财务数据(三大表)和滚动基础财务数据(ttm表),即利润表(income_statement),资产负债表(balance_sheet),现金流量表(cash_flow_statement),以及财务指标(financial_indicator)。

参数
参数类型说明
fieldslist需要返回的财务字段。支持的字段仅限三大基础财报滚动财务数据中的大部分字段,具体可以参看财务数据页介绍。
quarterstr财报回溯查询的起始报告期,例如'2015q2', '2015q4'分别代表2015年半年报以及年报。默认只获取当前报告期财务信息。
intervalstr查询财务数据的间隔。例如,填写'5y',则代表从报告期开始回溯5年,每年为相同报告期数据;'3q'则代表从报告期开始向前回溯3个季度。
max_info_datestr限制返回的最新日期,在研究中使用默认为当前查询日期。
if_adjustedstr考虑获取的财务数据是否进行了调整,默认不填,返回最新数据
除去默认为空以外,如果if_adjusted=0 只给允许日期的未调整数据。1则给调整后数据
if_adjusted='ignore'则允许日期最新的数据,这一条在回测中有重要应用
if_adjusted='all'则允许日期的调整和未调整的所有记录都返回
返回

pandas DataFrame

固定字段类型说明
fieldslist需要返回的财务字段。支持的字段仅限三大基础财报滚动财务数据中的大部分字段,具体可以参看财务数据页介绍。
quarterstr财报回溯查询的起始报告期,例如'2015q2', '2015q4'分别代表2015年半年报以及年报。默认只获取当前报告期财务信息。
info_datestr限制返回的最新日期,在研究中使用默认为当前查询日期。
enterprise_typestr企业性质
is_completeinteger目前1为披露完整的报表,0为简报的披露
accounting_standardsinteger1为新会计准则(2007版之后),9为旧会计准则
if_adjustedstr是否为调整过的财报数据

注意: inf在返回的数据中意味着该公司在对应日期的报告中并没有提及此字段。NaN则表示在相应的日期该公司并没有提供此字段对应的报表。另,在返回的字段中,如果if_adjusted=0 为未调整数据。1则表示调整后数据。

范例
[In]
get_pit_financials(['operating_revenue','total_assets'],quarter='2018q2',order_book_ids='000048.XSHE')
[Out]

                              info_date     if_adjusted     accounting_standards     is_complete     enterprise_type     total_assets     operating_revenue
order_book_id     end_date                             
000048.XSHE     2018-06-30     2018-08-31     0                                  1     1               general_enterprise     4112194743.4400     1063669669.0400
              2018-06-30     2018-10-31     0                                  1     1               general_enterprise     4209492787.7000     1060486863.8900
[In]
get_pit_financials(['operating_revenue','total_assets'],quarter='2018q2',order_book_ids='000048.XSHE',if_adjusted='ignore')
[Out]
                           info_date     if_adjusted     accounting_standards     is_complete     enterprise_type     total_assets     operating_revenue
order_book_id     end_date                             
000048.XSHE     2018-06-30     2018-10-31     0                          1                     1     general_enterprise     4209492787.7000     1060486863.8900

get_factor - 获取因子

get_factor(order_book_ids, factor, start_date, end_date, universe=None, expect_df=False)

获取指定合约的基础因子数据。自定义因子计算与调取请参考因子研究有关说明。

参数
参数类型说明
order_book_idsstr OR str list合约代码,可传入order_book_id, order_book_id list
factorstr因子名称,可查询 get_all_factor_names() 得到所有有效因子字段
datestr指定日期,默认为该日的前一个交易日
start_datestr开始日期。注:如使用开始日期,则必填结束日期
end_datestr结束日期。注:若使用结束日期,则开始日期必填
universestr股票池,可选定某个指数的成分股,也可输入股票list,默认为None,全市场
expect_dfboolean默认返回原有的数据结构。如果调为真,则返回pandas dataframe
返回

pandas DataFrame

范例
[In]
get_factor(['000001.XSHE','000002.XSHE'],'debt_to_equity_ratio',start_date='20171229',end_date='20180106')
[Out]
            000001.XSHE     000002.XSHE
2017-12-29     13.3848         7.3097
2018-01-02     13.3848         7.3097
2018-01-03     13.3848         7.3097
2018-01-04     13.3848         7.3097
2018-01-05     13.3848         7.3097
Name: 2017-12-29 00:00:00, dtype: float64
[In]
# 注意,因子名前要加 WorldQuant_ 前缀
get_factor(['000001.XSHE', '600000.XSHG'],'WorldQuant_alpha010', '20190601', '20190610')

[Out]
    600000.XSHG    000001.XSHE
2019-06-03    0.162771    0.093489
2019-06-04    0.255633    0.281502
2019-06-05    0.789430    0.222253
2019-06-06    0.437743    0.415231
2019-06-10    0.935448    0.134391

current_performance - 查询财务快报数据

current_performance(order_book_id,info_date,quarter,interval,fields)

默认返回给定的order_book_id当前最近一期的快报数据。

参数
参数类型说明
order_book_idstr必填。由于快报报告日期的不规则,目前只支持单个查询,批量请考虑轮询。
info_datestryyyymmdd或者yyyy-mm-dd。如果不填(info_date和quarter都为空),则返回当前日期的最新发布的快报。如果填写,则从info_date当天或者之前最新的报告开始抓取。
quarterstrinfo_date参数优先级高于quarter。如果info_date填写了日期,则不查看quarter这个字段。 如果info_date没有填写而quarter 有填写,则财报回溯查询的起始报告期,例如'2015q2', '2015q4'分别代表2015年半年报以及年报。默认只获取当前报告期财务信息
intervalstr查询财务数据的间隔。例如,填写'5y',则代表从报告期开始回溯5年,每年为相同报告期数据;'3q'则代表从报告期开始向前回溯3个季度。不填写默认抓取一期。
fieldsstr or list抓取对应有效字段返回。默认返回所有字段。具体快报字段可参看线上财务文档。
返回

pandas DataFrame

范例
[In]
current_performance('000004.XSHE')
[Out]
      end_date     info_date     operating_revenue    gross_profit    operating_profit    total_profit    np_parent_owners    net_profit_cut    net_operate_cashflow...roe_cut_weighted_yoy    net_operate_cash_flow_per_share_yoy    net_asset_psto_opening    
0   2017-12-31     2018-04-14    1.386058e+08           NaN             8796946.37       9716431.21         8566720.65         NaN                NaN                    NaN                                NaN                               NaN

[In]
current_performance('000004.XSHE',quarter='2017q4',fields='total_profit',interval='2q')
[Out]
     end_date     info_date     total_profit
0     2017-12-31     2018-04-14     9716431.21
1     2015-12-31     2016-04-15     10808606.48
[In]
current_performance('000004.XSHE',info_date=20170331,fields='total_profit',interval='2q')
[Out]
     end_date     info_date     total_profit
0     2015-12-31     2016-04-15     10808606.48
1     2014-12-31     2015-04-16     20665807.64

performance_forecast - 查询业绩预告数据

performance_forecast(order_book_id,info_date,end_date,fields)

默认返回给定的order_book_id当前最近一期的业绩预告数据。 业绩预告主要用来调取公司对即将到来的财务季度的业绩预期的信息。有时同一个财务季度会有多条记录,分别是季度预期和累计预期(即本年至今)。

参数
参数类型说明
order_book_idstr必填。由于预告报告日期的不规则,目前只支持单个查询,批量请考虑轮询。
info_datestryyyymmdd或者yyyy-mm-dd。如果不填(info_date和end_date都为空),则返回当前日期的最新发布的业绩预告。如果填写,则从info_date当天或者之前最新的报告开始抓取。注:info_date优先级高于end_date。
end_datestryyyymmdd或者yyyy-mm-dd。对应财务预告期末日期,如'20150331'。
fieldsstr or list抓取对应有效字段返回。默认返回所有字段。具体业绩预告字段可参看线上财务文档。
返回

pandas DataFrame

范例
[In]
performance_forecast('000001.XSHE')
[Out]
    info_date     end_date     forecast_type     forecast_description     forecast_growth_rate_floor     forecast_growth_rate_ceiling     forecast_earning_floor     forecast_earning_ceiling     forecast_np_floor     forecast_np_ceiling     forecast_eps_floor     forecast_eps_ceiling     net_profit_yoy_const_forecast
0     2016-01-21     2015-12-31     预增             累计利润                 5.0                         15.0                             NaN                     NaN                         2.079206e+10         2.277225e+10             1.48                 1.62                     16.0

[In]
performance_forecast('000005.XSHE',end_date=20170331,fields=['forecast_description','forecast_earning_floor'])
[Out]

    info_date     end_date     forecast_description     forecast_earning_floor
0     2017-04-15     2017-03-31     累计利润                 NaN

sector - 获取某板块股票列表

sector(code, market='cn')

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

参数
参数类型说明
codestr OR sector_code items板块名称或板块代码。例如,能源板块可填写'Energy'、'能源'或sector_code.Energy
marketstr默认是中国市场('cn'),目前仅支持中国市场。
返回

属于该板块的股票order_book_id或order_book_id list.

范例
[In]sector('Energy')
[Out]
['300023.XSHE', '000571.XSHE', '600997.XSHG', '601798.XSHG', '603568.XSHG', .....]
[In]sector(sector_code.Energy)
[Out]
['300023.XSHE', '000571.XSHE', '600997.XSHG', '601798.XSHG', '603568.XSHG', .....]
板块分类列表

目前支持的板块分类如下,其取值参考自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

industry - 获取某行业股票列表

industry(code, market='cn')

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

参数
参数类型说明
codestr OR industry_code items行业名称或行业代码。例如,农业可填写industry_code.A01 或 'A01'
marketstr默认是中国市场('cn'),目前仅支持中国市场
返回

属于该行业的股票order_book_id或order_book_id list.

范例
[In]
industry('A01')
[Out]
['600540.XSHG', '600371.XSHG', '600359.XSHG', '600506.XSHG',...]
[In]
industry(industry_code.A01)
[Out]
['600540.XSHG', '600371.XSHG', '600359.XSHG', '600506.XSHG',...]
行业分类列表

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

行业代码行业名称
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综合

concept_list - 获取概念列表

concept_list(date=None)

获得概念列表。

参数
参数类型说明
datestr指定日期((yyyy-mm-dd)),可不填,即返回当前。
返回

概念股列表。

范例
[In]
concept_list(date=20160501)
[Out]
['网红直播', '快递']

concept - 获取某概念股票列表

concept(concept_name1, concept_name2, ...,date=None)

获得属于某个或某几个概念的股票列表。

参数
参数类型说明
concept_namesstr OR multiple str概念名称。可以从概念列表中选择一个或多个概念填写
datestr指定日期((yyyy-mm-dd)),可不填,即返回当前。注:针对回测平台,date是非法参数,因为它已经考虑到了回测点日期
返回

属于该概念的股票order_book_id或order_book_id list.

范例
[In]
concept('民营医院')
[Out]
['600105.XSHG',
 '002550.XSHE',
 '002004.XSHE',
 '002424.XSHE',
 ...]

[In]
concept('民营医院',date='2017-12-01')
[Out]
['600105.XSHG',
 '002550.XSHE',
 '002004.XSHE',
 '002424.XSHE',
 ...]

[In]
concept('民营医院', '国企改革')
[Out]
['601607.XSHG',
 '600748.XSHG',
 '600630.XSHG',
 ...]

get_industry_mapping - 获取行业分类概览

get_industry_mapping(source='sws', market='cn')

通过传入机构名,获得该机构指定的行业划分概览。

参数
参数类型说明
sourcestr分类依据。sws: 申万, citics: 中信, gildata: 聚源;默认为申万行业分类
marketstr目前仅有中国市场('cn')的行业分类
返回

DataFrame

范例
[In]
get_industry_mapping()
[Out]
     index_code     index_name     second_index_code     second_index_name     third_index_code     third_index_name
0     801010.INDX     农林牧渔              801011.INDX                    林业          850131.INDX     林业
1     801010.INDX     农林牧渔              801012.INDX                    农产品加工     850151.INDX     果蔬加工
2     801010.INDX     农林牧渔              801012.INDX                    农产品加工     850152.INDX     粮油加工
3     801010.INDX     农林牧渔              801012.INDX                    农产品加工     850154.INDX     其他农产品加工
4     801010.INDX     农林牧渔              801013.INDX                    农业综合       850161.INDX     农业综合
5     801010.INDX     农林牧渔              801014.INDX                    饲料          850141.INDX     饲料
...

get_industry - 获取某行业的股票列表

get_industry(industry, source='sws', date=None, market='cn')

通过传入行业名称、行业指数代码或者行业代号,拿到指定行业的股票列表

参数
参数类型说明
industrystr可传入行业名称、行业指数代码或者行业代号
sourcestr分类依据。sws: 申万, citics: 中信, gildata: 聚源;默认为申万行业分类
datestr查询日期,默认为当前最新日期
marketstr目前仅有中国市场('cn')的行业分类
返回

list

范例
[In]
get_industry('银行')
[Out]
['000001.XSHE',
 '002142.XSHE',
 '002807.XSHE',
 '002839.XSHE',
 '002936.XSHE',
 '600000.XSHG',
 '600015.XSHG',
 '600016.XSHG',
 '600036.XSHG',
 '600908.XSHG',
 '600919.XSHG',
 '600926.XSHG',
 '601009.XSHG',
 '601128.XSHG',
 '601166.XSHG',
 '601169.XSHG',
 '601229.XSHG',
 '601288.XSHG',
 '601328.XSHG',
 '601398.XSHG',
 '601577.XSHG',
 '601818.XSHG',
 '601838.XSHG',
 '601939.XSHG',
 '601988.XSHG',
 '601997.XSHG',
 '601998.XSHG',
 '603323.XSHG']
[In]
get_industry(industry='621020',source='citics')
[Out]
['000997.XSHE',
 '002152.XSHE',
 '002177.XSHE',
 '002268.XSHE',
 '002308.XSHE',
 '002312.XSHE',
 '002376.XSHE',
 '002383.XSHE',
 '002512.XSHE',
 '002518.XSHE',
 '002546.XSHE',
 '002635.XSHE',
 '002771.XSHE',
 '002829.XSHE',
 '002835.XSHE',
 '002906.XSHE',
 '300074.XSHE',
 '300076.XSHE',
 '300078.XSHE',
 '300098.XSHE',
 '300130.XSHE',
 '300167.XSHE',
 '300177.XSHE',
 '300270.XSHE',
 '300275.XSHE',
 '300311.XSHE',
 '300449.XSHE',
 '300455.XSHE',
 '300458.XSHE',
 '300479.XSHE',
 '300743.XSHE',
 '603106.XSHG',
 '603660.XSHG',
 '603890.XSHG']

get_instrument_industry - 获取股票的指定行业分类

get_instrument_industry(order_book_ids, source='sws', level=1, date=None, market='cn')

通过order_book_id传入,拿到某个日期的该股票指定的行业分类

参数
参数类型说明
order_book_idstr or list股票合约代码
datestr查询日期,默认为当前最新日期
sourcestr分类依据。sws: 申万, citics: 中信, gildata: 聚源;默认为申万行业分类
levelinteger行业分类级别,共三级,默认返回一级分类。参数0,1,2,3依依对应,其中0返回三级分类完整情况
返回

所属合约的对应行业分类。 pandas DataFrame

范例
[In]
get_instrument_industry('000001.XSHE')
[Out]
                 first_industry_code     first_industry_name
order_book_id         
000001.XSHE     801780.INDX              银行
[In]
get_instrument_industry(['000001.XSHE','000002.XSHE'],source='citics',level=0)
[Out]

                 first_industry_code     first_industry_name     second_industry_code     second_industry_name     third_industry_code     third_industry_name
order_book_id                         
000001.XSHE     40                                      银行          4020                       股份制与城商行                         402010         股份制银行
000002.XSHE     42                                      房地产        4210                       房地产开发管理                         421010         住宅地产

get_turnover_rate - 获取历史换手率

get_turnover_rate(order_book_id, start_date, end_date, fields=None,expect_df=False)
参数
参数类型说明
order_book_idstr or str list合约代码,可输入order_book_id, order_book_id list
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期,用户必须指定
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,用户必须指定
fieldsstr OR str list默认为所有字段。当天换手率 - today,过去一周平均换手率 - week,过去一个月平均换手率 - month,过去一年平均换手率 - year,当年平均换手率 - current_year
expect_dfboolean默认返回原有的数据结构。如果调为真,则返回pandas dataframe
返回
范例
[In]
get_turnover_rate('000001.XSHE', '20160801', '20160806')
[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  
[In]
get_turnover_rate(['000001.XSHE', '601998.XSHG'], '20160801', '20160812', 'week')

[Out]
  000001.XSHE  601998.XSHG
2016-08-01       0.4478       0.1176
2016-08-02       0.4134       0.1175
2016-08-03       0.3460       0.0972
2016-08-04       0.4938       0.0937
2016-08-05       0.5031       0.0927
2016-08-08       0.4414       0.0754
2016-08-09       0.4357       0.0746
2016-08-10       0.4377       0.0779
2016-08-11       0.3679       0.1212
2016-08-12       0.4779       0.1391

get_dividend_info - 获取股票的分红信息

get_dividend_info(order_book_id, start_date=None, end_date=None, market='cn')

获取某只股票在一段时间内的分红情况(包含起止日期)。如未指定日期,则默认所有。目前仅支持中国市场。

参数
参数类型说明
order_book_idstr or list合约代码
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期
marketstr默认是中国市场('cn'),目前仅支持中国市场
返回
字段类型说明
effective_datestr常规分红对应的有效财政季度;特殊分红则对应股权登记日
dividend_typestr是否分红及具体分红形式:
transferred share代表转增股份;bonus share代表赠送股份;cash为现金;cash and share代表现金、转增股和送股都有涉及。
ex_dividend_datestr除权除息日,该天股票的价格会因为分红而进行调整
范例
[In]
get_dividend_info('000001.XSHE')

[Out]
                 dividend_type               ex_dividend_date         order_book_id
effective_date             
1990-12-31     cash and bonus share           1991-04-03                000001.XSHE
1991-12-31     cash and bonus share           1992-03-23                000001.XSHE
1992-12-31     cash and share                 1993-05-24                000001.XSHE
1993-12-31     cash and share                 1994-07-11                000001.XSHE
1994-12-31     cash and bonus share           1995-09-25                000001.XSHE
1995-12-31     bonus and transferred share     1996-05-27                000001.XSHE
1996-12-31     cash and bonus share           1997-08-25                000001.XSHE
1997-12-31     no dividend                        None                000001.XSHE
...

get_dividend - 获取股票现金分红数据

get_dividend(order_book_id, start_date=None, end_date=None, market='cn')

获取某只股票在一段时间内的现金分红情况(包含起止日期)。如未指定日期,则默认所有。目前仅支持中国市场。

参数
参数类型说明
order_book_idstr or list合约代码
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期
marketstr默认是中国市场('cn'),目前仅支持中国市场
返回
字段类型说明
declaration_announcement_datestr分红宣布日,上市公司一般会提前一段时间公布未来的分红派息事件
book_closure_datestr股权登记日
dividend_cash_before_taxfloat税前分红
ex_dividend_datestr除权除息日,该天股票的价格会因为分红而进行调整
payable_datestr分红到帐日,这一天最终分红的现金会到账
round_lotfloat分红最小单位,例如:10代表每10股派发dividend_cash_before_tax单位的税前现金
范例
[In]
get_dividend('000001.XSHE', start_date='20130104', end_date='20140106')

[Out]
                              book_closure_date  dividend_cash_before_tax  \
declaration_announcement_date
2013-06-14                           2013-06-19                    0.9838

                              ex_dividend_date payable_date  round_lot
declaration_announcement_date
2013-06-14                          2013-06-20   2013-06-20       10.0

get_split - 获取股票拆分数据

get_split(order_book_id, start_date=None, end_date=None, market='cn')

获取某只股票在一段时间内的拆分情况(包含起止日期),如未指定日期,则默认所有。目前仅支持中国市场。

参数
参数类型说明
order_book_idstr or list合约代码
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期
marketstr默认是中国市场('cn'),目前仅支持中国市场
返回
字段类型说明
ex_dividend_datestr除权除息日,该天股票的价格会因为拆分而进行调整
book_closure_datestr股权登记日
split_coefficient_fromfloat拆分因子(拆分前)
split_coefficient_tofloat拆分因子(拆分后)
payable_datestr股票分红到帐日
例如:每10股转增2股,则split_coefficient_from = 10, split_coefficient_to = 12.
范例
[In]
get_split('000001.XSHE', start_date='20100104', end_date='20140104')

[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_ex_factor - 获取复权因子

get_ex_factor(order_book_id, start_date=None, end_date=None, market='cn')

获取复权因子。如未指定日期,则默认所有。

参数
参数类型说明
order_book_idstr or list合约代码
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期
marketstr默认是中国市场('cn'),目前仅支持中国市场
返回

pandas dataframe - 包含了复权因子的日期和对应的各项数值

字段类型说明
ex_datestr除权除息日
ex_factorfloat复权因子,考虑了分红派息与拆分的影响,为一段时间内的股价调整乘数。
举例来说,平安银行('000001.XSHE')在2016年6月15日每10股派发现金股利人民币 1.53元(含税),并以资本公积转增股本每10股转增2股。
6月15日的收盘价为10.44元,其除权除息后的价格应当为 (10.44-1.53/10) / 1.2 = 8.5725.本期复权因子为10.44 / 8.5725 = 1.217847
ex_cum_factorfloat累计复权因子,X日所在期复权因子 = 当前最新累计复权因子 / 截至X日最新累计复权因子。
举例来说,2016年5月05日所在期复权因子 = 122.424143 / 100.525060 = 1.217847
ex_end_datestr复权因子所在期的截止日期
范例
[In]
get_ex_factor('000001.XSHE', start_date='2013-01-04', end_date='2017-01-04')

[Out]
            order_book_id  ex_factor  ex_cum_factor announcement_date  \
ex_date
2013-06-20   000001.XSHE   1.614263      68.255824        2013-06-19
2014-06-12   000001.XSHE   1.216523      83.034780        2014-06-11
2015-04-13   000001.XSHE   1.210638     100.525060        2015-04-10
2016-06-16   000001.XSHE   1.217847     122.424143        2016-06-15

           ex_end_date
ex_date
2013-06-20  2014-06-11
2014-06-12  2015-04-12
2015-04-13  2016-06-15
2016-06-16         NaT

is_suspended - 判断股票是否全天停牌

is_suspended(order_book_id, start_date=None, end_date=None, market='cn')

判断某只股票在一段时间(包含起止日期)是否全天停牌。

参数
参数类型说明
order_book_idstr合约代码。传入单只股票的order_book_id
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期,默认为股票上市日期
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,默认为当前日期,如果股票已经退市,则为退市日期
marketstr默认是中国市场('cn'),目前仅支持中国市场
返回

pandas DataFrame 如果在查询期间内股票尚未上市,或已经退市,则函数返回None;如果开始日期早于股票上市日期,则以股票上市日期作为开始日期。

范例
[In]
is_suspended('武钢股份', start_date='20160624')
[Out]
               武钢股份
2016-06-24       False
2016-06-27        True
2016-06-28        True
2016-06-29        True
2016-06-30        True
2016-07-01        True
2016-07-04        True
2016-07-05        True
2016-07-06        True
...
2016-08-30        True
2016-08-31        True

is_st_stock - 查询股票是否为ST股

is_st_stock(order_book_id, start_date, end_date)

判断一只或多只股票在一段时间(包含起止日期)内是否为ST股。

ST股包括如下:

参数
参数类型说明
order_book_idstr or str list合约代码,可传入order_book_id, order_book_id list
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期
返回

pandas DataFrame - 查询时间段内是否为ST股的查询结果

范例
[In]
is_st_stock("002336.XSHE", "20160411", "20160510")
[Out]
            002336.XSHE
2016-04-11    False
2016-04-12    False
...
2016-05-09    True
2016-05-10    True

[In]
is_st_stock(["002336.XSHE", "000001.XSHE"], "2016-04-11", "2016-05-10")
[Out]
      002336.XSHE    000001.XSHE
2016-04-11    False    False
2016-04-12    False    False
...
2016-05-09    True    False
2016-05-10    True    False

get_securities_margin - 获取融资融券信息

get_securities_margin(id_or_symbols, start_date=None, end_date=None, fields=None,expect_df=False)

获取融资融券信息。包括深证融资融券数据以及上证融资融券数据情况。既包括个股数据,也包括市场整体数据。需要注意,融资融券的开始日期为2010年3月31日;根据交易所的原始数据,上交所个股跟整个市场的输出信息列表不一致,个股没有融券余量金额跟融资融券余额两项, 而深交所个股跟整个市场的输出信息列表一致。

参数
参数类型说明
id_or_symbolsstr or str list可输入order_book_id, order_book_id list。另外,输入'XSHG'或'sh'代表整个上证整体情况;'XSHE'或'sz'代表深证整体情况
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期,默认为当前最近日期前一个月
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,默认为当前有数据的最新日期
fieldsstr OR str list默认为所有字段。见下方列表
expect_dfboolean默认返回原有的数据结构。如果调为真,则返回pandas dataframe
fields字段名
margin_balance融资余额
buy_on_margin_value融资买入额
margin_repayment融资偿还额
short_balance融券余额
short_balance_quantity融券余量
short_sell_quantity融券卖出量
short_repayment_quantity融券偿还量
total_balance融资融券余额
返回
范例
[In]
get_securities_margin('510050.XSHG', start_date='20160801', end_date='20160805')
[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
[In]
get_securities_margin(['XSHE', 'XSHG'],start_date='20160801', end_date='20160805', 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
[In]
get_securities_margin(['XSHG', '601988.XSHG', '510050.XSHG'],start_date='20160801', end_date='20160805')
[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
[In]
get_securities_margin('510050.XSHG', start_date='20160801', end_date='20160805', 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

get_shares - 获取流通股信息

get_shares(id_or_symbols, start_date='2013-01-04', end_date='2014-01-04', fields=None, market='cn',expect_df=False)

获取某只股票在一段时间内的流通情况(包含起止日期)。

参数
参数类型说明
id_or_symbolsstr可输入order_book_id或symbol
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期,默认为'2013-01-04'
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,默认为'2014-01-04'
fieldsstr OR str list默认为所有字段。见下方列表
marketstr默认是中国市场('cn'),目前仅支持中国市场
expect_dfboolean默认返回原有的数据结构。如果调为真,则返回pandas dataframe
返回
fields字段名
total总股本
circulation_a流通A股
management_circulation已过禁售期的高管持有的股份
non_circulation_a非流通A股合计
total_aA股总股本
范例
[In]
get_shares('000001.XSHE', start_date='20160801', end_date='20160806')
[Out]
            circulation_a  management_circulation  non_circulation_a  \
2016-08-01   1.463118e+10                     NaN       2.539231e+09   
2016-08-02   1.463118e+10                     NaN       2.539231e+09   
2016-08-03   1.463118e+10                     NaN       2.539231e+09   
2016-08-04   1.463118e+10                     NaN       2.539231e+09   
2016-08-05   1.463118e+10                     NaN       2.539231e+09   

                 total_a         total  
2016-08-01  1.717041e+10  1.717041e+10  
2016-08-02  1.717041e+10  1.717041e+10  
2016-08-03  1.717041e+10  1.717041e+10  
2016-08-04  1.717041e+10  1.717041e+10  
2016-08-05  1.717041e+10  1.717041e+10   
[In]
get_shares('000001.XSHE', start_date='20160801', end_date='20160806', fields='total')
[Out]
2016-08-01    1.717041e+10
2016-08-02    1.717041e+10
2016-08-03    1.717041e+10
2016-08-04    1.717041e+10
2016-08-05    1.717041e+10
Name: total, dtype: float64

get_stock_connect - 获取沪深股通持股信息

get_stock_connect(id_or_symbols, start_date='2017-03-17', end_date='2018-03-16', fields=None,expect_df=False)

获取A股股票在一段时间内的在香港上市交易的持股情况。

参数
参数类型说明
id_or_symbolsstr可输入order_book_id或symbol。另,
1、输入‘shanghai_connect'可返回沪股通的全部股票数据。
2、输入'shenzhen_connect'可返回深股通的全部股票数据。
3、输入'all_connect'可返回沪股通、深股通的全部股票数据。
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期,默认为'2017-03-17'
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,默认为'2018-03-16'
fieldsstr OR str list默认为所有字段。见下方列表
expect_dfboolean默认返回原有的数据结构。如果调为真,则返回pandas dataframe
返回
fields字段名
shares_holding持股量
holding_ratio持股比例
范例
[In]
get_stock_connect('000049.XSHE',start_date='2018-05-08',end_date='2018-05-10')
[Out]

        holding_ratio     shares_holding
2018-05-08     0.09     194295.0
2018-05-09     0.07     144228.0
2018-05-10     0.06     136628.0
[In]
df = get_stock_connect('shanghai_connect',start_date='20180508',end_date='20180510')
df.major_xs('2018-05-08')
[Out]

             holding_ratio     shares_holding
600000.XSHG     0.55     156945807.0
600004.XSHG     12.55     259814825.0
600006.XSHG     0.03     774403.0
600007.XSHG     1.04     10565368.0
600008.XSHG     1.00     48246803.0
600009.XSHG     32.11     351203760.0
600010.XSHG     0.26     57902557.0
600011.XSHG     0.16     17702630.0
...

get_main_shareholder - 获取主要A股股东信息

get_main_shareholder(order_book_id, start_date=None, end_date=None, is_total=False, market='cn')

获取A股主要股东构成及持流通A股数量比例、持股性质等信息,通常为前十位。

参数
参数类型说明
order_book_idstr给出单个order_book_id。
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期,默认为去年当日。
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,默认为查询当日。
is_totalbool默认为False, 即基于持有A股流通股。若为True则基于所有发行出的A股。
marketstr市场,默认'cn'为中国大陆市场。
返回
fields字段名
shares_holding持股量
holding_ratio持股比例
info_date公告发布日
end_date截止日期
rank排名
shareholder_name股东名称
shareholder_attr股东属性
shareholder_kind股东性质
shareholder_type股东类别
hold_percent_total占股比例(%) 当fields=‘total’时,持股数(股)/总股本*100。
hold_percent_float占流通A股比例(%),无限售流通A股/已上市流通A股(不含高管股)*100
share_pledge股权质押涉及股数(股)
share_freeze股权冻结涉及股数(股)
范例
[In]
get_main_shareholder('000001.XSHE', start_date='20180301', end_date='20180315', is_total=False)
[Out]

            end_date     rank     shareholder_name                             shareholder_attr     shareholder_kind     shareholder_type     hold_percent_total     hold_percent_float     share_pledge  share_freeze
info_date                                         
2018-03-15     2017-12-31     1         中国平安保险(集团)股份有限公司-集团本级-自有资金          企业              金融机构—保险公司          None                48.095791            48.813413                  NaN      NaN
2018-03-15     2017-12-31     2         中国平安人寿保险股份有限公司-自有资金                    企业             金融机构—保险公司          None               6.112042               6.203238                     NaN     NaN
2018-03-15     2017-12-31     3         中国证券金融股份有限公司                              企业               金融机构—证券、信托公司     None              2.854768              2.897363                    NaN        NaN
2018-03-15     2017-12-31     4         中国平安人寿保险股份有限公司-传统-普通保险产品              证券品种           保险投资组合               None                 2.269811             2.303679                  NaN     NaN
2018-03-15     2017-12-31     5         香港中央结算有限公司                                  企业              外资独资企业              None                2.124405            2.156103                  NaN     NaN
2018-03-15     2017-12-31     6         中央汇金资产管理有限责任公司                           企业                资产管理公司            None             1.259219              1.278007                   NaN     NaN
2018-03-15     2017-12-31     7         深圳中电投资股份有限公司                              企业               投资、咨询公司            None             1.083561              1.099729                   NaN       NaN
2018-03-15     2017-12-31     8         河南鸿宝集团有限公司                                  企业               一般企业                  None               0.459273                0.466125                 NaN     NaN
2018-03-15     2017-12-31     9         南方基金-农业银行-南方中证金融资产管理计划                 证券品种           基金专户理财               None                 0.336683             0.341707                 NaN      NaN
2018-03-15     2017-12-31     10         新华人寿保险股份有限公司-分红-个人分红-018L-FH002深     证券品种           保险投资组合               None                  0.311545             0.316193                 NaN      NaN

get_private_placement - 获取A股股票定向增发信息

get_private_placement(order_book_ids, start_date=None, end_date=None, progress='complete', market='cn')

获取A股股票定向增发的信息。

参数
参数类型说明
order_book_idstr给出单个order_book_id。
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期(公告日期)
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期(公告日期)
prgoressstr是否已完成定增,默认为complete。可选参数["complete", "incomplete", "all"]
marketstr市场,默认'cn'为中国大陆市场。
返回
fields字段名
initial_info_date公告发布日
csrc_approval_date证监会批准日
issue_price定增发行价
issue_type发行方式
issued_shares发行股数
listed_date上市日期
progress目前进度
范例
[In]
get_private_placement("000001.XSHE")
[Out]
                                        csrc_approval_date     issue_price     issue_type     issued_shares     listed_date     progress
order_book_id     initial_info_date                         
000001.XSHE        2009-06-13             2010-06-29                   18.26     非公开发行      3.795800e+08     2010-09-17     实施完成
                 2010-09-02             2011-06-29                   17.75     非公开发行      1.638337e+09     2011-08-05     实施完成
                 2013-09-09             2013-12-31                   11.17     非公开发行      1.323385e+09     2014-01-09     实施完成
                 2014-07-16             2015-04-25                   16.70     非公开发行      5.988024e+08     2015-05-21     实施完成

金融、商品期货


连续合约

需要注意,由于期货合约存续的特殊性,针对每一品种的期货合约,系统中都增加了 主力连续合约以及指数连续合约两个人工合成的合约来满足使用需求。

日内不会进行主力合约的切换。主力连续合约是由该品种期货不同时期主力合约接续而成,代码以88或888结尾结尾,例如 IF88 或 IF888。前者为合约量价数据的简单拼接,未做平滑处理; 后者对价格进行了”平滑”处理,处理规则如下:以主力合约切换前一天(T-1日)新、旧两个主力合约收盘价做差, 之后将 T-1 日及以前的主力连续合约的所有价格水平整体加上或减去该价差,以”整体抬升”或”整体下降”主力合约的价格水平,成交量、持仓量均不作调整,成交额统一设置为0.


futures.get_dominant - 获取主力合约列表

futures.get_dominant(underlying_symbol, start_date=None, end_date=None,rule=0)

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

参数
参数类型说明
underlying_symbolstr期货合约品种,例如沪深300股指期货为'IF'
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期,默认为期货品种最早上市日期后一交易日
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,默认为当前日期
ruleint默认是rule=0,采用最大昨仓为当日主力合约,每个合约只能做一次主力合约,不会重复出现。针对股指期货,只在当月和次月选择主力合约。
当rule=1时,主力合约的选取只考虑最大昨仓这个条件。
返回

Pandas.Series - 主力合约代码列表

范例
[In]
futures.get_dominant('IF', '20160801')
[Out]
date
20160801    IF1608
[In]
futures.get_dominant('IC', end_date='20150501')
[Out]
date
20150417    IC1505
20150420    IC1505
20150421    IC1505
20150422    IC1505
20150423    IC1505
20150424    IC1505
20150427    IC1505
20150428    IC1505
20150429    IC1505
20150430    IC1505
20150501    IC1505

futures.get_contracts - 获取期货可交易合约列表

futures.get_contracts(underlying_symbol, date=None)

获取某一期货品种在策略当前日期的可交易合约order_book_id列表。按照到期月份,下标从小到大排列,返回列表中第一个合约对应的就是该品种的近月合约。

参数
参数类型说明
underlying_symbolstr期货合约品种,例如沪深300股指期货为'IF'
datestr, datetime.date, datetime.datetime, pandasTimestamp查询日期,默认为当日
返回

str list - 可交易的order_book_id list

范例
[In]
futures.get_contracts('IF', '20160801')
[Out]
['IF1612', 'IF1701', 'IF1703', 'IF1706']

futures.get_member_rank - 获取期货合约持仓等排名情况

futures.get_member_rank(order_book_id, trading_date, rank_by)

获取期货某合约的会员排名数据

参数
参数类型说明
objstr可以是期货的具体合约或者品种
trading_datestr查询日期,默认为当日
rank_by排名依据,默认为volume即根据持仓量统计排名,另外可选'long'和'short',分别对应持买仓量统计和持卖仓量统计。
返回

-pandas DataFrame

字段类型说明
commodity_idstr期货品种代码或期货合约代码
member_namestr期货商名称
rankint排名
volumeint交易量或持仓量视乎参数rank_by的设定
volume_changeint交易量或持仓量较之前的变动
范例
[In]
futures.get_member_rank('CU',trading_date=20180910,rank_by='short')
[Out]
        commodity_id     member_name     rank     volume     volume_change
trading_date                     
2018-09-10     CU             五矿经易            1     29160      302
2018-09-10     CU             中信期货            2     27136      -535
2018-09-10     CU             永安期货            3     16521      753
2018-09-10     CU             海通期货            4     15994      -161
2018-09-10     CU             中粮期货            5     14572      -614
2018-09-10     CU             国泰君安            6     8852        245
2018-09-10     CU             金瑞期货            7     8668        -703
2018-09-10     CU             迈科期货            8     8320        94
2018-09-10     CU             建信期货            9     6688        -57
2018-09-10     CU             广发期货           10     5847        -34
2018-09-10     CU             华安期货           11     5451        -289
2018-09-10     CU             格林大华           12     5330        -217
2018-09-10     CU             中银国际           13     5190        487
2018-09-10     CU             铜冠金源           14     4896        139
2018-09-10     CU             兴证期货           15     4636        -459
2018-09-10     CU             方正中期           16     4587        -92
2018-09-10     CU             国投安信           17     4567        79
2018-09-10     CU             东方财富           18     4551        127
2018-09-10     CU             新湖期货           19     4269        -60
2018-09-10     CU             国贸期货           20     3396        -522

futures.get_warehouse_stocks - 获取期货仓单数据

futures.get_warehouse_stocks(underlying_symbols, start_date=None, end_date=None, market='cn')

获取期货某品种的注册仓单数据

参数
参数类型说明
order_book_idstr期货合约品种
start_datestr开始日期,用户必须指定
end_datestr结束日期,默认为策略当天日期的前一天
marketstr目前只支持中国市场 ('cn')
返回

-pandas DataFrame

字段类型说明
on_warrantint注册仓单量
exchangestr期货品种对应交易所
范例
范例
[In]
futures.get_warehouse_stocks('CU',start_date=20181201,end_date=20181205)
[Out]
                            on_warrant     exchange
date     underlying_symbol         
20181203     CU                      51587     SHFE
20181204     CU                      51738     SHFE
20181205     CU                      52966     SHFE

金融、商品期权


options.get_contracts - 筛选期权合约

options.get_contracts(underlying, option_type=None, maturity=None, strike=None, trading_date=None)
参数
参数类型说明
underlyingstr期权标的。可以填写 'M' 代表期货品种的字母;也可填写'M1901' 这种具体合约代码。必须填写,只支持单一品种或合约代码输入
option_typestr'C' 代表认购期权;'P' 代表认沽期权合约。默认返回全部类型
maturitystr OR int到期月份。例如1811代表期权18年11月到期(而不是标的期货的到期时间)。默认返回全部到期月份
strikefloat行权价。查询时向左靠档匹配(例如,当前最高行权价是1000,则输入大于1000的行权价都会向左靠档至1000)。默认返回全部行权价
trading_datestr OR int查询日期。默认返回全部数据
返回

返回符合条件的期权 order_book_id list;如果无符合条件期权则返回[] 空 list

范例

指数


index_indicator - 获取指数每日估值指标

index_indicator(order_book_id,start_date,end_date,fields)

获取指数每日估值指标。目前仅提供上证50、沪深300、中证500和中证800的市盈率和市净率。 计算逻辑:

参数
参数类型说明
order_book_idstr or str list可输入order_book_id, order_book_id list。
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期,默认2016-01-04
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,默认2016-12-31
fieldsstr OR str list对应估值字段。默认为所有字段。
返回
范例
[In]
index_indicator(['000016.XSHG','000300.XSHG'],start_date=20170402,end_date=20170415)
[Out]
                                pb     pe_ttm
order_book_id     trade_date         
000016.XSHG     2017-04-05     1.0947     10.8063
000300.XSHG     2017-04-05     1.3808     13.7387
000016.XSHG     2017-04-06     1.0964     10.8229
000300.XSHG     2017-04-06     1.3837     13.7673
000016.XSHG     2017-04-07     1.0996     10.8572
000300.XSHG     2017-04-07     1.3876     13.8084
000016.XSHG     2017-04-10     1.0953     10.8152
000300.XSHG     2017-04-10     1.3831     13.7668
000016.XSHG     2017-04-11     1.0964     10.8254
000300.XSHG     2017-04-11     1.3881     13.8163
000016.XSHG     2017-04-12     1.0963     10.8310
000300.XSHG     2017-04-12     1.3863     13.7959
000016.XSHG     2017-04-13     1.0920     10.7911
000300.XSHG     2017-04-13     1.3856     13.7823
000016.XSHG     2017-04-14     1.0858     10.7476
000300.XSHG     2017-04-14     1.3751     13.6832

index_components - 获取指数成分股列表

index_components(order_book_id, date=None, market='cn')

获取某一指数的股票构成列表,也支持指数的历史构成查询。

参数
参数类型说明
order_book_idstr指数代码,传入order_book_id,例如'000001.XSHG'。
datestr, datetime.date, datetime.datetime, pandas Timestamp查询日期,默认为最新记录日期
marketstr默认是中国市场('cn'),目前仅支持中国市场
返回

构成该指数股票的order_book_id list

范例
[In]
index_components('000001.XSHG')
[Out]
['600000.XSHG',
 '600004.XSHG',
 ...]

[In]
index_components('000001.XSHG', date='2015-01-01')
[Out]
['600613.XSHG',
 '600239.XSHG',
 ...]

index_weights - 获取指数历史权重

index_weights(order_book_id, date=None)

获取某一指数的历史构成以及权重。注意,该数据为月度更新。

参数
参数类型说明
order_book_idstr指数代码,可传入order_book_id,例如'000001.XSHG'或'沪深300'。目前所支持的指数列表可以参考指数数据表
datestr, datetime.date, datetime.datetime, pandas Timestamp查询日期,默认为最新记录日期
返回

pandas Series,每只股票在指数中的构成权重。

范例
[In]
index_weights('000016.XSHG', '20160801')
[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

基金


fund.instruments - 获取基金基础信息

fund.instruments(order_book_ids)
参数
参数类型注释
order_book_idstr OR str list基金代码
返回

基金instrument对象或instrument list

字段类型说明
order_book_idstr合约代码
transition_timeinteger合约代码复用次数,代码从来都属于唯一个基金,则transition_time为零
symbolstr证券的简称
issuerstr基金公司
fund_managerstr基金经理
establishement_datestr基金成立日
listed_datestr基金上市日
stop_datestr基金终止日
de_listed_datestr基金退市日
benchmarkstr业绩比较基准
latest_sizefloat最新资产规模(单位:元)
fund_typestr基金类型。债券型 - Bond, 股票型 - Stock, 混合型 - Hybrid, 货币型 - Money, 短期理财型 - ShortBond, 股票指数 - StockIndex, 债券指数 - BondIndex, 联接基金 - Related, QDII - QDII
范例
In [10]: fund.instruments('050116')
Out[10]: Instrument(transition_time=0, symbol='博时宏观C', issuer='博时基金管理有限公司', exchange='', establishment_date='2010-07-27', benchmark='100.0%×中证全债指数', round_lot=1.0, order_book_id='050116', listed_date='2010-07-27', accrued_daily=False, latest_size=57002305.04, fund_type='Bond', stop_date='0000-00-00', fund_manager='王申 王衍胜 ', de_listed_date='0000-00-00', type='PublicFund')
In [10]: fund.instruments('000014_CH0')
Out[10]: Instrument(benchmark='100.0%×一年定期存款收益率(税后)加1.2%', de_listed_date='2014-03-19', latest_size=4016611053.94, transition_time=0, round_lot=1.0, type='PublicFund', accrued_daily=False, fund_type='Bond', symbol='华夏一年债', issuer='华夏基金管理有限公司', exchange='', order_book_id='000014', listed_date='2013-03-19', stop_date='2014-03-19', establishment_date='2013-03-19')

fund.all_instruments - 获取所有公募基金信息

fund.all_instruments(date=None)
参数
参数类型注释
datestr, datetime.date, datetime.datetime, pandasTimestamp查询日期,默认为当前日期上一交易日。过滤掉在该日期尚未上市交易的基金合约
返回

pandas DataFrame

字段类型说明
order_book_idstr合约代码
symbolstr证券的简称
issuerstr基金公司
fund_managerstr基金经理
listed_datestr发行日期
benchmarkstr业绩比较基准
latest_sizefloat最新资产规模(单位:元)
fund_typestr基金类型。债券型 - Bond, 股票型 - Stock, 混合型 - Hybrid, 货币型 - Money, 短期理财型 - ShortBond, 股票指数 - StockIndex, 债券指数 - BondIndex, 联接基金 - Related, QDII - QDII
范例
In [20]: fund.all_instruments().head()
Out[20]: 
  order_book_id        listed_date     issuer         symbol   fund_type  \
0        233001    2004-03-26  摩根士丹利华鑫基金       大摩基础行业混合      Hybrid   
1        165519    2013-08-16       信诚基金  信诚中证800医药指数分级  StockIndex   
2        004234    2017-01-19       中欧基金      中欧数据挖掘混合C      Hybrid   
3        370026    2013-02-04     上投摩根基金      上投轮动添利债券C        Bond   
4        519320    2016-05-04     浦银安盛基金   浦银安盛幸福聚利定开债A       Other   

  fund_manager   latest_size                          benchmark  
0          孙海波  1.318854e+08          沪深300指数×55%+ 中证综合债券指数×45%  
1           杨旭  2.371657e+08  95%×中证800制药与生物科技指数收益率+5%×金融同业存款利率  
2           曲径           NaN       沪深300指数收益率×60%+中债综合指数收益率×40%  
3           唐瑭  8.183768e+06                           中证综合债券指数  
4          刘大巍  3.018930e+09                 一年期定期存款利率(税后)+1.4%  

fund.get_nav - 获取基金净值信息

fund.get_nav(order_book_id, start_date=None, end_date=None, fields=None,expect_df=False)
参数
参数类型注释
order_book_idstr基金代码
start_datestr, datetime.date, datetime.datetime, pandasTimestamp查询的开始日期,默认为所有净值数据
end_datestr, datetime.date, datetime.datetime, pandasTimestamp查询的结束日期
fieldsstr OR str list查询字段,有效值见下方
expect_dfboolean默认返回原有的数据结构。如果调为真,则返回pandas dataframe
返回

pandas DataFrame

字段类型说明
unit_net_valuefloat单位净值
acc_net_valuefloat累计单位净值
adjusted_net_valuefloat复权净值
change_ratefloat涨跌幅
daily_profitfloat每万元收益(日结型货币基金专用)
weekly_yieldfloat7日年化收益率(日结型货币基金专用)
subscribe_statusstr订阅状态。开放 - Open, 暂停 - Suspended, 限制大额申赎 - Limited, 封闭期 - Close
redeem_statusstr赎回状态。开放 - Open, 暂停 - Suspended, 限制大额申赎 - Limited, 封闭期 - Close
范例
In [7]: fund.get_nav('050116', '20170401', '20170408')
Out[7]: 
            acc_net_value  unit_net_value subscribe_status redeem_status  \
2017-04-05          1.192           1.149          Limited          Open   
2017-04-06          1.192           1.149          Limited          Open   
2017-04-07          1.191           1.148          Limited          Open   

            change_rate  adjusted_net_value  
2017-04-05     0.001744            1.191662  
2017-04-06     0.000000            1.191662  
2017-04-07    -0.000870            1.190625  
In [8]: fund.get_nav('001232', '20170401', '20170408')
Out[8]: 
    subscribe_status    redeem_status    daily_profit    weekly_yield
2017-04-04    Open        Open    3.4489    0.06855
2017-04-05    Open        Open    0.9106    0.05864
2017-04-06    Open        Open    0.8536    0.05457
2017-04-07    Open        Open    1.6463    0.03641

fund.get_holdings - 获取基金持仓信息

fund.get_holdings(order_book_id, date=None)

从指定日期回溯,获取最近的基金持仓信息。

参数
参数类型注释
order_book_idstr基金代码
datestr, datetime.date, datetime.datetime, pandasTimestamp查询日期,回溯获取距离指定日期最近的持仓数据。如不指定日期,则获取所有日期的持仓数据
返回

pandas DataFrame

字段类型说明
order_book_idstr股票合约代码
weightfloat持仓百分比
datestr持仓披露日期
sharesfloat持仓股数(单位:1股,债券为NaN)
market_valuefloat持仓市值(单位:元,债券为NaN)
范例
In [10]: fund.get_holdings('050116', '20170201')
Out[10]: 
  order_book_id  weight    shares  market_value       date
0   300410.XSHE    1.74  174200.0     9405200.0 2016-12-31
1   000888.XSHE    0.00     800.0        9600.0 2016-12-31
2        160419   18.37       NaN           NaN 2016-12-31
3        160209   22.12       NaN           NaN 2016-12-31
4        160208    9.07       NaN           NaN 2016-12-31
5        150213    9.28       NaN           NaN 2016-12-31
6        140067    9.04       NaN           NaN 2016-12-31
7        132001    0.01       NaN           NaN 2016-12-31
8        128012    0.01       NaN           NaN 2016-12-31
9        110031    0.00       NaN           NaN 2016-12-31


fund.get_etf_components - 获取ETF成分股持有情况

fund.get_etf_components(order_book_id, trading_date=None, market='cn')

获取ETF成分股持有情况

参数
参数类型注释
order_book_idstr基金代码
datestr, datetime.date, datetime.datetime, pandasTimestamp查询日期,如不指定日期,则获取当天数据(注意仅交易日有效)。
返回

pandas DataFrame

范例
In [10]: fund.get_etf_components('510050.XSHG',trading_date=20190117)
Out[10]: 

    trading_date     order_book_id     stock_code     stock_amount     cash_substitute     cash_substitute_proportion     fixed_cash_substitute
0     2019-01-17     510050.XSHG       600000         5600.0                 允许                                  0.1       NaN
1     2019-01-17     510050.XSHG       600016         11900.0               允许                                  0.1       NaN
2     2019-01-17     510050.XSHG       600019         4300.0                 允许                                  0.1       NaN
3     2019-01-17     510050.XSHG       600028         5800.0                 允许                                  0.1       NaN
4     2019-01-17     510050.XSHG       600029         1600.0                 允许                               0.1       NaN
5     2019-01-17     510050.XSHG       600030         3800.0                 允许                                  0.1       NaN
6     2019-01-17     510050.XSHG       600036         4900.0                 允许                                  0.1       NaN
7     2019-01-17     510050.XSHG       600048         3400.0                 允许                                  0.1       NaN
8     2019-01-17     510050.XSHG       600050         4500.0                 允许                                  0.1       NaN
...

fund.get_split - 获取基金拆分信息

fund.get_split(order_book_id)
参数
参数类型注释
order_book_idstr基金代码
返回

pandas DataFrame

index: 除权除息日

范例
In [13]: fund.get_split('000246').head()
Out[13]: 
           split_ratio
2013-11-01  1.00499349
2013-12-02  1.00453123
2014-01-02  1.00455316
2014-02-07  1.00456182
2014-03-03  1.00452639


fund.get_dividend - 获取基金分红信息

fund.get_dividend(order_book_id)
参数
参数类型注释
order_book_idstr or list基金代码
返回

pandas DataFrame

index: 除权除息日

范例
In [11]: fund.get_dividend('050116')
Out[11]: 
           book_closure_date payable_date  dividend_before_tax
2012-01-17        2012-01-17   2012-01-19                0.002
2013-01-16        2013-01-16   2013-01-18                0.013
2015-01-14        2015-01-14   2015-01-16                0.028

fund.get_manager - 获取基金经理信息

fund.get_manager(order_book_id, expect_df=False)
参数
参数类型注释
order_book_idstr OR str list基金代码或代码列表
expect_dfboolean默认返回原有的数据结构。如果调为真,则返回pandas dataframe
返回

pandas DataFrame

范例
In [11]: fund.get_manager('161117')
Out[11]: 
  name        id  days start_date   end_date   return
0   胡剑  30159168   244 2014-07-12 2015-03-13   8.6997
1   胡剑  30159168   445 2013-04-22 2014-07-11   5.1786
2   刘琦  30127307   244 2014-07-12 2015-03-13   8.6997
3   刘琦  30127307   445 2013-04-22 2014-07-11   5.1786
4  李一硕  30062897   780 2015-03-14        NaT  14.9005
5  李一硕  30062897   244 2014-07-12 2015-03-13   8.6997
6  马喜德  30046114   306 2012-06-19 2013-04-21   7.9318
In [10]: fund.get_manager(['160224', '217019'])
Out [10]: 
<class 'pandas.core.panel.Panel'>
Dimensions: 6 (items) x 5 (major_axis) x 2 (minor_axis)
Items axis: name to return
Major_axis axis: 0 to 4
Minor_axis axis: 160224 to 217019

fund.get_asset_allocation - 获取基金资产配置

fund.get_asset_allocation(order_book_id, date=None)
参数
参数类型注释
order_book_idstr基金代码
datestr, datetime.date, datetime.datetime, pandasTimestamp查询日期,回溯获取距离指定日期最近的数据。如不指定日期,则获取所有日期的数据
返回

pandas DataFrame

index: 报告期

范例
In [11]: fund.get_asset_allocation('002425')
Out[11]: 
             stock    bond    cash           nav
2016-03-31  0.0520  0.8581  0.0918  5.506908e+07
2016-06-30  0.0656  0.9299  0.0053  6.455623e+07
2016-09-30  0.1403  0.5319  0.0119  4.035355e+08
2016-12-31  0.0637  0.4457  0.0174  8.504396e+08
2017-03-31  0.0000  0.6045  0.0345  1.365943e+08
2017-06-26  0.0000  0.4161  0.6456  7.271404e+07
2017-06-30  0.0000  0.3189  0.0028  7.058575e+07

fund.get_industry_allocation - 获取基金行业配置

fund.get_industry_allocation(order_book_id, date=None)
参数
参数类型注释
order_book_idstr基金代码
datestr, datetime.date, datetime.datetime, pandasTimestamp查询日期,回溯获取距离指定日期最近的数据。如不指定日期,则获取所有日期的数据
返回

pandas DataFrame

index: 报告期

范例
In [15]: fund.get_industry_allocation('519181', date='20170701')
Out[15]: 
                   industry  weights  market_value
2017-06-30  信息传输、软件和信息技术服务业   0.0000  7.639620e+03
2017-06-30         农、林、牧、渔业   0.0519  8.850876e+07
2017-06-30              制造业   0.5013  8.544167e+08
2017-06-30               合计   0.9027  1.538639e+09
2017-06-30              建筑业   0.1100  1.875309e+08
2017-06-30             房地产业   0.0990  1.687118e+08
2017-06-30           批发和零售业   0.0392  6.675525e+07
2017-06-30              采矿业   0.0501  8.545797e+07
2017-06-30              金融业   0.0512  8.724955e+07



fund.get_ratings - 获取基金评级信息

fund.get_ratings(order_book_id, date=None)
参数
参数类型注释
order_book_idstr基金代码
datestr, datetime.date, datetime.datetime, pandasTimestamp查询日期,回溯获取距离指定日期最近的数据。如不指定日期,则获取所有日期的数据
返回

pandas DataFrame

index: 评级日期

范例
In [16]: fund.get_ratings('202101')
Out[16]: 
             zs  sh3  sh5  jajx
2009-12-31  NaN  NaN  NaN   3.0
2010-03-31  NaN  NaN  NaN   3.0
2010-04-30  2.0  NaN  NaN   NaN
2010-06-30  NaN  3.0  4.0   1.0
2010-09-30  NaN  3.0  4.0   1.0
2010-12-31  NaN  2.0  4.0   1.0

fund.get_units_change - 获取基金份额变动信息

fund.get_ratings(order_book_id, date=None)
参数
参数类型注释
order_book_idstr基金代码
datestr, datetime.date, datetime.datetime, pandasTimestamp查询日期,回溯获取距离指定日期最近的数据。如不指定日期,则获取所有日期的数据
返回

pandas DataFrame

index: 参考日期

范例
In [17]: fund.get_units_change('001554')
Out[17]: 
            subscribe_units  redeem_units        units
2015-06-30              NaN           NaN   5000000.00
2015-09-30      71408891.69   37755554.39  38653337.30
2015-12-31      19756969.98   20692807.21  37717500.07
2016-03-31      17467356.40   16372818.76  38812037.71
2016-06-30      21264325.34   15937884.63  44138478.42
2016-09-30      37842604.31   32218403.07  49762679.66
2016-12-31      19158060.76   25157817.68  43762922.74
2017-03-31      12145314.55   18072618.82  37835618.47


fund.get_snapshot - 获取基金最新的衍生数据

fund.get_snapshot(order_book_ids, fields=None, market='cn')
参数
参数类型注释
order_book_idstr基金代码
fieldsstr or list返回字段,默认返回所有衍生字段
marketstr指定市场,目前仅有中国市场('cn')的基金衍生数据
返回

pandas DataFrame

index: order_book_id

范例
In [17]: fund.get_snapshot(['000001','001554'],fields=['information_ratio','average_size'])
Out[17]:
              latest_date     information_ratio     average_size
order_book_id             
000001          2018-12-19     0.0967                 6.848286e+09
001554          2018-07-02     -0.7828             2.343966e+07


fund.get_indicators - 获取基金的衍生数据

fund.get_indicators(order_book_ids, start_date=None, end_date=None, fields=None, market='cn')
参数
参数类型注释
order_book_idstr基金代码
start_datestr开始日期, 格式为 'YYYY-mm-dd', 默认为基金衍生数据最早有效日期
end_datestr结束日期, 格式为 'YYYY-mm-dd', 默认为查询当日
fieldsstr or list返回字段,默认返回所有衍生字段
marketstr指定市场,目前仅有中国市场('cn')的基金衍生数据
返回

pandas DataFrame

index: order_book_id

范例
In [17]: fund.get_indicators(['000001','001554'],fields=['information_ratio','average_size'],start_date='2018-05-14',end_date='2018-05-20')
Out[17]:

                                   information_ratio     average_size
order_book_id     datetime         
000001         2018-05-14                     0.0890         6.922106e+09
                2018-05-15                     0.0905         6.922106e+09
                2018-05-16                     0.0931         6.922106e+09
                2018-05-17                     0.0906         6.922106e+09
                2018-05-18                     0.0878         6.922106e+09
001554         2018-05-14                     -0.8045     2.497233e+07
                2018-05-15                     -0.8069     2.497233e+07
                2018-05-16                     -0.7983     2.497233e+07
                2018-05-17                     -0.8040     2.497233e+07
                2018-05-18                     -0.8154     2.497233e+07

宏观经济


econ.get_reserve_ratio - 获取存款准备金率

econ.get_reserve_ratio(reserve_type,start_date,end_date,date_type)
参数
参数类型说明
reserve_typestr目前有大型金融机构('major') 和 其他金融机构('other')两种分类。
默认为all,即所有类别都会返回。
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期,默认为去年的查询当日(基准为信息公布日)。
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,默认为查询当日。
返回

pandas dataframe

字段类型说明
reserve_typestr存款准备金类别
info_datestr消息公布日期
effective_datestr存款准备金率生效日期
ratio_floorfloat存款准备金下限
ratio_ceilingfloat存款准备金上限
范例
[In]
econ.get_reserve_ratio(reserve_type='major',start_date='20170101',end_date='20181017')

[Out]

            reserve_type                     effective_date     ratio_ceiling     ratio_floor
info_date
2018-10-07     major_financial_institution     2018-10-15          15.0             15.0
2018-04-17     major_financial_institution     2018-04-25          16.0             16.0

econ.get_money_supply - 获取货币供应量

econ.get_money_supply(start_date,end_date)
参数
参数类型说明
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期,默认为去年的查询当日(基准为信息公布日)。
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期,默认为查询当日。
返回

pandas dataframe

字段类型说明
info_datestr消息公布日期
effective_datestr货币供应量生效日期
m0float市场现金流通量(百万元)
m1float狭义货币(百万元)
m2float广义货币(百万元)
m0_growth_yoyfloat市场现金流通量同比
m1_growth_yoyfloat狭义货币同比
m2_growth_yoyfloat广义货币同比
范例
[In]
econ.get_money_supply(start_date='20180801',end_date='20181017')

[Out]

               effective_date     m2          m1         m0    m2_growth_yoy  m1_growth_yoy     m0_growth_yoy
info_date                             
2018-09-21     2018-08-31     178867043.0     53832464.0     6977539.0     0.082       0.039         0.033
2018-08-16     2018-07-31     177619611.0     53662429.0     6953059.0     0.085       0.051         0.036

econ.get_factors- 获取宏观因子数据

econ.get_factors(factors, start_date, end_date)

获取宏观因子数据。

参数
参数类型说明
factorsstr宏观因子名称,点击下载
start_datedatetime起始日期
end_datedatetime截止日期
返回
参数类型说明
info_datestr因子发布的日期
start_datedatetime起始日期
end_datedatetime截止日期
valuefloat指标数据
范例
[In]econ.get_factors( start_date='20170801', end_date='20180801', factors='工业品出厂价格指数PPI_当月同比_(上年同月=100)')
[Out]
[start_date    end_date    value
factor    info_date            
工业品出厂价格指数PPI_当月同比_(上年同月=100)    
2017-08-09 09:30:00    2017-06-30    2017-07-31    105.5000
2017-09-09 09:30:00    2017-07-31    2017-08-31    106.3000
2017-10-16 09:30:00    2017-08-31    2017-09-30    106.9000
2017-11-09 09:30:00    2017-09-30    2017-10-31    106.9000
2017-12-09 09:30:00    2017-10-31    2017-11-30    105.8000
 ...]

舆情讯息


get_current_news - 获取新闻快讯

get_current_news(n, start_time, end_time,channels)

返回当前经济、金融相关的快讯。

参数
参数类型说明
nint返回新闻条目。默认为一条(以频道为基础),上限为1200条
start_timestr开始时间,格式为"yyyy-mm-dd hh:mm:ss"
end_timestr结束时间,格式为"yyyy-mm-dd hh:mm:ss"
channelsstr目前有四个频道全球经济,商品,外汇,中国A股。默认是全部('all')
返回

pandas dataframe

字段类型说明
channelstr快讯频道
datetimedatetime快讯广播时间
contentstr具体快讯内容
范例
[In]
get_current_news()

[Out]
                    datetime         content
channel         
global         2018-11-14 10:05:57     在岸人民币兑美元在数据公布后延续跌势,目前较早间高点回落约50点,报6.9529。
forex         2018-11-14 10:05:57     在岸人民币兑美元在数据公布后延续跌势,目前较早间高点回落约50点,报6.9529。
a-stock     2018-11-14 10:05:12     中国10月粗钢产量8,255万吨,创至少2014年5月以来新高,同比增长9.1%;1-10月...
commodity     2018-11-14 10:05:25     中国10月原油加工量5,278万吨,同比增长4.6%;1-10月原油加工量50,510万吨,..
[In]
get_current_news(start_time='2018-10-26 16:00:00',end_time='2018-10-26 16:05:00',channels='forex')

[Out]
                datetime         content
channel         
forex     2018-10-26 16:03:14     欧洲央行:预测人员维持2018-2020年通胀展望不变。预测人员下调2018及2019年GD...
forex     2018-10-26 16:02:24     美元/日元跌破112关口,日内跌逾0.3%。
forex     2018-10-26 16:00:57     【外管局公布2018年9月中国外汇市场交易概况数据】2018年9月,中国外汇市场(不含外币对...


因子研究

rqfactor包

因子研究部分集成了量化多因子研究相关的各类投研工具,以便于用户快速、高效地进行因子编写和因子测试。用户在进行因子研究前需引入包rqfactor:

import rqfactor

rqfactor里所包含的对象列表如下:

对象解释
Factor在自定义因子时可以引入Factor,通过Factor来引用行情因子财务因子,其中滚动财务数据(TTM) (income_statement_TTM) 中字段不支持。例如,用户可以先from rqfactor import Factor引入Factor,通过f = Factor('close'), f = Factor('pe_ratio')等方式引用因子
indicators将提供的技术指标都封装在rqfactor.indicators里面,技术指标的列表可查看技术因子。例如要引入KDJ指标,可以通过from rqfactor.indicators import KDJ,再通过f = KDJ().K进行指标调用
所有工具函数,具体列表可查看工具函数用于操作这些基础因子的一系列函数,如 REF, ABS, COUNT 等;基础因子经过这些函数处理后得到的仍然是因子,可以进一步使用这些函数进行组合;所有这些函数命名都是全大写

范例

import rqfactor
from rqfactor.indicators import KDJ
f = KDJ().K
import rqfactor
from rqfactor import MA
import rqfactor
from rqfactor import Factor
f = Factor('close') + Factor('pe_ratio')

自定义因子

因子编写

在Notebook里,您可以按照特定的语法来创建自定义因子。编辑因子的逻辑为创建自定义因子的核心部分,为满足用户对因子要求多样性,支持用户试用类似于通达信公式的方式计算自定义因子。

支持引用提供的行情因子、财务因子、技术函数(可支持技术函数修改其对应的参数)。

支持使用某些工具函数,如MAX、MIN、HHV、LLV等,可见工具函数

import rqfactor
from rqfactor import Factor
f = Factor('open') + Factor('close')
import rqfactor
from rqfactor import Factor
f = Factor('pe_ratio') 
import rqfactor
from rqfactor.indicators import KDJ
f = KDJ(9, 3, 3).K

因子列表

用户在编写新的因子时,可在表达式中引用一些常见的行情因子、财务因子和提供的技术指标。在编辑自定义因子的逻辑时,会使用到另一个因子,如果按通常的做法,重新编写这个因子显得比较麻烦,这里平台提供了一些方法可引用已有的一些因子。可引用的因子分为三部分:行情因子财务因子技术函数

行情因子
因子类型说明
openfloat开盘价
closefloat收盘价
highfloat最高价
lowfloat最低价
total_turnoverfloat总成交额
volumefloat总成交量
财务因子
技术指标
函数中文名函数参数返回值及说明
指数平滑移动平均线MACDSHORT:快速移动平均线(短线),默认值12;
LONG:慢速移动平均线(长线),默认值26;
M:天数,默认值为9
返回值:DIFF, DEA, HIST;
DIFF = EMA(CLOSE, SHORT) - EMA(CLOSE, LONG);
DEA = EMA(DIFF, M);
HIST = (DIFF - DEA) * 2
随机波动指标KDJN:快速确认线,默认值为9;
M1:慢速主干线,默认值为3;
M2:方向敏感线,默认值为3
返回值:K, D, J;
K = EMA(RSV * 100, (M1 * 2 - 1));
RSV = (CLOSE - LLV(LOW, N)) / (HHV(HIGH, N) - LLV(LOW, N)) * 100;
D = EMA(K, (M2 * 2 - 1)); J = K * 3 - D * 2
趋向指标DMIM1:默认值为14;
M2:默认值为6
返回值:DI1, DI2, ADX, ADXR;
DI1 = DMP * 100 / TR,
DMP = SUM(IF((HD > 0) & (HD > LD), HD, 0), M1);
DI2 = DMM * 100 / TR,
DMM = SUM(IF((LD > 0) & (LD > HD), LD, 0), M1);
ADX = MA(ABS(DI2 - DI1) / (DI1 + DI2) * 100, M2);
ADXR = (ADX + REF(ADX, M2)) / 2
相对强弱指标RSIN1:默认值为6;
N2:默认值为12;
N3:默认值为24
返回值:RSI1, RSI2, RSI3;
RSI1 = MA(MAX(CLOSE - LC, 0), N1) / MA(ABS(CLOSE - LC), N1) * 100,
LC = REF(CLOSE, 1);
RSI2 = MA(MAX(CLOSE - LC, 0), N2) / MA(ABS(CLOSE - LC), N2) * 100,
LC = REF(CLOSE, 1);
RSI3 = MA(MAX(CLOSE - LC, 0), N3) / MA(ABS(CLOSE - LC), N3) * 100,
LC = REF(CLOSE, 1)
布林带BOLLN:时间长度,默认值为20;
P:上轨及下轨的标准差系数,默认值为2
返回值:MID, UPPER, LOWER;
MID = MA(CLOSE, N);
UPPER = MID + STD(CLOSE, N) * P;
LOWER = MID - STD(CLOSE, N) * P
威廉指标WRN:默认值为10;
N1:默认值为6
返回值:WR1, WR2;
WR1 = (HHV(HIGH, N) - CLOSE) / (HHV(HIGH, N) - LLV(LOW, N)) * 100;
WR2 = (HHV(HIGH, N1) - CLOSE) / (HHV(HIGH, N1) - LLV(LOW, N1)) * 100
乖离率BIASL1:默认值为5;
L4:默认值为3;
L5:默认值为10
返回值:BIAS1, BIAS2, BIAS3;
BIAS1 = (CLOSE - MA(CLOSE, L1)) / MA(CLOSE, L1) * 100;
BIAS2 = (CLOSE - MA(CLOSE, L4)) / MA(CLOSE, L4) * 100;
BIAS3 = (CLOSE - MA(CLOSE, L5)) / MA(CLOSE, L5) * 100
震动升降指标ASIM1:默认值为26;
M2:默认值为10
返回值:ASI, ASIT;
LC = REF(CLOSE, 1);
AA = ABS(HIGH - LC);
BB = ABS(LOW - LC);
CC = ABS(HIGH - REF(LOW, 1));
DD = ABS(LC - REF(OPEN, 1));
R = IF((AA > BB) & (AA > CC), AA + BB / 2 + DD / 4, IF((BB > CC) & (BB > AA), BB + AA / 2 + DD / 4, CC + DD / 4));
X = (CLOSE - LC + (CLOSE - OPEN) / 2 + LC - REF(OPEN, 1));
SI = X * 16 / R * MAX(AA, BB);
ASI = SUM(SI, M1);
ASIT = MA(ASI, M2)
容量比例VRM1:默认值为26返回值:VR;
VR = SUM(IF(CLOSE > LC, VOL, 0), M1) / SUM(IF(CLOSE <= LC, VOL, 0), M1) * 100,
LC = REF(CLOSE, 1)
人气意愿指标ARBRM1:默认值为26返回值:AR, BR;
AR = SUM(HIGH - OPEN, M1) / SUM(OPEN - LOW, M1) * 100;
BR = SUM(MAX(0, HIGH - REF(CLOSE, 1)), M1) / SUM(MAX(0, REF(CLOSE, 1) - LOW), M1) * 100
区间震荡线DPOM1:默认值为20;
M2:默认值为10;
M3:默认值为6
返回值:DPO, MADPO;
DPO = CLOSE - REF(MA(CLOSE, M1), M2);
MADPO = MA(DPO, M3)
三重指数平均移动平均TRIXM1:短线,默认值为12;
M2:长线,默认值为20
返回值:TRIX, TRMA;
TRIX = (TR - REF(TR, 1)) / REF(TR, 1) * 100;
TR = EMA(EMA(EMA(CLOSE, M1), M1), M1);
TRMA = MA(TRIX, M2)

execute_factor - 计算自定义因子值

execute_factor(factor, order_book_ids, start_date, end_date)

基于自定义因子计算因子值,生成DataFrame

参数

参数类型说明
factorstr既可以是平台提供的基础因子,也可以传入因子表达式;
order_book_idsstr list合约代码,可传入order_book_id list
start_datestr, datetime.date, datetime.datetime, pandasTimestamp开始日期
end_datestr, datetime.date, datetime.datetime, pandasTimestamp结束日期

返回

范例

[In]
import rqfactor
from rqfactor import *
from rqfactor.indicators import *

# Graham number 是格雷厄姆提出的,用于评估股票公允价格的表达式,
# 其假设股票价格小于 Graham number 时,股票价格被低估;反之被高估。
Graham_number = 22.5*Factor('earnings_per_share') * Factor('book_value_per_share') ** (0.5)
# 若过去五期的股票价格移动平均值低于 Graham_number,则股票价格被低估,因子得分为正;反之因子得分为负。
MA_of_stock_price = MA(Factor('close'), 5)
# 因子表达式
f = Graham_number -  MA_of_stock_price
# 计算因子值
execute_factor(f, ['000001.XSHE', '600000.XSHG'], '20190601', '20190605')

[Out]
000001.XSHE    600000.XSHG
2019-06-03    19.118477    35.959243
2019-06-04    19.246477    35.947243
2019-06-05    19.332477    35.889243

工具函数

平台提供了两类工具函数,分别为:

对于时间序列工具函数,平台集成了一下常见的运算操作:

函数说明用法样例
ABS(X)求绝对值ABS(X)返回变量X的绝对值ABS(Factor('close')-Factor('open'))返回收盘价与开盘价差值的绝对值
LOG(X)求对数LOG(X)以10为底,返回X的对数LOG(Factor('close')) 表示返回收盘价10为底的对数
EXP(X)求幂EXP(X)返回e的X次幂EXP(Factor('close')) 表示e的X次幂
SIGN(X)求符号SIGN(X)返回X的符号如果X>0,SIGN(X)就返回 1,如果X<0,则返回-1,如果X=0,则返回 0
SIGNEDPOWER(X, T)将差异放大保持X的正负特性,将其进行T次幂处理使其差异放大其中式子为SIGN(X) * (ABS(X) ** T),Sign(X)为符号函数,表示:如果X>0,就返回 1,如果X<0,则返回-1,如果X=0,则返回 0
MAX(A, B)求最大值MAX(A, B)返回A和B中的较大值MAX(Factor('close') - Factor('open'), 0)表示若收盘价大于开盘价返回它们的差值,否则返回0
MIN(A, B)求最小值MIN(A, B)返回A和B中的较小值MIN(Factor('close'), Factor('open'))返回开盘价和收盘价中的较小值
FMAX(A, B)求最大值,忽略NANMAX(A, B)返回A和B中的较大值,忽略NANMAX(Factor('close') - Factor('open'), 0)表示若收盘价大于开盘价返回它们的差值,否则返回0,忽略NAN
FMIN(A, B)求最小值,忽略NANMIN(A, B)返回A和B中的较小值,忽略NANMIN(Factor('close'), Factor('open'))返回开盘价和收盘价中的较小值,忽略NAN
CROSS(A, B)交叉函数A:变量或常量,判断交叉的第一条线;B:变量或常量,判断交叉的第二条线CROSS( MA(Factor('close'), 5), MA(Factor('close'), 10)):返回5日均线与10日均线金叉;CROSS( Factor('close'), 10):价格由下向上突破10元
IF(X, A, B)根据条件求不同的值IF(X, A, B)若X为TRUE则返回A,否则返回BIF(Factor('close') > Factor('open'), Factor('close'), Factor('open')) 表示如果收盘价大于开盘价,则返回收盘价,否则返回开盘价
REF(X, N)返回一定交易日前的数据REF(X, N)返回N个交易日前的X的值REF(Factor('close'), 10)返回10个交易日前的收盘价
MA(X, N)简单移动平均MA(X, N)返回X的N个交易日移动平均值MA(Factor('close'), 10)返回收盘价10个交易日的均价
EMA(X, N)指数平滑移动平均EMA(X, N)返回X的N个交易日的指数平滑移动平均EMA(Factor('close'), 10)返回收盘价10个交易日的指数平滑移动平均,算法可见计算方法说明
WMA(X, N) 或 DECAY_LINEAR(X, N)线性加权移动平均WMA(X, N)返回X的N个交易日的线性加权移动平均WMA(Factor('close'), 10)返回收盘价10个交易日的线性加权移动平均,算法可见计算方法说明
STD(X, N) 或 STDDEV(X, N)算标准差STD(X, N)表示X的N个交易日的标准差STD(Factor('close'), 10)表示收盘价10个交易日的标准差
SUM(X, N)求总和SUM(X, N)统计N个交易日内X的总和SUM(Factor('volume'), 10):统计10个交易日成交量的总和
COUNT(X, N)求频次统计N日内出现X情况的频次COUNT(Factor('close')>100, 5):统计过去5个交易日收盘价大于100的频次
DELAY(X, N)求N天前的值返回X在N个交易日前的值DELAY(Factor('close'), 10) :返回收盘价在10个交易日之前的值
DELTA(X, N)求差分返回X今天与N个交易日前值的差值DELTA(Factor('close'), 10) :返回今日收盘价与10个交易日之前的收盘价之间的差值
HHV(X, N)求最高值HHV(X, N)求N个交易日内X的最高值HHV(Factor('close'), 10)表示10个交易日内收盘价的最大值
LLV(X, N)求最低值LLV(X, N)求N个交易日内X的最低值LLV(Factor('close'), 10)表示10个交易日内收盘价的最小值
EVERY(X, N)一直存在EVERY(X, N)判断在N个交易日内是否在每个交易日; 条件X都成立,若成立则返回True,否则返回FalseEVERY(Factor('close') > Factor('open'), 10) 表示若10个交易日内一直是阳线,则返回True,否则返回False
VAR(X, N)方差VAR(X, N)返回过去N个交易日X的方差VAR(Factor('close'), 10) 表示收盘价在过去10个交易日内的方差
COV(X, Y, N)协方差COV(X, Y, N)返回过去N个交易日X与Y的协方差COV(Factor('open'), Factor('close'), 66) 表示过去66个交易日收盘价与开盘价的协方差
CORR (X, Y, N)相关系数CORR(X, Y, N)返回过去N个交易日X与Y的相关系数CORR(Factor('close'), Factor('open'), 66) 表示过去66个交易日收盘价与开盘价的相关系数
PRODUCT(X, N)求移动平均求积PRODUCT(X, N)返回过去N个交易日X的移动平均求积COUNT(Factor('close'), 10) 表示过去10个交易日收盘价的移动平均求积
PCT_CHANGE(X, N)求变化率PCT_CHANGE(X, N)返回X在N个交易日内的变化率PCT_CHANGE(Factor('close'), 10) 表示收盘价在10个交易日内的变化率
TS_MAX(X, N)求序列中最大值返回N个交易日中X序列的最大值TS_MAX(Factor('close'), 5):返回过去5个交易日中收盘价的最大值
TS_MIN(X, N)求序列中最小值返回N个交易日中X序列的最小值TS_MIN(Factor('close'), 5):返回过去5个交易日中收盘价的最小值
TS_ARGMAX(X, N)求序列中最大值所在索引返回N个交易日X序列的最大值的索引TS_ARGMAX(Factor('close'), 5):返回过去5个交易日中收盘价的最大值的索引
TS_ARGMIN(X, N)求序列中最小值所在索引返回N个交易日X序列的最小值的索引TS_ARGMIN(Factor('close'), 5):返回过去5个交易日中收盘价的最小值的索引
TS_SKEW(X, N)求序列的偏度返回序列X在过去N个交易日的偏度TS_SKEW(Factor('close'), 60) :返回收盘价过去60个交易日的偏度
TS_KURT(X, N)求序列的峰度返回序列X在过去N个交易日的峰度TS_SKEW(Factor('close'), 60) :返回收盘价过去60个交易日的峰度
TS_RANK(X, N)求时间序列的排序占比返回今天X在过去N个交易日的排序占比如N=5,今天的X排序为3,则返回0.6
TS_REGRESSION(Y, X, N)求序列回归参数返回因变量为Y,自变量为X在N个交易日的回归参数TS_REGRESSION(Factor('close'),Factor('open'),60) :返回收盘价为因变量,开盘价为自变量在过去60个交易日的回归参数
TS_ZSCORE (X, N)标准化TS_ZSCORE (X, N)以X在过去N个交易日的取值作为样本,返回当前交易日X对应的标准分数TS_ZSCORE (Factor('close'), 10) 表示收盘价在过去10个交易日的取值作为样本,返回当前交易日收盘价对应的标准分数
TS_FILLNA(X, nv = N, method = 'value')时间序列缺失值填充S_FILLNA(X, N, method = 'value'),其中 method 可取:
'value': N表示数值,以数值N替换X中的缺失值;
'ma': N表示交易日,以X最近N个交易日的移动平均值替换当前交易日X中的缺失值;
'forward': N表示交易日,以X最近一个非缺失值替换当前交易日X中的缺失值
TS_FILLNA(Factor('close'), 10, 'value'):
用10替换收盘价中的缺失值;
TS_FILLNA(Factor('close'), 10, 'ma'):用过去10个交易日的移动平均值替换当前交易日收盘价的缺失值 ;
TS_FILLNA(Factor('close'), 10, 'forward'):在过去10天内用最近一个非缺失值替换当前收盘价的缺失值,若过去10天中,某一股票的X全为缺失值,则不进行替换

对于横截面工具函数,平台集成了一下常见的运算操作:

函数说明用法样例
DEMEAN (X)均值消减DEMEAN (X) 表示选定股票池,将个股指标X减去股票池中X的均值DEMEAN(Factor('close')) 给定股票池,返回每只股票的收盘价减去收盘价的均值
CS_ZSCORE (X)标准化CS_ZSCORE (X) 表示选定股票池,将指标X进行标准化处理CS_ZSCORE (Factor('close')) 给定股票池,返回收盘价在选定股票池的标准化值
SCALE(X, A)量级缩放SCALE(X, A) 表示调整X的数量级,使得返回的调整后X’的绝对值之和等于ASCALE(Factor('close'), 10) 给定股票池,将股票池内收盘价量级调整进行调整,使绝对值之和等于10
CS_REGRESSION_RESIDUAL (Y, X1, …, XN)返回横截面回归的残差CS_REGRESSION_RESIDUAL (Y, X1, …, XN)返回多元回归的"残差+截距"CS_REGRESSION_RESIDUAL (Factor('close'), Factor('open'), Factor('high'))
FIX(X, order_book_id)返回某个标的的X基于股票池,返回某个标的的XFIX(Factor('close'), '000300.XSHG'):令股票池中每只标的都返回沪深300的收盘价,相当于固定某个标的,可用于求股票池中每只标的对某个股票标的的beta值
RANK(X, method = 'first', ascending = True)横截面排序占比RANK(X, method = 'first', ascending = True),其中method可取:
'first': 按照它们出现在数组中的顺序进行排序;
'average': 组内平均排序;
'max': 组内最大等级排序;
'min': 组内最小等级排序;
'dense': 组内
RANK(Factor('close'), 'first', True) 返回今天收盘价在过去股票池内的升序排序占比,若多项值相同,则按它们出现在数组中的顺序进行排序;
RANK(X, 'average', True) 表示升序排序占比,若多项值相同,则其排序为平均排序;
RANK(X,'max', True) 表示升序排序占比,若多项值相同,则按组内最大等级排序数赋值;
RANK(X,'min', True) 表示升序排序占比,若多项值相同,则按组内最小等级排序数赋值;
RANK(X,'dense', True) 表示升序排序占比,若多项值相同,则按组内最小等级排序数赋值,后面的排序紧接该项元素,如多项并列排序为3,则后续排序还是从4开始
TOP(X, threshold=N, method='ordinal')取最大的N个值为1返回最大的N个值为1,其余为0TOP(Factor('close'), threshold=50, method='ordinal'):在股票池中排名前50的返回1,其余为0
BOTTOM(X, threshold=N, method='ordinal')取最小的N个值为1返回最小的N个值为1,其余为0TOP(Factor('close'), threshold=50, method='ordinal'):在股票池中排名最后50的返回1,其余为0
QUANTILE(X, bins, ascending = True)分组QUANTILE(X, bins = 5, ascending = True)表示对X按升序分为5组QUANTILE(Factor('close'), bins = 5, ascending = True)表示对收盘价按升序分为5组
INDUSTRY_NEUTRALIZE (X)行业中性化处理INDUSTRY_NEUTRALIZE (X) 对X进行行业中性化处理,其中行业分类采用申万一级行业分类标准INDUSTRY_NEUTRALIZE (Factor('close')) 选定股票池,根据申万行业分类对收盘价进行行业中性化处理
CS_FILLNA(X)替换缺失值以同行业均值对缺失值进行替换这里以申万一级28个行业为分类标准

因子分析

factor_analysis - 因子检验

factor_analysis(df, period, shift_days=1, rank_ic=True, quantile=5, ascending=True, winzorization='mad', normalization=True, neutralization='none', include_st=False, include_new=False)

对因子进行检验分析,并返回分析结果

参数

参数类型说明
dfdataframe因子数据及对应的时间构成的dataframe,用户必须指定
periodint调仓周期,以交易日为单位。如 period=5表示调仓周期为5个交易日
shift_daysint分析时因子值需要延后的天数,默认shift_days=1,若因子值在盘中就可以得到,则分析时可以不进行延后
rank_icboolic计算方法选择。默认为True,ran_ic - True ,normal_ic - False
quantileint分组。对分析时组别进行指定,默认quantile = 5
ascendingint因子排序方向。默认ascending = True
winzorizationstr离群值处理方式。默认为none,不处理 - none,mad方法 - mad,3sigma - std,分位法 - percentile
normalizationbool标准化处理,默认True
neutralizationstr中性化处理,默认none,不处理 - none,行业中性化 - industry
include_stbool是否包含st股,默认False,即不包含
include_newbool是否包含新股,默认False,即不包含

返回

对象类型说明
factor_valueDataFrame因子值
factor_correlationDataFrame因子值自相关分布
factor_industrial_distributionDataFrame因子值行业分布
factor_market_value_distributionDataFrame因子值市值分布
ic_summaryDataFrameIC统计指标
ic_seriesDataFrameIC序列
ic_decayDataFrameIC衰减率
ic_industrial_distributionDataFrameIC行业分布
ic_market_value_distributionDataFrameIC市值分布
weighted_factor_returnsDataFrame因子加权收益分析
quantile_factor_returnsDataFrame因子分组累积收益率
quantile_turnoverDataFrame换手率分析

范例

[In]
import rqfactor
f = rqfactor.Pricing.close
df = execute_factor(f, index_components('000300.XSHG', '20170101'), '20170101', '20170601')
result = factor_analysis(df, 5)
result.factor_correlation
[Out]
[1.0,
 0.99950717349990559,
 0.9990435233089906,
 0.99853247951816348,
 0.9979761083944384,
 0.99730605801773353,
 0.99662080182655732,
 0.99601059141047399,
 0.99524500635256452,
 0.9944834618369931,
 0.99353816981405385,
 0.99286615748877738,
 0.99213621368296567,
 0.9913551032792568,
 0.99038613103749162,
 0.9898453013323314,
 0.98942326931615554,
 0.9882897532912841,
 0.98619243791340949,
 0.98438788577758685]
[In]
from bokeh.io import output_notebook
output_notebook()
result.show()

检验结果

以上的因子测试结果可以分为三类,分别为 特征分析, IC分析 以及 收益率分析 ,这三方面就因子值、因子的IC值、以及因子的收益率方面进行多维度分析。

特征分析
IC 分析

IC(Information Coefficient)又称为信息系数。在对因子检验之前可对 IC 的计算方式进行选择,现提供两种计算方式,分别为RankIC、NormalIC。

统计指标解释
均值多期IC值的均值
标准差多期IC值的标准差
IR值多期IC值的均值与标准差的比值
正值次数IC值取值为正的期数
负值次数IC值取值为负的期数
显著比例IC值显著的比例(即相关系数的P值小于0.01)
正显著比例IC值为正且显著的比例(即相关系数的P值小于0.01)
负显著比例IC值为负且显著的比例(即相关系数的P值小于0.01)
T统计量多期IC值分布作T检验所得到的T统计量
P值多期IC值分布作T检验所得到的P值
偏度多期IC值分布的偏度
峰度多期IC值分布的峰度
收益率分析

计算方法说明

工具函数计算
离群值处理

离群值处理是调整因子值中的离群值至上下限(Winsorzation处理),其中上下限由离群值判断的标准给出,从而减小离群值的影响力。离群值的判断标准有三种,分别为 MAD3\sigma、百分位法。

X_{i}^{’} = \begin{cases} X_{median} + nMAD & \mbox {if $X_i > X_{median} + nMAD$} \\ X_{median} - nMAD & \mbox {if $ X_i < X_{median} - nMAD$} \\ X_i & \mbox {if $X_{median} - nMAD < X_i < X_{median} + nMAD$} \end{cases}

X_{i}^{’} = \begin{cases} X_{mean} + n\sigma &\mbox{if $X_i > X_{mean} + n\sigma$}\\ X_{mean} - n\sigma &\mbox{if $X_i < X_{mean} - n\sigma$}\\ X_i &\mbox{if $X_{mean} - n\sigma < X_i < X_{mean} + n\sigma$} \end{cases}

标准化处理

标准化处理是一个去除量纲的方法,能够使得股票池中不同股票在每期的因子值的横截面数据都能有可比性,这里用到了 Z-score 的方法,将因子值的均值调整为0,标准差调整为1。 标准化处理基于原始数据的均值和标准差,处理的逻辑是因子值减去均值后,再除以标准差。公式如下:

公式中,X_{mean} 为因子的均值,\sigma 为因子的标准差。

X_i^{'} = \frac{X_i - X_{mean}}{\sigma}

行业中性化处理

行业中性化处理能去去除因子在行业上的偏好,处理的逻辑是将行业因子值的均值调整为0,得到新的因子值,如下:

公式中,X_{mean} 为因子在相应行业内的均值。

X_{i}^{'} = X_{i} - X_{mean}

IC 计算方法

IC(Information Coefficient)为信息系数。IC值能够很好的反映因子对下期收益率的预测能力,IC值越高,就表明该因子在该期对股票收益的预测能力越强。IC的计算方法有两种,如下:

NormalIC = corr(X_{t-1}, R_t)

RankIC = corr(Order_{t-1}^X, Order_t^X)

两者的区别在于,NormalIC 更常见,其显著性检验假设两组随机变量近似服从正态分布;RankIC 对于两组随机变量的分布没有作出假设,且受离群值影响较小。


RQPortal API - 获取策略回测数据(Alpha版)

rqportal模块的加入使得用户分析自己策略回测结果成为可能。目前rqportal提供的api可以获取某个策略回测的交易, 持仓和收益等回测数据。需要注意的是,该功能目前处于实验阶段,不排除未来修改接口的可能。

以下API中所需传入的run_id可以在历史回测的列表中找到,如下图: 图片描述 图片描述


rqportal.info - 获取回测基础信息

rqportal.info(run_id)
参数
参数类型说明
run_idint回测运行ID, 可从回测历史列表中获取
返回

Python dict

参数类型说明
titlestr回测策略名称
start_datedatetime回测开始时间
end_datedatetime回测结束时间
time_unitstrDAY - 日回测 MINUTE - 分钟回测
typestrSTOCK - 股票 FUTURE - 期货
stock_init_cashfloat股票账户初始资金
future_init_cashfloat期货账户初始资金

rqportal.risk - 获取回测风险数据

rqportal.risk(run_id)
参数
参数类型说明
run_idint回测运行ID, 可从回测历史列表中获取
返回

Python dict

参数类型说明
cashfloat回测期末资金
market_valuefloat回测期末总市值
alphafloatalpha值
annual_downside_riskfloat年度下跌风险
annual_volatilityfloat年度收益波动率
betafloatbeta值
information_ratiofloat信息比率
max_drawdownfloat最大回撤
portfolio_valuefloat总权益
sharpefloat夏普比率
sortinofloat索提诺比率
total_returnsfloat总收益

rqportal.portfolio - 获取每日收益数据

rqportal.portfolio(run_id, start_date, end_date)
参数
参数类型说明
run_idint回测运行ID, 可从回测历史列表中获取
start_datestr开始日期, 格式为 'YYYY-mm-dd', 默认从回测最早的日期开始
end_datestr结束日期, 格式为 'YYYY-mm-dd', 默认以回测最晚的日期结束
返回

pandas DataFrame - 收益 每列的定义可参考Python API文档

范例
[In]: rqportal.portfolio(2012)
[Out]:
                  daily_returns     pnl    total_returns    annualized_returns    cash    benchmark_daily_returns
2010-01-04 15:00:00    0.000000    0.00    0.000000    0.000000    100000.000000    -0.017267
2010-01-05 15:00:00    0.000000    0.00    0.000000    0.000000    100000.000000    0.007915
...
2015-11-03 15:00:00    -0.032762    -12187.12    2.598044    0.245341    467.473962    -0.002924
2015-11-04 15:00:00    0.069233    24910.28    2.847147    0.259573    467.473962    0.045671
[In]: rqportal.portfolio(2012, start_date="2011-09-10", end_date="2011-10-20")
[Out]:
                    daily_returns    pnl    total_returns    annualized_returns    cash    benchmark_daily_returns
2011-09-13 15:00:00    -0.000128    -16.014597    0.246833    0.139163    65724.616896    0.000000
2011-09-14 15:00:00    -0.000596    -74.260000    0.246090    0.138523    65724.616896    -0.006299
2011-09-15 15:00:00    -0.000294    -36.660000    0.245724    0.138088    65724.616896    -0.001430
2011-09-16 15:00:00    -0.001494    -186.120000    0.243863    0.136851    65724.616896    0.001742
2011-09-19 15:00:00    -0.007149    -889.240000    0.234970    0.131392    65724.616896    -0.019277
2011-09-20 15:00:00    0.001499    185.180000    0.236822    0.132159    65724.616896    0.003799

rqportal.positions - 获取每日持仓数据

rqportal.positions(run_id, start_date, end_date)
参数
参数类型说明
run_idint回测运行ID, 可从回测历史列表中获取
start_datestr开始日期, 格式为 'YYYY-mm-dd', 默认从回测最早的日期开始
end_datestr结束日期, 格式为 'YYYY-mm-dd', 默认以回测最晚的日期结束
返回

pandas DataFrame - 每日投资组合中每个证券的市场价值

范例
[In]: rqportal.positions(2012)
[Out]:
                    cash    000916.XSHE    000926.XSHE    002485.XSHE    600270.XSHG    600626.XSHG    601718.XSHG
...
2013-10-08 15:00:00    42.49148    9368.5    53664.72    1867.25    14056.25    38426.75    31464
2013-10-09 15:00:00    42.49148    9614.5    53376.20    1867.25    15470.00    40183.00    31464
...
2013-10-31 15:00:00    42.49148    8097.5    52799.16    1716.00    17485.00    37935.00    30438
2013-11-01 15:00:00    42.49148    7933.5    52943.42    1738.00    17696.25    37935.00    30552

rqportal.trades - 获取每日交易数据

rqportal.trades(run_id, start_date, end_date) 
参数
参数类型说明
run_idint回测运行ID, 可从回测历史列表中获取
start_datestr开始日期, 格式为 'YYYY-mm-dd', 默认从回测最早的日期开始
end_datestr结束日期, 格式为 'YYYY-mm-dd', 默认以回测最晚的日期结束
返回

pandas DataFrame - 每日交易数据

参数类型说明
order_book_idstr合约代码
pricefloat成交价
quantityfloat成交量(股数),正数为买入,负数为卖出
transaction_costfloat交易产生的费用,包括佣金、印花税等加总
position_effectstrOPEN - 开仓 CLOSE - 平仓 CLOSE_TODAY - 今平
sidestrBUY - 买,SELL - 卖

Ipython运行回测的三种回测方式

Ricequant内在的策略引 - 用户可以在Ipython中直接使用该策略引擎进行策略研发。

1、使用 rqalpha_plus 进行回测

%%rqalpha_plus -s 20160301 -e 20160901 --account stock 10000 -fq 1d -p -bm 000001.XSHG
# 上述命令参数可以通过运行 %%rqalpha_plus -h 查看到

def init(context):
    # 策略初始化运行
    logger.info('init')
    context.counter = 0

def before_trading(context):
    # 每日开盘前运行
    pass

def handle_bar(context, bar_dict):
    # 每个 bar 数据运行
    context.counter += 1
    if context.counter == 1:
        order_shares('000001.XSHE', 500)

def after_trading(context):
    # 每日收盘后运行
    pass

运行上列代码之后,在研究中继续输入

In []:report.keys()
Out []:dict_keys(['portfolio', 'benchmark_portfolio', 'trades', 'stock_positions', 'stock_account', 'summary'])

2、使用 run_func 进行回测

from rqalpha_plus.api import *
#以上操作会导致当前数据获取API被覆盖,所以在运行完毕之后需要通过 from rqdatac import * 的方式恢复
from rqalpha_plus import run_func

#config 中可设置选项可以通过 %%rqalpha_plus -h 查看到
config = {
  "base": {
    "matching_type": "current_bar",
    "start_date": "2016-03-01", # 回测开始日期
    "end_date": "2016-09-01", # 回测结束日期
    "benchmark": "000001.XSHG", # 基准合约
    "frequency": '1d', # 回测频率, 分钟: '1m'
    "accounts": {
                "stock": 100000# 股票初始资金  期货:"future":100000
             }
  },
  "mod": {
    "sys_progress": {
        "enabled": True,
        "show": True,
    },
    "sys_analyser": {
        "enabled": True,
    },
    "sys_simulation": {
    "matching_type": "next_bar",
    }
  }
}

def init(context):
    context.s1 = "000001.XSHE"
    context.fired = False

def handle_bar(context, bar_dict):
    if not context.fired:
        # order_percent并且传入1代表买入该股票并且使其占有投资组合的100%
        order_percent(context.s1, 1)
        context.fired = True


results = run_func(init=init, config=config, handle_bar=handle_bar)
#如果您有自己的函数命名习惯,则可以通过以下指定函数名的方式运行回测
#results = run_func(init=init, handle_bar=handle_bar, before_trading=before_trading, after_trading=after_trading, config=config)
#下面的 import 将之前 from rqalpha_plus.api import * 的覆盖恢复
from rqdatac import *

策略框架支持的 config 主要设置项如下:

支持的 config 设置项

config = {
  'base': {
    'start_date': '2016-06-01',
    'end_date': '2016-12-01',
    # 回测频率,1d, 1m, tick
    'frequency': '1d',
    # 回测所需 bundle 数据地址,可设置为 RQPro 终端【个人设置】的【数据下载路径】
    'data_bundle_path': './bundle',
    # 策略文件地址
    'strategy_file': './strategy.py',
    # 保证金倍率。基于基础保证金水平进行调整
    'margin_multiplier': 1,
    # 运行类型。b 为回测,p 为模拟交易,r 为实盘交易
    'run_type': 'b',
    # 基准合约
    'benchmark': '000300.XSHG',
    # 期货交易佣金设置
    'future_info': {
      # 期货品种
      'SC': {
          # 平仓费率
          'close_commission_ratio': 0.00005,
          # 开仓费率
          'open_commission_ratio': 0.00005,
          # 平今费率
          'close_commission_today_ratio': 0,
          # BY_MONEY 为按照名义价值收取, BY_VOLUME 为根据成交合约张数收取
          'commission_type': 'BY_MONEY',
      },
    },
    # 账户类别及初始资金
    'accounts': {
      'stock': 1000,
      'future': 2000
    },
    # 初始仓位,为合约: 持仓数量方式,对应建仓成本为回测起始日期合约的收盘价
    'init_positions': "000001.XSHE: 100,000002.XSHE: 500",
  },
  'extra': {
    # 是否开启性能分析
    'enable_profiler': False,
    # 输出日志等级,有 verbose, info, warning, error 等选项,可以通过设置为 verbose 来查看最详细日志
    'log_level': 'info',
  },
  'mod': {
    # 模拟撮合模块
    'sys_simulation': {
        'enabled': True,
        # 是否开启信号模式。如果开启,限价单将按照指定价格成交,并且不受撮合成交量限制
        'signal': False,
        # 撮合方式。current_bar 当前 bar 收盘价成交,next_bar 下一 bar 开盘价成交,best_own 己方最优价格成交(tick 回测使用)
        # best_counterparty 对手方最优价格成交(tick 回测使用),last 最新价成交(tick 回测使用)
        'matching_type': 'current_bar',
        # 是否允许涨跌停状态下买入、卖出
        'price_limit': True,
        # 是否开启成交量限制
        'volume_limit': True,
        # 按照 bar 数据成交量的一定比例进行限制,超限部分无法在当前 bar 一次性撮合成交
        'volume_percent': 0.25,
        # 滑点模型。PriceRatioSlippage 为基于价格比例的滑点模型,TickSizeSlippage 为基于最小价格变动单位的滑点模型
        'slippage_model': 'PriceRatioSlippage',
        # 滑点值
        'slippage': 0,
    },
    # 风控模块
    'sys_risk': {
        'enabled': True, 
        # 检查可用资金是否足够
        'validate_cash': True,
        # 检查可平仓位是否足够
        'validate_position': True,
    },
    # 分析模块
    'sys_analyser': {
        'enabled': True,
        # 是否画图
        'plot': True,
        # 指定输出回测报告 csv 路径
        'report_save_path': None,
    },
    'sys_transaction_cost': {
        'enabled': True,
        # 设置最小佣金费用
        'cn_stock_min_commission': 5,
        # 佣金倍率
        'commission_multiplier': 1,
    }
  }
}

3、使用 run_code 进行回测

from rqalpha_plus import run_code

config = {
  "base": {
    "matching_type": "current_bar",
    "start_date": "2016-03-01", # 回测开始日期
    "end_date": "2016-09-01", # 回测结束日期
    "benchmark": "000001.XSHG", # 基准合约
    "frequency": '1d', # 回测频率, 分钟: '1m'
    "accounts": {
                "stock": 100000# 股票初始资金  期货:"future":100000
             }
  },
  "extra": {
    "log_level": "info",
  },
  "mod": {
    "sys_progress": {
        "enabled": True,
        "show": True,
    },
    "sys_analyser": {
        "enabled": True,
        'plot': True,
    },
    "sys_simulation": {
    "matching_type": "next_bar",
    }
  }
}


code="""    

def init(context):
    context.s1 = "000001.XSHE"
    update_universe(context.s1)
    context.fired = False

def before_trading(context):
    pass

def handle_bar(context, bar_dict):
    if not context.fired:
        # order_percent并且传入1代表买入该股票并且使其占有投资组合的100%
        order_percent(context.s1, 1)
        context.fired = True
"""

results = run_code(code, config)

[2017-06-15 14:24:59.671903] INFO: system_log: rqdatac use socket (None, None) 图片描述

获取回测报告

运行完回测后,报告会自动存储到 report 变量中。可以直接通过 report 变量获取当次回测的结果。run_func, run_code函数本身也会返回回测结果,您可以将其保存到指定的变量中。另外 rqalpha 的 mod 的输出会自动存储在 results 变量中。

In[]:report.portfolio.head()
图片描述
In[]:report.keys()
Out[]:dict_keys(['portfolio', 'benchmark_portfolio', 'trades', 'summary', 'stock_positions', 'stock_account'])  
In[]:
import matplotlib.pyplot as plt
report.portfolio.unit_net_value.plot(legend='unit_net_value')
plt.show() 

图片描述

查看运行命令帮助

In[]:%%rqalpha_plus -h
Out[]:
Usage: ipykernel_launcher.py [OPTIONS]

  Start to run a strategy

Options:
  -h, --help                      Show this message and exit.
  -f, --strategy-file PATH
  -s, --start-date DATE
  -e, --end-date DATE
  -sc, --stock-starting-cash FLOAT
  -fc, --future-starting-cash FLOAT
  -bm, --benchmark TEXT
  -mm, --margin-multiplier FLOAT
  -st, --security [stock|future|stock_future]
  -fq, --frequency [1d|1m|tick]
  -rt, --run-type [b|p]
  --resume
  --source-code TEXT
  -l, --log-level [verbose|debug|info|error|none]
  --locale [cn|en]
  --disable-user-system-log       disable user system log
  --extra-vars TEXT               override context vars
  --enable-profiler               add line profiler to profile your strategy
  --config TEXT                   config file path
  -mc, --mod-config TEXT...       mod extra config
  -i, --init-cash FLOAT           [Deprecated]
  -k, --kind [stock|future|stock_future]
                                  [Deprecated]
  --strategy-type [stock|future|stock_future]
                                  [Deprecated]
  --report PATH                   [sys_analyser] save report
  -o, --output-file PATH          [sys_analyser] output result pickle file
  -p, --plot / --no-plot          [sys_analyser] plot result
  --plot-save TEXT                [sys_analyser] save plot to file
  --no-short-stock / --short-stock
                                  [sys_risk] enable stock shorting
  --progress                      [sys_progress]show progress bar
  --signal                        [sys_simulation]exclude match engine
  -sp, --slippage FLOAT           [sys_simulation]set slippage
  -cm, --commission-multiplier FLOAT
                                  [sys_simulation] set commission multiplier
  -me, --match-engine [current_bar|next_bar|last|best_own|best_counterparty]
                                  [Deprecated][sys_simulation] set matching
                                  type
  -mt, --matching-type [current_bar|next_bar|last|best_own|best_counterparty]
                                  [sys_simulation] set matching type
  -rdu, --rqdatad-username TEXT   [ricequant_data] rqdatad username
  -rdpw, --rqdatad-password TEXT  [ricequant_data] rqdatad password
  -rda, --rqdatad-addr TEXT       [ricequant_data] rqdatad server address
  -rdpt, --rqdatad-port TEXT      [ricequant_data] rqdatad server port
  -d, --data-bundle-path PATH     [ricequant_data] data bundle path  

参数调优

In[]:
import os
from rqalpha_plus import run_func
from rqalpha_plus.api import *


config = {
    'extra': {
        'log_level': 'error',
    },
    'base': {
        'start_date': '2015-01-01',
        'end_date': '2016-01-01',
        'benchmark': '000001.XSHE',
        'frequency': '1d',
        'accounts': {
                 'stock': 100000
             }
    },
    'mod': {
        'sys_progress': {
            'enabled': True,
            'show': True,
        },
        'sys_analyser': {
            'enabled': True,
            'plot': True,
        },
        'sys_simulation': {
        'matching_type': 'next_bar',
        }
    }
}



tasks = []
for signal in range(1, 101, 20):
    tasks.append((config, signal))

def run_bt(config, signal):
    def init(context):
        context.s1 = '000001.XSHE'
        context.counter = 0
        context.signal = signal

    def handle_bar(context, bar_dict):
        context.counter += 1
        if context.counter == context.signal:
            order_target_percent(context.s1, 0.8)

    result = run_func(config=config, init=init, handle_bar=handle_bar)
    return result, signal

results = []
for task in tasks:
    result = run_bt(*task)
    results.append({'signal': result[1],
                    'sharpe': result[0]['sys_analyser']['summary']['sharpe']}) 
图片描述 图片描述 图片描述 图片描述 图片描述
In[]:  results_df = pd.DataFrame(results)
#根据 sharpe 进行排序,并且获取对应 signal 值
print(results_df.sort_values('sharpe', ascending=False))  

Out[]:
   sharpe  signal
4   1.694      81
1   1.513      21
0   1.362       1
2   0.593      41
3   0.053      61


其他

读取自己的数据文件

上传在研究平台的文件可以通过函数进行读取,例如 csv 文件可以直接通过 pandas read_csv 等函数读取,其他文件格式可以选择通过 get_file 这一 API 读取。

get_file(file_path)

读取您的私有文件(您的私有文件可以在研究模块中看到)

参数

参数类型注释
file_pathstr相对路径,相对于您的私有的在研究模块空间的根目录的路径

返回

返回文件的原始内容,不做任何decode。

范例

df = get_price('000001.XSHE')
df.to_csv('day_px.csv')
import pandas as pd
from six import StringIO
from six import BytesIO
body = get_file('day_px.csv')
data=pd.read_csv(BytesIO(body))
data

保存自己的数据到csv文件

目前我们支持您在IPython策略研究平台上产生的数据保存成csv文件。只需要使用以下简单代码即可实现保存到csv功能:

import pandas as pd
df = pd.DataFrame(xxxx)
df.to_csv('xxxx.csv')

回到IPython平台的首页,您就会看到您的刚才保存的csv数据文件了。当然,您也可以将其下载到本地保存。


引用自己的Python模块或库

当您看到以上我们预先支持的Python第三方库以后肯定会想是否能够引入自己的Python模块呢?当然是可以的!

  1. 首先需要在IPython研究平台创建一个文本文件,只有Python文件才可以被import导入!

    图片描述
  2. 点击名字,修改为xxx.py, 比如本次例子修改为my_lib.py:

    图片描述
  3. 文件中写入自己的代码,(需要注意,如果调用研究函数需要from rqdatac import * )然后保存:

    图片描述
图片描述
  1. 接着可以在IPython Notebook中import之前创建的my_lib.py并且调用hi函数了:图片描述

使用好这个功能可以很好地复用自己的python模块和代码。


支持的 python 模块列表

模块名简介文档链接
talibTA-Lib是一个被交易员常用的技术分析库,包含了超过150+的技术指标比如MACD,RSI,Bollinger Bands等TA-Lib官网
pandas最流行的Python数据分析库pandas文档
numpynumpy是一个Python的科学计算基础库。numpy文档
scipySciPy是一个Python的数学、科学和工程计算的生态系统库。scipy文档
statsmodelsStatsmodels可以研究数据,构架统计模型和进行统计测试。功能包括:线性回归模型等statsmodels文档
bisectPython的排序模块bisect文档
cmath提供可以对复数计算的数学模块cmath文档
collections提供除了Python内嵌的容器之外的容器种类选择 - dict, list, set 和 tuplecollections文档
sklearnPython的机器学习模块(machine learning)sklearn文档
hmmlearnPython的隐马尔可夫模型(Hidden Markov Models)模块,类似scikit-learn的APIhmmlearn文档
pykalman超级简单的卡尔曼滤波(Kalman Filter), Kalman Smoother和EM模块pykalman文档
cvxoptcvxopt提供了凸优化(convex optimization)的解的python库。cvxopt文档
archarch提供了Univariate volatility模型,Bootstrapping和Multiple comparison proceduresarch文档
dateutildateutil模块提供了对标准的datetime模块的强大的拓展dateutil文档
datetimedatetime文档
functoolsfunctools文档
heapqheapq文档
pywtPyWavelets是一个Python的小波变换的库pywt文档
tensorflowTensor flow is an open source software library for machine intelligence.tensorflow文档
tushare国内流行的开源数据库,燥起来吧,各种数据。tushare网站
pybrainpybrain是一个流行的机器学习库。PyBrain is a modular Machine Learning Library for Python.pybrain文档
theanoPython library that allows you to define, optimize, and evaluate mathematical expressions involvingmulti-dimensional arraystheano文档
gensimRealize unsupervised semantic modelling from plain textgensim文档
jieba“结巴”中文分词jieba文档
pymcBayesian statistical models and fitting algorithms, including Markov chain MonteCarlo.pymc文档
tablesmanaging hierarchical datasets, efficiently and easily cope with extremely large amounts of data.pytables文档
nltk一个流行的人类语言分析库。nltk文档
kerasTheano和Tensorflow的深度学习库。keras文档
requests易用的HTTP库requests文档
bs4beautifulsoup是网页爬取数据的利器!beautifulsoupd文档
lxml处理XML和HTML的最好用的python库lxml中文文档
urllibpython自带的url处理库urllib文档
xgboost速度快效果好的boosting模型xgboost文档
mathmath文档
pytzpytz文档
queuequeue文档
randomrandom文档
rere文档
timetime文档
arrayarray文档
copycopy文档
jsonjson文档
operatoroperator文档
xmlxml文档
matplotlibmatplotlib是一个Python 2D画图库。提供了如同出版质量的画图和跨平台互动式交互环境。matplotlib文档
seaborn基于matplitlib之上的一个画图库,不过提供了高级的API,画图的效果也更棒seaborn文档
bokeh互动式画图库,可以在网页中做展示,目标是提供优美的图画展示,非常推荐!bokeh文档
toyplot可以做动画图渲染toyplot文档
vispy互动式科学计算图形化渲染vispy文档
mpl_toolkitsmatplotlib的绘图工具模块mpl_toolkits文档
plotly强大优美的图表库,支持三种不同类型的图表,包括地图,箱形图和密度图,以及更常见的产品如,条状和线形图plotly文档
fbprophet简单强大的数据预测工具包Prophet使用指南

财务数据文档

快报数据

须使用current_performance 调取

财务快报字段解释
operating_revenue营业收入or主营业务收入(元)
gross_profit主营业务利润(元)
operating_profit营业利润(元)
total_profit利润总额(元)
np_parent_owners归属母公司净利润(元)
net_profit_cut扣除非经常性损益后净利润(元)
net_operate_cashflow经营活动现金流量净额(元)
total_assets总资产(元)
se_without_minority归属母公司股东权益(元)
total_shares总股本(股)
basic_eps基本每股收益
eps_weighted每股收益(加权)(元)
eps_cut_epscut每股收益(扣除)(元)
eps_cut_weighted每股收益(扣除加权)(元)
roe净资产收益率(摊薄)(%)
roe_weighted净资产收益率(加权)(%)
roe_cut净资产收益率(扣除摊薄)(%)
roe_cut_weighted净资产收益率(扣除加权)(%)
net_operate_cashflow_per_share每股经营活动现金流量净额(元)
equity_per_share每股净资产(元)
operating_revenue_yoy主营业务收入同比(%)
gross_profit_yoy主营业务利润同比(%)
operating_profit_yoy营业利润同比(%)
total_profit_yoy利润总额同比(%)
np_parent_minority_pany_yoy归属母公司净利润同比(%)
ne_t_minority_ty_yoy扣除非经常性损益后净利润同比(%)
net_operate_cash_flow_yoy经营活动现金流量净额同比(%)
total_assets_to_opening总资产较期初比(%)
se_without_minority_to_opening归属母公司股东权益较期初比(%)
basic_eps_yoy每股收益(摊薄) 同比(%)
eps_weighted_yoy每股收益(加权) 同比(%)
eps_cut_yoy每股收益(扣除) 同比(%)
eps_cut_weighted_yoy每股收益(扣除加权) 同比(%)
roe_yoy净资产收益率(摊薄) 同比(%)
roe_weighted_yoy净资产收益率(加权) 同比(%)
roe_cut_yoy净资产收益率(扣除摊薄) 同比(%)
roe_cut_weighted_yoy净资产收益率(扣除加权) 同比(%)
net_operate_cash_flow_per_share_yoy每股经营活动现金流量净额同比(%)
net_asset_psto_opening每股净资产较期初比(%)

业绩预告数据

需使用 performance_forecast 调取

业绩预告字段解释
forecast_type整体业绩预期
forecast_description业绩预期时间段描述
forecast_growth_rate_floor最小预期增长幅度
forecast_growth_rate_ceiling最大预期增长幅度
forecast_earning_floor最小预期收入
forecast_earning_ceiling最大预期收入
forecast_np_floor最小预期净利润
forecast_np_ceiling最大预期净利润
forecast_eps_floor最小预期市盈率
forecast_eps_ceiling最大预期市盈率
net_profit_yoy_const_forecast一致预期净利润增幅

基础财务数据

以下表格的字段全部直接采集于三大财报(资产负债表、利润表和现金流量表)。财报本身的来源常见有交易所的定期公告中的常规季报和年报、临时公告中的业绩快报和比较式财务报告以及招股说明书等。该部分数据一定来源于完整的财报,所以一般意义上的业绩快报,业绩预增报告中的数据并不会出现。
财务数据为截止当年累计数值。标记为【来自旧会计准则】的数据同样具有参考价值,这一类通常是由新会计准则通过一定计算逻辑倒推回旧会计准则的字段。用户可根据自己需要选取。

利润表字段(income_statement)释义、备注
revenue*营业总收入:公司经营所取得的收入总额
金融类公司不公布营业总收入,因此revenue指标只能使用类似的一个指标-operating_revenue来参考
operating_revenue*营业收入:公司经营主要业务所取得的收入总额
total_expense*营业总成本
other_operating_revenue*其他经营收入
other_operating_cost*其他经营成本
r_n_d*研发费用
cost_of_goods_sold*营业成本:公司经营主要业务产生的实际成本
sales_tax*营业税
gross_profit*主营业务利润
other_operating_income其他业务利润:公司除主营业务以外其他销售或其他业务取得的收入,扣除其他业务成本、费用、税金后的利润 【该数据来自旧会计准则】
selling_expense*销售费用:指企业在销售产品、自制半成品和工业性劳务等过程中发生的各项费用
operating_expense营业费用:产品营业费用指销售产品、自制半成品和提供劳务过程中所发生的费用 【该数据来自旧会计准则】
ga_expense*管理费用:指企业的行政管理部门为管理和组织经营而发生的各项费用
financing_expense*财务费用: 指企业为筹集生产经营所需资金等而发生的费用,包括利息支出(减利息收入)、汇兑损失(减汇兑收益)以及相关的手续费等
exchange_gains_or_losses*兑汇损益:发生外币交易后期末账户因此调整时,由于采用不同货币,或同一货币不同比价的汇率核算时产生的、按记账本位币折算的差额
asset_depreciation资产减值损失:指资产的可收回金额低于其账面价值
profit_from_operation*营业利润: 企业在其全部销售业务中实现的利润,又称营业利润、经营利润,它包含主营业务利润
invest_income_associates*对联营合营企业的投资收益
fair_value_change_income*公允价值变动净收益
investment_income*投资收益:指企业进行投资所获得的经济利益
subsidy_income补贴收入: 指国有企业得到的各级财政部门给予的专项补贴收入 【该数据来自旧会计准则】
asset_impairment*资产减值准备
interest_income*利息收入
interest_expense*利息支出
non_operating_revenue*营业外收入:指企业发生的与其生产经营无直接关系的各项收入,包括固定资产盘盈、非货币性交易收益、出售无形资产收益等
non_operating_expense*营业外支出:企业发生的与其生产经营无直接关系的各项支出,如固定资产盘亏、债务重组损失、罚款支出、捐赠支出、非常损失等
disposal_loss_on_asset*非流动资产处置净损失:包括固定资产处置损失和无形资产出售损失
non_operating_net_profit营业外收支净额:企业在一定会计期间内经营业务以外所发生的其他各项收入与支出的差额,包括营业外收入和营业外支出两部分
profit_before_tax*利润总额: 指税前利润,也就是企业在所得税前一定时期内经营活动的总成果
income_tax*所得税:以纳税人的所得额为课税对象的各种税收的统称
unrealised_investment_losses未确认投资损失: 是针对合并会计报表而言的,是在母公司合并了资不抵债的子公司后产生的
income_tax_refund所得税返还
net_profit*净利润(收益)是指在利润总额中按规定交纳了所得税以后公司的利润留存,一般也称为税后利润或净收入
net_profit_parent_company*归属于母公司所有者的净利润: 反映在企业合并净利润中,归属于母公司股东(所有者)所有的那部分净利润
retained_profit_at_beginning年初未分配利润:企业未指定特定用途,留待以后年度处理的利润
profit_available_for_distribution可供分配的利润 【该数据来自旧会计准则】
profit_available_for_owner_distribution可供股东分配的利润: 在可分配的利润中扣除按规定提取的法定公积金和法定公益金后即是可供股东分配的利润 【该数据来自旧会计准则】
other_surplus_reserve提取任意盈余公积金:任意盈余公积金是根据公司章程及股东会的决议,从公司盈余中提取的公积金 【该数据来自旧会计准则】
basic_earnings_per_share*基本每股收益:本每股收益是指企业应当按照属于普通股股东的当期净利润,除以发行在外普通股的加权平均数从而计算出的每股收益
other_income*其他综合收益:指企业根据企业会计准则规定未在损益中确认的各项利得和损失扣除所得税影响后的净额
total_income*综合收益总额:反映企业净利润与其他综合收益的合计金额
total_income_parent_company*归属于母公司所有者的综合收益总额
non_recurring_pnl*非经常性损益
net_profit_deduct_non_recurring_pnl*扣除非经常性损益后的净利润
minority_profit*少数股东损益
total_income_minority*归属于少数股东的综合收益总额

资产负债表字段(balance_sheet)释义、备注
financial_asset_held_for_trading*企业为了近期内出售而持有的金融资产。通常情况下,以赚取差价为目的从二级市场购入的股票、债券和基金会分类为交易性金融资产
cash_equivalent*现金及现金等价物
current_investment短期投资(原值):指能够随时变现并且持有时间不准备超过1年的投资。包括对股票、债券、基金等的投资 【该数据来自旧会计准则】
net_current_investment短期投资净额:指企业应当在期末时对短期投资按成本与市价孰低计量,对市价低于成本的差额,应当计提短期投资跌价准备 【该数据来自旧会计准则】
bill_receivable*应收票据:指企业持有的还没有到期、尚未兑现的票据
dividend_receivable*应收股利: 指企业因股权投资而应收取的现金股利以及应收其他单位的利润,不包括应收的股票股利
interest_receivable*应收利息:短期债券投资实际支付的价款中包含的已到付息期但尚未领取的债券利息
accts_receivable应收账款(原值):指企业在正常的经营过程中因销售商品、产品、提供劳务等业务,应向购买单位收取的款项 【该数据来自旧会计准则】
other_accts_receivable其他应收款(原值):是企业除应收票据、应收账款和预付账款以外的各种应收暂付款项 【该数据来自旧会计准则】
bad_debt_reserve*坏账准备:指对应收账款预提的,对不能收回或回收可能性极低的应收账款用来抵销,是应收账款的备抵账户
net_accts_receivable*应收账款净额
prepayment*预付账款:企业因购货和接受劳务,按照合同规定预付给供应单位的款项
prepaid_tax*预缴税金
non_current_asset_due_one_year*一年内到期的非流动资产
inventory*存货: 指企业在日常活动中持有的以备出售的产成品或商品、处在生产过程中的在产品、在生产过程或提供劳务过程中耗用的材料和物料等
net_inventory存货(净额) 【该数据来自旧会计准则】
deferred_expense*待摊费用: 指支出先发生,费用归属后发生的事项,按照时间长短分为短期待摊费用和长期待摊费用
contract_work*工程施工: 工程施工是指按照设计图纸和相关文件的要求,在建设场地上将设计意图付诸实现的测量、作业、检验,形成工程实体建成最终产品的活动
long_term_debt_due_one_year一年内到期的长期债权投资: 一年内到期的长期债权投资是指企业长期投资中,将于一年内到期的长期债权 【该数据来自旧会计准则】
other_current_assets*其他流动资产: 指除货币资金、短期投资、应收票据、应收账款、其他应收款、存货等流动资产以外的流动资产
current_assets*流动资产合计: 指企业可以在一年内或者超过一年的一个营业周期内变现或者耗用的资产
financial_asset_available_for_sale*可供出售金融资产: 指初始确认时即被指定为可供出售的非衍生金融资产,
以及贷款和应收款项、持有至到期投资、交易性金融资产之外的非衍生金融资产
non_current_liability_due_one_year*一年内到期的非流动负债
financial_asset_hold_to_maturity*持有至到期投资: 指企业有明确意图并有能力持有至到期,到期日固定、回收金额固定或可确定的非衍生金融资产
real_estate_investment*投资性房地产: 指为赚取租金或资本增值,或两者兼有而持有的房地产
long_term_equity_investment*长期股权投资(原值): 指企业持有的对其子公司、合营企业及联营企业的权益性投资,
以及企业持有的对被投资单位不具有控制、共同控制或重大影响,且在活跃市场中没有报价
long_term_receivables*长期应收款: 长期应收款是根据长期应收款的账户余额减去未确认融资收益还有一年内到期的长期应收款
long_term_investment长期投资(原值): 指不满足短期投资条件的投资,即不准备在一年或长于一年的经营周期之内转变为现金的投资 【该数据来自旧会计准则】
net_long_term_equity_investment*长期股权投资净额
net_long_term_debt_investment长期债权投资净额【该数据来自旧会计准则】
net_long_term_investment长期投资净额【该数据来自旧会计准则】
cost_fixed_assets固定资产原值【该数据来自旧会计准则】
accumulated_depreciation*累计折旧: "累计折旧"账户属于资产类的备抵调整账户,其结构与一般资产账户的结构刚好相反,贷方登记增加,借方登记减少,余额在贷方
net_val_fixed_assets固定资产净值: 也称为折余价值,是指固定资产原始价值或重置完全价值减去已提折旧后的净额
depreciation_reserve*固定资产减值准备: 指由于固定资产市价持续下跌,或技术陈旧、损坏、长期闲置等原因导致其可收回金额低于账面价值的,
应当将可收回金额低于其账面价值的差额作为固定资产减值准备
net_fixed_assets*固定资产净额: 固定资产原值减累计折旧再减减值准备后的差额
engineer_material*工程物资: 指用于固定资产建造的建筑材料,如钢材、水泥、玻璃等。在资产负债表中并入在建工程项目
construction_in_progress*在建工程: 指企业固定资产的新建、改建、扩建,或技术改造、设备更新和大修理工程等尚未完工的工程支出
fixed_asset_to_be_disposed*固定资产清理: 指企业因出售、报废和毁损等原因转入清理的固定资产价值及其在清理过程中所发生的清理费用和清理收入等
capitalized_biological_assets*生产性生物资产: 指为产出农产品、提供劳务或出租等目的而持有的生物资产,包括经济林、薪炭林、产畜和役畜等
oil_and_gas_assets*油气资产: 指油气开采企业所拥有或控制的井及相关设施和矿区权益。油气资产属于递耗资产
total_fixed_assets固定资产合计: 指核算使用期限超过一年,单位价值在规定标准以上,并且在使用过程中保持原有物质形态的资产 【该数据来自旧会计准则】
intangible_assets*无形资产: 指企业拥有或者控制的没有实物形态的可辨认非货币性资产
impairment_intangible_assets*开发支出: 反映企业开发无形资产过程中能够资本化形成无形资产成本的支出部分
goodwill*商誉: 指能在未来期间为企业经营带来超额利润的潜在经济价值,
或一家企业预期的获利能力超过可辨认资产正常获利能力(如社会平均投资回报率)的资本化价值
long_term_deferred_expenses*长期待摊费用: 指企业已经支出,但摊销期限在1年以上(不含1年)的各项费用
total_intangible_and_other_assets无形资产及其他资产合计【该数据来自旧会计准则】
deferred_income_tax_assets*递延所得税资产: 指对于可抵扣暂时性差异,以未来期间很可能取得用来抵扣可抵扣暂时性差异的应纳税所得额为限确认的一项资产
other_non_current_assets*其他非流动资产: 指除资产负债表上所列非流动资产项目以外的其他周转期超过1年的长期资产
non_current_assets*非流动资产合计
total_assets*总资产: 指企业拥有或可控制的能以货币计量的经济资源,包括各种财产、债权和其他权利
short_term_loans*短期借款: 还款期一年以下,企业用来维持正常的生产经营所需的资金或为抵偿某项债务而向银行或其他金融机构等外单位借入的资金
financial_liabilities*交易性金融负债: 交易性金融负债,指企业采用短期获利模式进行融资所形成的负债,比如应付短期债券
notes_payable*应付票据: 应付票据是指企业购买材料、商品和接受劳务供应等而开出、承兑的商业汇票,包括商业承兑汇票和银行承兑汇票。
在我国应收票据、应付票据仅指"商业汇票",包括"银行承兑汇票"和"商业承兑汇票"两种,属于远期票据,付款期一般在1个月以上,6个月以内
accts_payable*应付账款: 应付帐款是指企业因购买材料、物资和接受劳务供应等而付给供货单位的帐款
advance_from_customers*预收账款: 预收账款指买卖双方协议商定,由购货方预先支付一部分货款给供应方而发生的一项负债
payroll_payable*应付职工薪酬: 应付职工薪酬是指企业为获得职工提供的服务而给予各种形式的报酬以及其他相关支出
walfare_payable应付福利费: 应付福利费是企业准备用于企业职工个人福利方面的未付费用 【该数据来自旧会计准则】
dividend_payable*应付股利: 应付股利是指企业根据年度利润分配方案,确定分配的股利
tax_payable*应交税费: 应交税费是指企业根据在一定时期内取得的营业收入、实现的利润等,按照现行税法规定,采用一定的计税方法计提的应交纳的各种税费
interest_payable*应付利息: 应付利息,是指金融企业根据存款或债券金额及其存续期限和规定的利率,按期计提应支付给单位和个人的利息
other_fees_payable*其他应交款: 指企业需要向国家缴纳的各项款项中除了税金以外的各种应交款项,主要包括教育附加费、车辆购置附加费等。
other_payable*其他应付款: 该科目只核算企业应付其他单位或个人的零星款项,如应付经营租入固定资产和包装物的租金、存入保证金等
short_term_debt*应付短期债券: 应付短期债券是企业筹资发行一年以下期限的债券,属于流动负债
accrued_expense*预提费用: 预提费用是指企业按规定预先提取但尚未实际支付的各项费用。 就是企业还没支付,但应该要支付的,要记入负债
estimated_liabilities*预计负债: 预计负债是因或有事项可能产生的负债
deferred_income*递延收益: 递延收益是指尚待确认的收入或收益,也可以说是暂时未确认的收益,它是权责发生制在收益确认上的运用
long_term_liabilities_due_one_year*一年内到期的长期负债: 一年内到期的长期负债是指反映企业长期负债中自编表日起一年内到期的长期负债 【该数据来自旧会计准则】
other_current_liabilities*其他流动负债: 指不能归属于短期借款,应付短期债券券,应付票据,应付帐款,应付所得税,其他应付款,预收账款这七款项目的流动负债。
但以上各款流动负债,其金额未超过流动负债合计金额百分之五者,得并入其他流动负债内
current_liabilities*流动负债合计: 流动负债合计是指企业在一年内或超过一年的一个营业周期内需要偿还的债务
long_term_loans*长期借款: 长期借款是指企业从银行或其他金融机构借入的期限在一年以上(不含一年)的借款
bond_payable*应付债券: 公司为筹集长期资金而实际发行的债券及应付的利息
long_term_payable*长期应付款: 指企业除了长期借款和应付债券以外的长期负债,包括应付引进设备款、应付融资租入固定资产的租赁费等
grants_received*专项应付款: 企业接受国家作为企业所有者拨入的具有专门用途的款项所形成的不需要以资产或增加其他负债偿还的负债
housing_revolving_funds*住房周转金: 房周转金是指企业从各种规定来源取得的、用于职工住房各方面开支的,除公益金、住房折旧和住房公积金以外的住房基金
other_long_term_liabilities其他长期负债: 反映除长期债券以外的其他长期负债 【该数据来自旧会计准则】
long_term_liabilities长期负债:又称为非流动负债,是会计分录的内容,是指期限超过1年的债务 【该数据来自旧会计准则】
deferred_income_tax_liabilities*递延所得税负债: 指根据应纳税暂时性差异计算的未来期间应付所得税的金额
other_non_current_liabilities*其他非流动负债: 反映企业除长期借款、应付债券等项目以外的其他非流动负债
non_current_liabilities*非流动负债合计: 指偿还期在一年或者超过一年的一个营业周期以上的债务。非流动负债的主要项目有长期借款和应付债券
total_liabilities*负债合计: 指企业所承担的能以货币计量,将以资产或劳务偿还的债务
paid_in_capital*实收资本(或股本): 指企业的投资者按照企业章程或合同、协议的约定,实际投入企业的资本
capital_reserve*资本公积金: 企业收到的投资者的超出其在企业注册资本所占份额,以及直接计入所有者权益的利得和损失等 【该数据来自旧会计准则】
surplus_reserve*盈余公积: 指企业从税后利润中提取形成的、存留于企业内部、具有特定用途的收益积累
statutory_reserve公益金: 公益金专门用于企业职工福利设施的支出,如购建职工宿舍、托儿所、理发室等方面的支出 【该数据来自旧会计准则】
unrealised_investment_loss未确认的投资损失: 因母公司和子公司确认子公司损益方式不同而在合并报表中使用的一个调节性科目
undistributed_profit*未分配利润: 未分配利润是企业未作分配的利润。它在以后年度可继续进行分配,在未进行分配之前,属于所有者权益的组成部分
equity_parent_company*归属于母公司所有者权益合计: 母公司股东权益反映的是母公司所持股份部分的所有者权益数
total_equity*股东权益合计: 所有者权益合计是指企业投资人对企业净资产的所有权
equity_preferred_stock*权益部分的优先股
minority_interest*少数股东权益: 少数股东损益是一个流量概念,是指公司合并报表的子公司其它非控股股东享有的损益
total_equity_and_liabilities*负债和股东权益总计
provision*预计负债(长期负债): 预计负债是因或有事项可能产生的负债
deferred_revenue*递延收益(长期负债): 递延收益是指尚待确认的收入或收益,也可以说是暂时未确认的收益,它是权责发生制在收益确认上的运用

现金流量表字段(cash_flow_statement)释义、备注
cash_received_from_sales_of_goods*销售商品、提供劳务收到的现金: 公司销售商品、提供劳务实际收到的现金
refunds_of_taxes*收到的税费返还: 公司按规定收到的增值税、所得税等税费返还额
cash_from_other_operating_activities*收到其它与经营活动有关的现金:公司除了上述各项目外,收到的其他与经营活动有关的现金,
如捐赠现金收入、罚款收入、流动资产损失中由个人赔偿的现金收入等
cash_from_operating_activities*经营活动现金流入小计
cash_paid_for_goods_and_services*购买商品、接受劳务支付的现金: 公司购买商品、接受劳务实际支付的现金
assets_depreciation_reserves*资产减值准备
fixed_asset_depreciation*固定资产折旧
exchange_rate_change_effect汇率变动对现金及现金等价物的影响
cash_equivalent_increase现金及现金等价物净增加额
intangible_asset_amortization*无形资产摊销
deferred_expense_amort*长期待摊费用摊销
cash_paid_for_employee*支付给职工以及为职工支付的现金: 公司实际支付给职工,以及为职工支付的现金,
包括本期实际支付给职工的工资、奖金、各种津贴和补贴等
cash_paid_for_taxes*支付的各项税费: 反映企业按规定支付的各种税费,包括本期发生并支付的税费,以及本期支付以前各期发生的税费和预交的税金等
cash_paid_for_other_operation_activities*支付其他与经营活动有关的现金: 反映企业支付的其他与经营活动有关的现金支出,
如罚款支出、支付的差旅费、业务招待费的现金支出、支付的保险费等
cash_paid_for_operation_activities*经营活动现金流出小计
cash_flow_from_operating_activities*经营活动产生的现金流量净额: 指企业投资活动和筹资活动以外的所有交易活动和事项的现金流入和流出量
cash_received_from_disposal_of_investment收回投资所收到的现金: 公司出售、转让或到期收回除现金等价物以外的短期投资、长期股权投资而收到的现金,
已经收回长期债权投资本金而收到的现金、出售投资所收到的现金、处置子公司收到的现金 【该数据来自旧会计准则】
cash_received_from_dividend分得股利或利润所收到的现金: 公司因股权性投资而收到的现金股利,
以及从子公司、联营公司和合营公司分回利润收到的现金 【该数据来自旧会计准则】
cash_received_from_interest取得债券利息收入所收到的现金: 公司因债权性投资而收到的利息 【该数据来自旧会计准则】
cash_received_from_disposal_of_asset*处置固定资产、无形资产和其他长期资产收回的现金净额: 公司处置固定资产、无形资产和其他长期资产收回的现金
cash_received_from_other_investment_activities*收到其他与投资活动有关的现金: 公司除了上述各项以外,收到的其他与投资活动有关的现金
cash_received_from_investment_activities*投资活动现金流入小计
cash_paid_for_asset*购建固定资产、无形资产和其他长期资产所支付的现金
cash_paid_to_acquire_investment*投资支付的现金: 反映企业进行权益性投资和债权性投资支付的现金,
包括企业取得的除现金等价物以外的股票投资和债券投资等支付的现金等
cash_paid_for_other_investment_activities*支付其他与投资活动有关的现金: 反映企业除了上述各项以外,支付的其他与投资活动有关的现金流出
cash_paid_for_investment_activities*投资活动产生的现金流出小计
cash_flow_from_investing_activities*投资活动产生的现金流量净额:指企业长期资产的购建和对外投资活动(不包括现金等价物范围的投资)的现金流入和流出量
cash_received_from_equity_investors吸收权益性投资所收到的现金: 公司子公司吸收少数股东权益性投资收到的现金额 【该数据来自旧会计准则】
cash_received_from_debt_investors发行债券所收到的现金:公司发行债券实际收到的现金(发行收入减去支付的佣金等发行费用后的净额) 【该数据来自旧会计准则】
cash_received_from_investors*吸收投资收到的现金:反映企业收到的投资者投入现金,包括以发行股票、债券等方式筹集的资金实际收到的净额
cash_received_from_financial_institution_borrows*取得借款收到的现金: 公司向银行或其他金融机构等借入的资金
cash_received_from_other_financing_activities*收到其他与筹资活动有关的现金:反映企业收到的其他与筹资活动有关的现金流入,如接受现金捐赠等
cash_received_from_financing_activities*筹资活动现金流入小计
cash_paid_for_debt*偿还债务支付的现金:公司以现金偿还债务的本金,包括偿还银行或其他金融机构等的借款本金、偿还债券本金等
cash_paid_for_dividend_and_interest*分配股利、利润或偿付利息支付的现金:反映企业实际支付给投资人的利润以及支付的借款利息、债券利息等
cash_paid_for_other_financing_activities*支付其他与筹资活动有关的现金:反映企业支付的其他与筹资活动有关的现金流出
cash_paid_to_financing_activities*筹资活动现金流出小计
cash_flow_from_financing_activities*筹资活动产生的现金流量净额:指企业接受投资和借入资金导致的现金流入和流出量
net_cash_deal_from_sub*处置子公司及其他营业单位收到的现金净额
net_cash_payment_from_sub*取得子公司及其他营业单位支付的现金净额
net_inc_cash_and_equivalents*现金及现金等价物净增加额

每股财务指标

财务指标表字段(financial_indicator)解释公式、备注
earnings_per_share基本每股收益:
指企业应当按照属于普通股股东的当期净利润
除以发行在外普通股的加权平均数从而计算出的每股收益
fully_diluted_earnings_per_share稀释每股收益;
以基本每股收益为基础,
假设企业所有发行在外的稀释性潜在普通股均已转换为普通股
diluted_earnings_per_share每股收益期末股本摊薄是指企业应当按照属于普通股股东的当期净利润,
除以期末发行在外的股本
adjusted_earnings_per_share每股收益扣除/基本是指净利润扣除了非经常损益后得到的每股收益
adjusted_fully_diluted_earnings_per_share每股收益扣除/稀释是指净利润扣除了非经常损益后得到的每股收益
book_value_per_share用公司的净资产(包括注册资金、各种公积金、累积盈余等 ,不包括债务)除以总股本,
得到的就是每股的净值
operating_cash_flow_per_share每股经营现金流量是反映每股发行在外的普通股票所平均占有的现金流量 经营活动产生现金流量净额 / 年度末普通股总股本
operating_total_revenue_per_share每股营业总收入
operating_revenue_per_share每股营业收入
capital_reserve_per_share资本公积金是指从公司的利润以外的收入中提取的一种公积金 每股资本公积金=资本公积金/总股本
earned_reserve_per_share盈余公积金是指企业按照规定从税后利润中提取的积累资金 每股盈余公积金=盈余公积金/总股本
undistributed_profit_per_share未分配利润是企业留待以后年度进行分配的结存利润 每股未分配利润=企业当期未分配利润总额/总股本
inc_book_per_share每股净资产(相对年初增长率)
retained_earnings_per_share每股留存收益
ebit_per_share股息税前利润:不扣除利息也不扣除所得税的利润,
也就是在不考虑利息的情况下在交所得税前的利润,除以总股本
free_cash_flow_company_per_share企业自由现金流量是指扣除税收、
必要的资本性支出和营运资本增加后,
能够支付所有的清偿权者(债权人和股东)的现金流量
free_cash_flow_equity_per_share股权自由现金流量是企业支付所有营运费用、
再投资支出、所得税和净债务支付
(即利息、本金支付减发行新债务的净额)后,
可分配给企业股东的剩余现金流量
inc_earnings_per_share基本每股收益(同比增长率)
inc_diluted_earnings_per_share稀释每股收益(同比增长率)
dividend_per_share每股股利是公司股利总额与公司流通股数的比值 当期发放的现金股利总额 / 总股本

财务指标——营运效率

财务指标表字段(financial_indicator)解释公式、备注
return_on_equity净资产收益率(平均):是衡量上市公司盈利能力的重要指标 净资产收益率=净利润/平均净资产×100%,
平均净资产=(年初净资产+年末净资产)/2
return_on_equity_weighted_average净资产收益率(加权):是衡量上市公司盈利能力的重要指标 净利润 / 加权平均净资产 × 100%
return_on_equity_diluted净资产收益率(摊薄):是衡量上市公司盈利能力的重要指标净资产收益率=净利润/期末净资产×100%,
inc_cash_from_operations经营活动产生的现金流量净额(同比增长率)
inc_return_on_equity净资产收益率(摊薄)(同比增长率)
inc_total_asset资产总计(相对年初增长率)
adjusted_return_on_equity_average净资产收益率ROE(扣除/平均): 是衡量上市公司盈利能力的重要指标(净利润 - 非经常损益)/平均净资产×100%, 平均净资产=(年初净资产+年末净资产)/ 2
adjusted_return_on_equity_weighted_average净资产收益率ROE(扣除/加权): 是衡量上市公司盈利能力的重要指标扣除净资产收益率=(净利润 - 非经常损益)/加权平均资产×100%
adjusted_return_on_equity_diluted净资产收益率ROE(扣除/摊薄): 是衡量上市公司盈利能力的重要指标扣除净资产收益率=(净利润 - 非经常损益)/期末净资产×100%
return_on_asset总资产报酬率ROA: 是指企业息税前利润与平均总资产之间的比率 总资产报酬率=(利润总额+利息支出)/平均总资产×100% 
其中,平均总资产=(期初资产总额+期末资产总额)/2
return_on_asset_net_profit总资产净利率ROA: 总资产净利率是指公司净利润与平均资产总额的百分比 总资产净利率=净利润/平均资产总额×100% 平均资产总额=(期初资产总额+期末资产总额)÷2
return_on_invested_capital投入资本回报率ROIC: 是指投出和/或使用资金与相关回报
(回报通常表现为获取的利息和/或分得利润)之比例
annual_return_on_equity年化净资产收益率
annual_return_on_asset年化总资产报酬率
annual_return_on_asset_net_profit年化总资产净利率
account_payable_turnover_rate应付账款周转率是指年内应付账款的周转率 (主营业务成本+期末存货成本 - 期初存货成本)
/平均应付账款×100%
account_payable_turnover_days应付账款周转天数应付账款周转天数 = 365 / 应付账款周转率
account_receivable_turnover_days应收账款周转率是指年内应付账款的周转次数 365 / 应收账款周转率
inventory_turnover存货周转率是企业一定时期主营业务成本与平均存货余额的比率销售(营业)成本 / 平均存货
account_receivable_turnover_rate应收账款周转率是指在一定时期内
(通常为一年)应收账款转化为现金的平均次数
当期销售净收入
/[(期初应收帐款余额 + 期末应收帐款余额)/ 2]
du_return_on_equity净资产收益率ROE(杜邦分析):
总资产周转率是指企业在一定时期内销售(营业)收入同平均资产总额的比值
净利率 x 总资产周转率 x 权益乘数
du_equity_multiplier权益乘数(杜邦分析)
du_asset_turnover_ratio总资产周转率(杜邦分析)
current_asset_turnover流动资产周转率是销售收入与流动资产平均余额的比率 销售收入净额
/
[(期初流动资产 + 期末流动资产) / 2]
fixed_asset_turnover固定资产周转率又称为固定资产利用率,
是指企业年产品销售收入净额与固定资产平均净值的比率
销售收入净额/固定资产平均净值
total_asset_turnover总资产周转率:
企业在一定时期内销售(营业)收入同平均资产总额的比值
销售收入 / 资产总额

财务指标——盈利能力

财务指标表字段(financial_indicator)解释公式、备注
net_profit_margin销售净利率: 销售净利率,是净利润占销售收入的百分比,
表示销售收入的盈利水平
(净利润 / 销售收入)×100%
gross_profit_margin销售毛利率: 销售毛利率是指毛利占销售收入的百分比,
其中毛利是销售收入与销售成本的差额
(销售收入-销售成本)/ 销售收入×100%
cost_to_sales销售成本率:
与毛利率相对应,销售成本率是用以反映企业每元销售收入所需的成本支出
销售成本 / 销售收入净额×100%
net_profit_to_revenue净利润/营业总收入:
与毛利率相对应,销售成本率是用以反映企业每元销售收入所需的成本支出
净利润 / 营业总收入
profit_from_operation_to_revenue营业利润/营业总收入:
与毛利率相对应,销售成本率是用以反映企业每元销售收入所需的成本支出
营业利润 / 营业总收入
depreciation_and_amortization*当期计提折旧与摊销
ebit_to_revenue息税前利润/营业总收入: 与毛利率相对应,销售成本率是用以反映企业每元销售收入所需的成本支出息税前利润 / 营业总收入
expense_to_revenue营业总成本/营业总收入:
与毛利率相对应,销售成本率是用以反映企业每元销售收入所需的成本支出
营业总成本 / 营业总收入
operating_profit_to_profit_before_tax经营活动净收益/利润总额:
与毛利率相对应,销售成本率是用以反映企业每元销售收入所需的成本支出
经营活动净收益 / 利润总额
invesment_profit_to_profit_before_tax价值变动净收益/利润总额:
与毛利率相对应,销售成本率是用以反映企业每元销售收入所需的成本支出
价值变动净收益 / 利润总额
non_operating_profit_to_profit_before_tax营业外收支净额/利润总额:
与毛利率相对应,销售成本率是用以反映企业每元销售收入所需的成本支出
营业外收支净额 / 利润总额
income_tax_to_profit_before_tax所得税/利润总额:
与毛利率相对应,销售成本率是用以反映企业每元销售收入所需的成本支出
所得税 / 利润总额
adjusted_profit_to_total_profit扣除非经常损益后的净利润/净利润:
与毛利率相对应,销售成本率是用以反映企业每元销售收入所需的成本支出
扣除非经常损益后的净利润 / 净利润
inc_revenue营业总收入(同比增长率)
inc_operating_revenue营业收入(同比增长率)
inc_gross_profit营业利润(同比增长率)
inc_profit_before_tax利润总额(同比增长率)
inc_net_profit归属母公司股东的净利润(同比增长率)
inc_adjusted_net_profit归属母公司股东的净利润 - 扣除非经常损益(同比增长率)
du_profit_margin净利润/利润总额
du_return_on_sales息税前利润/营业总收入:
总资产周转率是指企业在一定时期内销售(营业)收入同平均资产总额的比值
EBIT / 营业总收入
non_recurring_profit_and_loss非经常性损益是指公司发生的与生产经营无直接联系,
以及虽与生产经营相关,但由于其性质、金额或发生频率,
影响了真实、公允的评价公司当期经营成果和获利能力的各项收入、支出
adjusted_net_profit扣除非经常性损益后的净利润净利润 - 非经常性损益
ebit*息税前利润EBIT:
是扣除利息、所得税之前的利润
净利润+所得税+利息
ebitda*息税折旧摊销前利润EBITDA: 是企业一定时期的息税前利润与折旧和摊销之和
retained_earnings留存收益

财务指标——资本结构

财务指标表字段(financial_indicator)解释公式、备注
debt_to_asset_ratio资产负债率: 资产负债率是企业负债总额占企业资产总额的百分比 (负债总额 / 资产总额)×100%
interest_bearing_debt带息债务: 企业的带息负债
net_debt净债务
non_interest_bearing_current_debt无息流动负债
non_interest_bearing_non_current_debt无息非流动负债
equity_multiplier权益乘数: 权益乘数又称股本乘数,
是指资产总额相当于股东权益的倍数
资产总额/股东权益总额 即=1/(1-资产负债率).
current_asset_to_total_asset流动资产 / 总资产
non_current_asset_to_total_asset非流动资产 / 总资产
interest_bearing_debt_to_capital带息债务 / 全部投入资本
current_debt_to_total_debt流动负债 / 负债合计
non_current_debt_to_total_debt非流动负债 / 负债合计
current_ratio流动比率: 流动比率也称营运资金比率(Working Capital Ratio)
或真实比率(Real Ratio),是指企业流动资产与流动负债的比率
流动资产 / 流动负债
quick_ratio速动比率: 速动比率是指速动资产对流动负债的比率 速动资产/流动负债
速动资产=流动资产 - 存货 - 预付账款 - 待摊费用
super_quick_ratio保守速动比率: 是现金、短期证券投资和应收账款净额三项之和,再除以流动负债的比值 (现金+ 短期证券+ 应收账款净额) / 流动负债 ×100%
debt_to_equity_ratio产权比率是负债总额与所有者权益总额的比率 负债总额 / 所有者权益总额×100%
equity_to_debt_ratio产权比率是负债总额与所有者权益总额的比率归属母公司股东的权益 / 负债合计
equity_to_interest_bearing_debt归属母公司股东的权益/带息债务:产权比率是负债总额与所有者权益总额的比率归属母公司股东的权益 / 带息债务
ebit_to_debt息税折旧摊销前利润/负债合计: 产权比率是负债总额与所有者权益总额的比率息税折旧摊销前利润 / 负债合计
ocf_to_debt经营活动产生的现金流量净额/负债合计: 产权比率是负债总额与所有者权益总额的比率经营活动产生的现金流量净额 / 负债合计
ocf_to_interest_bearing_debt经营活动产生的现金流量净额/带息债务: 产权比率是负债总额与所有者权益总额的比率经营活动产生的现金流量净额 / 带息债务
ocf_to_current_ratio经营活动产生的现金流量净额/流动负债: 产权比率是负债总额与所有者权益总额的比率经营活动产生的现金流量净额 / 流动负债
ocf_to_net_debt经营活动产生的现金流量净额/净债务: 产权比率是负债总额与所有者权益总额的比率经营活动产生的现金流量净额 / 净债务
time_interest_earned_ratio已获利息倍数(EBIT/利息费用):
指企业息税前利润与利息费用之比
已获利息倍数(EBIT / 利息费用)
long_term_debt_to_working_capital利息保障倍数是指企业息税前利润与利息费用之比,又称已获利息倍数,
用以衡量偿付借款利息的能力,它是衡量企业支付负债利息能力的指标
长期债务 / 营运资金
invested_capital全部投入资本:
投入资本是指所有者在企业注册资本的范围内实际投入的资本,
是指出资人作为资本实际投入企业的资金数额
working_capital营运资本 流动资产 - 流动负债
net_working_capital净营运资本 流动资产 - 货币资金 - 无息流动负债
tangible_asset_to_debt有形净值/净债务(%)
tangible_asset_to_interest_bearing_debt有形净值/带息债务(%)

财务指标——估值

财务指标表字段(financial_indicator)解释公式、备注
ev企业价值1: 评估公司价值的指标 含货币资金;股权价值 + 带息债务
ev_2企业价值2: 评估公司价值的指标 股权价值 + 带息债务 - 货币资金
ev_to_ebitda企业倍数: 评估公司价值的指标 企业价值 / 息税折旧摊销前利润
fcff*企业自由现金流量FCFF
fcfe*股权自由现金流量FCFE
股票估值指标表字段(eod_derivative_indicator)解释计算逻辑
pe_ratio市盈率: 指公司当时股价与每股盈利的比率,
股价一般以最新收盘价
总市值/连续四个季度的归属母公司净利润;
连续四季度:当期+(上年年报-上年同期)
pcf_ratio市现率: 市现率是股票价格与每股现金流量的比率 总市值/去年经营现金流量净额
pb_ratio市净率: 市净率指的是每股股价与每股净资产的比率 总市值/最新净资产
market_cap总市值1: 总市值是指在某特定的时间内,
交易所挂牌交易全部证券(以总股本计)按当时价格计算的证券总值
指定证券收盘价 x 总股本 x 交易币种兑人民币汇率
a_share_market_valA股市值1: A股市值(含限售股) 以A股合计计算
a_share_market_val_2A股市值2: A股市值(不含限售股) 以流通A股计算
dividend_yield股息率: 股息率是股息与股票价格之间的比率 股息率=∑每股股利(税前) / 每股市价
pe_ratio_1市盈率1: 估值比率,指公司当时股价与每股盈利的比率,
股价一般以最新收盘价
总市值/最近年报归属母公司股东的净利润
pe_ratio_2市盈率2: 估值比率,指公司当时股价与每股盈利的比率,
股价一般以最新收盘价
总市值/最近四季度归属母公司股东的净利润;
最近四季度:最近季度 x 比例
peg_ratioPEG值: PEG指标即市盈率相对盈利增长比率 市盈率 / 公司未来1年的每股收益增长率G;
G根据最近四季度净利润较上一年度净利润的增长率确定
pcf_ratio_1市现率1: 市现率是股票价格与每股现金流量的比率 总市值 / 连续四季度经营活动产生的现金流量;
连续四季度:当期+(上年年报-上年同期)
pcf_ratio_2市现率2: 市现率是股票价格与每股现金流量的比率 总市值 / 最近四季度现金及现金等价物净增加额;
最近四季度:最近季度 x 比例
ps_ratio市销率: 市销率为股票价格与每股销售收入之比,
市销率越小,通常被认为投资价值越高
总市值 / 最近四季度的营业总收入。
最近四季度:最近季度 x 比例。
enterprise_value企业价值1: 评估公司价值的指标 含货币资金;股权价值 + 带息债务
enterprise_value_2企业价值2: 评估公司价值的指标 股权价值 + 带息债务 - 货币资金
股票估值指标表字段(eod_derivative_indicator)解释计算逻辑
pe_ratio市盈率: 指公司当时股价与每股盈利的比率,
股价一般以最新收盘价
总市值/连续四个季度的归属母公司净利润;
连续四季度:当期+(上年年报-上年同期)
pcf_ratio市现率: 市现率是股票价格与每股现金流量的比率 总市值/去年经营现金流量净额
pb_ratio市净率: 市净率指的是每股股价与每股净资产的比率 总市值/最新净资产
market_cap总市值1: 总市值是指在某特定的时间内,
交易所挂牌交易全部证券(以总股本计)按当时价格计算的证券总值
指定证券收盘价 x 总股本 x 交易币种兑人民币汇率
a_share_market_valA股市值1: A股市值(含限售股) 以A股合计计算
a_share_market_val_2A股市值2: A股市值(不含限售股) 以流通A股计算
dividend_yield股息率: 股息率是股息与股票价格之间的比率 股息率=∑每股股利(税前) / 每股市价
pe_ratio_1市盈率1: 估值比率,指公司当时股价与每股盈利的比率,
股价一般以最新收盘价
总市值/最近年报归属母公司股东的净利润
pe_ratio_2市盈率2: 估值比率,指公司当时股价与每股盈利的比率,
股价一般以最新收盘价
总市值/最近四季度归属母公司股东的净利润;
最近四季度:最近季度 x 比例
peg_ratioPEG值: PEG指标即市盈率相对盈利增长比率 市盈率 / 公司未来1年的每股收益增长率G;
G根据最近四季度净利润较上一年度净利润的增长率确定
pcf_ratio_1市现率1: 市现率是股票价格与每股现金流量的比率 总市值 / 连续四季度经营活动产生的现金流量;
连续四季度:当期+(上年年报-上年同期)
pcf_ratio_2市现率2: 市现率是股票价格与每股现金流量的比率 总市值 / 最近四季度现金及现金等价物净增加额;
最近四季度:最近季度 x 比例
ps_ratio市销率: 市销率为股票价格与每股销售收入之比,
市销率越小,通常被认为投资价值越高
总市值 / 最近四季度的营业总收入。
最近四季度:最近季度 x 比例。
enterprise_value企业价值1: 评估公司价值的指标 含货币资金;股权价值 + 带息债务
enterprise_value_2企业价值2: 评估公司价值的指标 股权价值 + 带息债务 - 货币资金

滚动财务数据(TTM)

TTM数据是一个滚动概念,每个季度都会不同。虽然它的起始点会发生变化,但却始终包括有四个不同的季节,因此弥补了上市公司季节性的客观差异所造成的影响:

滚动利润表字段(income_statement_TTM)字段名
financial_expenseTTM*财务费用
administration_expenseTTM*行政费用
np_parent_company_ownersTTM*归属于母公司的净利润
ni_from_value_changeTTM*价值变动净收益
ni_from_operatingTTM*经营活动净收益
net_profitTTM*净利润
total_profitTTM*利润总额
gross_profitTTM*毛利
ebitTTM*息税前利润
operating_expenseTTM*经营费用
operating_costTTM*经营成本
operating_profitTTM*经营利润
operating_revenueTTM*经营收入
non_operating_net_incomeTTM*非经营性净利润
operating_payoutTTM*营业支出
total_operating_costTTM*经营总成本
total_operating_revenueTTM*经营总收入
asset_impairment_lossTTM*资产减值损失

滚动现金流量表字段(cash_flow_statement_TTM)字段名
net_finance_cashflowTTM*融资净现金流
net_operate_cashflowTTM*运营净现金流
net_invest_cashflowTTM*投资净现金流
net_cashflowTTM*现金净流量
sale_service_render_cashTTM*销售商品提供劳务收到的现金

滚动财务指标表字段(financial_indicator_TTM)字段名释义
financial_expense_rateTTM财务费用率财务费用/营业总收入(%)。
invest_associates_inc_to_tpTTM联营公司收益率对联营合营公司投资收益/利润总额(%)
admin_expense_rateTTM管理费率管理费用/营业总收入(%)
value_change_ni_to_tpTTM价值变动净收益率价值变动净收益/利润总额(%)
no_cf_to_operating_niTTM经营活动现金流净流量与经营活动净收益比经营活动产生的现金流量净额/经营活动净收益(%)
cash_rate_of_salesTTM经营活动现金流净流量与收入比经营活动产生的现金流量净额/营业收入(%)
operating_mi_to_tpTTM经营活动净收益与总利润比经营活动净收益(TTM)/利润总额(TTM)*100%
net_profit_to_total_operating_revenueTTM净利润率含少数股东损益的净利润(TTM)/营业收入(TTM)*100%
return_on_equityTTM总权益净利率(归属于母公司的净利润(TTM)2/(期初归属于母公司的股东权益+期末归属于母公司的股东权益)100%
ebit_to_total_revenueTTM息税前利润率息税前利润/营业总收入(%)
operating_expense_rateTTM经营费率销售费用/营业总收入(%)
net_profit_ratioTTM净利润率销售净利率(%)
gross_income_ratioTTM毛利润率[营业收入(TTM)-营业成本(TTM)]/营业收入(TTM)*100%。
period_costs_rateTTM期间费率[营业费用(TTM)+管理费用(TTM)+财务费用(TTM)]/营业收入(TTM))*100%
sale_service_cash_to_operating_revenueTTM主营现金流率销售商品提供劳务收到的现金(TTM)/营业收入(TTM)*100%。
operating_profit_to_total_revenueTTM营业利润率营业利润(TTM)/营业总收入(TTM)*100%
net_non_operating_income_to_revenueTTM营业外利润率营业外收支净额/利润总额(%)
total_operating_cost_to_total_operating_revenueTTM营业成本率营业总成本/营业总收入(%)
asset_impair_loss_to_total_operating_revenueTTM资产减值损失率资产减值损失(TTM)/营业总收入(TTM)*100%
return_on_asset_ebitTTM总资产净利率(税前)息税前利润(TTM)/总资产(MRQ)*100%
return_on_assetTTM总资产净利率含少数股东损益的净利润(TTM)/总资产(MRQ)*100%, MRQ - Most Recent Quarter
operating_cashflow_per_shareTTM每股经营活动产生的现金流量净额直接取公司定期报告披露数据;若无披露,则,为“经营活动产生的现金流量净额/期末总股本”。
cashflow_per_shareTTM每股现金及现金流现金及现金等价物净增加额/期末总股本
operating_revenue_per_shareTTM每股收入营业总收入/该报告期期末总股本
eps_belongs_to_parentTTM每股归属母公司净利润归属于母公司的净利润(TTM)/期末总股本
epsTTM每股净利润最近四个季度净利润之和/期末股本,分母取这次调整后的股本。

已废弃字段

因会计准则变更,字段使用率低,数据收集计算困难或不稳定,以下字段将不再提供和维护。

废弃字段常量表名称、备注
sales_discountincome_statement折扣与折让
inventory_shrinkageincome_statement存货跌价损失
pnl_adjustmentincome_statement以前年度损益调整
profit_from_maincome_statement购并利润
statutory_welfare_reserveincome_statement提取法定公益金
staff_incentive_welfare_reserveincome_statement提取职工奖励福利基金
enterprise_expansion_reserveincome_statement提取企业发展基金
profit_available_for_owner_distributionincome_statement可供股东分配的利润
preferred_stock_dividendsincome_statement应付优先股股利
ordinary_stock_dividendsincome_statement应付普通股股利
rental_cashcash_flow_statement收取的租金
refunds_of_vatcash_flow_statement收到的增值税销项税款和退回的增值税款
refunds_of_other_taxescash_flow_statement收到的除增值税以外的其它税费返还
cash_paid_for_rentalcash_flow_statement经营租赁所支付的现金
internal_accts_payablebalance_sheet内部应付款
proxy_sale_revenuebalance_sheet代销商品款
deferred_chargesbalance_sheet递延资产
other_long_term_assetsbalance_sheet其他长期资产
non_current_debt_due_one_yearbalance_sheet一年内到期的非流动资产: 一年内到期的非流动资产反映企业将于一年内到期的非流动资产项目金额
current_investment_reservebalance_sheet短期投资跌价准备
devidend_receivablebalance_sheet应收股利,API typo将由dividend_receivable接替
other_receivablesbalance_sheet其他应收款净额
subsidy_receivablebalance_sheet应收补贴款
inventory_depreciation_reservebalance_sheet存货跌价准备
long_term_debt_investmentbalance_sheet长期债权投资(原值)
other_long_term_investmentbalance_sheet其他长期投资(原值)
provision_long_term_investmentbalance_sheet长期投资减值准备
non_current_debt_due_in_one_yearbalance_sheet一年内到期的非流动资产
market_cap_2eod_derivative_indicator总市值2,包括B股市值
val_of_stk_righteod_derivative_indicator股权价值,包括B股及海外股
pcf_ratio_3eod_derivative_indicator市现率3: 总市值 / 连续四季度现金及现金等价物净增加额
adjusted_diluted_earnings_per_sharefinancial_indicator每股收益EPS - 扣除/期末股本摊薄
ev_to_ebitfinancial_indicator企业价值 / 息税前利润

alpha101因子

对应的函数计算逻辑请参考工具函数部分说明。可以直接使用 get_factor 函数调用,例如:

[In]
get_factor(['000001.XSHE', '600000.XSHG'],'WorldQuant_alpha010', '20190601', '20190610')

[Out]
    600000.XSHG    000001.XSHE
2019-06-03    0.162771    0.093489
2019-06-04    0.255633    0.281502
2019-06-05    0.789430    0.222253
2019-06-06    0.437743    0.415231
2019-06-10    0.935448    0.134391
CLOSE = Factor('close')
RETURNS = (CLOSE - REF(CLOSE, 1)) / REF(CLOSE, 1)
CAP = Factor('market_cap')
VWAP = Factor('total_turnover') / Factor('volume)

alpha001 = (RANK(TS_ARGMAX(SIGNEDPOWER(IF((RETURNS < 0), STDDEV(RETURNS, 20), CLOSE), 2.), 5)) - 0.5)

alpha002 = (-1 * CORRELATION(RANK(DELTA(LOG(VOLUME), 2)), RANK(((CLOSE - OPEN) / OPEN)), 6))

alpha003 = (-1 * CORRELATION(RANK(OPEN), RANK(VOLUME), 10))

alpha004 = (-1 * TS_RANK(RANK(LOW), 9))

alpha005 = (RANK((OPEN - (SUM(VWAP, 10) / 10))) * (-1 * ABS(RANK((CLOSE - VWAP)))))

alpha006 = (-1 * CORRELATION(OPEN, VOLUME, 10))

alpha007 = IF((ADV(20) < VOLUME), ((-1 * TS_RANK(ABS(DELTA(CLOSE, 7)), 60)) * SIGN(DELTA(CLOSE, 7))), (-1 * 1))

alpha008 = (-1 * RANK(((SUM(OPEN, 5) * SUM(RETURNS, 5)) - DELAY((SUM(OPEN, 5) * SUM(RETURNS, 5)), 10))))

alpha009 = IF((0 < TS_MIN(DELTA(CLOSE, 1), 5)), DELTA(CLOSE, 1), (IF((TS_MAX(DELTA(CLOSE, 1), 5) < 0), DELTA(CLOSE, 1), (-1 * DELTA(CLOSE, 1)))))

alpha010 = RANK(IF((0 < TS_MIN(DELTA(CLOSE, 1), 4)), DELTA(CLOSE, 1), IF((TS_MAX(DELTA(CLOSE, 1), 4) < 0), DELTA(CLOSE, 1), (-1 * DELTA(CLOSE, 1)))))

alpha011 = ((RANK(TS_MAX((VWAP - CLOSE), 3)) + RANK(TS_MIN((VWAP - CLOSE), 3))) * RANK(DELTA(VOLUME, 3)))

alpha012 = (SIGN(DELTA(VOLUME, 1)) * (-1 * DELTA(CLOSE, 1)))

alpha013 = (-1 * RANK(COVARIANCE(RANK(CLOSE), RANK(VOLUME), 5)))

alpha014 = ((-1 * RANK(DELTA(RETURNS, 3))) * CORRELATION(OPEN, VOLUME, 10))

alpha015 = (-1 * SUM(RANK(CORRELATION(RANK(HIGH), RANK(VOLUME), 3)), 3))

alpha016 = (-1 * RANK(COVARIANCE(RANK(HIGH), RANK(VOLUME), 5)))

alpha017 = (((-1 * RANK(TS_RANK(CLOSE, 10))) * RANK(DELTA(DELTA(CLOSE, 1), 1))) * RANK(TS_RANK((VOLUME / ADV(20)), 5)))

alpha018 = (-1 * RANK(((STDDEV(ABS((CLOSE - OPEN)), 5) + (CLOSE - OPEN)) + CORRELATION(CLOSE, OPEN, 10))))

alpha019 = ((-1 * SIGN(((CLOSE - DELAY(CLOSE, 7)) + DELTA(CLOSE, 7)))) * (1 + RANK((1 + SUM(RETURNS, 250)))))

alpha020 = (((-1 * RANK((OPEN - DELAY(HIGH, 1)))) * RANK((OPEN - DELAY(CLOSE, 1)))) * RANK((OPEN - DELAY(LOW, 1))))

alpha021 = IF((((SUM(CLOSE, 8) / 8) + STDDEV(CLOSE, 8)) < (SUM(CLOSE, 2) / 2)), (-1 * 1), IF(((SUM(CLOSE, 2) / 2) < ((SUM(CLOSE, 8) / 8) - STDDEV(CLOSE, 8))), 1, IF(((1 < (VOLUME / ADV(20))) | ((VOLUME / ADV(20)) == 1)), 1, (-1 * 1))))

alpha022 = (-1 * (DELTA(CORRELATION(HIGH, VOLUME, 5), 5) * RANK(STDDEV(CLOSE, 20))))

alpha023 = IF(((SUM(HIGH, 20) / 20) < HIGH), (-1 * DELTA(HIGH, 2)), 0)

alpha024 = IF((((DELTA((SUM(CLOSE, 100) / 100), 100) / DELAY(CLOSE, 100)) < 0.05) | ((DELTA((SUM(CLOSE, 100) / 100), 100) / DELAY(CLOSE, 100)) == 0.05)), (-1 * (CLOSE - TS_MIN(CLOSE, 100))), (-1 * DELTA(CLOSE, 3)))

alpha025 = RANK(((((-1 * RETURNS) * ADV(20)) * VWAP) * (HIGH - CLOSE)))

alpha026 = (-1 * TS_MAX(CORRELATION(TS_RANK(VOLUME, 5), TS_RANK(HIGH, 5), 5), 3))

alpha027 = IF((0.5 < RANK((SUM(CORRELATION(RANK(VOLUME), RANK(VWAP), 6), 2) / 2.0))), (-1 * 1), 1)

alpha028 = SCALE(((CORRELATION(ADV(20), LOW, 5) + ((HIGH + LOW) / 2)) - CLOSE))

alpha029 = (MIN(PRODUCT(RANK(RANK(SCALE(LOG(SUM(TS_MIN(RANK(RANK((-1 * RANK(DELTA((CLOSE - 1), 5))))), 2), 1))))), 1), 5) + TS_RANK(DELAY((-1 * RETURNS), 6), 5))

alpha030 = (((1.0 - RANK(((SIGN((CLOSE - DELAY(CLOSE, 1))) + SIGN((DELAY(CLOSE, 1) - DELAY(CLOSE, 2)))) + SIGN((DELAY(CLOSE, 2) - DELAY(CLOSE, 3)))))) * SUM(VOLUME, 5)) / SUM(VOLUME, 20))

alpha031 = ((RANK(RANK(RANK(DECAY_LINEAR((-1 * RANK(RANK(DELTA(CLOSE, 10)))), 10)))) + RANK((-1 * DELTA(CLOSE, 3)))) + SIGN(SCALE(CORRELATION(ADV(20), LOW, 12))))

alpha032 = (SCALE(((SUM(CLOSE, 7) / 7) - CLOSE)) + (20 * SCALE(CORRELATION(VWAP, DELAY(CLOSE, 5), 230))))

alpha033 = RANK((-1 * ((1 - (OPEN / CLOSE))**1)))

alpha034 = RANK(((1 - RANK((STDDEV(RETURNS, 2) / STDDEV(RETURNS, 5)))) + (1 - RANK(DELTA(CLOSE, 1)))))

alpha035 = ((TS_RANK(VOLUME, 32) * (1 - TS_RANK(((CLOSE + HIGH) - LOW), 16))) * (1 - TS_RANK(RETURNS, 32)))

alpha036 = (((((2.21 * RANK(CORRELATION((CLOSE - OPEN), DELAY(VOLUME, 1), 15))) + (0.7 * RANK((OPEN - CLOSE)))) + (0.73 * RANK(TS_RANK(DELAY((-1 * RETURNS), 6), 5)))) + RANK(ABS(CORRELATION(VWAP, ADV(20), 6)))) + (0.6 * RANK((((SUM(CLOSE, 200) / 200) - OPEN) * (CLOSE - OPEN)))))

alpha037 = (RANK(CORRELATION(DELAY((OPEN - CLOSE), 1), CLOSE, 200)) + RANK((OPEN - CLOSE)))

alpha038 = ((-1 * RANK(TS_RANK(CLOSE, 10))) * RANK((CLOSE / OPEN)))

alpha039 = ((-1 * RANK((DELTA(CLOSE, 7) * (1 - RANK(DECAY_LINEAR((VOLUME / ADV(20)), 9)))))) * (1 + RANK(SUM(RETURNS, 250))))

alpha040 = ((-1 * RANK(STDDEV(HIGH, 10))) * CORRELATION(HIGH, VOLUME, 10))

alpha041 = (((HIGH * LOW)**0.5) - VWAP)

alpha042 = (RANK((VWAP - CLOSE)) / RANK((VWAP + CLOSE)))

alpha043 = (TS_RANK((VOLUME / ADV(20)), 20) * TS_RANK((-1 * DELTA(CLOSE, 7)), 8))

alpha044 = (-1 * CORRELATION(HIGH, RANK(VOLUME), 5))

alpha045 = (-1 * ((RANK((SUM(DELAY(CLOSE, 5), 20) / 20)) * CORRELATION(CLOSE, VOLUME, 2)) * RANK(CORRELATION(SUM(CLOSE, 5), SUM(CLOSE, 20), 2))))

alpha046 = IF((0.25 < (((DELAY(CLOSE, 20) - DELAY(CLOSE, 10)) / 10) - ((DELAY(CLOSE, 10) - CLOSE) / 10))), (-1 * 1), IF(((((DELAY(CLOSE, 20) - DELAY(CLOSE, 10)) / 10) - ((DELAY(CLOSE, 10) - CLOSE) / 10)) < 0), 1, ((-1 * 1) * (CLOSE - DELAY(CLOSE, 1)))))

alpha047 = ((((RANK((1 / CLOSE)) * VOLUME) / ADV(20)) * ((HIGH * RANK((HIGH - CLOSE))) / (SUM(HIGH, 5) / 5))) - RANK((VWAP - DELAY(VWAP, 5))))

alpha048 = (INDUSTRY_NEUTRALIZE(((CORRELATION(DELTA(CLOSE, 1), DELTA(DELAY(CLOSE, 1), 1), 250) * DELTA(CLOSE, 1)) / CLOSE)) / SUM(((DELTA(CLOSE, 1) / DELAY(CLOSE, 1))**2), 250))

alpha049 = IF(((((DELAY(CLOSE, 20) - DELAY(CLOSE, 10)) / 10) - ((DELAY(CLOSE, 10) - CLOSE) / 10)) < (-1 * 0.1)), 1, ((-1 * 1) * (CLOSE - DELAY(CLOSE, 1))))

alpha050 = (-1 * TS_MAX(RANK(CORRELATION(RANK(VOLUME), RANK(VWAP), 5)), 5))

alpha051 = IF(((((DELAY(CLOSE, 20) - DELAY(CLOSE, 10)) / 10) - ((DELAY(CLOSE, 10) - CLOSE) / 10)) < (-1 * 0.05)), 1, ((-1 * 1) * (CLOSE - DELAY(CLOSE, 1))))

alpha052 = ((((-1 * TS_MIN(LOW, 5)) + DELAY(TS_MIN(LOW, 5), 5)) * RANK(((SUM(RETURNS, 240) - SUM(RETURNS, 20)) / 220))) * TS_RANK(VOLUME, 5))

alpha053 = (-1 * DELTA((((CLOSE - LOW) - (HIGH - CLOSE)) / (CLOSE - LOW)), 9))

alpha054 = ((-1 * ((LOW - CLOSE) * (OPEN**5))) / ((LOW - HIGH) * (CLOSE**5)))

alpha055 = (-1 * CORRELATION(RANK(((CLOSE - TS_MIN(LOW, 12)) / (TS_MAX(HIGH, 12) - TS_MIN(LOW, 12)))), RANK(VOLUME), 6))

alpha056 = (0 - (1 * (RANK((SUM(RETURNS, 10) / SUM(SUM(RETURNS, 2), 3))) * RANK((RETURNS * CAP)))))

alpha057 = (0 - (1 * ((CLOSE - VWAP) / DECAY_LINEAR(RANK(TS_ARGMAX(CLOSE, 30)), 2))))

alpha058 = (-1 * TS_RANK(DECAY_LINEAR(CORRELATION(INDUSTRY_NEUTRALIZE(VWAP), VOLUME, 4), 8), 6))

alpha059 = (-1 * TS_RANK(DECAY_LINEAR(CORRELATION(INDUSTRY_NEUTRALIZE(((VWAP * 0.728317) + (VWAP * (1 - 0.728317)))), VOLUME, 4), 16), 8))

alpha060 = (0 - (1 * ((2 * SCALE(RANK(((((CLOSE - LOW) - (HIGH - CLOSE)) / (HIGH - LOW)) * VOLUME)))) - SCALE(RANK(TS_ARGMAX(CLOSE, 10))))))

alpha061 = (RANK((VWAP - TS_MIN(VWAP, 16))) < RANK(CORRELATION(VWAP, ADV(180), 18)))

alpha062 = ((RANK(CORRELATION(VWAP, SUM(ADV(20), 22), 10)) < RANK(((RANK(OPEN) + RANK(OPEN)) < (RANK(((HIGH + LOW) / 2)) + RANK(HIGH))))) * -1)

alpha063 = ((RANK(DECAY_LINEAR(DELTA(INDUSTRY_NEUTRALIZE(CLOSE), 2), 8)) - RANK(DECAY_LINEAR(CORRELATION(((VWAP * 0.318108) + (OPEN * (1 - 0.318108))), SUM(ADV(180), 37), 14), 12))) * -1)

alpha064 = ((RANK(CORRELATION(SUM(((OPEN * 0.178404) + (LOW * (1 - 0.178404))), 13), SUM(ADV(120), 13), 17)) < RANK(DELTA(((((HIGH + LOW) / 2) * 0.178404) + (VWAP * (1 - 0.178404))), 4))) * -1)

alpha065 = ((RANK(CORRELATION(((OPEN * 0.00817205) + (VWAP * (1 - 0.00817205))), SUM(ADV(60), 9), 6)) < RANK((OPEN - TS_MIN(OPEN, 14)))) * -1)

alpha066 = ((RANK(DECAY_LINEAR(DELTA(VWAP, 4), 7)) + TS_RANK(DECAY_LINEAR(((((LOW * 0.96633) + (LOW * (1 - 0.96633))) - VWAP) / (OPEN - ((HIGH + LOW) / 2))), 11), 7)) * -1)

alpha067 = ((RANK((HIGH - TS_MIN(HIGH, 2)))**RANK(CORRELATION(INDUSTRY_NEUTRALIZE(VWAP), INDUSTRY_NEUTRALIZE(ADV(20)), 6))) * -1)

alpha068 = ((TS_RANK(CORRELATION(RANK(HIGH), RANK(ADV(15)), 9), 14) < RANK(DELTA(((CLOSE * 0.518371) + (LOW * (1 - 0.518371))), 1))) * -1)

alpha069 = ((RANK(TS_MAX(DELTA(INDUSTRY_NEUTRALIZE(VWAP), 3), 5))**TS_RANK(CORRELATION(((CLOSE * 0.490655) + (VWAP * (1 - 0.490655))), ADV(20), 5), 9)) * -1)

alpha070 = ((RANK(DELTA(VWAP, 1))**TS_RANK(CORRELATION(INDUSTRY_NEUTRALIZE(CLOSE), ADV(50), 18), 18)) * -1)

alpha071 = MAX(TS_RANK(DECAY_LINEAR(CORRELATION(TS_RANK(CLOSE, 3), TS_RANK(ADV(180), 12), 18), 4), 16), TS_RANK(DECAY_LINEAR((RANK(((LOW + OPEN) - (VWAP + VWAP)))**2), 16), 4))

alpha072 = (RANK(DECAY_LINEAR(CORRELATION(((HIGH + LOW) / 2), ADV(40), 9), 10)) / RANK(DECAY_LINEAR(CORRELATION(TS_RANK(VWAP, 4), TS_RANK(VOLUME, 19), 7), 3)))

# Modify DELTA(VWAP, 4.72775) to DELTA(VWAP, 5)
alpha073 = (MAX(RANK(DECAY_LINEAR(DELTA(VWAP, 5), 3)), TS_RANK(DECAY_LINEAR(((DELTA(((OPEN * 0.147155) + (LOW * (1 - 0.147155))), 2) / ((OPEN * 0.147155) + (LOW * (1 - 0.147155)))) * -1), 3), 17)) * -1)

alpha074 = ((RANK(CORRELATION(CLOSE, SUM(ADV(30), 37), 15)) < RANK(CORRELATION(RANK(((HIGH * 0.0261661) + (VWAP * (1 - 0.0261661)))), RANK(VOLUME), 11))) * -1)

alpha075 = (RANK(CORRELATION(VWAP, VOLUME, 4)) < RANK(CORRELATION(RANK(LOW), RANK(ADV(50)), 12)))

# Modify TS_RANK(CORRELATION(INDUSTRY_NEUTRALIZE(LOW), ADV(81), 8), 19.569) to TS_RANK(CORRELATION(INDUSTRY_NEUTRALIZE(LOW), ADV(81), 8), 20)
alpha076 = (MAX(RANK(DECAY_LINEAR(DELTA(VWAP, 1), 12)), TS_RANK(DECAY_LINEAR(TS_RANK(CORRELATION(INDUSTRY_NEUTRALIZE(LOW), ADV(81), 8), 20), 17), 19)) * -1)

alpha077 = MIN(RANK(DECAY_LINEAR(((((HIGH + LOW) / 2) + HIGH) - (VWAP + HIGH)), 20)), RANK(DECAY_LINEAR(CORRELATION(((HIGH + LOW) / 2), ADV(40), 3), 6)))

alpha078 = (RANK(CORRELATION(SUM(((LOW * 0.352233) + (VWAP * (1 - 0.352233))), 20), SUM(ADV(40), 20), 7))**RANK(CORRELATION(RANK(VWAP), RANK(VOLUME), 6)))

alpha079 = (RANK(DELTA(INDUSTRY_NEUTRALIZE(((CLOSE * 0.60733) + (OPEN * (1 - 0.60733)))), 1)) < RANK(CORRELATION(TS_RANK(VWAP, 4), TS_RANK(ADV(150), 9), 15)))

alpha080 = ((RANK(SIGN(DELTA(INDUSTRY_NEUTRALIZE(((OPEN * 0.868128) + (HIGH * (1 - 0.868128)))), 4)))**TS_RANK(CORRELATION(HIGH, ADV(10), 5), 6)) * -1)

alpha081 = ((RANK(LOG(PRODUCT(RANK((RANK(CORRELATION(VWAP, SUM(ADV(10), 50), 8))**4)), 15))) < RANK(CORRELATION(RANK(VWAP), RANK(VOLUME), 5))) * -1)

alpha082 = (MIN(RANK(DECAY_LINEAR(DELTA(OPEN, 1), 15)), TS_RANK(DECAY_LINEAR(CORRELATION(INDUSTRY_NEUTRALIZE(VOLUME), ((OPEN * 0.634196) + (OPEN * (1 - 0.634196))), 17), 7), 13)) * -1)

alpha083 = ((RANK(DELAY(((HIGH - LOW) / (SUM(CLOSE, 5) / 5)), 2)) * RANK(RANK(VOLUME))) / (((HIGH - LOW) / (SUM(CLOSE, 5) / 5)) / (VWAP - CLOSE)))

alpha084 = SIGNEDPOWER(TS_RANK((VWAP - TS_MAX(VWAP, 15)), 21), DELTA(CLOSE, 5))

alpha085 = (RANK(CORRELATION(((HIGH * 0.876703) + (CLOSE * (1 - 0.876703))), ADV(30), 10))**RANK(CORRELATION(TS_RANK(((HIGH + LOW) / 2), 4), TS_RANK(VOLUME, 10), 7)))

alpha086 = ((TS_RANK(CORRELATION(CLOSE, SUM(ADV(20), 15), 6), 20) < RANK(((OPEN + CLOSE) - (VWAP + OPEN)))) * -1)

alpha087 = (MAX(RANK(DECAY_LINEAR(DELTA(((CLOSE * 0.369701) + (VWAP * (1 - 0.369701))), 2), 3)), TS_RANK(DECAY_LINEAR(ABS(CORRELATION(INDUSTRY_NEUTRALIZE(ADV(81)), CLOSE, 13)), 5), 14)) * -1)

# Modify TS_RANK(ADV(60), 20.6966) to TS_RANK(ADV(60), 21),
alpha088 = MIN(RANK(DECAY_LINEAR(((RANK(OPEN) + RANK(LOW)) - (RANK(HIGH) + RANK(CLOSE))), 8)), TS_RANK(DECAY_LINEAR(CORRELATION(TS_RANK(CLOSE, 8), TS_RANK(ADV(60), 21), 8), 7), 3))

alpha089 = (TS_RANK(DECAY_LINEAR(CORRELATION(((LOW * 0.967285) + (LOW * (1 - 0.967285))), ADV(10), 7), 6), 4) - TS_RANK(DECAY_LINEAR(DELTA(INDUSTRY_NEUTRALIZE(VWAP), 3), 10), 15))

alpha090 = ((RANK((CLOSE - TS_MAX(CLOSE, 5)))**TS_RANK(CORRELATION(INDUSTRY_NEUTRALIZE(ADV(40)), LOW, 5), 3)) * -1)

alpha091 = ((TS_RANK(DECAY_LINEAR(DECAY_LINEAR(CORRELATION(INDUSTRY_NEUTRALIZE(CLOSE), VOLUME, 10), 16), 4), 5) - RANK(DECAY_LINEAR(CORRELATION(VWAP, ADV(30), 4), 3))) * -1)

alpha092 = MIN(TS_RANK(DECAY_LINEAR(AS_FLOAT((((HIGH + LOW) / 2) + CLOSE) < (LOW + OPEN)), 15), 19), TS_RANK(DECAY_LINEAR(CORRELATION(RANK(LOW), RANK(ADV(30)), 8), 7), 7))

alpha093 = (TS_RANK(DECAY_LINEAR(CORRELATION(INDUSTRY_NEUTRALIZE(VWAP), ADV(81), 17), 20), 8) / RANK(DECAY_LINEAR(DELTA(((CLOSE * 0.524434) + (VWAP * (1 - 0.524434))), 3), 16)))

alpha094 = ((RANK((VWAP - TS_MIN(VWAP, 12)))**TS_RANK(CORRELATION(TS_RANK(VWAP, 20), TS_RANK(ADV(60), 4), 18), 3)) * -1)

alpha095 = (RANK((OPEN - TS_MIN(OPEN, 12))) < TS_RANK((RANK(CORRELATION(SUM(((HIGH + LOW) / 2), 19), SUM(ADV(40), 19), 13))**5), 12))

# Modify TS_RANK(ADV(60), 4.13242) to TS_RANK(ADV(60), 4)
alpha096 = MAX(TS_RANK(DECAY_LINEAR(CORRELATION(RANK(VWAP), RANK(VOLUME), 4), 4), 8), TS_RANK(DECAY_LINEAR(TS_ARGMAX(CORRELATION(TS_RANK(CLOSE, 7), TS_RANK(ADV(60), 4), 4), 13), 14), 13)) * -1

# Modify TS_RANK(LOW, 7.87871) to TS_RANK(LOW, 8)
alpha097 = ((RANK(DECAY_LINEAR(DELTA(INDUSTRY_NEUTRALIZE(((LOW * 0.721001) + (VWAP * (1 - 0.721001)))), 3), 20)) - TS_RANK(DECAY_LINEAR(TS_RANK(CORRELATION(TS_RANK(LOW, 8), TS_RANK(ADV(60), 17), 5), 19), 16), 7)) * -1)

alpha098 = (RANK(DECAY_LINEAR(CORRELATION(VWAP, SUM(ADV(5), 26), 6), 7)) - RANK(DECAY_LINEAR(TS_RANK(TS_ARGMIN(CORRELATION(RANK(OPEN), RANK(ADV(15)), 21), 9), 7), 8)))

alpha099 = ((RANK(CORRELATION(SUM(((HIGH + LOW) / 2), 20), SUM(ADV(60), 20), 9)) < RANK(CORRELATION(LOW, VOLUME, 6))) * -1)

alpha100 = (0 - (1 * (((1.5 * SCALE(INDUSTRY_NEUTRALIZE(INDUSTRY_NEUTRALIZE(RANK(((((CLOSE - LOW) - (HIGH - CLOSE)) / (HIGH - LOW)) * VOLUME)))))) - SCALE(INDUSTRY_NEUTRALIZE((CORRELATION(CLOSE, RANK(ADV(20)), 5) - RANK(TS_ARGMIN(CLOSE, 30)))))) * (VOLUME / ADV(20)))))

alpha101 = ((CLOSE - OPEN) / ((HIGH - LOW) + .001))
正在运行中的策略 0