小散量化炒股记|如何用MySQL搭建本地股票量化数据库

news/2024/5/19 1:46:32 标签: 数据库, mysql, python, java, jdbc

bb4c03d107b9268ed261d725e5ebec54.png

前言

0c9d815016f4245189eacd18c40fe216.png

数据是量化交易的源头,如何高效地管理大量数据是量化交易分析中非常关键的环节。数据库就是最佳的解决方案。

通过API接口获取到股票行情数据之后,我们可以存入到数据库之中,这样下次调用的时候只需要从本地数据库中获取即可。

目前流行的数据库有Oracle、MySQL、MongoDB、Redis、SQLite……关于数据库的选型通常取决于性能、数据完整性以及应用方面的需求。每个数据库都有它的特点和最适合的应用场合。

我的书籍《Python股票量化交易从入门到实践》上推荐的是轻型数据库SQLite,适用于无须多用户访问,数据容量小于2TB,无须海量数据处理的小型应用场景。

如果追求更全面的功能、更强大的性能,特别在并发处理上要求高效的话,MySQL无疑是所有大型数据库中最为流行的一个。

接下来我们就来介绍下如何在本地搭建MySQL数据库

548fabb98dea92120cf537658683c0cd.png

安装MySQL

3b16bdb75be4855663330a87f8fc9a70.png

首先去官网http://www.mysql.com下载MySQL。点击Downloads—>Community,选择MySQL Community Server。

14d6106b6f9a2ea6a11e5838231ec9b6.png

440cc5050d6c9867a1b597913b30eb55.png

469164041b71e48b9466267d06038eb7.png

选择对应的安装文件后开始下载。下载完成后,打开安装包,开始安装MySQL。

47f6d1f0d8dfa63b4404084d8a4d8622.png

c5bd7c36e650a92d5bc470c5b5fb3947.png

选择需要的版本:

f442ed0d678d9fa03760e3c6c221820e.png

需要安装下依赖的Visual C++

b39aa990ac0471f69c4e9089fa641a69.png

e2c56d8e320730b221bb47156a349614.png

然后按以下的步骤一步步操作即可。

f3ccc48774889403c93bb7a47ad5091b.png

a01930017123bba0a0ad86849e030752.png

58b08ce1e228a4d3c7bcbf7539737689.png

61061e07288728400ef5ba223e4553ad.png

输入账户和密码:

f7b1113651fd1b333498db7ed18f5107.png

6ac9509a0b94b710622dc1fb5b3a12e6.png

bf56d54dfe9227245a68b395d8925e93.png

b6e1cdb2697e3587f05354a60e5587e9.png

到此为止,MySQL就成功地安装在你的本地电脑上了。

c66113ffa4657ba2723052b6fedd4eef.png

一个基础的例程

69e2f8614feb7c395ff1489e152c61d2.png

接下来用一个简单的例程使用下MySQL。

使用Python操作MySQL可以安装pymysql这个库。

pip install pymysql

使用pymysql打开数据库连接代码如下,其中host为localhost,port为3306

self.conn = pymysql.connect(host=host, port=self.port, db=self.db, user=self.user, password=self.password)

如果在打开MySQL时出现报错:

RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods

原因缺少了cryptography库,安装一下即可。

javascript">pip3 install cryptography -i https://pypi.douban.com/simple

获得一个可以执行SQL语句的光标对象:

self.cursor = self.conn.cursor()

执行SQL语句,比如sql是"SELECT * FROM stock",即查看stock表中全部内容。

self.cursor.execute(sql)
self.conn.commit()

关闭数据库连接如下:

self.conn.close()

如果我们处理的是Dataframe数据的话,那么保存到数据库时可以直接使用to_sql。需要注意的一点是使用to_sql,只能使用sqlalchemy库。代码如下所示:

python">from sqlalchemy import create_engine
conn = create_engine("mysql+pymysql://root:yuanxiao@127.0.0.1:3306/quanttrader?charset=utf8")
df=ts.get_hist_data('000001')
df.to_sql(name='stock', con=conn, if_exists='append', index=False, index_label=False)

