一行代码获取股票、基金数据,并绘制K线图

news2024/11/24 13:26:04

大家好,今天这篇文章和大家分享一下如何利用Python获取股票、基金数据,并进行可视化,为金融分析&可视化先导篇,欢迎大家学习、点赞、收藏支持。

一、基础准备

  • 环境:python 3.7+

  • 需要安装第三方模块:mplfinance、akshare

  • 运行编辑器:jupyter notebook

二、动手动脑

2.1 环境准备

首先需要你的电脑安装好了Python环境,并且安装好了Python开发工具。

如果你还没有安装,可以参考以下文章:

如果仅用Python来处理数据、爬虫、数据分析或者自动化脚本、机器学习等,建议使用Python基础环境+jupyter即可。

如果想利用Python进行web项目开发等,建议使用Python基础环境+Pycharm 。

2.2 模块安装

本次实验是在jupyter notebook上进行,默认你已经安装好了Python基本环境和jupyter,如果没有安装可以看上面的环境安装部分。

首先打开终端,输入:

jupyter notebook

即可进入jupyter,会自动连接服务器,并跳转到网页,新建一个python文件。

给文件重命名,容易区分:

在代码块中输入以下指令并运行,即可安装mplfinance(金融数据可视化,基于matplotlibe和pandas)和akshare(金融数据获取模块):

!pip3 install mplfinance --user
!pip3 install akshare --user

2.3 模块基本介绍与使用

2.3.1 mplfinance
基本介绍:用于金融数据可视化和可视化分析的 matplotlib 实用程序(接口),基于matplotlibe开发,并且与pandas的DataFrame数据有很好的结合。

项目地址:https://github.com/matplotlib/mplfinance

基本使用方法:

import mplfinance as mpf

mpf.plot(data)

其中 data数据是一个DataFrame数据类型,必须包含:Open, High, Low and Close这四列,并且有时间日期索引(类型为:DatetimeIndex)。

接下来,我们虚拟一个数据来看看效果吧:

import mplfinance as mpf
import pandas as pd

# 创建日期索引
index_date = pd.DatetimeIndex(['20210906', '20210907', '20210908', '20210909'])
# 随便创建数据
data = pd.DataFrame({
    'Open': [1, 2, 3, 4], 
    'High': [2, 3, 4, 5], 
    'Low' : [0.5, 1, 2, 2],
    'Close': [2, 3, 4, 3]
}, index=index_date)
# 调用plot函数 进行绘图
mpf.plot(data)

我们看到,现在根据模拟数据我们简单绘制了一个简单的OHLC线条。

type参数使用,让绘图更加精彩:

mpf.plot(data,type='candle')

mpf.plot(data,type='line')

type还可以为:renko、pnf。

mav参数可以添加移动平均线,更好的看趋势。

mpf.plot(data, type='candle', mav=2)

还可以添加多条移动平均线:

mpf.plot(data, type='candle', mav=(2, 3))

更多使用方法,后面分章节给大家介绍,也欢迎大家去github地址自行学习,和我以及简说Python学习群友进行交流。

2.3.2 akshare
基本介绍:AKShare 是一个优雅简单的 Python 金融数据接口库,你可以利用这个库轻松获取到金融财经数据。

项目地址:https://github.com/jindaxiang/akshare/ 基本使用方法:

  • 获取指数数据

import akshare as ak
# 获取上证指数每日的变化数据 OHLC
sz_index = ak.stock_zh_index_daily(symbol="sh000001")

这样就可以获取到上证指数所有历史数据啦~

  • 获取A股数据

# 获取茅台股票每日的变化数据 采用前复权方式计算(关于复权计算更多知识以后分享,大家可以网络查找相关资料)
stock_zh_mt_hist_df = ak.stock_zh_a_hist(symbol="600519", period="daily", start_date="20170301", end_date='20210913', adjust="qfq")

  • 获取港股数据

