700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 量化交易 第三课 数据获取接口

量化交易 第三课 数据获取接口

时间:2022-12-22 12:01:26

相关推荐

量化交易 第三课 数据获取接口

获取数据

概述数据接口种类行业 & 板块 股票类表股票代码 & 代码补齐RiceQuant 上的股票股票自动搜索及补全获取行业获取板块代码展示获取股票合约数据某一合约历史数据通过 bar_dict 获取代码展示获取财务数据查询财务数据过滤指标条件代码展示定时获取数据每天运行每周运行每月运行运行顺序

概述

工欲善其事, 必先利其器. 想做量化, 数据是基本! 本篇我们会介绍如何获取数据.

数据接口种类

获取指定行业, 板块股票列表history_bars: 指定股票合约历史数据get_fundamentals: 查询财务数据

行业 & 板块 股票类表

股票代码 & 代码补齐

RiceQuant 上的股票

上证:

深证:

股票自动搜索及补全

Windows 用户: 输入 ctrl + iMac 用户: 输入 command + i

当我们输入了这个组合键之后, RiceQuant 在线 IDE 就会进入代码搜索和自动完成模式.

接着我们可以输入任何一种进行搜索和自动补全.

股票数字代码: 自动补全为股票数字代码, 比如 “000001.XSHE”股票中文全称: 自动补全为股票中文全称, 比如 “贵州茅台”股票拼音缩写: 自动补全为股票中文全称, 因为股票拼音缩写并不是独一无二的, 比如 ZSDC 补全为 “招商地产”

获取行业

获取某行业股票数据, 代码如下:

industry (code)

返回:

属于该行业的股票 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',...]

获取板块

获取某板块股票列表, 代码如下:

sector(code, market='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', .....]

支持的行业如下, 想要了解全球行业标准划分标准参考全球行业标准分类:

代码展示

