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

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

目标

通过免费的数据接口获取数据,每日增量更新标的历史交易数据, 然后通过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文件直接导入

15d52540d2cd071485c959ddd6b7e06b.png

效果展示

ccc729ebc55ad39865a2e829554612e3.png

a8e020aa978f4a01008b7c539f3c9fc9.png

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501979.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java ee是什么_死磕 java集合之HashSet源码分析

问题&#xff08;1&#xff09;集合&#xff08;Collection&#xff09;和集合&#xff08;Set&#xff09;有什么区别&#xff1f;&#xff08;2&#xff09;HashSet怎么保证添加元素不重复&#xff1f;&#xff08;3&#xff09;HashSet是否允许null元素&#xff1f;&#xf…

ubuntu wifi固定ip_自制wifi遥控小车!ESP8266实践指南(二)

上次带大家利用ESP8266自制了wifi控制的LED点阵屏幕&#xff0c;大家觉得怎么样呢&#xff1f; 手把手教你用wifi控制显示屏&#xff01;ESP8266实践指南(一)今天我们来做点更有意思的~ wifi遥控小车&#xff01;一、所需材料ESP8266 NodeMCU开发板&#xff1a;这次我们使用CP2…

micopython 18b20_[MicroPython]stm32f407控制DS18B20检测温度

1.实验目的 1. 学习在PC机系统中扩展简单I/O 接口的方法。 2. 进一步学习编制数据输出程序的设计方法。 3. 学习DS18B20的接线方法&#xff0c;并利用DS18B20检测当前温度。 2.所需元器件 F407Micropython开发板1块 数据线1条 DS18b20温度传感器1个 DS18B20测温模块(不含DS18B2…

float php 运算_写给 PHP 程序员的 Python 学习指南

