利用Python和pandas库进行股票技术分析:移动平均线和MACD指标

利用Python和pandas库进行股票技术分析:移动平均线和MACD指标

    • 介绍
      • 准备工作
      • 数据准备
      • 计算移动平均线
      • 计算MACD指标
      • 结果展示
      • 完整代码
      • 演示


介绍

在股票市场中,技术分析是一种常用的方法,它通过对股票价格和交易量等历史数据的分析,来预测未来价格走势。移动平均线和MACD(Moving Average Convergence Divergence)指标是技术分析中常用的工具之一,它们能够帮助投资者识别趋势和短期交叉信号。

本文将分享如何使用Python编程语言以及pandas库来计算股票的移动平均线和MACD指标,并通过一个简单的示例来演示其应用。

准备工作

首先,需要导入pandas库,它是Python中用于数据分析的重要库之一。接下来将使用pandas来处理和分析股票价格数据。

import pandas as pd

pandas 的主要特点和功能:

特点和功能描述
数据结构提供了 Series 和 DataFrame 两种数据结构,方便处理一维和二维数据。
数据读取和写入支持从多种文件格式(如CSV、Excel、SQL、JSON、HTML等)中读取数据,并可以将数据写入到这些格式中。
数据清洗和转换提供了丰富的数据清洗和转换函数,如处理缺失值、重复值、数据类型转换、索引操作、数据合并、数据重塑等。
数据分析和统计提供了各种统计函数和方法,用于描述性统计、数据聚合、分组计算、时间序列分析、滑动窗口计算等。
数据可视化结合了 Matplotlib 等可视化库,方便绘制各种类型的图表,如折线图、散点图、柱状图等,用于数据可视化和分析展示。
高性能计算基于 NumPy 实现,内部使用了高效的数据结构和算法,能够快速处理大规模数据,提高计算效率。
灵活性和扩展性提供了丰富的功能和灵活的接口,可以根据需求进行定制和扩展,支持与其他库和工具的集成。

数据准备

假设已经有了包含股票收盘价数据的DataFrame,现在将其命名为data,并包含一列名为'Close'的数据。以下是一个示例数据集:

data = pd.DataFrame({'Close': [37.09, 34.61, 33.4, 36.74, 36.69, 36.99, 36.72, 36.82, 38.17, 37.65, 38.75, 38.02, 36.73, 36.98, 36.97,38.45, 37.54, 37.52, 38.02, 37.04, 33.39, 35.5, 35.1, 33.46, 34.33, 34.19, 31.54, 31.03, 33.15, 33.3,34.36, 33.9, 32.9, 34.01, 37.41, 37.53, 38.1, 35.9, 36.12, 36.52, 36.08, 35.4, 35.74, 35.81, 35.37,33.14, 33.22, 32.6, 32.45, 31.68, 33.76, 33.41, 33.63, 33.29, 34.2, 32.35, 32.03, 32.19, 32.36, 33.3,32.37, 31.92, 32.18, 31.8, 29.75, 27.98, 28.23, 26.78, 27.06, 26.52, 27.52, 27.82, 27.8, 26.87, 25.84,25.36, 24.69, 23.79, 24.36, 23.91, 24.72, 23.62, 23.63, 22.9, 21.86, 23.15, 22.7, 21.68, 22.24, 21.81,23.99, 22.62, 20.84, 20.16, 18.89, 19.07, 18.26, 16.44, 16.76,17.06]
})

计算移动平均线

可以使用pandas的rolling()mean()函数来计算移动平均线。假设需要计算12天和26天的移动平均线,可以这样做:

data['Short_MA'] = data['Close'].rolling(window=12).mean()
data['Long_MA'] = data['Close'].rolling(window=26).mean()

计算MACD指标

接下来,可以计算MACD指标。首先,需要计算DIF线,它是短期移动平均线减去长期移动平均线。然后,计算DEA线,它是对DIF线进行移动平均。最后,MACD线是DIF线与DEA线的差。可以按照以下步骤来计算:

data['DIF'] = data['Short_MA'] - data['Long_MA']
data['DEA'] = data['DIF'].rolling(window=9).mean()
data['MACD'] = data['DIF'] - data['DEA']

结果展示

最后,将结果打印输出,以便进行进一步分析或可视化。

print(data[['Close', 'Short_MA', 'Long_MA', 'DIF', 'DEA', 'MACD']])

完整代码

