简单的股票行情演示(二) - AKShare

news2024/9/27 23:28:30
    • 一、概述
    • 二、环境搭建
    • 三、使用总结
      • 1、API文档
      • 2、数据字典
      • 3、效果截图
      • 4、后台服务
    • 四、相关文章

原文链接:简单的股票行情演示(二) - akshare

一、概述

上一篇文章简单的股票行情演示(一) - 实时标的数据中讲述了从新浪接口抓取免费股票实时行情数据,其中缺点也明显,缺乏良好的接口说明文档,不知道可以获取哪些数据,并且返回数据格式为字符串,传输效率低下,兼容性就更差,后台数据几乎没有扩展性。

本篇文章将介绍一款神奇工具 - AKShare,它是专门用来获取金融行情数据使用的,基于该库也衍生出了不少优秀框架,其中Backtrader就是其中一款优秀的量化投资开源回测和交易框架。AKShare本身由Python脚本编写,为了突破Python语言的限制,该库还专门配套发布了专用的AKTools工具。

AKTools 是一款用于快速搭建 AKShare HTTP API 的工具,通过 AKTools 可以利用一行命令来启动 HTTP 服务,从而让原本专属服务于 Python 用户的开源财经数据接口库 AKShare 的使用 突破编程语言的限制。无论您使用的是 C/C++、Java、Go、Ruby、PHP、JavaScript、R、Matlab、Stata 等编程语言或软件都可以快速、轻松获取财经数据,助力您更好地展开研究和开发工作。

上述内容是引用子AKTools官方文档中对AKTools的一段描述,意思简单易懂,说白了就是在本地启动了一套HTTP服务,任何语言都可以对该本地服务发起数据请求,然后由该服务进行互联网请求,请求成功后在把数据回复给本地请求者,完全突破了Python语言的限制,最重要的是该库返回的数据基本都是json格式,可扩展性强,并且文档比较完善。

本篇文章的内容比较简单,主要是为后续行情数据来源提供强大支持,有了AKShare提供的数据源后,我们接下来就只需要关心C++侧的数据请求、存储、转发和一些UI效果展示。接下来的内容将围绕AKShare环境搭建和笔者使用过程中总结的一些小经验进行展开分享。

二、环境搭建

熟悉Python语言的同学安装AKShare和AKTools应该很容易,就是安装两个Python库,而且这两个库对应的官网上也有详细的安装说明,这里仅以作者当时摸索安装环境时的过程做以简单说明。

需要使用这两个库,首先需要安装Python环境,AKShare官网推荐的有最低版本,这里一定要遵守,最开始摸索阶段使用了32位的Python版本,搞的好久一直报错,后来切换为64位后正常。

  1. 安装Python 64 3.8.10 版本
  2. pip install AKShare
  3. pip install AKTools
  4. [pip install pyinstaller]打包使用,可以选择性安装
  5. [python -m pip --upgrade pip ]升级pip工具使用

环境安装好之后,通过Python命令即可启动AKTools服务,如下图所以,截图来自官网说明

  1. 命令行输入python -m aktools,按下回车,将会在本地默认启动一个HTTP服务,IP为127.0.0.1,端口号为8080
  2. 使用Postman模拟发送http://127.0.0.1:8080/api/public/stock_zh_a_hist请求,能获取到数据时代表环境安装成功

 

下图同样来自AKTools官网,是执行了上述第二步请求A 股日频率数据-东方财富接口返回的数据

测试请求结果能正常返回数据后,说明我们的环境搭建成功,之后只需要安心发送各种数据请求即可。

三、使用总结

1、API文档

AKShare 快速入门中介绍了大量接口,并且配备有中文说明,可以作为一个字典快速检索使用

2、数据字典

AKShare 数据字典主要介绍 AKShare 提供的数据接口的详细说明,并且每一个Case都做了详细说明,比如A股-实时行情数据-新浪数据,点开此链接后大致说明如下,由于截图原因不能展示的非常全面,使用时大家可自行去官网查阅所有接口,会使用任何一种语言发起HTTP请求,那配套该库就可以请求更加多样化的金融数据。

3、效果截图

如下图所示,作者在本地搭建好环境后,通过Talend API Tester工具发起的获取股票5分钟K线测试请求,图中右下角为请求到的数据,为了展示更多数据,这里没有进行Json Pretty展示

 

4、后台服务

对于要正式使用该模式获取数据的同学来说,每次启动该服务后,都会有一个CMD命令行窗口存在,影响美观的同时还有可能不小心误操作给关掉,对于Linux电脑来说这应该不是问题,据说命令行后加一个&符号就可以后台执行,对于Windows电脑的作者来说表示很尴尬,不过我一直相信80%的问题都可以通过百度解决,果然办法还真有,下面我就简单贴上命令行代码,这也是从其他的coder那里拷贝而来。

