虽然同花顺之类的金融理财应用的数据足够好了,但还是有自己定制的冲动, 数据自然不会不会比前者好很多,但是按照自己的想法来定制还是不错的。

目标

通过免费的数据接口获取数据,每日增量更新标的历史交易数据, 然后通过Kibana做可视化及数据分析.

其实自己通过echarts之类的可视化框架做可视化也是个不错的选择,不过前期成本太大。还有就是pandas+matplotlib已经足以应付大部分需求了,可是交互感太弱,所以借助一个可视化应用是很有必要的,这里选择的是kibana, 它的竞品有Grafana.

这个目标应该会一直下去

成长离不开与优秀的同伴共同交流,如果你需要好的学习环境,好的学习资源,这里欢迎每一位热爱Python的小伙伴

环境配置

Python3(推荐Anaconda安装)

安装相关依赖:

pip install -r requirement.txt

配置eleasticsearch, kibana环境(推荐使用docker)

Elasticsearch, Logstash, Kibana 7.2.0

数据源

获取数据的方式有很多种,收费或者免费,作为业余爱好者自然选择免费的,这里选择 tushare.pro, 但其实tushare会有一点限制, 如获取数据的频率有一定的限制,并且接口也有限制, 需要很多积分。

其他的免费的数据获取方式的,大家可以自己尝试

  1. pytdx
  2. fooltrader
  3. QUANTAXIS

获取数据

配置自己的token

import tushare as ts
ts.set_token("<your_token>")
pro = ts.pro_api("<your_token>")

关于Token的获取可以参考一下链接

https://tushare.pro/document/1?doc_id=39

尝试手动获取数据

通过日期取历史某一天的全部历史
df = pro.daily(trade_date='20190725')df.head()
ts_code trade_date  open    high    low close   pre_close   change  pct_chg vol amount  value
0   000032.SZ   20190725    9.49    9.60    9.47    9.56    9.49    0.07    0.7376  12658.35    12075.625   8906.981000
1   000060.SZ   20190725    4.39    4.40    4.35    4.36    4.39    -0.03   -0.6834 129331.65   56462.292   -38586.330353
2   000078.SZ   20190725    3.37    3.38    3.35    3.38    3.37    0.01    0.2967  76681.00    25795.633   7653.564311
3   000090.SZ   20190725    5.66    5.66    5.56    5.61    5.64    -0.03   -0.5319 105582.72   59215.389   -31496.665409
4   000166.SZ   20190725    4.97    4.98    4.93    4.96    4.97    -0.01   -0.2012 268122.48   132793.120  -26717.975744获取某一只股票的日线行情数据
data = ts.pro_bar(ts_code="601668.SH", adj='qfq', start_date="20120101")
data.head()
ts_code trade_date  open    high    low close   pre_close   change  pct_chg vol amount
0   601668.SH   20190726    6.01    6.06    5.98    6.03    6.04    -0.01   -0.17   696833.16   419634.547
1   601668.SH   20190725    6.05    6.07    6.02    6.04    6.04    0.00    0.00    543074.55   327829.380
2   601668.SH   20190724    6.09    6.11    6.02    6.04    6.05    -0.01   -0.17   788228.12   477542.609
3   601668.SH   20190723    5.93    6.07    5.92    6.05    5.94    0.11    1.85    1077243.46  650250.021
4   601668.SH   20190722    6.02    6.03    5.92    5.94    6.00    -0.06   -1.00   811369.73   485732.343

数据的获取自然是需要自动化的,但是由于接口的限制,所以需要考虑以下问题。

  1. 股票列表
  2. 判断是否超出接口限制,如果是,则暂停一段时间

关键代码部分

def save_data(code, start_date, fp):print("下载股票(%s)日线数据到 %s" % (code, fp))try:data = ts.pro_bar(ts_code=code, adj='qfq', start_date=start_date)# 当超过调用次数限制返回Noneif data is None:time.sleep(10)returnpass_set.add(code)except Exception:time.sleep(10)print("股票: %s 下载失败" % code)returnif len(data) == 0:pass_set.add(code)returntry:data.trade_date = pd.to_datetime(data.trade_date)data = data.sort_values("trade_date")if path.exists(fp):data.to_csv(fp, mode="a", header=False, index=False)else:data.to_csv(fp, index=False)except Exception:print("股票:%s 保存失败" % code)

大家可以参考我GitHub仓库的save_data.py, 通过以下命令就可以自动下载数据了

python save_data.py

代码里面配置的起始时间是2012-01-01,有需要的课自行更改,值得注意的是需要在同级目录配置一个config.json, 内容如下

{"token": "<your_token>"
}

配上自己的token

配置elasticsearch, kibana

这里使用的是docker进行配置。

# 拉取镜像
docker pull sebp/elk:720# 启动docker环境
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -v /home/elasticsearch/:/var/lib/elasticsearch -itd  sebp/elk:720

转存数据

将数据上传到elasticsearch里面以便数据分析

配置settings.py

