# 基于成交量的股票数据分析系统
## Quant On Volume
`Github`: [https://github.com/CatsJuice/quant-on-volume](https://github.com/CatsJuice/quant-on-volume)
- [1. 数据获取](#1-数据获取)
- [1.1. 实验环境搭建](#11-实验环境搭建)
- [1.2. 抓取数据](#12-抓取数据)
- [1.2.1. 新浪财经](#121-新浪财经)
- [1.2.1.1. 抓取所有股票代码](#1211-抓取所有股票代码)
- [1.2.1.2. 抓取日线数据](#1212-抓取日线数据)
- [1.2.2. 网易财经](#122-网易财经)
- [1.2.2.1 获取所有股票代码](#1221-获取所有股票代码)
- [1.2.2.2. 获取日线数据](#1222-获取日线数据)
- [1.2.3. 东方财富](#123-东方财富)
- [1.2.3.1. 获取所有股票代码](#1231--获取所有股票代码)
- [1.2.3.2. 获取日线数据](#1232--获取日线数据)
- [1.2.4. TuShare (挖地兔)](#124-tushare-挖地兔)
- [1.2.4.1. 概述](#1241-概述)
- [1.2.4.2. 基本使用](#1242-基本使用)
- [1.2.5. 其他平台](#125-其他平台)
- [1.2.5.1. W.ind](#1251-wind)
- [1.2.5.2. 优矿](#1252-优矿)
- [1.3. 数据获取总结](#13-数据获取总结)
- [1.3.1. 股票代码抓取的总结](#131-股票代码抓取的总结)
- [1.3.2. 日线数据抓取总结](#132-日线数据抓取总结)
- [1.3.3. 反爬虫策略及解决的总结](#133-反爬虫策略及解决的总结)
- [2. 数据清洗(数据预处理)](#2-数据清洗数据预处理)
- [2.1. 无效数据处理](#21-无效数据处理)
- [2.2. 缺失数据处理](#22-缺失数据处理)
- [3. 数据分析](#3-数据分析)
- [3.1. 《胡立阳股票投资100招》 由“价量关系”来为个股打分 (一)](#31-胡立阳股票投资100招-由价量关系来为个股打分-一)
- [3.1.1. 介绍](#311-介绍)
- [3.1.2. 思路分析](#312-思路分析)
- [3.1.3. 实现](#313-实现)
- [3.1.4. 运行结果](#314-运行结果)
- [3.1.5. 结果分析](#315-结果分析)
- [3.2. 《胡立阳股票投资100招》 由“价量关系”来为个股打分 (二)](#32-胡立阳股票投资100招-由价量关系来为个股打分-二)
- [3.2.1. 思路分析](#321-思路分析)
- [3.2.2. 实现](#322-实现)
- [3.2.3. 分析结果](#323-分析结果)
- [3.3. 主力进出 (ZLJC) (一)](#33-主力进出-zljc-一)
- [3.3.1. 概念](#331-概念)
- [3.3.2. 思路分析](#332-思路分析)
- [3.3.3. 实现](#333-实现)
- [3.3.3.1. ZLJC 的计算](#3331-zljc-的计算)
- [3.3.3.2. 代码编写](#3332-代码编写)
- [3.3.3.3. 结果校验](#3333-结果校验)
- [3.4. 主力进出 (ZLJC) (二)](#34-主力进出-zljc-二)
- [3.4.1. 前提引入](#341-前提引入)
- [3.4.2. 主要问题及分析思路](#342-主要问题及分析思路)
- [3.4.3. 代码编写](#343-代码编写)
- [3.4.4. 结果分析](#344-结果分析)
- [3.5. 综合应用](#35-综合应用)
- [3.5.1. 数据准备](#351-数据准备)
- [3.5.2. 实现](#352-实现)
- [3.5.3. 统计结果分析](#353-统计结果分析)
- [4. 优化方案](#4-优化方案)
- [4.1. 爬虫性能优化](#41-爬虫性能优化)
- [4.2. 数据读取效率优化](#42-数据读取效率优化)
- [4.3. 编程模式的优化](#43-编程模式的优化)
- [5. 总结](#5-总结)
# 1. 数据获取
## 1.1. 实验环境搭建
系统及使用的语言:
> Windows 10 专业版 1903 操作系统版本: 18362.356
>
> Python 3.7.3 64-bit
需要额外安装的库:
> virtualenv-16.6.0: `pip install virtualenv`
> requests-2.22.0: `pip install requests`
>
> 所依赖的模块:`URLlib3` 在安装 `requests` 时会自动`安装
`尝试切换页面, 查看地址栏 URL 的变化
> BeautifulSoup4-4`.8.`, 未发生改变ip install BeautifulSoup4`
> pandas: `pip install pandas`
>
> 所依赖的模块:`pytz` ,`numpy`, `python-dateutil`, `six`, 在安装 `requests` 时会自动安装
> tqdm-4.36.1: `pip install tqdm`
## 1.2. 抓取数据
> 数据的抓取是构建数据仓库的第一步,首先需要确定数据来源,这个过程通常需要比较各个数据平台,考核数据平台的数据与研究需求的符合程度;具体表现在以下方面:
> - 数据的**可靠性**
> - 指数据来源是否可靠,有无数据敏感等潜在问题
> - 数据的**完整性**
> - 指与需求所需的数据相比是否有所缺失
> - 数据是否齐全
> - 获取的**难易度**
> - 抓取过程的实现难度
在本选题中,对数据的需求主要是**成交量**, 而成交量又分为**分时数据**(单位时间为一交易日中的若干分钟)和**分日数据**(单位时间为一个交易日),分时数据的数据量较为庞大,在这里,主要还是针对分日数据进行研究,由于股市的特殊性, 单一的成交量很难制定出可能有效的策略,所以在研究过程中,依旧需要其他的数据作为辅助,综上所述, 在数据抓取阶段,主要需要抓取的数据是:
- 股票代码列表
- 日线数据
### 1.2.1. 新浪财经
#### 1.2.1.1. 抓取所有股票代码
进入新浪财经官网进行查找, 可以在
```bash
行情中心首页 > 沪深股市 > 排行 > A股成交额
```
找到成交额的排行耪, 这里可以获取到所有沪深A股的股票代码; 链接地址如下:
> [http://vip.stock.finance.sina.com.cn/mkt/#stock_hs_amount](http://vip.stock.finance.sina.com.cn/mkt/#stock_hs_amount)
**分析页面**
首先可以看到请求的 url 中有 `#` 字符,使用了 `hash` 路由, 初步判断页面使用前端框架加打包工具构建, 数据很可能是异步加载的;
尝试跳转下一页, 页面的 `url` 没有发生变化(并未出现page或相应页码等关键字), 所以通过调试工具(F12打开开发者工具), 切换到 网络(`Network`)栏, 只查看 `XHR` ( `XMLHttpRequest` ), 此时在跳转页码时, 会通过 `GET` 请求获取数据, 分析请求的 `url` 如下:
```bash
https://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData?page=3&num=40&sort=amount&asc=0&node=hs_a&symbol=&_s_r_a=
```
在其中最为关键的数据即是 `page` 的值,而其返回的数据格式为喜闻乐见的 `json`,至此抓取的准备工作全部完毕, 可以进行抓取,在抓取的时候需要注意的是预防因并发过高导致本机 `ip` 被封锁, 关于这一点的预防手段在 作详述;
**数据抓取**
在浏览器中直接访问链接可以请求到数据内容, 查看页面编码为 `GBK` ,直接使用 `requests` 模块通过 `GET` 请求页面,初步抓取到数据, 尝试直接使用 `json.loads()` 将字符串转为字典发生错误, 这里对获取的字符串进行分析,其基本格式如下:
```json
[
{symbol:"sh600519",code:"600519",name:"贵州茅台",trade:"1178.580", ...},
...
]
```
关键在于其格式不符合 `json` 的基本格式, 这种格式在 `JavaScript` 中作为对象可以解析, 但对 `json` 来说是不合法的;尝试使用 `eval()` / `ast.literal_eval()` 来替代 `json`, 同样无法直接解析, 所以需要更改思路, 手动更改字符串的格式, 给字典的键添加双引号, 编写正则替换方法如下:
```py
def json_format(self, str):
import re
str = re.sub(u'{([^{:]*):', u'{"\\1":', str)
str = re.sub(u',([^,:{]*):', u',"\\1":', str)
str = str.replace(' ', '')
return str
```
#### 1.2.1.2. 抓取日线数据
在新浪财经数据中心, 我并没有找到**交易数据**的表格, 要获取某只股票的 `日线` / `分线`的数据只能通过点击某只股票进入其[详情界面](https://finance.sina.com
没有合适的资源?快使用搜索试试~ 我知道了~
基于成交量的股票数据分析系统详细文档+全部资料+高分项目.zip
共179个文件
json:32个
js:29个
jpg:23个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 6 浏览量
2024-12-26
07:38:02
上传
评论
收藏 8.1MB ZIP 举报
温馨提示
【资源说明】 基于成交量的股票数据分析系统详细文档+全部资料+高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于成交量的股票数据分析系统详细文档+全部资料+高分项目.zip (179个子文件)
chunk-vendors.1dc9a07f.css 86KB
chunk-vendors.8848d0e6.css 47KB
hly-detail.245d424a.css 8KB
hly-detail.ef0eea50.css 6KB
code-list.d495dc67.css 2KB
app.65bf6211.css 114B
style.css 111B
tmp.csv 99KB
daylinedatatmp 364KB
.gitignore 214B
.gitignore 76B
.gitignore 27B
.gitignore 12B
index.html 1KB
index.html 551B
index.html 384B
index.html 276B
favicon.ico 4KB
favicon.ico 4KB
layout.jade 125B
error.jade 84B
index.jade 66B
3.1.4-6.jpg 177KB
3.1.4-7.jpg 148KB
2.2-3.jpg 115KB
3.2.3-1.jpg 111KB
2.2-2.jpg 94KB
3.3.3.3-1.jpg 72KB
3.3.3.4-1.jpg 56KB
3.1.5-2.jpg 51KB
3.1.4-4.jpg 45KB
3.1.4-5.jpg 43KB
3.5.3-2.jpg 38KB
3.2.4-1.jpg 36KB
2.2-1.jpg 22KB
3.2.3-3.jpg 22KB
2.1-2.jpg 19KB
3.1.5-1.jpg 14KB
3.5.2-2.jpg 14KB
3.5.2-1.jpg 12KB
3.1.4-2.jpg 9KB
3.5.3-1.jpg 9KB
3.1.3-1.jpg 9KB
3.1.4-3.jpg 7KB
3.1.4-1.jpg 7KB
hly-detail.47873170.js 1.05MB
hly-detail.c9f0c8af.js 1.04MB
chunk-vendors.423e90cd.js 810KB
chunk-vendors.01acc177.js 252KB
code_list.js 49KB
code_list.js 49KB
code-list~hly-detail.8a3fa682.js 33KB
c0002.js 9KB
c0001.js 8KB
chunk-18a60fce.d9e66e9a.js 6KB
app.28524da7.js 6KB
app.9ae1f5ee.js 6KB
chunk-ad72d640.3daefb69.js 4KB
main.js 2KB
webpack.config.js 2KB
chunk-451923cc.446b3203.js 2KB
app.js 2KB
code-list.0806274d.js 1KB
api.js 1KB
hly.js 1KB
index.js 722B
router.js 606B
vue.config.js 538B
main.js 537B
main.js 433B
babel.config.js 368B
users.js 203B
index.js 188B
router.js 115B
zljc_day_a.json 2.22MB
hly_count_res_max_4_group_by_date.json 1.91MB
up_res_group_by_date_strict_mode.json 581KB
up_res_group_by_date_strict_mode.json 581KB
package-lock.json 450KB
hly_count_res_plus.json 289KB
hly_count_res_max_2_group_by_date.json 259KB
hly_count_res_max_2_group_by_date.json 259KB
hly_count_res_reduce.json 153KB
hly_count_res_reduce.json 153KB
hly_count_res_plus.json 150KB
analyze_datahly_and_zljc_res.json 82KB
hly_and_zljc_res_transform.json 63KB
hly_and_zljc_res.json 42KB
hly_and_zljc_res.json 42KB
000021.json 8KB
package.json 2KB
const_template.json 1KB
package.json 1KB
hly_count_res.json 411B
package.json 294B
zljc_day_a_count.json 249B
boostnote.json 138B
hly_count_res_ma5_type_1_down.json 123B
hly_count_res_ma5_type_1_down.json 123B
hly_count_res_ma5_type_1_up.json 115B
共 179 条
- 1
- 2
资源评论
Yuki-^_^
- 粉丝: 3106
- 资源: 4154
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 白色简洁风格的旅行线路企业网站模板下载.zip
- 白色简洁风格的旅游服务整站网站源码下载.zip
- 白色简洁风格的旅游酒店入住后台管理源码下载.zip
- 白色简洁风格的旅游徒步企业网站模板.zip
- 白色简洁风格的旅游视频网页模板下载.zip
- 白色简洁风格的忙碌中倒计时源码下载.zip
- 白色简洁风格的律师法律机构整战网站模板.rar
- 白色简洁风格的律师业务企业网站源码下载.zip
- 白色简洁风格的迷雾森林404错误页源码下载.zip
- 白色简洁风格的美味餐厅整站网站源码下载.zip
- 白色简洁风格的美味食材餐厅整站网站源码下载.zip
- 白色简洁风格的木材加工制造模板下载.zip
- 白色简洁风格的木板绿叶404错误页源码下载.zip
- 白色简洁风格的男士内裤专卖整站网站源码下载.zip
- 白色简洁风格的鸟类大全整站网站模板.zip
- 白色简洁风格的农业科技公司企业网站源码下载.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功