pythonstock /stock

stock,股票系统。使用python进行开发。

★ 7,889⑂ 2,355👁 299⑃ 25● 98▤ 4
PythonCreated 2017-07-17
7,889
stars
+0+-1+10
2,355
forks
299
watchers
25
prs
98
issues
4
releases
–
discussions

README

pythonstock V3.0 项目简介,2025.02.28更新

特别说明:股市有风险投资需谨慎,本项目只能用于Python代码学习,股票分析,投资失败亏钱不负责,不算BUG。

github/gitee是项目地址

github地址:
https://github.com/pythonstock/stock

gitee地址:
https://gitee.com/pythonstock/stock

视频地址:
https://space.bilibili.com/52280367/lists/1923758?type=season

相关博客资料:
https://blog.csdn.net/freewebsys/category_9285317.html

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

数据存储到磁盘上,使用Mysql数据库。存储股票数据。
https://pypi.python.org/pypi/mysqlclient

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

tornado web系统
http://docs.pythontab.com/tornado/introduction-to-tornado/



PythonStock V3.0 是基于Python的pandas,akshare,bokeh,tornado,stockstats,ta-lib等框架开发的全栈股票系统。
项目创建于2017年7月17日,每月不定期更新。
1)可以直接使用docker直接本地部署运行,整个项目在docker hub上压缩后200MB,本地占用500MB磁盘空间。
2)使用Docker解决了Python库安装问题,使用Mariadb(MySQL)存储数据。借助akshare抓取数据。
3)使用cron做定时任务,每天进行数据抓取计算,每天18点开始进行数据计算,计算当日数据,使用300天数据进行计算,大约需要15分钟计算完毕。
4)股票数据接口防止被封,按天进行数据缓存,储存最近3天数据,每天定时清除,同时使用read_pickle to_pickle 的gzip压缩模式存储。
5)使用tornado开发web系统,支持每日股票数据-东财,龙虎榜-个股上榜-新浪,数据中心-大宗交易行情等。
6)数据展示系统,是通用数据展示系统,配置字典模板之后,页面自动加载数据,并完成数据展示,后续自己开发的指标数据可以加入进去。
7)增加曲线数据分析,在查看股票中,可以直接跳转到东方财富页面查看相关信息,点击指标之后使用Bokeh将多达 17 个指标的数据绘图,进行图表展示。
8)2.0 最大的更新在于替换tushare库(因部分库不能使用),使用akshare进行数据抓取。
9)3.0 主要做的是项目整合,前端使用vue开发了,后端使用API,使用docker-compose开发部署。

基础库版本

1,pandas使用【 2.2.3 】版本, 
2,numpy使用【 2.2.1 】版本, 
3,sqlalchemy使用【 2.0.36 】版本, 
4,akshare使用【 1.15.59 】版本, 
5,bokeh使用【 3.6.2 】版本, 
6,stockstats使用【 0.3.2 】版本, 




版本3.0 说明


 !image
 !image
 !image


然后根据3个指标进行股票数据计算:



KDJ:
1,超买区:K值在80以上,D值在70以上,J值大于90时为超买。一般情况下,股价有可能下跌。投资者应谨慎行事,局外人不应再追涨,局内人应适时卖出。
2,超卖区:K值在20以下,D值在30以下为超卖区。一般情况下,股价有可能上涨,反弹的可能性增大。局内人不应轻易抛出股票,局外人可寻机入场。

RSI:
1.当六日指标上升到达80时,表示股市已有超买现象,如果一旦继续上升,超过90以上时,则表示已到严重超买的警戒区,股价已形成头部,极可能在短期内反转回转。
2.当六日强弱指标下降至20时,表示股市有超卖现象,如果一旦继续下降至10以下时则表示已到严重超卖区域,股价极可能有止跌回升的机会。

购买条件结果表:guess_indicators_lite_buy_daily
购买条件结果表:guess_indicators_lite_sell_daily



每日股票指标数据计算17个指标如下(数据表 guess_indicators_daily): 


| 计算指标           | 说明 |
|---------- |------------------------------------------|
| 1,交易量delta指标分析     | The Volume Delta (Vol ∆)  |
| 2,计算n天差     |  可以计算,向前n天,和向后n天的差。  |
| 3,n天涨跌百分百计算     |  可以看到,-n天数据和今天数据的百分比。  |
| 4, CR指标     | http://wiki.mbalib.com/wiki/CR%E6%8C%87%E6%A0%87 价格动量指标 CR跌穿a、b、c、d四条线,再由低点向上爬升160时,为短线获利的一个良机,应适当卖出股票。 CR跌至40以下时,是建仓良机。而CR高于300~400时,应注意适当减仓。  |
| 5,最大值,最小值     |  计算区间最大值 volume max of three days ago, yesterday and two days later stock["volume_-3,2,-1_max"] volume min between 3 days ago and tomorrow stock["volume_-3~1_min"] 实际使用的时候使用 -2~2 可计算出5天的最大,最小值。 |
| 6, KDJ指标     | http://wiki.mbalib.com/wiki/%E9%9A%8F%E6%9C%BA%E6%8C%87%E6%A0%87    随机指标(KDJ)一般是根据统计学的原理,通过一个特定的周期(常为9日、9周等)内出现过的最高价、 最低价及最后一个计算周期的收盘价及这三者之间的比例关系,来计算最后一个计算周期的未成熟随机值RSV, 然后根据平滑移动平均线的方法来计算K值、D值与J值,并绘成曲线图来研判股票走势。 (3)在使用中,常有J线的指标,即3乘以K值减2乘以D值(3K-2D=J),其目的是求出K值与D值的最大乖离程度, 以领先KD值找出底部和头部。J大于100时为超买,小于10时为超卖。 |
| 7,SMA指标     | http://wiki.mbalib.com/wiki/Sma 简单移动平均线(Simple Moving Average,SMA) 可以动态输入参数,获得几天的移动平均。 |
| 8, MACD指标     | http://wiki.mbalib.com/wi

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON