量化投资系列之《可编程量化环境构建》
选取股票数据获取和存储
数据获取
对于集体量化数据的获取,咱们个别选用收费的,开源数据源有 Tushare、akShare,国内最大量化平台聚宽数据(JQData)。为了疾速获取,试用 JQData 数据源,然而试用申请条目数一下子就用完了,所以选取 akShare,这不是重点。
数据本地化
获取完数据后,为了回测数据来验证一些策略模型,须要将数据本地化,个别有 csv 文件格式,数据库两种模式。csv 文件格式尽管易于人读,然而对于大量数据,治理起来并不敌对。数据库有关系型数据库,列如:MySql。还有非关系数据库类型,NoSQL 类型。网络考察过,为了方便管理和查问速度,间接弃用 csv 文件格式和关系数据库类型,选用 NoSQL 非关系型的数据库。
NoSQL 非关系型的数据库中,网络考察后,得出的论断是,因为股票日行情数据基于工夫时序,所以选用业余时序数据库,有商业的 KDB,开源的 InfluxDB,Clikhouse。商业的不必想了,贵,最初选用战斗民族开源的 Clikhouse。
综上所述,股票数据获取选用 akShare,数据本地化应用 Clikhouse [1]。
Clikhouse 介绍: Clikhouse 文档网址[1]
window 版本装置 Clikhouse
clickhouse 并不反对 window 平台的间接装置,所以须要虚拟化装置,装置办法有两种,留神这两种装置要求 window 10 以上的零碎,如果不是,降级下零碎吧。
- 装置 Docker 容器来装置 clickhouse。能够看这篇文章 window 版本装置教程网址[2],自己测试过,装置完后,要启动 docker,再启动 clickhouse – server,不知咋的,CPU 占用率高,高达 30%,并且链接不上数据库,所以不举荐。
- 装置 window 子系统 Ubuntu 来装置 clickhouse。十分举荐这种装置形式,兼容性很好,一次性就装置通过,并且链接数据库胜利。装置参考教程
window 10 零碎下 Ubuntu 装置 clickhouse 教程
上面介绍下 window 零碎通过 ubuntu 装置 ckickhouse
window 性能开启
- 开启 windows 的开发者模式
关上“设置“—>”更新和平安“—>”开发者选项“抉择”开发人员模式”
- 装置实用于 Linux 的 windows 子系统
关上“控制面板”->“程序”->“启用或敞开 windows 性能”,勾选实用于 Linux 的 windows 子系统,勾选 Hyper-V 性能,开启虚拟化
下载环境软件
- 装置 Ubuntu,关上微软利用商店,搜寻 Ubuntu,点击获取并且主动装置。
稍等片刻,装置之后启动 Ubuntu,会有一个短暂的初始化过程,而后出入用户名和明码,如下图,就装置胜利了。
- 设置管理员权限
应用 Linux 零碎常常须要用管理员权限操作。所以这里先设置好,免得前面麻烦。
ubuntu 默认不容许应用 root 登录,因而初始 root 账户是不能应用的,须要在一般账户下利用 sudo 权限批改 root 明码。
Ubuntu 装置门路在:
C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\rootfs\home
前期工作筹备好,就能够进入 Clickhouse 的装置了。
装置 Clickhouse
1、获取安装文件
下载三个安装程序包,官网地址[4]
clickhouse-common-static_20.9.2.20_amd64
clickhouse-server_20.9.2.20_all
clickhouse-client_20.9.2.20_all
2、执行安装文件
将下载好的三个文件复制到 Ubuntu 装置目录下,创立一个文件夹 clickhouse
cd 到三个安装文件的目录下,不然上面的装置命令找不到文件
顺次执行上面装置命令,期待装置结束
sudo dpkg -i clickhouse-common-static_20.9.2.20_amd64.deb
sudo dpkg -i clickhouse-server_20.9.2.20_all.deb
sudo dpkg -i clickhouse-client_20.9.2.20_all.deb
如图所示就曾经装置胜利了。要留神的是,装置 clickhouse-server 的时候,提醒了输出明码。我这外面输出的 sykent(很重要),如果不输出明码间接回车仿佛是能够的。
回退到下层文件夹,在 etc 文件夹下看到了装置的 clickhouse
3、启动 Clickhouse 服务
操作到这里能够说曾经胜利一半了,这里能够启动 Clickhouse 服务了。然而,在启动服务的时候会报错,解决思路就是批改配置文件内容。这里咱们先间接启动服务,看都会报什么谬误。(重点)
能够运行如下命令在后盾启动服务, 能够在 /var/log/clickhouse-server/ 目录中查看日志。
如果服务没有启动,请查看配置文件 /etc/clickhouse-server/config.xml。
sudo service clickhouse-server start
4、启动 / 进行 / 重启服务
执行命令
sudo service clickhouse-server start #启动
sudo service clickhouse-server stop #进行
sudo service clickhouse-server restart #重启服务,其实就是先 stop,而后再 start
5、连贯 Clickhouse 服务器
执行命令
clickhouse-client
留神:如果设置了明码,会有这样的提醒
设置明码执行残缺命令
clickhouse-client --port 9000 --host 127.0.0.1 --password sykent --multiline
胜利后
6、用数据库工具连贯 clickhouse
装置 Python 环境和 PyCharm,至于这两个软件怎么装置,就不介绍了,自行上网一搜,一大堆。
关上 PyCharm,新建一个工程,点击左边 Database , 点击 + 号,选中数据库 Clikhouse
新建数据库,填写信息,用户名默认 default,明码是装置时设置的明码,点击测试,能够看到链接胜利,点击 ok。
7、创立股票日行情表
链接数据库后,能够看到新建的数据库,而后执行创立表命令
CREATE TABLE stock.stock_daily_price
(
`date` Date,
`code` String,
`open` Float32,
`high` Float32,
`low` Float32,
`close` Float32,
`volume` Float64,
`amount` Float64
-- `adj_factor` Int32,
-- `st_status` Int16,
-- `trade_status` Int16
) ENGINE = ReplacingMergeTree()
ORDER BY (javaHash(code), date)
点击执行,能够看到数据库 stock 创立了股票日行情表 stock_daily_price。
下篇预报
到此,咱们具备了数据存储环境,下一步就能够获取日行情数据,存储到数据库。日行情数据获取并存储到数据库曾经实现,欲知后事如何,且看下篇介绍。
下篇预报,获取数据存储数据库如图所示:
下篇介绍获取沪深 A 股,20050101 – 20200820 的日行情数据并存储到 clickhouse 工夫序列数据库中,一共 10652812 行数据,1100 万行左右,有了日行情数据,量化体系又进了一步。
援用链接
[1] Clikhouse 文档:https://clickhouse.com/docs/zh/
[2] Clikhouse win 装置教程(docker 版):https://www.cnblogs.com/huang…
[3] Clikhouse win 装置教程(Ubuntu 版): https://blog.csdn.net/qq_3429…
[4] Clickhouse 安装文件网址: https://repo.yandex.ru/clickh…
[5] Clickhouse win 环境参考网址:https://blog.csdn.net/qq_3429…
写于 2022 年 08 月 21 日。
本文由 mdnice 多平台公布