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

本文介绍了如何在本地安装和配置MySQL数据库,包括下载、安装步骤,并演示了使用Python的pymysql库进行数据库连接、SQL查询及DataFrame数据存储。还讨论了数据库选型和分表策略,适合初学者和股票量化交易者参考。
摘要由CSDN通过智能技术生成

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库,安装一下即可。

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库。代码如下所示:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值