def init(context):# 在context中保存全局变量context.s1 = "000001.XSHE"context.stock = "000007.XSHE"# 获取计算机通信行业的一些公司股票代码context.stock_list = industry("C39")# 获取能源板块的股票代码context.sector_list = sector("energy")# 获取沪深300的指数股票context.index_list = index_components("000300.XSHG")# 调试输出logger.info(context.stock_list)logger.info(context.sector_list)logger.info(context.index_list)输出结果:-01-03INFO['300847.XSHE', '601138.XSHG', '688183.XSHG', '688138.XSHG', '000810.XSHE', '603380.XSHG', '600363.XSHG', '600980.XSHG', '300211.XSHE', '600870.XSHG', '688181.XSHG', '600353.XSHG', '688081.XSHG', '000823.XSHE', '600745.XSHG', '002308.XSHE', '600839.XSHG', '002528.XSHE', '603516.XSHG', '300666.XSHE', '688123.XSHG', '002222.XSHE', '002841.XSHE', '300078.XSHE', '688418.XSHG','002992.XSHE', '688020.XSHG', '603002.XSHG', '300205.XSHE', '300390.XSHE', '000066.XSHE', '300046.XSHE', '688208.XSHG', '688027.XSHG', '300213.XSHE', '600405.XSHG', '600171.XSHG', '300455.XSHE', '300077.XSHE', '002983.XSHE', '002414.XSHE', '000687.XSHE', '002806.XSHE', '300739.XSHE', '000050.XSHE', '300042.XSHE', '300458.XSHE', '002888.XSHE', '300686.XSHE', '002993.XSHE','300939.XSHE', '600764.XSHG', '002156.XSHE', '603160.XSHG', '600584.XSHG', '603803.XSHG', '002897.XSHE', '300327.XSHE', '300811.XSHE', '300456.XSHE', '300548.XSHE', '605118.XSHG', '002660.XSHE', '002681.XSHE', '300831.XSHE', '002089.XSHE', '002161.XSHE', '300088.XSHE', '002241.XSHE', '002115.XSHE', '688195.XSHG', '300752.XSHE', '002792.XSHE', '688079.XSHG', '688667.XSHG','603023.XSHG', '300835.XSHE', '002655.XSHE', '002579.XSHE', '002180.XSHE', '603019.XSHG', '300220.XSHE', '002119.XSHE', '603996.XSHG', '002281.XSHE', '688005.XSHG', '300590.XSHE', '002519.XSHE', '688288.XSHG', '300115.XSHE', '601869.XSHG', '300479.XSHE', '300083.XSHE', '300079.XSHE', '688665.XSHG', '688608.XSHG', '300303.XSHE', '002402.XSHE', '002456.XSHE', '002866.XSHE','300566.XSHE', '002138.XSHE', '300120.XSHE', '300351.XSHE', '000413.XSHE', '300155.XSHE', '300940.XSHE', '603986.XSHG', '002214.XSHE', '002796.XSHE', '600485.XSHG', '300270.XSHE', '688609.XSHG', '002475.XSHE', '300602.XSHE', '300516.XSHE', '300353.XSHE', '605058.XSHG', '300514.XSHE', '002925.XSHE', '603773.XSHG', '002426.XSHE', '002829.XSHE', '688696.XSHG', '600183.XSHG','000801.XSHE', '002296.XSHE', '002376.XSHE', '300709.XSHE', '002782.XSHE', '600330.XSHG', '300162.XSHE', '002351.XSHE', '688311.XSHG', '002383.XSHE', '000063.XSHE', '600151.XSHG', '000977.XSHE', '00.XSHE', '000021.XSHE', '002937.XSHE', '002415.XSHE', '000725.XSHE', '688080.XSHG', '000100.XSHE', '688019.XSHG', '002231.XSHE', '688002.XSHG', '002055.XSHE', '300308.XSHE','300691.XSHE', '002835.XSHE', '600288.XSHG', '002388.XSHE', '002815.XSHE', '603595.XSHG', '300102.XSHE', '600562.XSHG', '300698.XSHE', '300397.XSHE', '300656.XSHE', '300502.XSHE', '300627.XSHE', '300301.XSHE', '002960.XSHE', '003015.XSHE', '000586.XSHE', '300555.XSHE', '002413.XSHE', '688025.XSHG', '002179.XSHE', '300916.XSHE', '603115.XSHG', '688008.XSHG', '300546.XSHE','002972.XSHE', '002137.XSHE', '002025.XSHE', '600898.XSHG', '300782.XSHE', '002861.XSHE', '002387.XSHE', '002952.XSHE', '300903.XSHE', '688396.XSHG', '600775.XSHG', '300065.XSHE', '300657.XSHE', '603328.XSHG', '603528.XSHG', '002192.XSHE', '002079.XSHE', '002045.XSHE', '300708.XSHE', '605218.XSHG', '300956.XSHE', '688260.XSHG', '600776.XSHG', '300531.XSHE', '600345.XSHG','002587.XSHE', '300114.XSHE', '600100.XSHG', '300884.XSHE', '300139.XSHE', '603005.XSHG', '600260.XSHG', '603678.XSHG', '300629.XSHE', '300227.XSHE', '002583.XSHE', '300919.XSHE', '600118.XSHG', '603106.XSHG', '300282.XSHE', '002217.XSHE', '300256.XSHE', '002729.XSHE', '300647.XSHE', '603236.XSHG', ...-01-03INFO['600028.XSHG', '000554.XSHE', '000159.XSHE', '600397.XSHG', '002221.XSHE', '600583.XSHG', '601918.XSHG', '603113.XSHG', '600725.XSHG', '002259.XSHE', '601225.XSHG', '000968.XSHE', '002629.XSHE', '601011.XSHG', '603353.XSHG', '600508.XSHG', '600777.XSHG', '000571.XSHE', '600123.XSHG', '603619.XSHG', '600871.XSHG', '601088.XSHG', '600740.XSHG', '002128.XSHE', '300839.XSHE','002554.XSHE', '000937.XSHE', '600968.XSHG', '600688.XSHG', '000723.XSHE', '002278.XSHE', '300309.XSHE', '000983.XSHE', '000096.XSHE', '002490.XSHE', '601699.XSHG', '601898.XSHG', '002828.XSHE', '600387.XSHG', '000852.XSHE', '300084.XSHE', '600403.XSHG', '300164.XSHE', '000059.XSHE', '600758.XSHG', '600121.XSHG', '600256.XSHG', '601808.XSHG', '600188.XSHG', '601001.XSHG','002353.XSHE', '688377.XSHG', '603727.XSHG', '600971.XSHG', '002207.XSHE', '000698.XSHE', '601101.XSHG', '000552.XSHE', '000780.XSHE', '601857.XSHG', '601015.XSHG', '300471.XSHE', '600989.XSHG', '601666.XSHG', '603800.XSHG', '600759.XSHG', '300157.XSHE', '300540.XSHE', '603798.XSHG', '600792.XSHG', '601798.XSHG', '000637.XSHE', '600997.XSHG', '603036.XSHG', '300191.XSHE','600348.XSHG', '600395.XSHG']-01-03INFO['600030.XSHG', '002153.XSHE', '002065.XSHE', '002594.XSHE', '600332.XSHG', '601016.XSHG', '600739.XSHG', '600010.XSHG', '600588.XSHG', '601216.XSHG', '601600.XSHG', '601818.XSHG', '601333.XSHG', '000983.XSHE', '600867.XSHG', '600028.XSHG', '600549.XSHG', '601099.XSHG', '000793.XSHE', '002739.XSHE', '600048.XSHG', '002252.XSHE', '600718.XSHG', '601958.XSHG', '002456.XSHE','600958.XSHG', '600827.XSHG', '600196.XSHG', '600837.XSHG', '000027.XSHE', '600021.XSHG', '600104.XSHG', '600166.XSHG', '000568.XSHE', '600309.XSHG', '601377.XSHG', '000002.XSHE', '000826.XSHE', '000402.XSHE', '000415.XSHE', '000333.XSHE', '000917.XSHE', '002736.XSHE', '000413.XSHE', '002202.XSHE', '002399.XSHE', '300146.XSHE', '600023.XSHG', '600489.XSHG', '601991.XSHG','601166.XSHG', '000712.XSHE', '300002.XSHE', '601788.XSHG', '600038.XSHG', '600783.XSHG', '601919.XSHG', '002410.XSHE', '000825.XSHE', '600031.XSHG', '000400.XSHE', '000001.XSHE', '601668.XSHG', '601688.XSHG', '601866.XSHG', '600276.XSHG', '600518.XSHG', '601989.XSHG', '300104.XSHE', '002081.XSHE', '601555.XSHG', '600703.XSHG', '002500.XSHE', '600066.XSHG', '000063.XSHE','002450.XSHE', '600068.XSHG', '601006.XSHG', '600406.XSHG', '000629.XSHE', '600369.XSHG', '601988.XSHG', '300017.XSHE', '600085.XSHG', '601288.XSHG', '601106.XSHG', '601179.XSHG', '000883.XSHE', '600893.XSHG', '601238.XSHG', '601158.XSHG', '600011.XSHG', '600674.XSHG', '600016.XSHG', '600570.XSHG', '600317.XSHG', '300070.XSHE', '300144.XSHE', '000768.XSHE', '300015.XSHE','000060.XSHE', '601872.XSHG', '000686.XSHE', '603993.XSHG', '600485.XSHG', '600999.XSHG', '600153.XSHG', '601618.XSHG', '600663.XSHG', '600372.XSHG', '601117.XSHG', '000876.XSHE', '00.XSHE', '002422.XSHE', '300027.XSHE', '600373.XSHG', '000581.XSHE', '000338.XSHE', '600583.XSHG', '601328.XSHG', '600717.XSHG', '603288.XSHG', '600642.XSHG', '000503.XSHE', '601186.XSHG','600115.XSHG', '000725.XSHE', '000538.XSHE', '600050.XSHG', '600900.XSHG', '600177.XSHG', '600150.XSHG', '600383.XSHG', '000999.XSHE', '601898.XSHG', '600863.XSHG', '300124.XSHE', '600633.XSHG', '002465.XSHE', '300003.XSHE', '600350.XSHG', '601800.XSHG', '002142.XSHE', '000009.XSHE', '601111.XSHG', '600170.XSHG', '601899.XSHG', '600895.XSHG', '600795.XSHG', '600221.XSHG','600839.XSHG', '000630.XSHE', '000792.XSHE', '000831.XSHE', '000963.XSHE', '600208.XSHG', '601992.XSHG', '600705.XSHG', '601018.XSHG', '601398.XSHG', '002292.XSHE', '000046.XSHE', '603885.XSHG', '600600.XSHG', '000166.XSHE', '601009.XSHG', '001979.XSHE', '600188.XSHG', '600690.XSHG', '000157.XSHE', '000776.XSHE', '601766.XSHG', '002304.XSHE', '000898.XSHE', '300058.XSHE','600018.XSHG', '600015.XSHG', '601118.XSHG', '601225.XSHG', '600029.XSHG', '600352.XSHG', '000039.XSHE', '601231.XSHG', '00.XSHE', '300315.XSHE', '600009.XSHG', '000100.XSHE', '000750.XSHE', '600019.XSHG', '600100.XSHG', '600252.XSHG', '600887.XSHG', '601098.XSHG', '300133.XSHE', '000858.XSHE', '601928.XSHG', '000539.XSHE', '002470.XSHE', '600111.XSHG', '601969.XSHG', ...