# 将ip:port改成自己elasticsearch地址,如192.168.56.102:9200
config["es_host"] = ["ip:port"]

运行代码

# 上传股票数据
python cmd.py dump# 上传上证指数数据
python cmd.py dump_index

可视化

配置kibana是需要一定的时间的,好在kibana现在是大多数配置都支持导入导出,所以大家可以通过我仓库的export.ndjson文件直接导入

效果展示

由于现在接口受限,获取的股票因子有限,所以等我的积分更多了,我会加入更多的dashboard, 以及visualization.

python接口 同花顺_利用python探索股票市场数据指南相关推荐

  1. python接口 同花顺_这是真的么 | 学会了用Python预测股票价格

    文章来源于微信公众号:机器学习与python实战 原文链接:请点击 文章仅用于学习交流,如有侵权请联系删除 作为一种技术手段,预测在金融.证券领域的应用非常广泛,尤其是对股票价格的预测.我们介绍一下获 ...

  2. python高斯求和_利用Python进行数据分析(3)- 列表、元组、字典、集合

    本文主要是对Python的数据结构进行了一个总结,常见的数据结构包含:列表list.元组tuple.字典dict和集合set. image 索引 左边0开始,右边-1开始 通过index()函数查看索 ...

  3. python pdf报告_利用python设计PDF报告,jinja2,whtmltopdf,matplotlib,pandas

    转自:https://foofish.net/python-crawler-html2pdf.html 工具准备 弄清楚了网站的基本结构后就可以开始准备爬虫所依赖的工具包了.requests.beau ...

  4. python气象数据分析_利用python-cdo处理气象数据

    如果你不喜欢命令行的操作方式,那么你可以尝试使用python-cdo,利用python脚本语言的优势来处理气象数据.命令行的方式有其优势,比如简单易操作,可扩展性更强等,利用CDO的python接口也 ...

  5. 如何用python制作画像_利用Python搭建用户画像系统

    用户画像是当下很多企业都会提及的概念,多数情况下会和大数据以及营销挂钩.本文将对用户画像的相关知识进行进行简单的介绍,并利用Python去实现一个简单的用户画像系统. 1.什么是用户画像 用户画像可以 ...

  6. python照片墙地图_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  7. python图色检测_利用python打开摄像头及颜色检测方法

    最近两周由于忙于个人项目,一直未发言了,实在是太荒凉了....,上周由于项目,见到Python的应用极为广泛,用起来也特别顺手,于是小编也开始着手学习Python,-下面我就汇报下今天的学习成果吧 小 ...

  8. python做线性回归_利用 python 进行线性回归

    利用python进行线性回归 理解什么是线性回归 线性回归也被称为最小二乘法回归(Linear Regression, also called Ordinary Least-Squares (OLS) ...

  9. python selenium截图_利用 Python + Selenium 实现对页面的指定元素截图(可截长图元素)...

    对WebElement截图 WebDriver.Chrome自带的方法只能对当前窗口截屏,且不能指定特定元素.若是需要截取特定元素或是窗口超过了一屏,就只能另辟蹊径了. WebDriver.Phant ...

最新文章

  1. 数据分析之全国热门景点分析
  2. python爬虫怎么爬同一个网站的多页数据-如何用Python爬数据?(一)网页抓取
  3. 表单身份验证(受保护的目录)
  4. 文件服务器的配置与管理(1) RAID技术
  5. fastdfs连接mysql_fastDFS文件上传简单案例
  6. 将旧对象装箱可自动关闭
  7. python concat_python-pd.concat()不合并在同一索引上
  8. PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.13. 事件系统
  9. Python实现TCP协议套接字多路复用
  10. 违背信任!Linus 回应“拉黑”事件
  11. mysql重启,全网独家首发!
  12. 达观杯文本智能处理挑战赛冠军解决方案
  13. 计算机辅助药物设计中的分子动力学模拟
  14. 树莓派安装和使用kodi
  15. 密码显示隐藏符号格式会变
  16. 爬虫爬取知乎评论并利用flask框架做简单的可视化
  17. 数据结构c语言版陈越,数据结构 陈越
  18. C++实现走迷宫算法(1)
  19. 关于问答系统(QA)、对话系统(Chatbot)的学与思
  20. 初探强化学习(10)强化学习中的一些术语(non-stationray,sample efficiency,planning和Learnin,Reward,off-policy和on-policy )

热门文章

  1. 【转】chrome浏览器的跨域设置——包括版本49前后两种设置
  2. 从零开始:iOS(三)
  3. 网站架构之缓存应用(摘录)
  4. SharePoint创建web application的时候报错
  5. vs code 配置java
  6. 删除数据清理oracle表空间,oracle数据库删除无用表空间及数据文件过程
  7. linux系统下替换图片,Linux(ubuntu系统)下使用FreeImage库
  8. 计算机会考咋查成绩,2019会考成绩查询网址入口 高中会考怎么查成绩
  9. python简单图画程序_用Python的Turtple画图形
  10. 应用程序利用ADO对象访问数据库