@ECHO OFF
if "%1" == "h" goto begin 
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit 
:begin
start /b python -m aktools --host 127.0.0.2 --port 1920

把如上脚本放入一个Bat脚本中,通过双击脚本启动的HTTP服务,将会在后台运行,此时在也没有显眼的Cmd窗口打扰。

后台进程启动后,怎么杀死呢?作者这里偷了一个烂,使用了Windows通用杀死进程的办法,直接干掉Python.exe可执行程序,不过这个方法缺点也比较明显,会杀死所有的Python进程,对于写C++的我足够啦。

taskkill /im python.exe /f

希望区分进程名的同学可以自行研究哈,或者有啥好的办法也可以进行留言,或者私信,感激不尽。之前在StackFlow上有一个同学提供了一种思路,就是启动服务的时候使用不同的Python.exe,意思就是在Python安装目录拷贝多个Python.exe,然后命名成不同的名称,比如启动AKTools可以命名为AKToolsPython.exe,这样就可以和其他进程区分。

此篇文章主要讲述了数据源获取方式,后续还会有更多文章出来,比如K线展示、分时图展示等,敬请期待。。。

四、相关文章

  1. Qt 之股票组件 - 自选股 -- 列表可以拖拽、右键常用菜单
  2. Qt 之股票组件 - 股票检索 -- 支持搜索结果预览、鼠标、键盘操作
  3. 简单的股票行情演示(一) - 实时标的数据
  4. QCustomplot使用分享(一) 能做什么事
  5. QCustomplot使用分享(二) 源码解读
  6. QCustomplot使用分享(三) 图
  7. QCustomplot使用分享(四) QCPAbstractItem
  8. QCustomplot使用分享(五) 布局
  9. QCustomplot使用分享(六) 坐标轴和网格线
  10. QCustomplot使用分享(七) 层(完结)

值得一看的优秀文章:

  1. 财联社-产品展示
  2. 广联达-产品展示
  3. Qt定制控件列表
  4. 牛逼哄哄的Qt库

如果您觉得文章不错,不妨给个打赏,写作不易,感谢各位的支持。您的支持是我最大的动力,谢谢!!!


很重要--转载声明

  1. 本站文章无特别说明,皆为原创,版权所有,转载时请用链接的方式,给出原文出处。同时写上原作者:朝十晚八 or Twowords

  2. 如要转载,请原文转载,如在转载时修改本文,请事先告知,谢绝在转载时通过修改本文达到有利于转载者的目的。


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

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

相关文章

web前端期末大作业 HTML+CSS+JavaScript仿安踏

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 在线商城购物 | 水果商城 | 商城系统建设 | 多平台移动商城 | H5微商城购物商城项目 | HTML期末大学生网页设计作业,Web大学生网页 HTML&a…

连续仨月霸占牛客榜首,京东T8呕心巨作:700页JVM虚拟机实战手册

什么是Java虚拟机 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息&#xff0c…

Linux下 生成coredump文件

一. coredump文件路径 网上很多博文说到 coredump 文件默认会在默认的目录下生成。 按照网上很多的说法,再运行程序就会生成core文件,一般路径和可执行程序一个路径。 但是,我尝试在 ubuntu20.04系统下,怎么也找不到去哪里了&a…

设计模式之美——KISS、YAGNI原则

KISS 原则算是一个万金油类型的设计原则,可以应用在很多场景中。它不仅经常用来指导软件开发,还经常用来指导更加广泛的系统设计、产品设计等,比如,冰箱、建筑、iPhone 手机的设计等等。 我们知道,代码的可读性和可维…

ASIFT算法过程实现 --- 配置避坑指南

常规的SIFT算法进行图像匹配的时候,只能进行两个摄像机夹角比较小的(最大是15),拍摄的图像进行相机的图像匹配,但是针对于相机之间的夹脚比较大的时候,上述的算法匹配就是会出现问题.为了解决上面的这个问题,使用了一种改进的算法匹配方式ASIFT算法进行匹配.具体这种算法的优点…

MYSQL进阶(2)

删除索引:drop Index indexName on tableName; B树叶子结点和非叶子节点都存在数据,那么当数据量很大的时候,把索引加载起来就需要很长时间 联合索引: 1)定义:是给一张表上面的多个列增加索引,也就是说给表上面的多个列增加索引,供…

MongoDB聚集分析

文章目录 聚集操作管道模式聚集MapReduce 聚集简单聚集函数小结聚集操作 聚集操作是对数据进行分析的有效手段。MongoDB 主要提供了三种对数据进行分析计算的方式:管道模式聚集分析、MapReduce聚集分析、简单函数和命令的聚集分析。 管道模式聚集 这里所说的管道类似于UNIX…

