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