当前位置: 首页 > news >正文

股票数据分析(K线图、均值图、MACD图、RSI图)--股票日数据

数据

        数据是上证指数日行情数据,股票代码000002.sz,原始数据shdata示例如下:

        读取数据:

import numpy as np
import pandas as pd
import mplfinance as mpf
import matplotlib.pyplot as plt
from datetime import datetime
import matplotlib.ticker as ticker
import talib
from mplfinance.original_flavor import candlestick_ohlc
#from matplotlib.ticker import MaxNLocator, FuncFormatter
shdata = pd.read_csv("D:/my_files/sh_index.csv")
shdata['date'] = pd.to_datetime(shdata['trade_date'], format="%Y%m%d") #设置date列格式为年月日
shdata_beiyong = shdata.copy()
shdata.set_index('date',inplace=True)  #设置索引

日数据转周数据

        有时候需要以周为单位对数据进行分析或观测,数据转换代码如下:

p='w'
pshdata = shdata.resample(p).last() #转换,周线的每个变量都等于那一周中最后一个交易日的变量值
pshdata['open'] = shdata['open'].resample(p).first() #周线的open等于那一周中第一个交易日的open
pshdata['high'] = shdata['high'].resample(p).max() #周线的high等于那一周中的high的最大值
pshdata['low'] = shdata['low'].resample(p).min() #周线的low等于那一周中的low的最大值
pshdata['vol'] = shdata['vol'].resample(p).sum() #周线的vol和amount等于那一周中vol和amount各自的和
pshdata['amount'] = shdata['amount'].resample(p).sum()
pshdata = pshdata[pshdata['open'].notnull()] #删除一整周没有数据的周

K线

        K线图又称蜡烛图、日本线、阴阳线、棒线等,常用说法是“K线”,K线是一条柱状的线条,由影线和实体组成,影线在实体上方的部分叫上影线,下方的部分叫下影线,实体分阳线和阴线。其中影线表明当天交易的最高和最低价,而实体表明当天的开盘价和收盘价。为了展示更清晰,这里只用12个数据画K线:

shdata12 = shdata.iloc[-12: , : ]  #只保留最近12个数据
mpf.plot(shdata12, type='candle', style='yahoo')  #做K线图

均线(MA)

        移动平均线 又称为 均线(Moving Average ), 也常简称MA,代表过去一段时间里的平均成交价格,均线最主要目的是用来判断趋势通常是预期市场现在跟未来可能的走势。一般会用两条均线(短期均线和长期均线)结合来分析股票走势,这里绘制5日均线与20日均线,同时用灰色绘制日收盘价:

#计算5日均线、10日均线数据
shdaily = pd.DataFrame(shdata['close']) #提取收盘价列
ma_list = [5, 20]  # 要绘制的均线列表
for ma in ma_list:shdaily['ma_' + str(ma)] = shdaily['close'].rolling(ma).mean() #计算均线数据
plt.plot(shdaily['close'], '-', label = 'close',color = 'gray') #收盘价作图
for ma in ma_list:plt.plot(shdaily['ma_' + str(ma)], '-', label = 'ma_' + str(ma)) #ma作图
plt.gcf().autofmt_xdate()
plt.legend() #显示图例
#plt.savefig('all.png')
plt.show()#显示图片

MACD与RSI图

        MACD平滑异同移动平均线(Moving Average Convergence / Divergence) 的缩写,为 Gerald Appel于1979年所创,包括两条线和1个柱形图共3种信号,分别为DIFF线、DEA线和MACD红绿柱线。当MACD从负数转向正数,是买的信号。当MACD从正数转向负数,是卖的信号。当MACD以大角度变化,表示快的移动平均线和慢的移动平均线的差距非常迅速的拉开,代表了一个市场大趋势的转变。

        相对强弱指标(RSI)又叫力度指标,其英文全称为“Relative Strength Index”,由威尔斯•魏尔德所创造的,是目前股市技术分析中比较常用的中短线指标RSI是一定时期内市场的涨幅与涨幅加上跌幅的比值,它是买卖力量在数量上和图形上的体现,投资者可根据其所反映的行情变动情况及轨迹来预测未来股价走势。在实践中,人们通常将其与移动平均线相配合使用,借以提高行情预测的准确性。

        VOL是一个成交量指标,是指个股或者大盘一定时间内的成交数量,一般的炒股软件中都是指成交总手数(1手=100股)。成交量体现在炒股软件上就是一根竖着的柱子,成交量越大,柱子越高,反之越矮,成交量反映的就是一段时间内市场热不热闹,投资者交易的热情高不高。

        MACD、RSI与成交量绘图代码如下:

