落霞飞鹭

V1

2022/08/22阅读:10主题:红绯

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

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

选取股票数据获取和存储

数据获取 对于个人量化数据的获取,我们一般选用免费的,开源数据源有 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/huanghanyu/p/15322960.html

[3] Clikhouse win 安装教程(Ubuntu 版): https://blog.csdn.net/qq_34290284/article/details/113851428

[4] Clickhouse 安装文件网址: https://repo.yandex.ru/clickhouse/deb/stable/main/

[5] Clickhouse win 环境参考网址:https://blog.csdn.net/qq_34290284/article/details/113851428

写于 2022 年 08 月 21 日。

扫扫下面二维码,关注公众号,内容更精彩 搜索公众号:奇点畅想

分类:

后端

标签:

后端

作者介绍

落霞飞鹭
V1