文 | 汤青松SegmentFault编辑 | EarlGrey推荐 | 编程派公众号(ID&#xff1a;codingpy)一、背景人工智能这几年一直都比较火&#xff0c;笔者一直想去学习一番&#xff1b;因为一直是从事PHP开发工作&#xff0c;对于Python接触并不算多&#xff0c;总是在关键时候面临着 基础不…

类似ftp文件服务器有哪些,FTP的替代品有哪些,你知道吗?

在某些情况下&#xff0c;需要从服务器上传(或下载)文件。多年来&#xff0c;最流行的文件传输方法是文件传输协议(FTP)。FTP的一大优点是它支持断点续传。FTP收获了方便性&#xff0c;却在安全性上有所欠缺。FTP未加密&#xff0c;这意味着格式是开放的&#xff0c;文件可能在…

case里面两个条件_Go语言条件语句之 switch 语句

点击上方蓝色 “铁匠学编程” 关注我&#xff0c;让我们一起学习&#xff01;switch语句会根据传入条件不同&#xff0c;选择不同的分支执代码进行执行&#xff0c;他可以代替多个 if else 子句&#xff0c;Go 语言的分支语句和 PHP 的类似&#xff0c;Go 不需要显示的通过brea…

api 二次 开发 禅道_浅谈-软件开发流程

先直接放出我对软件开发的相关人员职责和流程&#xff1a;图一&#xff1a;软件开发的相关人员职责以下是截屏的开发流程泳道图&#xff1a;横轴是相关开发人员的工作模块&#xff1b;纵轴是从上至下开发时序周期。图二&#xff1a;软件开发的流程图从职责图和流程图对应到我们…

光遇安卓服务器维修,《光遇》渠道服更换手机解决办法

《光遇》游戏中渠道服更换手机怎么办&#xff1f;很多小伙伴更换手机后登陆游戏发现自己还需要重头开始&#xff0c;很多小伙伴表示不知道怎么找回之前的渠道服账号和数据&#xff1f;当然IOS玩家不用担心&#xff0c;如果更换IOS可以继续使用账号&#xff0c;但是IOS更换安卓是…

线程中task取消_Rust Async: async-task源码分析

async-std是rust异步生态中的基础运行时库之一&#xff0c;核心理念是合理的性能 用户友好的api体验。经过几个月密集的开发&#xff0c;前些天已经发布1.0稳定版本。因此是时候来一次深入的底层源码分析。async-std的核心是一个带工作窃取的多线程Executor&#xff0c;而其本…

extjs 方法执行顺序_TestNG之注解变压器amp;方法拦截器

一.注解变压器TestNG允许在执行期间修改所有注解的内容。当源代码中的注解大部分是正确的&#xff0c;但是有一些时刻你想要重写他们的值时&#xff0c;这个是非常有用的。可以使用注解变压器实现。注解变压器是一个实现了接口的类&#xff1a;public interface IAnnotationTra…

服务器升级中暂不可修改怎么回事,抖音服务器升级中,暂不支持本地区开播抖音怎么在法国直播?...

抖音服务器升级中&#xff0c;暂不支持本地区开播抖音怎么在法国直播&#xff1f;除了餐饮&#xff0c;腾讯自主研发的各种跨界开发节目也无人问津。至于年初腾讯app项目和资源&#xff0c;还没有整体发布&#xff0c;不过&#xff0c;神似的行业信息也有公布。这其中对爆红的博…

keil 查看 stm32 io波形_你知道 KEIL 自带示波器吗?

导读&#xff1a;很多时候我们并不满足于查看变量的值&#xff0c;可能还想看这个变量的历史变化&#xff0c;同时以波形的方式显示出来&#xff0c;这就需要了解 KEIL 另一个有趣的东西&#xff1a;逻辑分析仪。效果图&#xff1a;以 STM32F103RET6&#xff0c;外接 8M 晶振&a…

ai怎么取消颗粒效果_AI教程3个超实用设计技巧教程

1-AI教程-矢量颗粒墨点字体教程第一步选择自己需要图形第二步画一个一样大的黑白渐变&#xff0c;放上最上层。第三步效果-像素化-铜板雕刻第四步选择&#xff0c;粒状点&#xff0c;其他的也可以自己尝试。第五步对象-扩散-外观第六步图像描摹同时点击 扩展第七步选择图形&…

企业门户网站服务器,企业或个人门户网站对服务器前的重要准备 - 酷番云

互联网被称为继报纸、广播、杂志和电视之后的第五大数字媒体。因为传统媒体的高成本。而且还受到时间和地域的限制,除非你付出高昂代价,否则效果不太好。互联网是展示世界的窗口&#xff0c;也是信息交流的双向交流工具。成本低&#xff0c;回报丰厚。互联网已经成为越来越多企…

机器人踩滑板_不死神草、飞行滑板…超2000种创新发明在这里展出

便捷式单人飞行滑板、空海光电搜跟设备、“踩不死”的草坪…第二十四届全国发明展览会一带一路暨金砖国家技能发展与技术创新大赛今天(11月19日)上午在佛山市潭洲国际会展中心开幕戳视频看看有啥好玩↓ ↓ ↓视频来源&#xff1a;醒目视频智能中医艾灸床便捷式单人飞行滑板…

区分错误类型_数仓|几种SQL隐藏的错误,你遇到过吗?

本文分享主要描述了几种书写SQL时常见的一些隐藏错误&#xff0c;主要包括&#xff1a;在运算符中使用null值、在聚合数据时使用null值、求平均值时使用判断条件、滤条件中使用and和or、查询的列字段之间缺少逗号分隔、inner join与left join。都是一些比较细节的点&#xff0c…

-9 逆序输出一个整数的各位数字_【Java编程基本功】(八)逆序输出、是否为回文数,判断星期几,升序排列...

第二十四题给一个不多于5位的正整数&#xff0c;要求&#xff1a;一、求它是几位数&#xff0c;二、逆序打印出各位数字。代码&#xff1a;public 第二十五题一个5位数&#xff0c;判断它是不是回文数。代码&#xff1a;public 代码2&#xff1a;public 第二十六题请输入星期几…

动词变名词的变化规则_动词第三人称单数的变化规则及练习(含语音)

点击上面蓝字关注我“点击即可听录音”1. 大部分单词可以直接在动词后:s例&#xff1a;like -- likes play -- playsShe likes cola.发音规则&#xff1a;所加的“s”在清辅音后&#xff0c;发【s】&#xff0c;works在浊辅音及元音后&#xff0c;发【z】&#xff0c; plays在…

c语言sleep函数_做游戏,学C语言,小球碰撞游戏,菜鸡者从黑窗口到图形化编程...

CMD黑窗口小球运动这次教程&#xff0c;我们实现一个弹跳小球。需要学习完基础的变量、运算符、表达式&#xff0c;printf、scanf输入输出函数的用法&#xff0c;if-else、while、for语句的用法。第1步&#xff0c;显示静止的小球。效果为&#xff1a;第2步让小球斜着弹跳。主要…

语言五子棋无ai程序框图_2020输入法报告 如何选择更好的AI语音输入法?

不少人认为&#xff0c;现在输入法均已内置语音输入方式&#xff0c;只要是语音输入就没有什么差别。其实不然。近日&#xff0c;Mob研究院发布《2020中国第三方输入法行业洞察》报告&#xff0c;深入挖掘分析语音输入法行业现状及变化趋势。《报告》统计显示&#xff0c;讯飞输…