data = shdata_beiyong
data=data.reset_index()  #重置index
data=data.iloc[:,1:]  
data["macd"], data["macd_signal"], data["macd_hist"] = talib.MACD(data['close'])  #获取macd
data["ma8"] = talib.MA(data["close"], timeperiod=8)  #获取8日均线
data["ma25"] = talib.MA(data["close"], timeperiod=25)  #获取25日均线
data["rsi"] = talib.RSI(data["close"])  #获取rsi
fig = plt.figure()  #创建绘图区,包含四个子图
fig.set_size_inches((20, 16))
ax_candle = fig.add_axes((0, 0.72, 1, 0.32))  #蜡烛图子图
ax_macd = fig.add_axes((0, 0.48, 1, 0.2), sharex=ax_candle)  #macd子图
ax_rsi = fig.add_axes((0, 0.24, 1, 0.2), sharex=ax_candle)  #rsi子图
ax_vol = fig.add_axes((0, 0, 1, 0.2), sharex=ax_candle)  #成交量子图
ohlc = []  #存放数据,candlestick_ohlc需要传入固定格式的数据
row_number = 0
for date, row in data.iterrows():date, openp, highp, lowp, closep = row[2:7]ohlc.append([row_number, openp, highp, lowp, closep])row_number = row_number + 1date_tickers = data.date.values  #获取Date数据
def format_date(x, pos=None):  #数据在date这个位置传入的是int类型,使date_tickers是所有日期的字符串形式列表if x < 0 or x > len(date_tickers) - 1:return ''return date_tickers[int(x)]#绘制带均线的K线图
ax_candle.plot(data.index, data["ma8"], label="MA8")
ax_candle.plot(data.index, data["ma25"], label="MA25")
candlestick_ohlc(ax_candle, ohlc, colorup="g", colordown="r", width=0.8)
ax_candle.xaxis.set_major_formatter(ticker.FuncFormatter(format_date)) 
ax_candle.xaxis.set_major_locator(ticker.MultipleLocator(8))  #设置间隔为6个交易日
ax_candle.grid(True)
ax_candle.set_title("title", fontsize=20)
ax_candle.legend()#绘制MACD
ax_macd.plot(data.index, data["macd"], label="macd")
ax_macd.bar(data.index, data["macd_hist"] * 3, label="hist")
ax_macd.plot(data.index, data["macd_signal"], label="DIF")
ax_macd.set_title('MACD')
ax_macd.legend()#绘制RSI
ax_rsi.set_ylabel("(%)")
ax_rsi.plot(data.index, [70] * len(data.index), label="overbought")
ax_rsi.plot(data.index, [30] * len(data.index), label="oversold")
ax_rsi.plot(data.index, data["rsi"], label="rsi")
ax_rsi.set_title('rsi')
ax_rsi.legend()#绘制成交量
ax_vol.bar(data.index, data["vol"] / 1000000)
ax_vol.set_ylabel("(Million)")
plt.show()

相关文章:

股票数据分析(K线图、均值图、MACD图、RSI图)--股票日数据

数据 数据是上证指数日行情数据&#xff0c;股票代码000002.sz&#xff0c;原始数据shdata示例如下&#xff1a; 读取数据&#xff1a; import numpy as np import pandas as pd import mplfinance as mpf import matplotlib.pyplot as plt from datetime import datetime imp…...

重写equals()方法为什么同时要重写hashcode()

equals()方法 equals()方法是Object类中的一个方法&#xff0c;在Object类中&#xff0c;equals等同于。 在不同的类中&#xff0c;往往会对equals()按需求进行重写。重写的目的都是&#xff1a;用于比较两个对象是否 "相等"。如果两个对象的内容相同&#xff0c;那…...

安全及应用(更新)

一、账号安全 1.1系统帐号清理 #查看/sbin/nologin结尾的文件并统计 [rootrootlocalhost ~]# grep /sbin/nologin$ /etc/passwd |wc -l 40#查看apache登录的shell [rootrootlocalhost ~]# grep apache /etc/passwd apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin#改变…...

Hadoop权威指南-读书笔记-03-Hadoop分布式文件系统

Hadoop权威指南-读书笔记 记录一下读这本书的时候觉得有意思或者重要的点~ 还是老样子~挑重点记录哈&#x1f601;有兴趣的小伙伴可以去看看原著&#x1f60a; 第三章 Hadoop分布式文件系统 当数据集的大小超过一台独立的物理计算机的存储能力时&#xff0c;就有必要对它进行分…...

Rust入门实战 编写Minecraft启动器#2建立资源模型

首发于Enaium的个人博客 我们需要声明几个结构体来存储游戏的资源信息&#xff0c;之后我们需要将json文件解析成这几个结构体&#xff0c;所以我们需要添加serde依赖。 serde { version "1.0", features ["derive"] }资源相关asset.rs use serde::De…...

小白学C++(第一天)基础入门

温馨提醒&#xff1a;本篇文章&#xff0c;请各位c基础不行的童鞋不要贸然观看 C的第一个程序 第一个关键字namespace namespace 是定义空间的名字的关键字&#xff0c;使用格式格式如下&#xff1a; namespace 空间名 { } 其中{ }内的命名空间的成员&#xff0c;可以定义…...