# 获取港股腾讯股票历史数据
stock_hk_tx_hist_df = ak.stock_hk_hist(symbol="00700", start_date="20170301", end_date="20210913", adjust="qfq")

  • 获取美股数据

# 获取美股苹果公司历史股票数据
stock_us_apple_hist_df = ak.stock_us_hist(symbol='105.AAPL', start_date="20100101", end_date="20210913", adjust="qfq")

  • 获取基金数据

# 获取易方达蓝筹从发行到现在的净值数据
yfd_fund = ak.fund_em_open_fund_info(fund="005827", indicator="单位净值走势")

更多使用方法,后面分章节给大家介绍,也欢迎大家去github地址自行学习,和我以及简说Python学习群友进行交流。

来,操作

按上面方法,我们获取上证指数数据后,选取从2020-01-01到现在的数据进行可视化,然后在进行细分可视化,并选择不同的移动平均线。

  • 2020-01-01 - '2021-09-13, mav=(200, 300, 350)

import akshare as ak
import mplfinance as mpf
import pandas as pd

# 获取上证指数每日的变化数据 OHLC
sz_index = ak.stock_zh_index_daily(symbol="sh000001")
data1 = sz_index.loc['2020-01-01 00:00:00+00:00':'2021-09-13 00:00:00+00:00']
mpf.plot(data1, type='candle', mav=(200, 300, 350), volume=True)

  • 2021-01-01 - '2021-09-13, mav=(30, 60, 120)

data2 = sz_index.loc['2021-01-01 00:00:00+00:00':'2021-09-13 00:00:00+00:00']
mpf.plot(data2, type='candle', mav=(30, 60, 120), volume=True)

  • 2021-04-01 - '2021-09-13, mav=(5, 10, 20)

data3 = sz_index.loc['2021-04-01 00:00:00+00:00':'2021-09-13 00:00:00+00:00']
mpf.plot(data3, type='candle', mav=(5, 10, 20), volume=True)

今天就到这里啦,如果大家觉得文章不错,记得点个赞哈~


资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Spring源码深度解析:十六、@Aspect方式的AOP下篇 - createProxy

一、前言 文章目录:Spring源码深度解析:文章目录 我们上篇已经分析到了 Spring将已经找到所有适用于当前bean 的Advisor 集合。下面就要创建代理对象了,而代理对象的创建是从 AbstractAutoProxyCreator#createProxy()开始。下面我们就来看看…

Spring Cloud实现Zuul自带的Debug功能

Zuul 中自带了一个 DebugFilter,一开始笔者也没明白这个 DebugFilter 有什么用,看名称很容易理解,它是用来调试的,可是你看它的源码几乎没什么逻辑,就 set 了两个值而已,代码如下所示。 Overridepublic Obj…

流媒体协议分析之webrtc之rtcp

TCP作为RTP控制协议,对于弱网下音视频质量和会话控制具有重要的作用。 1. RTCP Header V:RTCP的版本号,一定等于2; P:如果设置,填充位表示数据包包含末尾的附加填充八位字节,不属于控制信息&am…

CV-对比学习:概述【通过自监督学习,充分挖掘模型从海量无标注数据中学习通用知识的能力】

对比学习从目标来看,是要做在NLP类型类似Bert预训练的事,即通过自监督学习,充分挖掘模型从海量无标注数据中学习通用知识的能力。 大致分类 对比学习目前可大致可分为 基于负例的对比学习方法基于对比聚类的方法基于不对称网络结构的方法基…

PLC SECS/GEM解决方案,设计与应用

1 适用性 金南瓜SECS是最适应于全自动智能设备的选择。 适用行业:半导体、光伏、PCB等 全面支持E5、E30、E37、E40、E87、E90、E94、E116 PLC SECS/GEM具有怪兽级的强劲性能,处理性能高达10ms/条,全面升级的高适应性,易用友好的S…

30.前端笔记-CSS-CSS3的新特性

