乐趣区

关于后端:量化投资系列之可编程量化环境构建

量化投资系列之《可编程量化环境构建》

选取股票数据获取和存储

数据获取

对于集体量化数据的获取,咱们个别选用收费的,开源数据源有 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 以上的零碎,如果不是,降级下零碎吧。

  1. 装置 Docker 容器来装置 clickhouse。能够看这篇文章 window 版本装置教程网址[2],自己测试过,装置完后,要启动 docker,再启动 clickhouse – server,不知咋的,CPU 占用率高,高达 30%,并且链接不上数据库,所以不举荐。
  2. 装置 window 子系统 Ubuntu 来装置 clickhouse。十分举荐这种装置形式,兼容性很好,一次性就装置通过,并且链接数据库胜利。装置参考教程

window 10 零碎下 Ubuntu 装置 clickhouse 教程

上面介绍下 window 零碎通过 ubuntu 装置 ckickhouse

window 性能开启

  1. 开启 windows 的开发者模式

关上“设置“—>”更新和平安“—>”开发者选项“抉择”开发人员模式”

  1. 装置实用于 Linux 的 windows 子系统

关上“控制面板”->“程序”->“启用或敞开 windows 性能”,勾选实用于 Linux 的 windows 子系统,勾选 Hyper-V 性能,开启虚拟化

下载环境软件

  1. 装置 Ubuntu,关上微软利用商店,搜寻 Ubuntu,点击获取并且主动装置。

稍等片刻,装置之后启动 Ubuntu,会有一个短暂的初始化过程,而后出入用户名和明码,如下图,就装置胜利了。

  1. 设置管理员权限
    应用 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 多平台公布

退出移动版