谷歌正在试行人脸识别办公室安全系统

内容提要&#xff1a; &#x1f9ff;据美国消费者新闻与商业频道 CNBC 获悉&#xff0c;谷歌正在为其企业园区安全测试面部追踪技术。 &#x1f9ff;测试最初在华盛顿州柯克兰的一间办公室进行。 &#x1f9ff;一份内部文件称&#xff0c;谷歌的安全和弹性服务 (GSRS) 团队将…...

【CSS01】CSS概述,使用样式的必要性,CSS语法及选择器

文章目录 一、什么是样式二、使用样式的必要性三、使用样式的几种方式四、CSS基本语法&#xff1a;五、CSS的注释六、CSS选择器——重点相关单词 一、什么是样式 概念&#xff1a; Cascade [kˈskeɪd] Style Sheet [ʃiːt] 级联样式单/表&#xff0c;层叠样式表 CSS有化腐…...

PostgreSQL的pg_bulkload工具

PostgreSQL的pg_bulkload工具 pg_bulkload 是一个针对 PostgreSQL 提供高性能批量数据加载的工具。相较于内置的 COPY 命令&#xff0c;pg_bulkload 更加灵活并且在许多情况下性能更高。它支持数据的强制加载、数据过滤、数据转换以及错误处理等多种功能&#xff0c;非常适合需…...

【Java伴学笔记】Day-01 命令行|环境|编译解释运行|Java的相关分支|Java的特性|字面量

一、关于命令行 图形化界面的缺点 需要加载图片等一系列资源 效率较低 命令行 CMDMicrosoft Learn-CMDWindows CMD常用命令大全&#xff08;值得收藏&#xff09; 二、环境 什么是JDK JDK是Java Development Kit的缩写&#xff0c;意为Java开发工具包。它是一个用于开发Java应用…...

如何使用Vue3创建在线三维模型展示?

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 代码相关的技术博客 代码应用场景介绍 本段代码使用 RoughJS 库在 HTML5 Canvas 上创建了手绘风格的图像&#xff0c;展示了 RoughJS 库的强大功能&#xff0c;可用于创建具有有机手绘外观的图形。 代码基本…...

使用ndoe实现自动化完成增删改查接口

使用ndoe实现自动化完成增删改查接口 最近工作内容比较繁琐&#xff0c;手里需要开发的项目需求比较多&#xff0c;常常在多个项目之间来回切换&#xff0c;有时候某些分支都不知道自己开发了什么、做了哪些需求&#xff0c; 使用手写笔记的方式去记录分支到头来也是眼花缭乱&a…...

排序 -- 手撕归并排序(递归和非递归写法)

一、基本思想 归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子序列有…...

防火墙基础及登录(华为)

目录 防火墙概述防火墙发展进程包过滤防火墙代理防火墙状态检测防火墙UTM下一代防火墙&#xff08;NGFW&#xff09; 防火墙分类按物理特性划分软件防火墙硬件防火墙 按性能划分百兆级别和千兆级别 按防火墙结构划分单一主机防火墙路由集成式防火墙分布式防火墙 华为防火墙利用…...

【Vue】使用html、css实现鱼骨组件

文章目录 预览图组件测试案例 预览图 组件 <template><div class"context"><div class"top"><div class"label-context"><div class"label" v-for"(item, index) in value" :key"index&qu…...

Python的多态

在 Python 中&#xff0c;多态&#xff08;Polymorphism&#xff09;是指不同的对象可以对相同的消息&#xff08;方法调用&#xff09;做出不同的响应。 简单来说&#xff0c;多态允许使用一个统一的接口来操作不同类型的对象&#xff0c;而这些对象会根据自身的类型来执行相应…...

001uboot体验

1.uboot的作用&#xff1a; 上电->uboot启动->关闭看门狗、初始化时钟、sdram、uart等外设->把内核文件从flash读取到SDRAM->引导内核启动->挂载根文件系统->启动根文件系统的应用程序 2.uboot编译 uboot是一个通用的裸机程序&#xff0c;为了适应各种芯片&…...

Flask之电子邮件

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 目录 一、使用Flask-Mail发送电子邮件 1.1、配置Flask-Mail 1.2、构建邮件数据 1.3、发送邮件 二、使用事务邮件服务SendGrid 2.1、注册SendGr…...

Vue 2 与 ECharts:结合使用实现动态数据可视化

在现代前端开发中&#xff0c;数据可视化变得越来越重要。ECharts 是一个强大的数据可视化库&#xff0c;而 Vue 2 则是一个流行的前端框架。本文将介绍如何将 Vue 2 和 ECharts 结合使用&#xff0c;以实现动态数据可视化。 安装与配置 首先&#xff0c;确保你的项目中已经安…...

.net core Redis 使用有序集合实现延迟队列

Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。 有序集合的成员是唯一的,但分数(score)却可以重复。 集合是通过哈希表实现的&#xf…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...