专题研究|量化交易怎么少得了数据库管理!来看一款Python内置的数据库

2020-05-07 17:03:47 浏览数 (1)

开场

Python 进行数据分析和价值挖掘是当前炙手可热的技术领域,如何高效地管理大量数据是其中非常关键的环节。数据库是最佳的解决方案之一,目前流行的数据库有Oracle、MySQL、MongoDB、Redis、SQLite……关于数据库的选型通常取决于性能、数据完整性以及应用方面的需求。

当然,适合自己的才是最好的!

  • 假如有朋友是在第三方平台上做回测、模拟交易的,那么完全不用考虑数据库的问题,平台都替大家管理好了。
  • 假如有朋友不习惯这些平台的风格和使用习惯,想自己搭建一套属于自己的量化框架,那么数据管理是非常重要的,毫不犹豫的要上数据库了。

如何选择数据库呢?

想必大家耳熟能详的几款一定是Oracle、MySQL、MongoDB、Redis……这些数据库的确非常优秀,无论是功能还是性能都非常强大,是企业级别应用的最佳选择。但是也会带来一个问题——上手难度大,学习成本太高,对于个体的量化交易者来说,有点杀鸡用牛刀了,好不容易上手了,发现只是用到了冰山一角的功能,白忙活一阵!

于是诞生了今天的主题!

本场Chat推荐一款Python内置的轻型数据库——SQLite3,它本身是用C写的,不但体积小巧,而且处理速度快,非常适合用于Python金融量化分析爱好者在本地实现数据管理。

推荐理由

DB-Engines发布的全球数据库流行度排名,如下图所示。

排名前五的一如既往还是Oracle、MySQL、Microsoft SQL Server、PostgreSQL、MongoDB。

不过每个数据库都有它的特点和最适合的应用场合,这里我们推荐一款轻型的关系型数据库SQLite,目前已经发布SQLite 3 版本,尽管SQLite几乎每个月都保持在10名左右,但我们还是强力推荐。

此处推荐理由如下

  • SQLite本身是C写,所以体积小巧,占用资源低
  • SQLite本身是C写,所以处理速度非常快
  • SQLite3支持Windows/Linux/Unix等主流操作系统
  • Python 2.5.x 以上版本默认内置SQLite3,无需单独安装和配置,直接使用!!!

当我们仅仅是用于本地的数据管理,无需多用户访问,数据容量小于2T,无需海量数据处理,关键是要求移植方便、使用简单、处理迅速的话,SQLite确实是个很不错的选择。

专题简介

本场Chat以股票交易数据为例具体介绍如下内容:

  • 概述SQLite的发展和特点
  • Python操作SQLite的API介绍
  • Pandas操作SQLite的API介绍
  • 建立SQLite股票行情数据库
  • 基于SQLite股票行情数据分析

本场Chat 适用于具备Python 基础能力的同学,从中可以掌握在Python下通过SQLite实现大数据分析的技巧。

于是基于SQLite股票行情数据分析可以这样做。

比如查询'20190128'这天交易日收盘价在9到10元,涨幅超过5%的股票。

df = pd.read_sql_query("select *from 'STOCK000002' where close > 9 and close < 10 and pct_chg > 5 and trade_date == '20190128'", conn)

比如查询股价日涨幅超过5%的个股在19年1月至2月的分布,可以结合groupby()按关键字分组来实现功能。

df = pd.read_sql_query("select *from 'STOCK000002' where pct_chg > 5", conn) count_=df.groupby('trade_date')['ts_code'].count()

我们将分布情况用条形图展现。

同样的方法我们绘制出在19年1月至2月的期间,股价跌幅超过5%的分布图。

0 人点赞