1、CSS3新增选择器 属性选择器,权重为10结构伪类选择器,权重为10伪元素选择器,权重为10 1.1 属性选择器 用属性选择器可以不用借助类或id选择器 语法: 正则表达式:^表示开头,$表示结尾,*表示任意 /*标…

怎么提高客服人员效率?

为了给客户提供更好的服务,很多企业会为自己网站配置客服服务,方便随时和客户沟通。但是凡事有利便有弊。虽然和客户接触的机会变多了,但是沟通不及时、回答不专业、问题处理时间长等问题也可能随之出现,反而会给客户带来不好的印…

[附源码]Python计算机毕业设计Django的个人理财系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

OpenCV-Python小应用(七):获取图片ROI的HSV取值范围

OpenCV-Python小应用(七):获取图片ROI的HSV取值范围前言前提条件实验环境获取图片ROI的HSV取值范围参考文献前言 本文是个人使用OpenCV-Python的应用案例,由于水平有限,难免出现错漏,敬请批评改正。更多精彩…

基于无人机的移动边缘计算网络研究(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

socket网络字节序以及大端序小端序

不同CPU中,4字节整数1在内存空间的存储方式是不同的。4字节整数1可用2进制表示如下: 00000000 00000000 00000000 00000001 有些CPU以上面的顺序存储到内存,另外一些CPU则以倒序存储,如下所示: 00000001 00000000 0…

【Spring】SpringBoot 配置 logback 日志

1. 概述 日志在一个业务系统重非常重要,包含有非常重要的数据,可以用于客户反馈问题的排查、线上问题的追踪,以及根据日志数据对业务情况进行有效的监控配置,及时发现线上问题。 常用的日志框架有好几种,但最常用的是…

[附源码]Node.js计算机毕业设计大学校园兼职网站Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

【观察】定义下一代云原生实时数仓,SelectDB Cloud“打了个样”

2020年,国家在《关于构建更加完善的要素市场化配置体制机制的意见》中,首次将数据与土地、资本、劳动力并列为关键生产要素,并提出加快培育数据要素市场的愿景,此举可谓意义重大。背后的原因是,当下中国企业正在加速从…

【车载开发系列】UDS诊断---写入内存($0x3D)

【车载开发系列】UDS诊断—写入内存($0x3D) UDS诊断---写入内存($0x3D)【车载开发系列】UDS诊断---写入内存($0x3D)一.概念定义二.报文格式1)请求报文2)肯定响应3)否定响…

Redis实战——消息队列

目录 1. 什么是消息队列? 2. 基于List结构模拟消息队列 3. 基于PubSub的消息队列 4. 基于Stream的消息队列 4.1 基于Stream的单消费者模式 4.2 基于Stream的消息队列-消费者组 1. 什么是消息队列? 字面意思就是存放消息的队列。最简单的消息队列模…

学习参数化计算优化风扇定位step by step

一、写在前面 本教程的目的是演示ANSYS Icepak的参数和优化功能。假定读者已经熟悉ANSYS Icepak界面,但是缺乏实战经验。 在这个案例中,读者可以掌握: 1、使用Network网络热阻Block来模拟IC芯片封装模型。 2、将变量定义为参数并通过参数…

算法竞赛入门【码蹄集进阶塔335题】(MT2226-2250)

算法竞赛入门【码蹄集进阶塔335题】(MT2226-2250) 文章目录算法竞赛入门【码蹄集进阶塔335题】(MT2226-2250)前言为什么突然想学算法了?为什么选择码蹄集作为刷题软件?目录1. MT2226 36进制22. MT2227 36进制33. MT2228 36进制44.…

电商、线上教育、在线医疗等必备资质——ICP许可证 。

危中有机,疫情也概莫能外。一场突如其来的疫情,引发了消费、健康、办公、学习等领域的新变革,电商、短视频、游戏、线上教育、在线医疗、知识付费等“互联网”项目,再次迎来发展机遇。 然而,如果想要借助互联网进行经…

[附源码]Python计算机毕业设计大学生网上书店Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…