项目简介
本项目是基于Python的pandas、tushare、bokeh、tornado、stockstats、ta-lib等框架开发的全栈股票系统。可通过Docker进行本地部署,利用tushare和akshare抓取数据,使用Mariadb(MySQL)存储数据,具备数据抓取、处理、展示和计算等功能,为股票分析提供全面支持。
项目的主要特性和功能
- 数据抓取:借助tushare和akshare库抓取实时和历史股票数据,支持按天缓存,存储最近3天数据并每日定时清除。
- 数据处理:运用pandas进行数据清洗、去重和格式转换,处理重复数据并保存最新一条。
- 数据展示:采用Bokeh库绘制多达17个指标的股票数据图表,查看股票时可跳转至东方财富页面查看相关信息。
- 数据计算:使用stockstats和ta - lib库计算KDJ、RSI、CCI等多种技术指标,每日计算17个指标,依据3个指标进行股票数据计算。
- Web应用:通过Tornado框架构建Web系统,展示股票数据、沪深300成份股、中证500成份股、龙虎榜数据、每日股票数据和大盘指数行情等。
- 定时任务:利用corn每天18点开始计算当日数据,使用300天数据,约15分钟计算完毕。
- 通用展示:有通用数据展示系统,配置字典模板后页面自动加载数据并展示。
- 排序与筛选:支持单个字段排序、多字段排序、服务端分页排序以及多字段筛选查询。
安装使用步骤
前提条件
假设用户已下载本项目的源码文件,且已安装Docker。
部署方式
方式一:使用mariadb和stock两个镜像
```bash mkdir -p /data/mariadb/data docker pull pythonstock/pythonstock:latest docker pull mariadb:latest
docker run --name mariadb -v /data/mariadb/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=mariadb -p 3306:3306 -d mariadb:latest
docker run -itd --link=mariadb --name stock \ -v /opt/stock/notebooks:/data/notebooks \ -p 9999:8888 \ -p 8888:9999 \ pythonstock/pythonstock:latest ```
方式二:直接启动stock,使用其他mysql数据库
bash
docker run -itd --name stock \
-v /opt/stock/notebooks:/data/notebooks \
-p 9999:8888 \
-p 8888:9999 \
-e MYSQL_HOST=127.0.0.1 \
-e MYSQL_USER=root \
-e MYSQL_PWD=passwd \
-e MYSQL_DB=stock_data \
pythonstockleeks/pythonstockleeks:latest
方式三:使用docker compose
bash
mkdir -p ./data/mariadb/data
mkdir -p ./data/notebooks
docker-compose up
进入镜像及初始化
bash
docker exec -it stock bash
sh /data/stock/jobs/cron.daily/run_daily
启动容器后,会调用run_init.sh
进行数据初始化,同时第一次执行后台执行当日数据。以后每日18点进行股票数据抓取并计算。
本地访问
- 股票系统:
http://localhost:8888
- jupyter:
http://localhost:9999
查看jupyter密码
bash
docker exec -it stock bash
jupyter notebook list
可看到登录token,然后进行登录。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】