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

devtools/2025/3/4 3:59:26/

文章目录

  • 统一定义的金融历史数据表
    • 最重要的数据表
    • 数据表的定义
    • 交易日历表的定义:
      • 交易日历表: `trade_calendar`

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

columnsdtypesremarksis_prime_key
0cal_datedate日期: 格式YYYYMMDDY
1exchangevarchar(9)交易所:SSE上交所,SZSE深交所,CFFEX 中金所,SHFE 上期所,CZCE 郑商所,DCE 大商所,INE 上能源Y
2is_opentinyint是否交易:是:1,否:0N
3pretrade_datedate上一交易日N

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


http://www.ppmy.cn/devtools/164358.html

相关文章

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_conf_t

ngx_conf_t 定义在src/core/ngx_core.h typedef struct ngx_conf_s ngx_conf_t;ngx_conf_s 定义在 src/core/ngx_conf_file.h struct ngx_conf_s {char *name;ngx_array_t *args;ngx_cycle_t *cycle;ngx_pool_t *po…

有道云数据下载导出到本地结合Typora-v1.9.5 解锁版解压版构建本地笔记库

1、下载python 导出脚本 脚本下载:yodaonote-pull 2、安装python 依赖包 3、获取有道云cookies 通过有道云网页版登录获取cookies 方式一:浏览器F12 方式二:chrome 浏览器插件Cookie-copy 查看 4、配置导出路径 配置cookies.json {…

Linux——计算机网络

一.历史 网络产生 二战结束,世界迅速进入了美苏冷战对抗状态。1957年,苏联成功发射了第一颗人造卫星“sputnik”,震惊了整个西方世界,极大的刺激了美国。为了防止对美国不利的震惊技术再次出现,1958年,美…

ES如何打印DSL

看了一下官网版本已经来到了8.17 正常打印似乎不行,突破的地方则是 藏在JsonpDeserializable 这个注解上; JsonpDeserializable public class SearchRequest 因此只有反序列化出来之后才能打印,似乎就这么简单,看源码或许能更快…

【FL0091】基于SSM和微信小程序的社区二手物品交易小程序

🧑‍💻博主介绍🧑‍💻 全网粉丝10W,CSDN全栈领域优质创作者,博客之星、掘金/知乎/b站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战,以及程序定制化开发…

C/C++跳动的爱心

系列文章 序号直达链接1C/C李峋同款跳动的爱心2C/C跳动的爱心3C/C经典爱心4C/C满屏飘字5C/C大雪纷飞6C/C炫酷烟花7C/C黑客帝国同款字母雨8C/C樱花树9C/C奥特曼10C/C精美圣诞树11C/C俄罗斯方块小游戏12C/C贪吃蛇小游戏13C/C孤单又灿烂的神14C/C闪烁的爱心15C/C哆啦A梦16C/C简单…

0x01 html和css

css 对于三种css使用方式&#xff1a; 第一种&#xff1a;行内样式 <span style"color: grey;">2024年05月15日 20:07</span>第二种&#xff1a;内部样式 <!DOCTYPE html> <html lang"en"> <head>...<style>span{…

Exoplayer(MediaX)实现音频变调和变速播放

在K歌或录音类应用中变调是个常见需求&#xff0c;比如需要播出萝莉音/大叔音等。变速播放在影视播放类应用中普遍存在&#xff0c;在传统播放器Mediaplayer中这两个功能都比较难以实现&#xff0c;特别在低版本SDK中&#xff0c;而Exoplayer作为google官方推出的Mediaplayer替…