2022 APMCM亚太数学建模竞赛 C题 全球是否变暖 思路及代码实现(持续更新中)

2022 APMCM亚太数学建模竞赛 C题 全球是否变暖 思路及代码实现(持续更新中) 1 题目 全球变暖与否? 加拿大49.6C的高温为地球北纬50以上地区创造了新的气温记录,一周内就有数百人死于高温;美国加利福尼亚州死亡谷54.4C,是地球上有记录以来的最高温度;科…

Ubuntu 16.4虚拟机 配置Hadoop集群

Ubuntu 16.4 配置Hadoop集群总体步骤环境说明虚拟机配置java安装hadoop安装与配置克隆虚拟机ssh安装使用,免密登录更改hadoop配置结束语总体步骤 1、虚拟机配置 2、java安装 3、hadoop下载配置 4、复制虚拟机 5、ip更换,使用固定ip,并且每台…

Linux基本指令集合

Linux基本指令1,ls命令2,pwd命令3,whoami4,cd命令5,touch命令6,mkdir命令7,rmdir与rm命令8,man命令9,cp命令10,tree命令11,mv命令12,c…

智慧城市的发展趋势

智慧城市,是指在城市发展过程中,在城市基础设施、资源环境、社会民生、经济产业、市政治理领域中,充分利用物联网、互联网、云计算、IT、智能分析等技术手段,对城市居民生活工作、企业经营发展和政府行政管理过程中的相关活动&…

HTML学生个人网站作业设计:我的家乡网站设计——南宁留言表单 无js 页面8个

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 家乡旅游景点 | 家乡民生变化 | 介绍自己的家乡 | 我的家乡 | 家乡主题 | HTML期末大学生网页设计作业 HTML:结构 CSS:样式 在…

泰克/Tektronix A622电流探头型号规格参数介绍

Tektronix/泰克电流探头A622产品介绍 品牌:Tektronix 产地:美国 Tektronix泰克A622交直流电流探头适用于万用表和示波器钳型;通用BNC接口。 Tektronix/泰克电流探头A622产品特点: AC/DC-100kHz 50mA to 100A峰值 适用于万用表和示波器 钳形开…

HTML期末大学生网页设计作业——奇恩动漫HTML (1页面) HTML+CSS+JS网页设计期末课程大作业

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

C++:函数:回调函数:还不懂回调函数来捶我

前言 不知道你是否有这样的疑问,我们为什么需要回调函数,直接调用函数不就可以了吗?回调函数到底有什么用?程序员该如何理解回调函数了? 这篇文章就为你解答这些问题,读完这篇文章后,你的编程…

连接肠菌与宿主的桥梁:肠菌代谢物——肠菌功能研究新篇章

人的肠道内寄居着多种微生物,他们统称为肠道菌群。研究表明,肠道菌群失衡会导致多种人体疾病,包括糖尿病、肿瘤、心血管疾病、神经系统疾病等。 那么肠菌是怎么对人产生影响的呢?答案是肠菌产生的代谢物(1, 2&#xf…

Vue3+nodejs全栈项目(资金管理系统)——后端篇(一)登录、注册

文章目录初始化创建项目配置跨域配置解析表单数据的中间件安装bodyparser初始化用户路由模块抽离用户路由模块中的处理函数登录注册新建admin表安装并配置mysql模块注册检测表单数据是否合法检测用户名是否被占用对密码进行加密处理bcryptjs插入新用户测试登录根据名字查询用户…

CDH6.3.2处理Zookeeper因未授权访问造成的漏洞

1.zookeeper的基本情况 zookeeper是分布式协同管理工具,常用来管理系统配置信息,提供分布式协同服务。zookeeper官网下载软件包,bin目录下有客户端脚本和服务端脚本。另外还有个工具对理解和使用zookeeper服务非常有用,即zk-ui&am…

文本层次语义元素

html5-文本层次语义元素 第1关_文本层次语义元素相关概念 第2关_文本层次语义元素 编程要求 在右侧编辑器中的Begin - End区域内补充代码&#xff0c;具体要求是&#xff1a; 1.运用HTML5中的语义化元素设计一个文章区(<article>)。 2.文章区中的头部为文章的标题&a…

如何自己开传奇单机架设超详细图文教程

如何自己成为传奇&#xff0c;如何自己搭建传奇非官服&#xff0c;首先下载传奇服务器后&#xff0c;会有两个压缩包&#xff0c;一个用于服务器&#xff0c;一个用于游戏补丁文件 传奇单机设置-GOM引擎的超详细图文教程 版本文件包含.exe&#xff0c;以上文件都不起作用。 …