PythonStock(1):python 股票系统设计

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+分区表存储数据。也可以实现存储股票数据。
并且速度也挺快的。

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开发出来的系统运行的也很稳定。运行的速度也非常的快。
除了代码没有括号,我还是非常的喜欢的。

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/75364909 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页