Chapter · 第 224 页起
第11章 Python量化策略的获取数据函数
章节主张
第十一章把平台中的关键数据函数梳理出来,相当于给量化策略接上“感知世界”的传感器。
中文释读
前面学了代码结构和常用库,这一章开始真正进入策略的信息采集层:价格、财务、指数成分、概念股、公告性信息。
懂 API 的意义,不是背函数名,而是知道每类函数在策略里负责什么角色。
本章知识路线
关键论据
- 不同 API 对应不同数据层。
- 价格序列与基本面数据是两套信息系统。
- 接口参数理解直接影响结果可靠性。
行动清单
- 按功能给 API 分类。
- 先搞清返回结构,再写计算。
- 把取数动作和策略阶段对应起来。
本章图版学习路径
图版按知识点分组,用来把理论页、平台页和代码页重新接上。
源章节深读
以下卡片基于章节和小节起始页 OCR,并补上“问题、动作、提醒”三层解读。
11.1 history()函数
Python 量化交易实战入门与技巧 11.1 history()函数 history()函数可以查看一只股票或多只股票的历史行情数据,其语法格 式如下: nistory(count, unit= ‘1d', field= ‘avg',securitY- list=空值,df=True,skip_paused=False, fq= pre’) 需要注意的是,在获取天数据时,不包括当天的数据,即使是在收盘后。 关于停牌:因为获取了多只股票的数据,可能有的股票停牌,有的没有, 为了保持时间轴的一致,默认没有跳过停牌的日期,停牌时使用停牌前的数 据填充。 11.1.1 各项参数的意义 history()函数共有7项,各项参数意义如下: 1.count 参数 count,表示数量,即返回的结果集的行数。 2. unit 参数unit,表示单位时间长度,几天或者几分钟,即只支持“Xd”和 “Xm”,其中又是正整数。
11.2 attribute_history()函数
第11章 Python 量化策略的获取数据函数 内存使用 157M1.0G,本篇12619M <分 粥社区|Python3 O 文件 編辑 视阳 版入 单元榆 内核 帮助 已償任 N运行 C》代 iaport PanGaz as Pd dstafranel = history (3, unit= la, fiell' bieh, seourity.liat= 000001.2SHE,000008.ISEE ,], df=Fal.se) peint(平安银行(000001)的后三 最高价售息:,datatzmaei [000001.2sk']) peint(华次银行(000001)教瓶国 价 :,aastatz aze1 [ 000001.2SEE 1(0)) peint ('平安银行(000001)近三日的最高价的和:,datafr sae1 (”000001.2Stt ).su0) peint(“*平安银行(000001)近三
11.3 get_current_data()函数
第11章 Python 量化策略的获取数据函数 11.3 get_current_data ()函数 在回测时,有些数据在一个单位时间(天/分钟)是知道的,例如涨跌 停价、是否停牌、当天的开盘价等,这些数据可以通过 get_current_data () 函数获得。该函数的语法格式如下: get_current_data(securitY_list=空值) 参数 security_list用来设置股票代码列表,默认是空值,代表当前 universe 中的股票。
11.4 get_fundamentals()函数
Python 量化交易实战入门与技巧 当天的涨停价 print (current_datal “000001.XSHE’].high_1imit)#获取 11.4 get_fundamentals () 函数 get_fundamentals ()函数可以查询一只股票或多只股票的财务数据,其 语法格式如下: get_fundamentals (query_object, date=空值, statDate=空值) 11.4.1 各项参数的意义 get_fundamentals () 函数共有3项,各项参数意义如下: 1.query_object 参效 query_object 是一个 sqlalchemy.orm.query.Query 对象,可以通 过全局的 query 函数获取 Query 对象。
11.5 get_fundamentals_continuously()函数
Python 量化交易实战入门与技巧 cash_equivalents:货币资金(元)。货币资金是指在企业生产经营过 程中处于货币形态的那部分资金,按其形态和用途不同可分为包括库存现金、 银行存款和其他货币资金。它是企业中最活跃的资金,流动性强,是企业的 重要支付手段和流通手段,因而是流动资产的审查重点。货币资金:又称为 货币资产,是指在企业生产经营过程中处于货币形态的资产。是指可以立即 投人流通,用于购买商品或劳务或用于偿还债务的交换媒介物。 goods_sale_and_service_render_cash:销售商品、提供劳务收到的 现金(元)。反映企业本期销售商品、提供劳务收到的现金,以及前期销售商 品、提供劳务本期收到的现金(包括销售收入和应向购买者收取的增值税销 项税额)和本期预收的款项,减去本期销售本 期退回的商品和前期销售本期退回的商品支付 的现金。
11.6 get_index_stocks()函数
第11章 Python 量化策略的获取数据函数 提醒:出于性能方面考虑,返回总条数有不超过10000条的限制。也就是说,查询的股票数量 count要小于 10000。否则,返回的数据会不完签。 下面举例说明一下 get_fundamentals_continuously ()函数的应用。
11.7 get_industry_stocks()函数
第11章 Python 量化策略的获取数据函数 000134.XSHG:上证银行。 000300.XSHG:沪深300。 000805.XSHG:A股资源。 000806.XSHG:消费服务。 000807.XSHG:食品饮料。 000808.XSHG:医药生物。 get_index_stocks ()函数的返回值是股票代码的list 列表。 11.6.2 get_index_stocks ()函数的应用实例 创建一个 Python3文件,然后输入代码如下: stocks = get_index_stocks (‘000300.XSHG’) stocks 在这里获得的是沪深300指数的所有股票代码,然后显示。单击工具栏 中的 >运行 按钮,运行结果如图 11.12所示。
11.8 get_concept_stocks()函数
話入 单元協 内餐 帮助 第11章 Python 量化策略的获取数据函数 已情任 内存使用 圖132AV10G,本職10252N 分票列社区Python 3 日 stocks = tet induttry stocetl Co [occ030.xsid '000550.双SFE '0005T2.1 KSEE 000581.1 '000700 '000780.: 000688.X '000851.1 XS5E 00c8oT.EE 002048.XSEE '002c85.X5EE ∞2101.8 *002126.%5E) • 图 11.13 汽车制造业指数的所有股票代码 11.8 get_concept_stocks ()函数 get_concept_stocks ()函数可以获取在给定日期一个概念板块的所有股 票,其语法格式如下: get_concept_stocks (concept_code, date=空值) 参数date和
11.9 get_all_securities()函数
第11章 Python 量化策略的获取数据函数 11.9 get_all_ _securities()函数 get_all_securities()函数可以获取平台支持的所有股票、基金、指数、 期货信息,其语法格式如下: get_alL _securities (types=l],date=空值) 11.9.1 各项参数的意义 get_all_securities()函数有两个参数,分别是 types 和 date。 1. 参数 types 参数 types 是列表类型,用来过滤 securities 的类型,列表元素及意义如下: stock:表示股票类型,即显示所有股票信息。 fund:表示基金类型,即显示所有基金信息。 index:表示指数类型,即显示所有指数信息。 futures:表示期货类型,即显示所有期货合约信息。 etf:表示ETF 基金,即显示所有 ETF 基金信息。
11.10 get_security_info()函数
Python 量化交易实战入门与技巧 11.10 get_security_info () 函数 get_security_info ()函数可以获取一只股票(基金或指数)的信息,其 语法格式如下: get_security_info (code) 参数 code 是指证券代码。返回值是 pandas.DataFrame 类型,返回值 的属性与 get_all_securities()函数基本上是一样的。需要注意的是,返回值 多一个parent 属性,是指分级基金的母基金代码。
11.11 get_billboard_list()函数
第11章 Python 量化策略的获取数据函数 11.11 get_billboard _list () 函数 get_billboard_list()函数可以获取指定日期区间内的龙虎榜数据,其语 法格式如下: get_bil1board_list (stock_list, start_date, end_date, count) 11.11.1 各项参数的意义 get_billboard_list ()函数有四个参数,具体如下: 参数 stock lis <_list:是指一个股票代码的 list。当值为 空值 时,返回指 定日期的所有股票。 参数 start_date:开始日期。 参数 end_date:结束日期。 参数 count:交易日数量,可以与 end_date 同时使用,表示获取 end_ date 前 count 个交易日的数据。
11.12 get_locked_shares()函数
Python 量化交易实战入门与技巧 11.11.2 get_billboard_ _list()函数的应用实例 创建一个 Python3 文件,然后输入代码如下: import pandas as pd datatramel = get_billboara_List (stock, _list=空值,end _date= ‘2018-04-19’ 'count =1) dataframel 单击工具栏中的 N运行 按钮,运行结果如图11.19所示。
辨析题:为什么很多量化策略的问题其实出在取数环节?
因为信号质量取决于输入数据;参数、频率和数据结构一错,后面的逻辑再漂亮也没用。