python量化交易——金融数据管理最佳实践——使用qteasy管理本地数据源

文章目录

qteasy是一个功能全面且易用的量化交易策略框架, Github地址在这里。使用它,能轻松地获取历史数据,创建交易策略并完成回测和优化,还能实盘运行。 项目文档在这里。

我们在这里介绍如何使用qteasy管理您的金融数据。这是一篇系列文章,第一篇文章链接在这里

统一定义的金融历史数据表

DataTableqteasy内置统一定义的数据存储表。包括:

最重要的数据表

  • trade_calendar -- 交易日历表,包含了所有交易所的交易日历信息,包括交易日、交易所代码、交易所名称等信息。可以说这是qteasy运行的基础,如果缺了这张表,qteasy的很多功能都将无法运行或者将降低效率。 qteasy使用这张表中的数据来判断交易日,如果要下载其他的数据表,通常也必须通过交易日数据表来确定下载的起止日期,因此,这是您应该绝对优先填充的数据表。
  • stock_basic -- 股票基本信息表,包含了所有上市股票的基本信息,包括股票代码、股票名称、上市日期、退市日期、所属行业、地域等信息。这张表是很多其他数据表的基础,例如股票日K线数据表、股票财务数据表等,因此,这也是您应该优先填充的数据表。
  • index_basic -- 指数基本信息表,包含了所有指数的基本信息,包括指数代码、指数名称、发布日期、退市日期等信息。这张表是很多其他数据表的基础,例如指数日K线数据表、指数成分股表等,因此,这也是您应该优先填充的数据表。
  • fund_basic -- 基金基本信息表,包含了所有基金的基本信息,包括基金代码、基金名称、基金类型、基金规模等信息。这张表是很多其他数据表的基础,例如基金日K线数据表、基金净值数据表等,因此,这也是您应该优先填充的数据表。

除了上面提到的几张重要的数据表之外,数据源中还定义了大量的数据表,这些数据表包含了各种各样的金融数据,包括股票、指数、基金、期货、期权等各种金融产品的基本信息、日K线数据、财务数据、分红数据、业绩报表、宏观经济数据等等,主要分类如下:

  • 行情数据表 -- 这类数据表包含了股票、基金、指数各个不同频率的K线行情数据
  • 基本信息表 -- 这类数据表包含了股票、基金、指数、期货、期权等各种金融产品的基本信息
  • 指标信息表 -- 这类数据表包含了各种指标的信息,例如技术指标、基本面指标、宏观经济指标等
  • 财务数据表 -- 这类数据表包含了上市公司的财务报表数据,包括资产负债表、利润表、现金流量表等
  • 业绩报表表 -- 这类数据表包含了上市公司的业绩报表数据,包括业绩快报、业绩预告、业绩预测等
  • 分红交易数据表 -- 这类数据表包含了上市公司的分红数据,以及股票大宗交易、股东交易等信息表
  • 参考数据表 -- 这类数据表包含了各种参考数据,例如宏观经济数据、行业数据、交易所数据等

数据表的schema信息可以通过DataSource对象的get_table_info()方法获取:

python 复制代码
>>> from qteasy import DataSource
>>> ds = DataSource()
>>> ds.get_table_info('trade_calendar')

数据表的定义

qteasy中,每一张数据表都有以下几个基本属性:

  • 数据表用途 :表示该数据表的用途,不同用途的数据表可用的操作不同。不同的用途包括:basics表示基本信息表,finance表示财务数据表,report表示业绩报表表, reference表示参考数据表等
  • 资产类型 :表示该数据表包含的信息属于哪种资产类型。不同的资产类型包括:E表示股票,IDX表示指数,FD表示基金,FT表示期货,OPT表示期权等
  • 数据频率 :表示存储的数据的频率,不同的数据频率包括:mins表示分钟级别数据,d表示日频数据,w表示周频数据,m表示月频数据,q表示季频数据,y表示年频数据,none表示无频率数据
  • 分表信息:对于某些数据表,由于数据量极大,因此需要分表存储,与分表相关的属性包括分表数量以及分表字段等
  • 数据表的SCHEMA :数据表的SCHEMA定义了数据表的所有字段和数据类型

数据表的SCHEMA定义了数据表的所有字段和数据类型,SCHEMA各个字段的含义如下:

  • columns -- 字段名
  • dtypes -- 字段数据类型, varchar表示字符串类型,int表示整数类型,float表示浮点数类型,date表示日期类型,text表示文本类型
  • remarks -- 字段备注
  • is_prime_key -- 是否是主键,Y表示是主键,N表示不是主键

交易日历表的定义:

以最重要的交易日历表为例,它的属性及SCHEMA定义如下:

交易日历表: trade_calendar

数据表用途: basics, 资产类型: none, 数据频率: none

columns dtypes remarks is_prime_key
0 cal_date date 日期: 格式YYYYMMDD Y
1 exchange varchar(9) 交易所:SSE上交所,SZSE深交所,CFFEX 中金所,SHFE 上期所,CZCE 郑商所,DCE 大商所,INE 上能源 Y
2 is_open tinyint 是否交易:是:1,否:0 N
3 pretrade_date date 上一交易日 N

从下一篇文章开始,我们将详细介绍qteasy中定义的所有的数据表

相关推荐
阿正的梦工坊24 分钟前
PyTorch 中的 nn.ModuleList 是什么?与普通列表有啥区别?
人工智能·pytorch·python
lihuhelihu40 分钟前
精神分裂症患者GAF评分的可视化分析|使用集成学习模型 LightGBM
人工智能·python·机器学习·scikit-learn·集成学习·sklearn·boosting
AIGC_ZY1 小时前
torch.einsum 的 10 个常见用法详解以及多头注意力实现
人工智能·pytorch·python
wyz09231 小时前
python 之协程笔记
开发语言·笔记·python
云泽野2 小时前
Pytest之parametrize参数化
android·python·pytest
盖盖衍上3 小时前
Java 8 新特性
java·windows·python
mingupup3 小时前
创建一个MCP服务器,并在Cline中使用,增强自定义功能。
python
千里码aicood4 小时前
[含文档+PPT+源码等]精品基于Python实现的vue3+Django计算机课程资源平台
开发语言·python·django
小白教程4 小时前
Python核心技术,Django学习基础入门教程(附环境安装包)
python·学习·django·django教程·django项目·django项目实战·django入门教程
老大白菜4 小时前
基于Flask实现的多语言Hello World
后端·python·flask