获取股票合约数据

某一合约历史数据

history_bars(order_book_id, bar_count, frequency, fields=None, skip_suspended=True, include_now=False)

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

参数:

通过 bar_dict 获取

bar_dict 对象也可以获取行情数据: 只能获取当前运行日期的, 不能获取之前日期.

Bar 对象

范例:

logger.info(bar_dict[context.s1].close)

代码展示

def handle_bar(context, bar_dict):# 开始编写你的主要的算法逻辑# bar_dict[order_book_id] 可以拿到某个证券的bar信息# context.portfolio 可以拿到现在的投资组合信息# 使用order_shares(id_or_ins, amount)方法进行落单# TODO: 开始编写你的算法吧!# 获取从当前提取运行开始之前5天的行情数据history_1 = history_bars(context.s1, 5, "1d", ["close", "open"])# 调试输出logger.info(history_1)输出结果:-01-04INFO[(11.98, 12.43) (12.09, 11.99) (12.1 , 12.09) (11.99, 12.1 )(11.33, 12. )]-01-05INFO[(12.09, 11.99) (12.1 , 12.09) (11.99, 12.1 ) (11.33, 12. )(11.4 , 11.27)]-01-06INFO[(12.1 , 12.09) (11.99, 12.1 ) (11.33, 12. ) (11.4 , 11.27)(11.53, 11.42)]-01-07INFO[(11.99, 12.1 ) (11.33, 12. ) (11.4 , 11.27) (11.53, 11.42)(10.94, 11.41)]-01-08INFO[(11.33, 12. ) (11.4 , 11.27) (11.53, 11.42) (10.94, 11.41)(11.12, 11.21)]-01-11INFO[(11.4 , 11.27) (11.53, 11.42) (10.94, 11.41) (11.12, 11.21)(10.76, 11. )]-01-12INFO[(11.53, 11.42) (10.94, 11.41) (11.12, 11.21) (10.76, 11. )(10.81, 10.83)]-01-13INFO[(10.94, 11.41) (11.12, 11.21) (10.76, 11. ) (10.81, 10.83)(10.71, 10.89)]-01-14INFO[(11.12, 11.21) (10.76, 11. ) (10.81, 10.83) (10.71, 10.89)(10.77, 10.59)]-01-15INFO[(10.76, 11. ) (10.81, 10.83) (10.71, 10.89) (10.77, 10.59)(10.46, 10.66)]-01-18INFO[(10.81, 10.83) (10.71, 10.89) (10.77, 10.59) (10.46, 10.66)(10.41, 10.34)]-01-19INFO[(10.71, 10.89) (10.77, 10.59) (10.46, 10.66) (10.41, 10.34)(10.71, 10.45)]-01-20INFO[(10.77, 10.59) (10.46, 10.66) (10.41, 10.34) (10.71, 10.45)(10.54, 10.7 )]-01-21INFO[(10.46, 10.66) (10.41, 10.34) (10.71, 10.45) (10.54, 10.7 )(10.32, 10.48)]-01-22INFO[(10.41, 10.34) (10.71, 10.45) (10.54, 10.7 ) (10.32, 10.48)(10.4 , 10.4 )]-01-25INFO[(10.71, 10.45) (10.54, 10.7 ) (10.32, 10.48) (10.4 , 10.4 )(10.37, 10.4 )]-01-26INFO[(10.54, 10.7 ) (10.32, 10.48) (10.4 , 10.4 ) (10.37, 10.4 )( 9.87, 10.32)]-01-27INFO[(10.32, 10.48) (10.4 , 10.4 ) (10.37, 10.4 ) ( 9.87, 10.32)( 9.88, 9.93)]-01-28INFO[(10.4 , 10.4 ) (10.37, 10.4 ) ( 9.87, 10.32) ( 9.88, 9.93)( 9.69, 9.82)]-01-29INFO[(10.37, 10.4 ) ( 9.87, 10.32) ( 9.88, 9.93) ( 9.69, 9.82)(10. , 9.74)]-02-01...

