Matplotlib应用-股票技术分析实战

MACD

Moving Average Convergence/Divergence,意为异同移动平均线。它刻画的是股价变化的速度

MACD算法

指标含义公式
短期EMA短期收盘价指数移动均线(12天)前一日EMA(12)11/13 +今日收盘价2/13
长期EMA长期收盘价指数移动均线(26天)前一日EMA(26)25/27 +今日收盘价2/27
DIF短期EMA与长期EMA差值EMA(12)-EMA(26)
DEADIF线的M日指数移动均钱前一日DEA8/10 +今日DEA2/10
MACDDIF线与DEA线的差*2(DIF-DEA)*2

MACD实现

ewm
Pandas中指数加权移动窗口函数采用ewm函数+mean()快捷计算MACD
bar
Matplotlib柱状图函数,高效绘制MACD中的柱状

class TestMACD(TestCase):def cal_macd(self,df,fastperiod=12,slowperiod=26,signalperiod=9):ewma12 = df['close'].ewm(span=fastperiod,adjust=False).mean()ewma26 = df['close'].ewm(span=slowperiod,adjust=False).mean()df['dif'] = ewma12 - ewma26df['dea'] = df['dif'].ewm(span=signalperiod,adjust=False).mean()df['bar'] = (df['dif'] - df['dea']) * 2return dfdef test_MACD(self):file_name = "D:\lhjytest\demo.csv"df = pd.read_csv(file_name)df.columns = ["stock_id","date","close","open","high","low","volume"]df = df[["date","close","open","high","low","volume"]]df["date"] = pd.to_datetime(df["date"])df_macd = self.cal_macd(df)print(df_macd)plt.figure()df_macd['dea'].plot(color="red",label='dea')df_macd['dif'].plot(color="blue",label='dif')plt.legend(loc='best')pos_bar = []pos_index = []neg_bar = []neg_index = []for index,row in df_macd.iterrows():if(row['bar'] > 0) :pos_bar.append(row['bar'])pos_index.append(index)else:neg_bar.append(row['bar'])neg_index.append(index)# 大于0用红色表示plt.bar(pos_index,pos_bar,width=0.5,color='red')# 小于等于0则用绿色表示plt.bar(neg_index,neg_bar,width=0.5,color='green')major_index = df_macd.index[df_macd.index]major_xtics = df_macd['date'][df_macd.index]plt.xticks(major_index,major_xtics)plt.setp(plt.gca().get_xticklabels(),rotation=30)plt.grid(linestyle='-.')plt.title('000001平安银行MACD图')plt.rcParams['axes.unicode_minus'] = Falseplt.rcParams['font.sans-serif'] = ['SimHei']plt.show()

image.png

KDJ

中文名叫随机指数。通过价格波动的真实波幅来反映价格走势的强弱和超买超卖现象,在价格尚未上升或下降之前发出买卖信号的一种技术分析指标,适用于短期行情走势分析

KDJ算法

指标含义公式
RSV未成熟随机指标值(Cn-Ln)/(Hn-Ln)x100(N日)
K当天K值2/3x前一日K值+1/3x当日RSV
D当天D值2/3x前一日D值+1/3x当日K值
J当天J值3当日K值-2当日D值
备注若无前一日K 值与D值,则可分别用50来代替

KDJ实现

rolling
Pandas中移动窗口函数
每个窗口都是指定的固定大小,快捷计算Ln与Hn
expanding
Pandas中扩展窗口函数
只设置最小的观测值数量,不固定窗口大小,实现累计计算,即不断扩展,连用expanding().max()->创新高

class TestKDJ(TestCase):def cal_kdj(self,df):low_list = df['low'].rolling(9,min_periods=9).min()low_list.fillna(value=df['low'].expanding().min(),inplace=True)high_list = df['high'].rolling(9,min_periods=9).max()high_list.fillna(value=df['high'].expanding().max(),inplace=True)rsv = (df['close'] - low_list) / (high_list - low_list) * 100df['k'] = pd.DataFrame(rsv).ewm(com=2).mean()df['d'] = df['k'].ewm(com=2).mean()df['j'] = 3 * df['k'] - 2 * df['d']return dfdef test_KDJ(self):file_name = "D:\lhjytest\demo.csv"df = pd.read_csv(file_name)df.columns = ["stock_id","date","close","open","high","low","volume"]df = df[["date","close","open","high","low","volume"]]df["date"] = pd.to_datetime(df["date"])df_kdj = self.cal_kdj(df)print(df_kdj)plt.figure()df_kdj['k'].plot(color="red",label='k')df_kdj['d'].plot(color="yellow",label='d')df_kdj['j'].plot(color="blue",label='j')plt.legend(loc='best')major_index = df_kdj.index[df_kdj.index]major_xtics = df_kdj['date'][df_kdj.index]plt.xticks(major_index,major_xtics)plt.setp(plt.gca().get_xticklabels(),rotation=30)

