面面观 | 【股票系统设计】(1)

1,股票系统设计

股票数据抓取框架使用TuShare。 http://tushare.org/

数据分析清洗使用pandas,numpy。 http://pandas.pydata.org/

数据存储到磁盘上,不使用数据库。存储PyTabe,hdf5格式。 http://www.pytables.org/

web框架使用tornado http://www.tornadoweb.org/en/stable/

机器学习,当然使用最流行TensorFlow啦。 https://www.tensorflow.org/

数据展示使用 echarts http://echarts.baidu.com/

 

 

2,架构设计

全系使用python实现。因为都是python的类库,互相之间调用方便。 从数据抓取,数据处理,到数据展示数据运算都是python实现。

最终的数据都到前端展示出来。主要分为4个文件夹。

 

jobs 抓取数据并存储实现类。

libs 通用工具类。

web 前端展示框架。

tf 机器学习文件夹,推测数据。

 

项目使用hdf5 数据格式进行存储。如果要是单机跑数据。需要将服务部署到一起。 要是分布式部署需要使用 nfs 或者存储到,分布式的文件系统上。 将服务拆分。分开跑数据。

hdf5数据格式本身就是压缩的。所以会节省磁盘空间。 然后在安装年月日的目录进行拆分。初期估计也不会太多,完全可以单机跑起来。 所以数据可以存储为:/data/stock/yyyy/yyyMM/yyyyMMdd.hdf5 

或者可以使用mysql+分区表存储数据。也可以实现存储股票数据。 并且速度也挺快的。

 新智云 www.enncloud.cn  了解更多关注微信公众号“极客脑司机”

 

3,docker环境构建

最简单的办法就是使用docker 搭建这个复杂的。 这里面一点点搭建起来比较麻烦,直接用TensorFlow现成的,然后在这个基础镜像上面进行添加即可。

这样速度最快。而且本身折腾TensorFlow的安装也会出现一些问题。 比较麻烦。我再alpine上面试着安装TensorFlow总会遇到一些问题。

目测现在就一个缺点有点遗憾,就是环境是ubuntu 16的而且镜像比较大。 有1.3G,但是这个不算啥。毕竟要是用其他语言进行开发。 说不定要花更多的时间呢。

有个超级好的地方是TensorFlow 的镜像里面已经包括pandas,tornado了。 里面还有一个Jupyter 一个超级好用的python 页面调试工具。

构建dockerfile:

 


FROM docker.io/tensorflow/tensorflow:latest-py3

 

RUN echo -e  "deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse \n\

deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse \n\

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse \n\

deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse \n\

deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse \n\

deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse \n\

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse \n\

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse \n\

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse \n\

deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse " > /etc/apt/sources.list

 

RUN echo  "[global]\n\

trusted-host=mirrors.aliyun.com\n\

index-url=http://mirrors.aliyun.com/pypi/simple" > /etc/pip.conf

 

#timezone

RUN apt-get update && apt-get install -y tzdata  && \

    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \

    echo "Asia/Shanghai" > /etc/timezone && \

    apt-get clean

 

#install other lib

RUN apt-get update && apt-get install -y python3-dev libmysqlclient-dev libhdf5-dev && \

    pip3 install mysqlclient  && \

    pip3 install sqlalchemy && \

    pip3 install requests && \

    apt-get install -y libxml2-dev && pip3 install lxml bs4 && \

    pip3 install tushare && \

    apt-get clean && apt-get remove -y python3-dev libmysqlclient-dev && \

    pip3 install unittest2 && \

    pip3 install --upgrade tables


 

其中一定要将镜像修改成阿里云的镜像。 会大大的加快安装速度。

 

4,总结

使用python进行股票系统开发,还是非常的方便的。 现在cpu,内存都是白菜价格。快速开发出一个系统用什么语言真的无所谓。 python开发出来的系统运行的也很稳定。运行的速度也非常的快。 除了代码没有括号,我还是非常的喜欢的。

 

posted on 2017-08-04 17:28  极客脑司机  阅读(240)  评论(0编辑  收藏  举报

导航