1
- ### 说明,项目迁移到了Gitee 啦,最后一次修改,2023-06-02 执行存档
2
1
3
- 项目迁移到这里了:此项目后续更新访问这里:
4
2
5
- https://gitee.com/pythonstock/stock
3
+ ### pythonstock V3.0 项目简介,2025.02.28更新
4
+
5
+ ** 特别说明:股市有风险投资需谨慎,本项目只能用于Python代码学习,股票分析,投资失败亏钱不负责,不算BUG。**
6
+
7
+ ** github/gitee是项目地址**
6
8
7
- github项目后续就Archives存档了,不再更新了!
9
+ github地址:
10
+ https://github.com/pythonstock/stock
8
11
9
- csdn的pythonstock专栏地址,相关资料都在这里有说明:
12
+ gitee地址:
13
+ https://gitee.com/pythonstock/stock
14
+
15
+ ** 视频地址:**
16
+ https://space.bilibili.com/52280367/lists/1923758?type=season
10
17
18
+ ** 相关博客资料:**
11
19
https://blog.csdn.net/freewebsys/category_9285317.html
12
20
21
+ 数据分析清洗使用pandas,numpy。
22
+ http://pandas.pydata.org/
13
23
14
- ### pythonstock V2 项目简介
24
+ 数据存储到磁盘上,使用Mysql数据库。存储股票数据。
25
+ https://pypi.python.org/pypi/mysqlclient
15
26
27
+ web框架使用tornado
28
+ http://www.tornadoweb.org/en/stable/
16
29
17
- ** 特别说明:股市有风险投资需谨慎,本项目只能用于Python代码学习,股票分析,投资失败亏钱不负责,不算BUG。**
30
+ tornado web系统
31
+ http://docs.pythontab.com/tornado/introduction-to-tornado/
18
32
19
33
```
20
- 项目地址:https://github.com/pythonstock/stock
21
- PythonStock V2 是基于Python的pandas,akshare,bokeh,tornado,stockstats,ta-lib等框架开发的全栈股票系统。
34
+
35
+ PythonStock V3.0 是基于Python的pandas,akshare,bokeh,tornado,stockstats,ta-lib等框架开发的全栈股票系统。
22
36
项目创建于2017年7月17日,每月不定期更新。
23
37
1)可以直接使用docker直接本地部署运行,整个项目在docker hub上压缩后200MB,本地占用500MB磁盘空间。
24
38
2)使用Docker解决了Python库安装问题,使用Mariadb(MySQL)存储数据。借助akshare抓取数据。
@@ -27,28 +41,31 @@ PythonStock V2 是基于Python的pandas,akshare,bokeh,tornado,stockstats
27
41
5)使用tornado开发web系统,支持每日股票数据-东财,龙虎榜-个股上榜-新浪,数据中心-大宗交易行情等。
28
42
6)数据展示系统,是通用数据展示系统,配置字典模板之后,页面自动加载数据,并完成数据展示,后续自己开发的指标数据可以加入进去。
29
43
7)增加曲线数据分析,在查看股票中,可以直接跳转到东方财富页面查看相关信息,点击指标之后使用Bokeh将多达 17 个指标的数据绘图,进行图表展示。
30
- 8) 2.0 最大的更新在于替换tushare库(因部分库不能使用),使用akshare进行数据抓取。
44
+ 8)2.0 最大的更新在于替换tushare库(因部分库不能使用),使用akshare进行数据抓取。
45
+ 9)3.0 主要做的是项目整合,前端使用vue开发了,后端使用API,使用docker-compose开发部署。
31
46
32
47
基础库版本
33
48
34
- 1,pandas使用【 1.3.5 】版本,升级了
35
- 2,numpy使用【 1.21.5 】版本,升级了
36
- 3,akshare使用【 1.3.50 】版本,升级了
37
- 4,bokeh使用【 2.4.2 】版本,升级了
38
- 5,stockstats使用【 0.3.2 】版本
49
+ 1,pandas使用【 2.2.3 】版本,
50
+ 2,numpy使用【 2.2.1 】版本,
51
+ 3,sqlalchemy使用【 2.0.36 】版本,
52
+ 4,akshare使用【 1.15.59 】版本,
53
+ 5,bokeh使用【 3.6.2 】版本,
54
+ 6,stockstats使用【 0.3.2 】版本,
39
55
40
56
```
41
57
42
- 2.0 说明
43
- ![ image] ( https://raw.githubusercontent.com/pythonstock/stock/master/web/static/img/stock2-001.png )
44
- ![ image] ( https://raw.githubusercontent.com/pythonstock/stock/master/web/static/img/stock2-002.png )
45
58
46
- bokeh 绘图指标数据:
47
-
48
- ![ image] ( https://raw.githubusercontent.com/pythonstock/stock/master/web/static/img/stock2-003.png )
49
-
59
+ 版本3.0 说明
60
+
61
+
62
+ ![ image] ( https://gitee.com/pythonstock/stock/raw/master/frontend/public/stock-001.png )
63
+ ![ image] ( https://gitee.com/pythonstock/stock/raw/master/frontend/public/stock-002.png )
64
+ ![ image] ( https://gitee.com/pythonstock/stock/raw/master/frontend/public/stock-003.png )
65
+
50
66
51
67
然后根据3个指标进行股票数据计算:
68
+
52
69
```
53
70
54
71
KDJ:
59
76
1.当六日指标上升到达80时,表示股市已有超买现象,如果一旦继续上升,超过90以上时,则表示已到严重超买的警戒区,股价已形成头部,极可能在短期内反转回转。
60
77
2.当六日强弱指标下降至20时,表示股市有超卖现象,如果一旦继续下降至10以下时则表示已到严重超卖区域,股价极可能有止跌回升的机会。
61
78
62
- CCI
63
- 1、当CCI>﹢100时,表明股价已经进入非常态区间——超买区间,股价的异动现象应多加关注。
64
- 2、当CCI<﹣100时,表明股价已经进入另一个非常态区间——超卖区间,投资者可以逢低吸纳股票。
65
-
66
79
购买条件结果表:guess_indicators_lite_buy_daily
67
80
购买条件结果表:guess_indicators_lite_sell_daily
68
81
84
97
| 9, BOLL指标 | http://wiki.mbalib.com/wiki/BOLL 布林线指标(Bollinger Bands) |
85
98
| 10, RSI指标 | http://wiki.mbalib.com/wiki/RSI 相对强弱指标(Relative Strength Index,简称RSI),也称相对强弱指数、相对力度指数 2)强弱指标保持高于50表示为强势市场,反之低于50表示为弱势市场。 (3)强弱指标多在70与30之间波动。当六日指标上升到达80时,表示股市已有超买现象,如果一旦继续上升,超过90以上时,则表示已到严重超买的警戒区,股价已形成头部,极可能在短期内反转回转。 |
86
99
| 11, W%R指标 | http://wiki.mbalib.com/wiki/%E5%A8%81%E5%BB%89%E6%8C%87%E6%A0%87 威廉指数(Williams%Rate)该指数是利用摆动点来度量市场的超买超卖现象。 |
87
- | 12, CCI指标 | http://wiki.mbalib.com/wiki/%E9%A1%BA%E5%8A%BF%E6%8C%87%E6%A0%87 顺势指标又叫CCI指标,其英文全称为“Commodity Channel Index”, 是由美国股市分析家唐纳德·蓝伯特(Donald Lambert)所创造的,是一种重点研判股价偏离度的股市分析工具。 1、当CCI指标从下向上突破﹢100线而进入非常态区间时,表明股价脱离常态而进入异常波动阶段, 中短线应及时买入,如果有比较大的成交量配合,买入信号则更为可靠。 2、当CCI指标从上向下突破﹣100线而进入另一个非常态区间时,表明股价的盘整阶段已经结束, 将进入一个比较长的寻底过程,投资者应以持币观望为主。 CCI, default to 14 days |
88
- | 13, TR、ATR指标 | http://wiki.mbalib.com/wiki/%E5%9D%87%E5%B9%85%E6%8C%87%E6%A0%87 均幅指标(Average True Ranger,ATR)均幅指标(ATR)是取一定时间周期内的股价波动幅度的移动平均值,主要用于研判买卖时机。 |
100
+ | 14, TR、ATR指标 | http://wiki.mbalib.com/wiki/%E5%9D%87%E5%B9%85%E6%8C%87%E6%A0%87 均幅指标(Average True Ranger,ATR)均幅指标(ATR)是取一定时间周期内的股价波动幅度的移动平均值,主要用于研判买卖时机。 |
89
101
| 14, DMA指标 | http://wiki.mbalib.com/wiki/DMA DMA指标(Different of Moving Average)又叫平行线差指标,是目前股市分析技术指标中的一种中短期指标,它常用于大盘指数和个股的研判。 DMA, difference of 10 and 50 moving average stock[ ‘dma’] |
90
102
| 15, DMI,+DI,-DI,DX,ADX,ADXR指标 | http://wiki.mbalib.com/wiki/DMI 动向指数Directional Movement Index,DMI) http://wiki.mbalib.com/wiki/ADX 平均趋向指标(Average Directional Indicator,简称ADX) http://wiki.mbalib.com/wiki/%E5%B9%B3%E5%9D%87%E6%96%B9%E5%90%91%E6%8C%87%E6%95%B0%E8%AF%84%E4%BC%B0 平均方向指数评估(ADXR)实际是今日ADX与前面某一日的ADX的平均值。ADXR在高位与ADX同步下滑,可以增加对ADX已经调头的尽早确认。 ADXR是ADX的附属产品,只能发出一种辅助和肯定的讯号,并非入市的指标,而只需同时配合动向指标(DMI)的趋势才可作出买卖策略。 在应用时,应以ADX为主,ADXR为辅。 |
91
103
| 16, TRIX,MATRIX指标 | http://wiki.mbalib.com/wiki/TRIX TRIX指标又叫三重指数平滑移动平均指标(Triple Exponentially Smoothed Average) |
92
104
| 17, VR,MAVR指标 | http://wiki.mbalib.com/wiki/%E6%88%90%E4%BA%A4%E9%87%8F%E6%AF%94%E7%8E%87 成交量比率(Volumn Ratio,VR)(简称VR),是一项通过分析股价上升日成交额(或成交量,下同)与股价下降日成交额比值, 从而掌握市场买卖气势的中期技术指标。 |
93
105
94
106
95
- ### 使用方法(依赖docker)
96
107
97
- 使用 mariadb 和 stock 两个镜像
98
108
99
- ```
100
- mkdir -p /data/mariadb/data
101
- docker pull pythonstock/pythonstock:latest
102
- docker pull mariadb:latest
109
+ ### 项目部署放到docker-compose
103
110
104
- docker run --name mariadb -v /data/mariadb/data:/var/lib/mysql \
105
- -e MYSQL_ROOT_PASSWORD=mariadb -p 3306:3306 -d mariadb:latest
106
111
107
- docker run -itd --link=mariadb --name stock \
108
- -v /data/notebooks:/data/notebooks \
109
- -p 8888:8888 \
110
- -p 9999:9999 \
111
- pythonstock/pythonstock:latest
112
+ ``` bash
112
113
113
- ```
114
+ # 下载 docker
115
+ curl -fsSL https://get.docker.com -o get-docker.sh
116
+ sh get-docker.sh
114
117
115
- 直接启动stock ,使用其他 mysql 数据库,需要配置变量方式:
118
+ #
119
+ curl -L " https://www.ghproxy.cn/https://github.com/docker/compose/releases/download/v2.23.1/docker-compose-$( uname -s) -$( uname -m) " -o /usr/local/bin/docker-compose
116
120
117
121
```
118
- docker run -itd --name stock \
119
- -v /data/notebooks:/data/notebooks \
120
- -p 8888:8888 \
121
- -p 9999:9999 \
122
- -e MYSQL_HOST=127.0.0.1 \
123
- -e MYSQL_USER=root \
124
- -e MYSQL_PWD=mariadb \
125
- -e MYSQL_DB=stock_data \
126
- pythonstock/pythonstock:latest
127
- ```
122
+
128
123
129
- 或者使用docker compose
124
+ ``` bash
130
125
131
- 安装docker-compose
132
- https://www.runoob.com/docker/docker-compose.html
133
-
134
- ```
135
- sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
136
- sudo chmod +x /usr/local/bin/docker-compose
137
- ```
138
-
139
- ```
126
+ # 生产环境,编译前端部署:
140
127
docker-compose up -d
141
- ```
142
128
143
- 要想修改文件进行调试,增加当前目录映射,加入到stock里面:
144
- ``` yaml
145
- volumes :
146
- - " ./jobs:/data/stock/jobs"
147
- - " ./libs:/data/stock/libs"
148
- - " ./web:/data/stock/web"
129
+ # 开发环境,node dev 方式部署:
130
+ docker-compose -f dev-docker-compose.yml up -d
149
131
```
150
132
151
133
进入镜像:
152
- ` ` `
134
+
135
+ ``` bash
153
136
docker exec -it stock bash
154
137
sh /data/stock/jobs/cron.daily/run_daily
155
138
```
@@ -160,25 +143,9 @@ sh /data/stock/jobs/cron.daily/run_daily
160
143
161
144
### 本地访问端口
162
145
163
- > http://localhost:9999 股票系统
164
-
146
+ > http://localhost:8080 股票系统前端地址
147
+ > http://localhost:9090 股票系统后端地址
165
148
166
- ### 股票系统设计
167
-
168
- 相关博客资料:
169
- https://blog.csdn.net/freewebsys/category_9285317.html
170
-
171
- 数据分析清洗使用pandas,numpy。
172
- http://pandas.pydata.org/
173
-
174
- 数据存储到磁盘上,使用Mysql数据库。存储股票数据。
175
- https://pypi.python.org/pypi/mysqlclient
176
-
177
- web框架使用tornado
178
- http://www.tornadoweb.org/en/stable/
179
-
180
- tornado web系统
181
- http://docs.pythontab.com/tornado/introduction-to-tornado/
182
149
183
150
184
151
### 架构设计
@@ -209,6 +176,50 @@ http://docs.sqlalchemy.org/en/latest/core/reflection.html
209
176
210
177
## 更新日志
211
178
179
+ ### 18 修改bug,前端使用编译nginx方式部署,修改数据库字段,解决定时任务BUG 2025-02-28
180
+
181
+ 存储数据格式为 double 方便进行排序,decimal 类型转换出问题。
182
+ 拆分生产部署,切换成nginx,前端进行编译构建。提高前端加载速度。
183
+ nginx的html影射到./data/html目录,前端编译完成需要拷贝文件到html,等待完成即可。
184
+ 解决定时任务问题,需要设置权限,才可以。
185
+
186
+
187
+ ### 17 v3.0发布,前端分离,项目和部署整合到一起 2025-01-10
188
+
189
+ 修改接口展示空。修改数据库脚本。
190
+ 解决预测数据买和卖的脚本。
191
+ 进行缩减、计算相关添加操作。
192
+ 修改启动脚本、接口路径及配置。
193
+ 设置分页数据。增加联合主键判断。
194
+ 解决分页问题并执行查询语句。
195
+ 增加日期查询方法。
196
+ 进行数据搜索相关添加操作。
197
+ 添加配置。修改路由地址。
198
+ 解决端口映射问题及修改端口测试。
199
+ 拆分前后端,用 dockerfile 构建镜像并解决前端编译问题。
200
+ 修改开发者模式,解决本地开发启动问题。
201
+ 增加地址。增加前端开发者模式启动。
202
+ 增加每天数据跑批。进行猜工作相关添加操作。
203
+ 增加日志跑数据。升级增加展示。
204
+ 架构升级并使用 vue 的 ui 开发。
205
+ 增加 install docker 说明。
206
+ 添加 vue api。
207
+
208
+ ### 16 更新发布 2.1 版本进行镜像升级 2023-06-03
209
+
210
+ 使用新方式打包镜像,镜像大小从本地的 852MB 缩小到 597MB。
211
+ 为了支持更多 AKShare 特性,请尽快升级 Python 到 3.8 以上版本
212
+
213
+ 1,numpy从【 1.21.5 】升级到了【 1.21.6 】版本
214
+ 2,akshare从【 1.3.50 】升级到了【 1.10.5 】版本
215
+ 3,bokeh从【 2.4.2 】升级到了【 2.4.3 】版本
216
+
217
+ 根据 https://www.akshare.xyz/changelog.html
218
+ 修改方法:
219
+
220
+ 1.7.99 替换 stock_sina_lhb_ggtj 成:stock_lhb_ggtj_sina
221
+
222
+
212
223
### 15 发布一个 2.0 的版本 - 2021-10-11
213
224
214
225
构建基础版本 pythonstock/pythonstock: base-2021-09 在这个镜像的基础上使用 akshare 1.1.9
0 commit comments