说明

完整代码我们会上传星球《Python量化场景编程技巧与方法》。

f68af21c12b545744abbccf00019882c.png

关于数据库是否要分表?如何分表?可以关注星球《Python量化场景编程技巧与方法》中的介绍。

《Python量化场景编程技巧和方法》围绕《玩转股票量化交易》中涉及到的一些内容,分享一些偏基础的关于Python编程技巧、Pandas编程技巧、数据库技巧、可视化编程技巧等等。
加入星球《玩转股票量化交易》的会员可以免费加入星球《Python量化场景编程技巧与方法》,微信联系我加入!!

0cfc5813f2aefceca13f34c991bc9878.png

元宵大师的量化交易书籍开售!!
京东、当当、天猫有售!!

dd1563225853c428bfcb41e1de649575.png


http://www.niftyadmin.cn/n/799355.html

相关文章

A股全市场个股涨停板明细来袭!—股票数据远程下载服务升级

前言创建知识星球《玩转股票量化交易》的初心是为了建立一个可以深入学习和交流的私有量化圈子,和志同道合的小伙伴们一起搭建私有的量化交易系统,并且不断迭代完善这个系统,从而能够帮助我们更高效地分析股票、获得更大的盈利机会。关于星球…

小散量化炒股记|通达信的这个接口,实盘计算技术指标正好!

前言 在星球《玩转股票量化交易》中我们提供了获取实时行情数据的方式——每间隔3秒爬虫从财经网站上实时采样全市场个股最新行情数据,类似于Level1级别的更新! 具体可以查看这篇公众号文章: 基于多任务爬虫技术, A股实时行情数据…

追击涨停板-支持A股每日涨停分析。股票量化分析工具QTYX-V2.3.8

前言 目前A股市场的股票每天是有限制最大涨幅的,也就是涨停的概念。比如主板个股最大涨幅是10%,创业板个股最大涨幅是20%等。 对于个股而言并不是随随便便就能被推到涨停板的。或是因为股票发生了重大的利好(资产重组、政策利好、业绩暴增等&…

小散量化炒股记|要克服人性弱点?激活股票全自动化交易!

前言股票的自动化交易接口在2015年之后就被管制了,于是对于普通股民来说只能通过手动下单方式完成量化交易最后一个环节。当然,对于股票交易来说,大部分人更偏向于中低频的交易范畴,毕竟高频交易在政策限制下一般人并没有什么优势…

小散量化炒股记|如何安排量化机器人日程?快设计一款任务调度器!

前言作为一套实战版的量化交易系统,应该要有一个任务日程表,在指定的时间做指定的事情才对!比如A股开盘时间是工作日早上9:30到11:30,下午13:00到15:00。那么我们的量化系统就得在这个时间段获取实时数据、执行策略、下单交易。当…

解锁实盘交易,打通量化系统交易环节!股票量化分析工具QTYX-V2.3.9

前言本期我们把股票量化分析工具QTYX的“交易”子页面给解锁了,这样一来,就打通了量化交易系统从分析到交易的完整过程,注意当前的QTYX版本升级到了2.3.9。QTYX完整架构如下所示,其中包括了QTYX股票量化分析系统和实盘机器人两部分…

beta冲刺第六天

昨天,今天,明天 昨天的困难: 没有困难 今天的解决进度: 前台对页面又进行了一次整体修改,在改动的过程中发现应该再添加一些页面,所以这次页面的添加没有在之前的计划范围内。后台部分,继续完成…

制造高CPU使用率的简单方法

制造高CPU使用率的简单方法 原文:制造高CPU使用率的简单方法在群里有人问制造CPU占用率高的场景用来做测试。所谓做好事难,干“坏”事还不容易?这个需求有很多方法可以实现,比如使用一些压力测试工具。我首先想 到的是HASH JOIN。这个联接比较…