获取财务数据

查询财务数据

get_fundamentals - 查询财务数据

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

获取历史财务数据表格. 目前支持中国市场超过 400 个指标, 具体请参考财务数据文档 . 目前仅支持中国市场. 需要注意, 在 RiceQuant 上查询基本面数据时, 我们是以所有年报的发布日期 (announcement date) 为准, 因为只有财报发布后才成为市场上公开可以获取的数据.

参数:

返回

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

范例

[In]dp = get_fundamentals(query(fundamentals.eod_derivative_indicator.pe_ratio).filter(fundamentals.stockcode == '000001.XSHE'), '-08-01','4q' ,report_quarter = True)[In]dp.minor_xs('000001.XSHE')[Out]report_quarterpe_ratio-08-01-Q1 7.0768-04-29-Q16.7755-01-29-Q36.5492-10-29-Q37.3809

过滤指标条件

query().filter: 过滤大小query().order_by: 排序query.limit(): 限制数量fundamentals.stockcode.in_(): 在指定股票池当中过滤

案例:

q = query(fundamentals.eod_derivative_indicator.pe_ratio, # 获取市盈率fundamentals.eod_derivative_indicator.pcf_ratio # 获取市现率 ).filter(fundamentals.eod_derivative_indicator.pe_ratio > 20, # 过滤市盈率大于20fundamentals.eod_derivative_indicator.pcf_ratio < 50 # 过滤市现率小于50).order_by(fundamentals.eod_derivative_indicator.pe_ratio # 用盈率排序, 从小到大).limit(10) # 取10个

代码展示

def handle_bar(context, bar_dict):# 开始编写你的主要的算法逻辑# bar_dict[order_book_id] 可以拿到某个证券的bar信息# context.portfolio 可以拿到现在的投资组合信息# 使用order_shares(id_or_ins, amount)方法进行落单# TODO: 开始编写你的算法吧!# 创建一个查询语句 (pb_ratio: 市净率)q = query(fundamentals.eod_derivative_indicator.pb_ratio)# 回测不需要日期, 默认当天的数据fund = get_fundamentals(q)# 转置fund = fund.T# 调试输出logger.info(fund)输出结果:-01-04INFOpb_ratio000010.XSHE 3.8286000014.XSHE 6.4342000006.XSHE 3.537000008.XSHE 9.7601000012.XSHE 3.6253000011.XSHE 4.121000007.XSHE 14.8823000009.XSHE 6.3938000001.XSHE 1.0623000002.XSHE 2.695000004.XSHE 47.2814000005.XSHE 9.2519000016.XSHE 5.9121000017.XSHE 651.399000018.XSHE 17.1477000019.XSHE 5.4866000021.XSHE 3.4096000022.XSHE 2.8029000023.XSHE 11.0294000020.XSHE 27.2062000025.XSHE 28.7225000026.XSHE 2.7981000027.XSHE 1.7913000028.XSHE 4.3987000029.XSHE 5.6056000030.XSHE 2.816000031.XSHE 4.2624000032.XSHE 6.5288000033.XSHE 355.578000034.XSHE 53.5046... ...300426.XSHE 15.1151002736.XSHE 3.6212300488.XSHE 9.2783300434.XSHE 11.4555603398.XSHG 16.4336603808.XSHG 5.3673300439.XSHE 10.5654603223.XSHG 7.9353300450.XSHE 18.5618300446.XSHE 16.6062300493.XSHE 10.9242300427.XSHE 11.9498300487.XSHE 8.0302300459.XSHE 7.8616603968.XSHG 5.5646300457.XSHE 15.0464300451.XSHE 20.5081300394.XSHE 12.6802603669.XSHG 8.1029300481.XSHE 10.3629300458.XSHE 12.4225300413.XSHE 10.0609300408.XSHE 7.5259603996.XSHG 4.3534000166.XSHE 3.1675300498.XSHE 7.4478601155.XSHG 2.8596001979.XSHE 3.3113001872.XSHE 2.8029001914.XSHE 2.0273[2811 rows x 1 columns]-01-05INFOpb_ratio000010.XSHE 3.4495000014.XSHE 5.791000006.XSHE 3.1898000008.XSHE 8.7908000012.XSHE 3.2641000011.XSHE 3.7094000007.XSHE 14.8823000009.XSHE 5.753000001.XSHE 1.0038000002.XSHE 2.695000004.XSHE 42.5533000005.XSHE 8.3304000016.XSHE 5.3217000017.XSHE 586.259000018.XSHE 15.4643000019.XSHE 4.9428000021.XSHE 3.0675000022.XSHE 2.5256000023.XSHE 11.0294000020.XSHE 24.5874000025.XSHE 25.8496000026.XSHE 2.518000027.XSHE 1.6142000028.XSHE 4.3987000029.XSHE 5.0459000030.XSHE 2.5426000031.XSHE 3.8468000032.XSHE 5.8759000033.XSHE 355.578000034.XSHE 53.5046...

定时获取数据

每天运行

scheduler.run_daily

scheduler.run_daily(function)

参数:

每周运行

scheduler.run_weekly

scheduler.run_weekly(function, weekday=x, tradingday=t)

注意:

tradingday 中的负数表示倒数tradingday 表示交易日. 如某周只有四个交易日, 则此周的tradingday=4 与 tradingday=-1 表示同一天weekday 和 tradingday 不能同时使用

每月运行

scheduler.run_monthly

scheduler.run_monthly(function, tradingday=t)

注意:

tradingday 中的负数表示倒数tradingday 表示交易日. 如某周只有四个交易日, 则此周的tradingday=4 与 tradingday=-1 表示同一天

运行顺序

如果我们设定了一个按月运行: scheduler.run_monthly(get_data, tradingday=1). 假设是 3 月份, 3 月 1 号是第一个交易日:

3 月 1 号: before_trading -> get_data -> handle_bar3 月的其他日期: before_trading -> handle_bar

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。