import pandas as pd# 假设data是包含收盘价的DataFrame,且有一列'Close'
data = pd.DataFrame({'Close': [37.09, 34.61, 33.4, 36.74, 36.69, 36.99, 36.72, 36.82, 38.17, 37.65, 38.75, 38.02, 36.73, 36.98, 36.97,38.45, 37.54, 37.52, 38.02, 37.04, 33.39, 35.5, 35.1, 33.46, 34.33, 34.19, 31.54, 31.03, 33.15, 33.3,34.36, 33.9, 32.9, 34.01, 37.41, 37.53, 38.1, 35.9, 36.12, 36.52, 36.08, 35.4, 35.74, 35.81, 35.37,33.14, 33.22, 32.6, 32.45, 31.68, 33.76, 33.41, 33.63, 33.29, 34.2, 32.35, 32.03, 32.19, 32.36, 33.3,32.37, 31.92, 32.18, 31.8, 29.75, 27.98, 28.23, 26.78, 27.06, 26.52, 27.52, 27.82, 27.8, 26.87, 25.84,25.36, 24.69, 23.79, 24.36, 23.91, 24.72, 23.62, 23.63, 22.9, 21.86, 23.15, 22.7, 21.68, 22.24, 21.81,23.99, 22.62, 20.84, 20.16, 18.89, 19.07, 18.26, 16.44, 16.76,17.06]
})# 计算短期(12天)和长期(26天)的移动平均线
data['Short_MA'] = data['Close'].rolling(window=12).mean()
data['Long_MA'] = data['Close'].rolling(window=26).mean()
# 计算DIF线:短期移动平均线减去长期移动平均线
data['DIF'] = data['Short_MA'] - data['Long_MA']
# 计算DEA线:对DIF线进行移动平均
data['DEA'] = data['DIF'].rolling(window=9).mean()
# 计算MACD线:DIF线与DEA线的差
data['MACD'] = data['DIF'] - data['DEA']
# 显示结果
print(data[['Close', 'Short_MA', 'Long_MA', 'DIF', 'DEA', 'MACD']])

演示

在这里插入图片描述

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

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

相关文章

python基于flask的网上订餐系统769b9-django+vue

课题主要分为两大模块:即管理员模块和用户模块,主要功能包括个人中心、用户管理、菜品类型管理、菜品信息管理、留言反馈、在线交流、系统管理、订单管理等; 如果用户想要交换信息,他们需要满足双方交换信息的需要。由于时间有限…

蓝桥杯Web应用开发-CSS3 新特性【练习一:属性有效性验证】

练习一&#xff1a;属性有效性验证 页面上有一个邮箱输入框&#xff0c;当你的输入满足邮箱格式时&#xff0c;输入框的背景颜色为绿色&#xff1b;当你的输入不满足要求&#xff0c;背景颜色为红色。 新建一个 index2.html 文件&#xff0c;在其中写入以下内容。 <!DOCTYP…

《UE5_C++多人TPS完整教程》学习笔记8 ——《P9 访问 Steam(Acessing Steam)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P9 访问 Steam&#xff08;Acessing Steam&#xff09;》 的学习笔记&#xff0c;该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版&#xff0c;UP主&#xff08;也是译者&…

2024 CKS 题库 | 4、RBAC - RoleBinding

CKS 题库 4、RBAC - RoleBinding Context 绑定到 Pod 的 ServiceAccount 的 Role 授予过度宽松的权限。完成以下项目以减少权限集。 Task 一个名为 web-pod 的现有 Pod 已在 namespace db 中运行。 编辑绑定到 Pod 的 ServiceAccount service-account-web 的现有 Role&#…

简单实践 spring clound 使用openfeign

1.概要 这是在前面工程基础上的一个变更。 前工程&#xff1a;检查实验 spring cloud nacos nacos-server-2.3.0-CSDN博客 2 代码 2.1 引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-open…

Android 10.0 锁屏壁纸 LockscreenWallpaper

前言 一、设置壁纸 通过系统设置进行锁屏壁纸和桌面壁纸的设置。 Setting 部分的代码&#xff1a; packages/apps/WallpaperPicker2/src/com/android/wallpaper/module/DefaultWallpaperPersister.java private int setStreamToWallpaperManagerCompat(InputStream inputStre…

[数学]高斯消元

介绍 用处&#xff1a;求解线性方程组 加减消元法和代入消元法 这里引用了高斯消元解线性方程组----C实现_c用高斯消元法解线性方程组-CSDN博客 改成了自己常用的形式&#xff1a; int gauss() {int c, r; // column, rowfor (c 1, r 1; c < n; c ){int maxx r; //…

《动手学深度学习(PyTorch版)》笔记8.5

注&#xff1a;书中对代码的讲解并不详细&#xff0c;本文对很多细节做了详细注释。另外&#xff0c;书上的源代码是在Jupyter Notebook上运行的&#xff0c;较为分散&#xff0c;本文将代码集中起来&#xff0c;并加以完善&#xff0c;全部用vscode在python 3.9.18下测试通过&…

