4. QTEASY管理的历史数据种类
使用qteasy可以获取并管理大量的历史数据。qteasy可以管理的历史数据涵盖股票、基金、指数、期货等等,种类包含价格数据、技术指标、宏观经济、公司财报、宏观金融等等。
所有数据都可以通过tushare的接口获取,下载到本地之后,就可以通过qteasy的接口进行管理和调用了。
查找支持历史数据:
- qteasy.find_history_data(s, match_description=False, fuzzy=False, freq=None, asset_type=None, match_threshold=0.85)[source]
根据输入的字符串,查找或匹配历史数据类型,并且显示该历史数据的详细信息。支持模糊查找、支持通配符、支持通过英文字符或中文 查找匹配的历史数据类型。
- Paramètres:
s (str) – 一个字符串,用于查找或匹配历史数据类型
match_description (bool, Default: False) –
- 是否模糊匹配数据描述,如果给出的字符串中含有非Ascii字符,会自动转为True
False: 仅匹配数据名称
True: 同时匹配数据描述
fuzzy (bool, Default: False) –
- 是否模糊匹配数据名称,如果给出的字符串中含有非Ascii字符或通配符*/?,会自动转为True
False: 精确匹配数据名称
True: 模糊匹配数据名称或数据描述
freq (str, Default: None) – 数据频率,如果提供,则只匹配该频率的数据 可以输入单个频率,也可以输入逗号分隔的多个频率
asset_type (str, Default: None) – 证券类型,如果提供,则只匹配该证券类型的数据 可以输入单个证券类型,也可以输入逗号分隔的多个证券类型
match_threshold (float, default 0.85) – 匹配度阈值,匹配度超过该阈值的项目会被判断为匹配
- Renvoie:
data_id – 匹配到的数据类型的data_id,可以用于qt.get_history_data()下载数据
- Type renvoyé:
list
Exemples
>>> import qteasy as qt >>> qt.find_history_data('pe') matched following history data, use "qt.get_history_data()" to load these historical data by its name: ------------------------------------------------------------------------ freq asset table desc data_id initial_pe d E new_share 新股上市信息 - 发行市盈率 pe d IDX index_indicator 指数技术指标 - 市盈率 pe d E stock_indicator 股票技术指标 - 市盈率(总市值/净利润, 亏损的PE为空) pe_2 d E stock_indicator2 股票技术指标 - 动态市盈率 ========================================================================
>>> qt.find_history_data('ep*') matched following history data, use "qt.get_history_data()" to load these historical data by its data_id: ------------------------------------------------------------------------ freq asset table desc data_id eps_last_year q E express 上市公司业绩快报 - 去年同期每股收益 eps q E financial 上市公司财务指标 - 基本每股收益 ========================================================================
>>> qt.find_history_data('每股收益') matched following history data, use "qt.get_history_data()" to load these historical data by its data_id: ------------------------------------------------------------------------ freq asset table desc data_id basic_eps q E income 上市公司利润表 - 基本每股收益 diluted_eps q E income 上市公司利润表 - 稀释每股收益 express_diluted_eps q E express 上市公司业绩快报 - 每股收益(摊薄)(元) yoy_eps q E express 上市公司业绩快报 - 同比增长率:基本每股收益 eps_last_year q E express 上市公司业绩快报 - 去年同期每股收益 eps q E financial 上市公司财务指标 - 基本每股收益 dt_eps q E financial 上市公司财务指标 - 稀释每股收益 diluted2_eps q E financial 上市公司财务指标 - 期末摊薄每股收益 q_eps q E financial 上市公司财务指标 - 每股收益(单季度) basic_eps_yoy q E financial 上市公司财务指标 - 基本每股收益同比增长率(%) dt_eps_yoy q E financial 上市公司财务指标 - 稀释每股收益同比增长率(%) ========================================================================
- Lève:
TypeError – 输入的s不是字符串,或者freq/asset_type不是字符串或列表:
下载历史数据
- qteasy.refill_data_source(tables, *, channel=None, data_source=None, dtypes=None, freqs=None, asset_types=None, refresh_trade_calendar=False, refill_dependent_tables=True, symbols=None, start_date=None, end_date=None, list_arg_filter=None, reversed_par_seq=False, parallel=True, process_count=None, chunk_size=100, download_batch_size=0, download_batch_interval=0, merge_type='update', log=False) None[source]
从网络数据提供商的API通道批量下载数据,清洗后填充数据到本地数据源中
- Paramètres:
tables (str or list of str, default: None) – 数据表名,必须是database中定义的数据表,用于指定需要下载的数据表 可以给出数据表名称,如 “stock_daily, stock_weekly” 也可以给出数据表的用途,如 “data, basic”
data_source (DataSource, Default None) – 需要填充数据的DataSource, 如果为None,则填充数据源到QT_DATA_SOURCE
channel (str, optional, Default 'tushare') –
数据获取渠道,金融数据API,支持以下选项:
”tushare” : 从Tushare API获取金融数据,请自行申请相应权限和积分
’akshare” : 从AKshare API获取金融数据
’eastmoney” : 从东方财富网获取金融数据
tables – 数据表名,必须是database中定义的数据表,用于指定需要下载的数据表
dtypes (str or list of str, default: None) – 需要下载的数据类型,用于进一步筛选数据表,必须是database中定义的数据类型
freqs (str or list of str, default: None) – 需要下载的数据频率,用于进一步筛选数据表,必须是database中定义的数据频率
asset_types (str or list of str, default: None) – 需要下载的数据资产类型,用于进一步筛选数据表,必须是database中定义的资产类型
refresh_trade_calendar (Bool, Default False) – 是否更新trade_calendar表,如果为True,则会下载trade_calendar表的数据
refill_dependent_tables (Bool, Default True, New in v1.4.3) – 是否更新依赖表的数据,默认True,如果设置为False,则忽略依赖表,这样可能导致数据下载不成功
start_date (str YYYYMMDD) – 限定数据下载的时间范围,如果给出start_date/end_date,只有这个时间段内的数据会被下载
end_date (str YYYYMMDD) – 限定数据下载的时间范围,如果给出start_date/end_date,只有这个时间段内的数据会被下载
list_arg_filter (str or list of str, default: None 注意,不是所有情况下filter_arg参数都有效) –
限定下载数据时的筛选参数,某些数据表以列表的形式给出可筛选参数,如stock_basic表,它有一个可筛选 参数 »exchange »,选项包含 “SSE”, “SZSE”, “BSE”,可以通过此参数限定下载数据的范围。 如果filter_arg为None,则下载所有数据。 例如,下载stock_basic表数据时,下载以下输入均为合法输入:
- ”SZSE”
仅下载深圳交易所的股票数据
[“SSE”, “SZSE”]
- ”SSE, SZSE”
上面两种写法等效,下载上海和深圳交易所的股票数据
symbols (str or list of str, default: None) – 用于下载数据的股票代码,如果给出了symbols,只有这些股票代码的数据会被下载
reversed_par_seq (Bool, Default False) – 是否逆序参数下载数据, 默认False - True: 逆序参数下载数据 - False: 顺序参数下载数据
parallel (Bool, Default True) – 是否启用多线程下载数据 - True: 启用多线程下载数据 - False: 禁用多线程下载
process_count (int) – 启用多线程下载时,同时开启的线程数,默认值为设备的CPU核心数
chunk_size (int) – 保存数据到本地时,为了减少文件/数据库读取次数,将下载的数据累计一定数量后 再批量保存到本地,chunk_size即批量,默认值100
download_batch_size (int, default 0) – 为了降低下载数据时的网络请求频率,可以在完成一批数据下载后,暂停一段时间再继续下载 该参数指定了每次暂停之前最多可以下载的次数,该参数只有在parallel=False时有效 如果为0,则不暂停,一次性下载所有数据
download_batch_interval (int, default 0) – 为了降低下载数据时的网络请求频率,可以在完成一批数据下载后,暂停一段时间再继续下载 该参数指定了每次暂停的时间,单位为秒,该参数只有在parallel=False时有效 如果<=0,则不暂停,立即开始下一批数据下载
merge_type (str, Default 'update') – 数据写入数据源时的合并方式,支持以下选项: - “update” : 更新数据,如果数据已存在,则更新数据 - “ignore” : 忽略数据,如果数据已存在,则丢弃下载的数据
log (Bool, Default False) – 是否记录数据下载日志
- Type renvoyé:
None
Exemples
>>> import qteasy as qt >>> qt.refill_data_source(tables='stock_basic')
历史数据下载到本地之后,可以检查、管理、调用这些数据。
检查本地数据:
- qteasy.get_table_info(table_name, data_source=None, verbose=True) dict[source]
- 获取并打印数据源中一张数据表的信息,包括数据量、占用磁盘空间、主键名称、内容
以及数据列的名称、数据类型及说明
4. Parameters:
- table_name: str
需要查询的数据表名称
- data_source: DataSource
需要获取数据表信息的数据源,默认None,此时获取QT_DATA_SOURCE的信息
- verbose: bool, Default: True,
是否打印完整数据列名称及类型清单
- returns:
- {
table name: 数据表名称 table_exists: bool,数据表是否存在 table_size: int/str,数据表占用磁盘空间,human 为True时返回容易阅读的字符串 table_rows: int/str,数据表的行数,human 为True时返回容易阅读的字符串 primary_key1: str,数据表第一个主键名称 pk_count1: int,数据表第一个主键记录数量 pk_min1: obj,数据表主键1起始记录 pk_max1: obj,数据表主键2最终记录 primary_key2: str,数据表第二个主键名称 pk_count2: int,数据表第二个主键记录 pk_min2: obj,数据表主键2起始记录 pk_max2: obj,数据表主键2最终记录
}
- rtype:
一个dict,包含数据表的结构化信息:
Exemples
>>> get_table_info('STOCK_BASIC') <stock_basic>, 1.5MB/5K records on disc primary keys: ----------------------------------- 1: ts_code: <unknown> entries starts: 000001.SZ, end: 873527.BJ columns of table: ------------------------------------ columns dtypes remarks 0 ts_code varchar(9) 证券代码 1 symbol varchar(6) 股票代码 2 name varchar(20) 股票名称 3 area varchar(10) 地域 4 industry varchar(10) 所属行业 5 fullname varchar(50) 股票全称 6 enname varchar(80) 英文全称 7 cnspell varchar(40) 拼音缩写 8 market varchar(6) 市场类型 9 exchange varchar(6) 交易所代码 10 curr_type varchar(6) 交易货币 11 list_status varchar(4) 上市状态 12 list_date date 上市日期 13 delist_date date 退市日期 14 is_hs varchar(2) 是否沪深港通
获取已经下载的本地数据总览:
- qteasy.get_table_overview(data_source=None, tables=None, include_sys_tables=False) DataFrame[source]
显示默认数据源或指定数据源的数据总览
- Paramètres:
data_source (Object) – 一个data_source 对象,默认为None,如果为None,则显示默认数据源的overview
tables (str or list of str, Default: None) – 需要显示overview的数据表名称,如果为None,则显示所有数据表的overview
include_sys_tables (bool, Default: False) – 是否显示系统数据表的overview
- Type renvoyé:
pd.DataFrame
Notes
用法示例参见get_data_overview()
- qteasy.get_data_overview(data_source=None, tables=None, include_sys_tables=False) DataFrame[source]
显示数据源的数据总览,等同于get_table_overview()
获取的信息包括所有数据表的数据量、占用磁盘空间、主键名称、内容等
- Paramètres:
data_source (Object) – 一个data_source 对象,默认为None,如果为None,则显示默认数据源的overview
tables (str or list of str, Default: None) – 需要显示overview的数据表名称,如果为None,则显示所有数据表的overview
include_sys_tables (bool, Default: False) – 是否显示系统数据表的overview
- Renvoie:
pd.DataFrame
返回一个包含数据表的overview信息的DataFrame
Exemples
>>> import qteasy as qt >>> qt.get_data_overview() # 获取当前默认数据源的数据总览 Analyzing local data source tables... depending on size of tables, it may take a few minutes [########################################]62/62-100.0% Analyzing completed! db:mysql://localhost@3306/ts_db Following tables contain local data, to view complete list, print returned DataFrame Has_data Size_on_disk Record_count Record_start Record_end table trade_calendar True 2.5MB 73K 1990-10-12 2023-12-31 stock_basic True 1.5MB 5K None None stock_names True 1.5MB 14K 1990-12-10 2023-07-17 stock_company True 18.5MB 3K None None stk_managers True 150.4MB 126K 2020-01-01 2022-07-27 index_basic True 3.5MB 10K None None fund_basic True 4.5MB 17K None None future_basic True 1.5MB 7K None None opt_basic True 15.5MB 44K None None stock_1min True 42.83GB 273.0M 20220318 20230710 stock_5min True 34.33GB 233.2M 20090105 20230710 stock_15min True 14.45GB 141.2M 20090105 20230710 stock_30min True 7.78GB 77.1M 20090105 20230710 stock_hourly True 4.22GB 42.0M 20090105 20230710 stock_daily True 1.49GB 11.6M 1990-12-19 2023-07-17 stock_weekly True 231.9MB 2.6M 1990-12-21 2023-07-14 stock_monthly True 50.6MB 635K 1990-12-31 2023-06-30 index_1min True 4.25GB 27.6M 20220318 20230712 index_5min True 6.18GB 47.2M 20090105 20230712 index_15min True 2.61GB 26.1M 20090105 20230712 index_30min True 884.0MB 12.9M 20090105 20230712 index_hourly True 536.0MB 7.6M 20090105 20230712 index_daily True 309.0MB 3.7M 1990-12-19 2023-07-10 index_weekly True 61.6MB 674K 1991-07-05 2023-07-14 index_monthly True 13.5MB 158K 1991-07-31 2023-06-30 fund_1min True 5.46GB 55.8M 20220318 20230712 fund_5min True 3.68GB 12.3M 20220318 20230712 fund_15min True 835.9MB 3.9M 20220318 20230712 fund_30min True 385.7MB 1.9M 20220318 20230712 fund_hourly True 124.8MB 1.6M 20210104 20230629 fund_daily True 129.7MB 1.6M 1998-04-07 2023-07-10 fund_nav True 693.0MB 13.6M 2000-01-07 2023-07-07 fund_share True 72.7MB 1.4M 1998-03-27 2023-07-14 fund_manager True 109.7MB 37K 2000-02-22 2023-03-30 future_hourly True 32KB 0 None None future_daily True 190.8MB 2.0M 1995-04-17 2023-07-10 options_hourly True 32KB 0 None None options_daily True 436.0MB 4.6M 2015-02-09 2023-07-10 stock_adj_factor True 897.0MB 11.8M 1990-12-19 2023-07-12 fund_adj_factor True 74.6MB 1.8M 1998-04-07 2023-07-12 stock_indicator True 2.06GB 11.8M 1999-01-01 2023-07-17 stock_indicator2 True 734.8MB 4.1M 2017-06-14 2023-07-10 index_indicator True 4.5MB 45K 2004-01-02 2023-07-10 index_weight True 748.0MB 8.7M 2005-04-08 2023-07-14 income True 59.7MB 213K 1990-12-31 2023-06-30 balance True 97.8MB 218K 1989-12-31 2023-06-30 cashflow True 69.7MB 181K 1998-12-31 2023-06-30 financial True 289.0MB 203K 1989-12-31 2023-06-30 forecast True 32.6MB 98K 1998-12-31 2024-03-31 express True 3.5MB 23K 2004-12-31 2023-06-30 shibor True 16KB 212 None None
下载数据基础数据:
- qteasy.get_basic_info(code_or_name: str, asset_types=None, match_full_name=False, printout=True, verbose=False)[source]
- 等同于get_stock_info()
根据输入的信息,查找股票、基金、指数或期货、期权的基本信息
- Paramètres:
code_or_name –
证券代码或名称:
如果是证券代码,可以含后缀也可以不含后缀,含后缀时精确查找、不含后缀时全局匹配
如果是证券名称,可以包含通配符模糊查找,也可以通过名称模糊查找
如果精确匹配到一个证券代码,返回一个字典,包含该证券代码的相关信息
asset_types (默认None) –
证券类型,接受列表或逗号分隔字符串,包含认可的资产类型:
E 股票
IDX 指数
FD 基金
FT 期货
OPT 期权
match_full_name (bool, default False) – 是否匹配股票或基金的全名,默认否,如果匹配全名,耗时更长
printout (bool, default True) – 如果为True,打印匹配到的结果
verbose (bool, default False) –
当匹配到的证券太多时(多于五个),是否显示完整的信息
False 默认值,只显示匹配度最高的内容
True 显示所有匹配到的内容
- Renvoie:
当仅找到一个匹配时,返回一个dict,包含找到的基本信息,根据不同的证券类型,找到的信息不同:
股票信息:公司名、地区、行业、全名、上市状态、上市日期
指数信息:指数名、全名、发行人、种类、发行日期
基金: 基金名、管理人、托管人、基金类型、发行日期、发行数量、投资类型、类型
期货: 期货名称
期权: 期权名称
- Type renvoyé:
dict
Exemples
>>> get_basic_info('000001.SZ') found 1 matches, matched codes are {'E': {'000001.SZ': '平安银行'}, 'count': 1} More information for asset type E: ------------------------------------------ ts_code 000001.SZ name 平安银行 area 深圳 industry 银行 fullname 平安银行股份有限公司 list_status L list_date 1991-04-03 -------------------------------------------
>>> get_basic_info('000001') found 4 matches, matched codes are {'E': {'000001.SZ': '平安银行'}, 'IDX': {'000001.CZC': '农期指数', '000001.SH': '上证指数'}, 'FD': {'000001.OF': '华夏成长'}, 'count': 4} More information for asset type E: ------------------------------------------ ts_code 000001.SZ name 平安银行 area 深圳 industry 银行 fullname 平安银行股份有限公司 list_status L list_date 1991-04-03 ------------------------------------------- More information for asset type IDX: ------------------------------------------ ts_code 000001.CZC 000001.SH name 农期指数 上证指数 fullname 农期指数 上证综合指数 publisher 郑州商品交易所 中证公司 category 商品指数 综合指数 list_date None 1991-07-15 ------------------------------------------- More information for asset type FD: ------------------------------------------ ts_code 000001.OF name 华夏成长 management 华夏基金 custodian 中国建设银行 fund_type 混合型 issue_date 2001-11-28 issue_amount 32.3683 invest_type 成长型 type 契约型开放式 -------------------------------------------
>>> get_basic_info('平安银行') found 4 matches, matched codes are {'E': {'000001.SZ': '平安银行', '600928.SH': '西安银行'}, 'IDX': {'802613.SI': '平安银行养老新兴投资指数'}, 'FD': {'700001.OF': '平安行业先锋'}, 'count': 4} More information for asset type E: ------------------------------------------ ts_code 000001.SZ 600928.SH name 平安银行 西安银行 area 深圳 陕西 industry 银行 银行 fullname 平安银行股份有限公司 西安银行股份有限公司 list_status L L list_date 1991-04-03 2019-03-01 ------------------------------------------- More information for asset type IDX: ------------------------------------------ ts_code 802613.SI name 平安银行养老新兴投资指数 fullname 平安银行养老新兴投资指数 publisher 申万研究 category 价值指数 list_date 2017-01-03 ------------------------------------------- More information for asset type FD: ------------------------------------------ ts_code 700001.OF name 平安行业先锋 management 平安基金 custodian 中国银行 fund_type 混合型 issue_date 2011-08-15 issue_amount 31.9816 invest_type 混合型 type 契约型开放式 -------------------------------------------
>>> get_basic_info('贵州钢绳', match_full_name=False) No match found! To get better result, you can - pass "match_full_name=True" to match full names of stocks and funds
>>> get_basic_info('贵州钢绳', match_full_name=True) found 1 matches, matched codes are {'E': {'600992.SH': '贵绳股份'}, 'count': 1} More information for asset type E: ------------------------------------------ ts_code 600992.SH name 贵绳股份 area 贵州 industry 钢加工 fullname 贵州钢绳股份有限公司 list_status L list_date 2004-05-14 -------------------------------------------
- qteasy.get_stock_info(code_or_name: str, asset_types=None, match_full_name=False, printout=True, verbose=False)[source]
- 等同于get_basic_info()
根据输入的信息,查找股票、基金、指数或期货、期权的基本信息
- Paramètres:
code_or_name – 证券代码或名称, 如果是证券代码,可以含后缀也可以不含后缀,含后缀时精确查找、不含后缀时全局匹配 如果是证券名称,可以包含通配符模糊查找,也可以通过名称模糊查找 如果精确匹配到一个证券代码,返回一个字典,包含该证券代码的相关信息
asset_types –
证券类型,接受列表或逗号分隔字符串,包含认可的资产类型:
E 股票
IDX 指数
FD 基金
FT 期货
OPT 期权
match_full_name (bool) – 是否匹配股票或基金的全名,默认否,如果匹配全名,耗时更长
printout (bool) – 如果为True,打印匹配到的结果
verbose (bool) –
当匹配到的证券太多时(多于五个),是否显示完整的信息
False 默认值,只显示匹配度最高的内容
True 显示所有匹配到的内容
- Renvoie:
当仅找到一个匹配时,返回一个dict,包含找到的基本信息,根据不同的证券类型,找到的信息不同:
股票信息:公司名、地区、行业、全名、上市状态、上市日期
指数信息:指数名、全名、发行人、种类、发行日期
基金: 基金名、管理人、托管人、基金类型、发行日期、发行数量、投资类型、类型
期货: 期货名称
期权: 期权名称
- Type renvoyé:
dict
Notes
用法示例参见:get_basic_info()
- qteasy.filter_stock_codes(date: str = 'today', **kwargs) list[source]
根据输入的参数调用filter_stocks筛选股票,并返回股票代码的清单
- Paramètres:
date (date-like str) – 筛选股票的上市日期,在该日期以后上市的股票将会被剔除:
kwargs (str or list of str) – 可以通过以下参数筛选股票, 可以同时输入多个筛选条件,只有符合要求的股票才会被筛选出来
- Type renvoyé:
list, 股票代码清单
Voir aussi
- qteasy.filter_stocks(date: str = 'today', **kwargs) DataFrame[source]
根据输入的参数筛选股票,并返回一个包含股票代码和相关信息的DataFrame
- Paramètres:
date (date-like str) – 筛选股票的上市日期,在该日期以后上市的股票将会被剔除:
kwargs (str or list of str) – 可以通过以下参数筛选股票, 可以同时输入多个筛选条件,只有符合要求的股票才会被筛选出来 - index: 根据指数筛选,不含在指定的指数内的股票将会被剔除 - industry: 公司所处行业,只有列举出来的行业会被选中 - area: 公司所处省份,只有列举出来的省份的股票才会被选中 - market: 市场,分为主板、创业板等 - exchange: 交易所,包括上海证券交易所和深圳股票交易所
- Renvoie:
DataFrame
- Type renvoyé:
筛选出来的股票的基本信息
Exemples
>>> # 筛选出2019年1月1日以后的上证300指数成分股 >>> filter_stocks(date='2019-01-01', index='000300.SH') symbol name area industry market list_date exchange ts_code 000001.SZ 000001 平安银行 深圳 银行 主板 1991-04-03 SZSE 000002.SZ 000002 万科A 深圳 全国地产 主板 1991-01-29 SZSE 000063.SZ 000063 中兴通讯 深圳 通信设备 主板 1997-11-18 SZSE 000069.SZ 000069 华侨城A 深圳 全国地产 主板 1997-09-10 SZSE 000100.SZ 000100 TCL科技 广东 元器件 主板 2004-01-30 SZSE ... ... ... ... ... ... ... 600732.SH 600732 爱旭股份 上海 电气设备 主板 1996-08-16 SSE 600754.SH 600754 锦江酒店 上海 酒店餐饮 主板 1996-10-11 SSE 600875.SH 600875 东方电气 四川 电气设备 主板 1995-10-10 SSE 601699.SH 601699 潞安环能 山西 煤炭开采 主板 2006-09-22 SSE 688223.SH 688223 晶科能源 江西 电气设备 科创板 2022-01-26 SSE [440 rows x 7 columns]
>>> # 筛选出2019年1月1日以后上市的上海银行业的股票 >>> filter_stocks(date='2019-01-01', industry='银行', area='上海') name area industry market list_date exchange ts_code 600000.SH 浦发银行 上海 银行 主板 1999-11-10 SSE 601229.SH 上海银行 上海 银行 主板 2016-11-16 SSE 601328.SH 交通银行 上海 银行 主板 2007-05-15 SSE