image.png

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

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

相关文章

数据结构——并查集

1.并查集的定义 并查集其实也是一种树形结构,在使用中通常用森林的方式来表示 并查集的逻辑结构其实就是集合 并查集一般可以通过双亲写法(顺序结构)来完成,即通过一个数组存储父亲结点的下标 int s[10005]; int main() {for(…

深入了解Yum:Linux系统的软件包管理利器

目录 软件包 软件包的来源 关于yum yum是什么 yum的相关操作 介绍rzsz rz(从Windows本地传到Linux服务器) sz(从Linux服务器传到Windows本地) 注意事项 查看软件包 安装软件 卸载软件 yum的本地配置 为什么要进行配置…

《基于“源启+”的应用重构白皮书》

当前,行业数字化转型驶入“深水区”,全新的市场竞争格局对行业发展提出更高的要求,企业高质量发展需要借助新架构新应用重新定义数字生产力,重塑商业模式与市场核心竞争力。 在中国电子主办,中电金信承办的“数字原生向…

Git学习笔记(第10章):自建代码托管中心GitLab

目录 10.1 简介 10.2 安装 10.2.1 准备服务器 10.2.2 准备安装包 10.2.3 编写安装脚本 10.2.4 初始化GitLab服务 10.2.5 启动GitLab服务 10.2.6 使用浏览器访问GitLab 10.3 创建远程库 10.4 本地库推送到远程库 10.1 简介 GitLab是由GitLab Inc.开发,使用…

Nacos服务注册源码:客户端

入口 我们就拿nacos自己example下的NamingExample来做测试 public class NamingExample {public static void main(String[] args) throws NacosException, InterruptedException {Properties properties new Properties();properties.setProperty("serverAddr", …

39、FlatFormer:MIT+交大+清华共同提出,更加高效的Transformer[无绳蹦极第一人!]

本文由麻省理工学院、上海交通大学、清华大学于2023年7月14日发表于Arxiv的<Computer Science> 论文&#xff1a; [2301.08739] FlatFormer: Flattened Window Attention for Efficient Point Cloud Transformer (arxiv.org) 代码&#xff1a; github.com Abstract&a…

接续奋斗四十载 勇毅前行向未来 2024食品产业高质量发展论坛暨《中国食品报》创刊40周年研讨会在京举行

四十年春华秋实&#xff0c;四十年砥砺奋进。《中国食品报》从改革开放之初的春天里走来&#xff0c;以笔为媒&#xff0c;勇担道义&#xff0c;从拯救中华传统老字号品牌开始&#xff0c;为我国食品产业发展奔走疾呼&#xff0c;为提升我国食品企业融入国际化潮流、提升国际竞…

联合 Maxlinear 迈凌 与 Elitestek 易灵思 - WPI 世平推出基于 FPGA 芯片的好用高效电源解决方案

近期 WPI 世平公司联合 Maxlinear 迈凌电源产品搭配 Elitestek 易灵思 FPGA 共同合作推出基于 FPGA 芯片的好用高效电源解决方案。 Elitestek 易灵思 FPGA 核心产品有 2 大系列 : Trion 系列与钛金系列。Trion 系列主要特点是 : 1. 40nm 工艺 2. 超低功耗 ( 可低至竞争对手的 …

[ESXi 8]安装centos7

文章目录 创建虚拟机创建虚拟机选择centos7选择存储选择镜像文件上传ios镜像文件 安装即将完成 启动虚拟机自动获取ip设置root密码安装成功 创建虚拟机 创建虚拟机 选择centos7 选择存储 选择镜像文件 上传ios镜像文件 如图显示上传进度&#xff0c;上传完毕之后&#xff0c;将…

网络协议与攻击模拟_11DHCP欺骗防护

开启DHCP 监听 ip dhcp snooping 指定监听vlan ip dhcp snooping vlan 1 由于开启监听后&#xff0c;交换机上的接口就全部变成非信任端口&#xff0c; 非信任端口会拒绝DHCP报文&#xff0c;会造成正常的DHCP请求和响应都无法完成。 现在是请求不到IP地址的&#xff0c;…

JS图片二维码识别

前言 js识别QR图片&#xff0c;基于jsQR.js 代码 <!DOCTYPE html> <html> <head><meta charset"utf-8" /><title>图片二维码识别</title><script src"https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js">…

vector(顺序表)

vector容器就相当于一个顺序表&#xff0c;只不过他把一些功能分装到了容器里 常用接口及语法 构造&#xff1a;vectro<数据类型> 对象名 输出&#xff1a;和顺序表一样我们需要遍历打印&#xff0c;而不能直接用cout打印 对象.push_back () 尾插 对象.pop_back() 尾删…

【Java-JDK】JDK 的安装与环境变量的配置:Windows Linux

【Java-JDK】JDK的安装与环境变量的配置&#xff1a;Windows & Linux 1&#xff09;Windows安装JDK1.1.下载JDK1.1.安装JDK1.2.JDK环境配置1.3.验证环境变量是否配置成功 2&#xff09;Linux安装JDK2.1.下载JDK2.2.安装JDK2.3.JDK环境配置2.4.验证环境变量配置是否成功 1&a…

Java-并发高频面试题

1.说一下你对Java内存模型&#xff08;JMM&#xff09;的理解&#xff1f; 其实java内存模型是一种抽象的模型&#xff0c;具体来看可以分为工作内存和主内存。 JMM规定所有的变量都会存储再主内存当中&#xff0c;再操作的时候需要从主内存中复制一份到本地内存&#xff08;c…

Utreexo:优化Bitcoin UTXO集合的基于哈希的动态累加器

1. 引言 前序博客&#xff1a; Utreexo&#xff1a;比特币UTXO merkle tree proof以节约节点存储空间 MIT Digital Currency Initiative 的 Thaddeus Dryja 2019年论文 Utreexo: A dynamic hash-based accumulator optimized for the Bitcoin UTXO set。 开源代码实现见&…

KubeSphere 核心实战之四【在kubesphere平台上部署Ruoyi-cloud项目】(实操篇 4/4)

**《KubeSphere 核心实战系列》** KubeSphere 核心实战之一&#xff08;实操篇 1/4&#xff09; KubeSphere 核心实战之二&#xff08;实操篇 2/4&#xff09; KubeSphere 核心实战之三&#xff08;实操篇 3/4&#xff09; KubeSphere 核心实战之四&#xff08;实操篇 4/4&…

前端颜料盘??

前端颜料盘&#xff1f;&#xff1f; 一、原生颜料盘 <input type"color" placeholder"选择颜色">二、第三方开源库 Pickr&#xff1a; GitHub: https://github.com/Simonwep/pickr官方网站: https://simonwep.github.io/pickr/Pickr 是一个轻量级…

产品说明书怎么做?有模板吗?

产品说明书是一种重要的工具&#xff0c;它向消费者提供有关产品的详细信息和使用指南。一个好的产品说明书不仅可以帮助消费者正确地使用产品&#xff0c;还可以增加产品的销售量和用户满意度。那么&#xff0c;如何制作一份优秀的产品说明书呢&#xff1f;是否有现成的模板可…

ubantu操作hbase

到firefox中按照网站找以下文件进行下载 新建一个窗口启动节点 下载完成则回到下载目录 如果下载慢也可以将文件放在share中&#xff0c;然后拷贝到当前目录 进入到root 然后回到hadoop 解压到/usr/local 进入到local&#xff0c;将hbase改名 修改权限 配置环境变量 执行 回到h…

专业120+总分400+宁波大学912信号与系统考研经验电子信息通信集成电路光电

今年考研顺利上岸&#xff0c;专业课912信号与系统120&#xff0c;总分400&#xff0c;被宁波大学录取&#xff0c;回望这一年的复习有过迷茫和犹豫&#xff0c;也有过坚持和坚强&#xff0c;总结一下自己的复习得失&#xff0c;希望对大家复习有所帮助。专业课&#xff1a; 前…