Java学习-常用API(二)

Math类及其常用API&#xff1a; 演示&#xff1a; StringBuilder的认识及其常用方法&#xff1a; StringBuilder支持链式编程 StringBuilder sbnew StringBuilder&#xff08;&#xff09;&#xff1b;sb.append&#xff08;12&#xff09;.append.&#xff08;“itHeima”&am…

KingSCADA实现按钮点击效果

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 在做SCADA项目的时候&#xff0c;按钮是不可缺少的功能&#xff0c;但软件自带的按钮太丑&#xff0c;已经无法满足现如今客户对界面美观度的要求。 这时候就需要UI小姐姐设计美观大气的SCADA界面&#xff0c;但UI设计…

C++入门学习(二十七)跳转语句—break语句

1、与switch语句联合使用 C入门学习&#xff08;二十三&#xff09;选择结构-switch语句-CSDN博客 #include <iostream> #include <string> using namespace std;int main() { int number;cout<<"请为《斗萝大路》打星(1~5※)&#xff1a;" &…

【51单片机】串口通信实验(包括波特率如何计算)

目录 串口通信实验通信的基本概念串行通信与并行通信异步通信与同步通信单工、 半双工与全双工通信通信速率 51单片机串口介绍串口介绍串口通信简介串口相关寄存器串口工作方式方式0方式1方式 2 和方式 3 串口的使用方法&#xff08;计算波特率&#xff09; 硬件设计软件设计1、…

Junit常用注解

注解是方法的“标签” 说明每个方法的“职责” Q:总共有那些注解? 参见官方的API文档 0.常用主机及其特点 BeforeClass 只会执行一次必须用static修饰常用来初始化测试需要的变量 Before 会执行多次&#xff08;只要写一次&#xff09;在每个Test执行执行之前执行可以和…

VTK 三维场景的基本要素(相机) vtkCamera

观众的眼睛好比三维渲染场景中的相机&#xff0c;在VTK中用vtkCamera类来表示。vtkCamera负责把三维场景投影到二维平面&#xff0c;如屏幕&#xff0c;相机投影示意图如下图所示。 1.与相机投影相关的要素主要有如下几个&#xff1a; 1&#xff09;相机位置: 相机所处的位置…

文件的操作(上)

上一期代码题中我们补充一下&#xff0c;代码1中我们创建了一个指针变量来接收我们开辟的空间的首地址&#xff0c;出了函数只是变量被销毁&#xff0c;但是我们在堆区申请的空间却不会自己销毁&#xff0c;这样容易造成内存泄漏&#xff0c;只有等整个程序结束&#xff0c;才会…

[2024]常用的pip指令

[2024]常用的pip指令 HI&#xff0c;这里是肆十二&#xff0c;好久不见&#xff0c;大家&#xff01; 新年好&#xff01; pip是Python的包管理工具&#xff0c;它可以用来安装、升级、卸载Python包。以下是一些常用的pip指令&#xff1a; 安装包&#xff1a; bash复制代码…

C#,泰波拿契数(Tribonacci Number)的算法与源代码

1 泰波拿契数&#xff08;Tribonacci Number&#xff09; 泰波拿契数&#xff08;Tribonacci Number&#xff09;是斐波那契的拓展。 泰波拿契数 (Tribonacci Number) 即把费波拿契数 (Fibonacci Number) 的概念推广至三个数。 2 计算结果 3 源程序 using System; namespace…

通过平扫CT实现胰腺癌早筛(平扫CT+AI)

Large-scale pancreatic cancer detection via non-contrast CT and deep learning - PubMed (nih.gov) 实验团队&#xff1a;海军军医大学第一附属医院&#xff08;上海长海医院&#xff09;&#xff0c;放射诊断科曹凯主治医生为共同第一作者&#xff0c;邵成伟、陆建平等教…

Linux笔记之Docker进行镜像备份与迁移

Linux笔记之Docker进行镜像备份与迁移 ——2024-02-11 code review! 文章目录 Linux笔记之Docker进行镜像备份与迁移1. 导出容器文件系统为 tar 归档文件2. 将 tar 归档文件导入为新的 Docker 镜像3. 运行新的 Docker 镜像并创建容器 1. 导出容器文件系统为 tar 归档文件 要导…

Windows快捷键大全(包含语音输入、剪切板历史快捷键)

最近发现了微软官网上给出的快捷键大全&#xff0c;并且使用了其中几个新的键盘快捷键&#xff08;语音输入、剪切板历史&#xff09;&#xff0c;确实方便快捷&#xff0c;所以写个博客记录分享一下。 注&#xff1a;windows快捷键大全微软官方已经给出&#xff0c;此处不再赘…