python股票分析挖掘预测技术指标知识之均线指标详解(6)

news2024/11/25 16:53:28

本人股市多年的老韭菜,各种股票分析书籍,技术指标书籍阅历无数,萌发想法,何不自己开发个股票预测分析软件,选择python因为够强大,它提供了很多高效便捷的数据分析工具包。

我们已经初步的接触与学习其中数据分析中常见的3大利器---Numpy,Pandas,Matplotlib库。

也简单介绍一下数据获取的二种方法,通过金融数据接口和爬虫获取。

同时介绍了指标之王MACD,随机指标KDJ和BOLL指标线和量价指标的用法

这一章我们讲一下均线指标和经典蜡烛图买卖点:

(1)均线指标

(1)均线指标解释

又叫移动平均线,Moving Average,简称MA,MA是用统计分析的方法,将一定时期内的证券价格(指数)加以平均,并把不同时间的平均值连接起来,形成一根MA,用以观察证券价格变动趋势的一种技术指标。
移动平均线是由著名的美国投资专家Joseph E.Granville(葛兰碧,又译为格兰威尔)于20世纪中期提出来的。均线理论是当今应用最普遍的技术指标之一,它帮助交易者确认现有趋势、判断将出现的趋势、发现过度延生即将反转的趋势。
移动平均线 [1] 常用线有5天、10天、30天、60天、120天和240天的指标

(2)均线指标计算

N日移动平均线=N日收盘价之和/N 

比如;5日均线 = (收盘价1 + 收盘价2 + 收盘价3 + 收盘价4 + 收盘价5) / 5

详细代码
# !/usr/bin/env python
# coding=utf-8
import pandas
import pandas as pd
import matplotlib.pyplot as plt
from mpl_finance import candlestick2_ochl
from matplotlib.ticker import MultipleLocator
# 根据指定代码和时间范围获取股票数据
plt.rcParams['font.family'] = 'Heiti TC'
plt.rcParams['font.sans-serif'] = ['SimHei']
df = pd.read_csv('600271.csv',encoding='gbk',index_col=0)
# 设置窗口大小
fig, ax = plt.subplots(figsize=(10, 8))
xmajorLocator   = MultipleLocator(5)    # 将x轴主刻度设置为5的倍数
ax.xaxis.set_major_locator(xmajorLocator)
# 调用方法绘制K线图
candlestick2_ochl(ax = ax,
                  opens=df["open"].values, closes=df["close"].values,
                  highs=df["high"].values, lows=df["low"].values,
                  width=0.75, colorup='red', colordown='green')

df['close'].rolling(window=3).mean().plot(color="red",label='3日均线')
df['close'].rolling(window=5).mean().plot(color="blue",label='5日均线')
df['close'].rolling(window=10).mean().plot(color="green",label='10日均线')
plt.legend(loc='best')  # 绘制图例

ax.grid(True)           # 带网格线
plt.title("K线图")
plt.rcParams['font.sans-serif']=['SimHei']
plt.setp(plt.gca().get_xticklabels(), rotation=30)
plt.show()
显示效果:

 (3)葛兰碧均线八大买卖法则

1:均线从下降逐渐转头向上,股价从均线下方向上突破形成金叉,为买进信号。

2:股价在均线上运行,回调时未跌破均线,说明该均线形成十分可靠的支撑,其后股价又确实不再下跌而再度上涨时,是第二次买进时机。

3:股价之前在均线上运行,回调时发生死叉跌破均线,但均线仍呈上升趋势,说明整体还有一段涨幅,此时为买进时机。

4:股价在均线下运行,连续下跌,距离均线又较远,极有可能会向均线靠拢,所谓物极必反,此时是买进时机,但不宜期望过高。

5:股价在均线上运行,连日大涨,距离均线越来越远,极有可能会回靠均线,随时会产生获利回吐的卖压,是卖出时机。

6:均线总体向下,股价又再次向下跌破均线时说明卖压再次加重,是卖出时机。

7:股价在均线下运行,反弹时接近均线但未能成功向上突破,是卖出时机。

8:股价连续大涨多日,与均线拉开越来越大的距离,是卖出信号,代表了随时可能出现获利回吐卖出。

葛兰威尔均线买卖八大法则,实际上是道氏理论和艾略特波浪理论的图表化、具体化和标准化

(4)验证均线买点

python 代码

# !/usr/bin/env python
# coding=utf-8
import pandas as pd
# 从文件中读取数据
df = pd.read_csv('600276.csv',encoding='gbk')
maIntervalList = [3,5,10]
# 虽然在后文中只用到了5日均线,但这里演示设置3种均线
for maInterval in maIntervalList:
    df['MA_' + str(maInterval)] = df['close'].rolling(window=maInterval).mean()
cnt=0
while cnt<=len(df)-1:
    try:
        # 规则1:收盘价连续三天上扬
        if df.iloc[cnt]['close']<df.iloc[cnt+1]['close'] and df.iloc[cnt+1]['close']<df.iloc[cnt+2]['close']:
            # 规则2:5日均线连续三天上扬
            if df.iloc[cnt]['MA_5']<df.iloc[cnt+1]['MA_5'] and df.iloc[cnt+1]['MA_5']<df.iloc[cnt+2]['MA_5']:
                # 规则3:第3天收盘价上穿5日均线
                if df.iloc[cnt+1]['MA_5']>df.iloc[cnt]['close'] and df.iloc[cnt+2]['MA_5']<df.iloc[cnt+1]['close']:
                    print("Buy Point on:" + df.iloc[cnt]['cate'])
    except: # 有几天是没有5日均线的,所以用except处理异常
        pass
    cnt=cnt+1

(5)均线寻找卖点

# !/usr/bin/env python
# coding=utf-8
import pandas as pd
# 从文件中读取数据
df = pd.read_csv('600276.csv',encoding='gbk')
maIntervalList = [3,5,10]
# 虽然在后文中只用到了5日均线,但这里演示设置3种均线
for maInterval in maIntervalList:
    df['MA_' + str(maInterval)] = df['close'].rolling(window=maInterval).mean()
cnt=0
while cnt<=len(df)-1:
    try:
        # 规则1,收盘价连续三天下跌
        if df.iloc[cnt]['close']>df.iloc[cnt+1]['close'] and df.iloc[cnt+1]['close']>df.iloc[cnt+2]['close']:
            # 规则2,5日均线连续三天下跌
            if df.iloc[cnt]['MA_5']>df.iloc[cnt+1]['MA_5'] and df.iloc[cnt+1]['MA_5']>df.iloc[cnt+2]['MA_5']:
                #规则3,第3天收盘价下穿5日均线
                if df.iloc[cnt+1]['MA_5']<df.iloc[cnt]['close'] and df.iloc[cnt+2]['MA_5']>df.iloc[cnt+1]['Close']:
                    print("Sell Point on:" + df.iloc[cnt]['date'])
    except: # 有几天是没有5日均线的,所以用except处理异常
        pass
    cnt=cnt+1

 (6)短期均线上穿长期均线买入

短期均线上穿长期均线时,我们将其视为买入信号。在实际应用中,你可能需要结合其他技术指标和市场走势来进一步确认交易信号。

python代码

import pandas as pd  
import numpy as np  
  
# 假设我们已经有了一个包含日期和收盘价的数据框  
# 这里我们用随机数据生成一个示例数据框  
dates = pd.date_range(start='2023-01-01', periods=100)  
prices = np.random.randn(100).cumsum() + 100  # 随机价格数据  
df = pd.DataFrame({'Date': dates, 'Close': prices})  
  
# 设置移动平均线的周期  
short_window = 20  
long_window = 50  
  
# 计算短期和长期移动平均线  
df['Short_MA'] = df['Close'].rolling(window=short_window, min_periods=1, center=False).mean()  
df['Long_MA'] = df['Close'].rolling(window=long_window, min_periods=1, center=False).mean()  
  
# 创建一个空的“Signal”列,用于存储交易信号  
df['Signal'] = 0.0  
  
# 生成交易信号:当短期均线上穿长期均线时,产生买入信号  
df['Signal'][short_window:] = np.where(df['Short_MA'][short_window:] > df['Long_MA'][short_window:], 1.0, 0.0)  
  
# 输出结果  
print(df)

(7)短期均线下穿长期均线卖出

python代码:

import pandas as pd  
import numpy as np  
  
# 假设我们已经有了一个包含日期和收盘价的数据框  
# 这里我们用随机数据生成一个示例数据框  
dates = pd.date_range(start='2023-01-01', periods=100)  
prices = np.random.randn(100).cumsum() + 100  # 随机价格数据  
df = pd.DataFrame({'Date': dates, 'Close': prices})  
  
# 设置移动平均线的周期  
short_window = 20  
long_window = 50  
  
# 计算短期和长期移动平均线  
df['Short_MA'] = df['Close'].rolling(window=short_window, min_periods=1, center=False).mean()  
df['Long_MA'] = df['Close'].rolling(window=long_window, min_periods=1, center=False).mean()  
  
# 创建一个空的“Signal”列,用于存储交易信号  
df['Signal'] = 0.0  
  
# 生成交易信号:当短期均线下穿长期均线时,产生卖出信号  
df['Signal'][short_window:] = np.where(df['Short_MA'][short_window:] < df['Long_MA'][short_window:], -1.0, 0.0)  
  
# 输出结果  
print(df)

 注意:均线指标最好结合量价指标来进行买卖操作,这样判断更加准确

均线指标还有很多的买卖点,都是基于葛兰碧均线法则演变而来,大家有兴趣可以细细研究。

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

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

相关文章

java SSM图片管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM图片管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和 数据库&#xff0c;系统主要采用B/…

三、C语言中的分支与循环—switch语句(4)分支结构 完

本章分支结构的学习内容如下&#xff1a; 三、C语言中的分支与循环—if语句 (1) 三、C语言中的分支与循环—关系操作符 (2) 三、C语言中的分支与循环—条件操作符 与逻辑操作符(3) 三、C语言中的分支与循环—switch语句&#xff08;4&#xff09;分支结构 完 本章循环结构的…

2024年我国网络安全发展形势展望

2023年&#xff0c;我国网络安全政策法规陆续出台&#xff0c;网络安全与数据安全产业发展势头强劲&#xff0c;网络安全形势整体向好。展望2024年&#xff0c;世界各国在网络空间中的竞争将变得愈发激烈&#xff0c;我国网络安全领域的法律法规将不断完善&#xff0c;数据安全…

【PTA-C语言】编程练习5 - 函数与指针

如果代码存在问题&#xff0c;麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 编程练习5 - 函数与指针 6-1 求实数和的函数&#xff08;分数 10&#xff09;6-2 求解一元二次方程实根的函数&#xff08;分数 10&#xff09;6-3 求集合数据的均方差&#xff08;分数 10&#xff09;6-4 计…

.cer格式证书文件和 .pfx格式证书文件有什么区别?

这里我们将讨论.cer和.pfx文件类型之间的差异。 什么是数字证书&#xff1f; 数字证书在电子通信中用作验证身份的密码机制。我们需要这些证书来建立安全的在线通信渠道&#xff0c;并确保数字数据的隐私、真实性和正确性。 数字证书包括主题&#xff08;实体详细信息&#xf…

智能型参数可设置比例阀放大器

智能型参数可设置比例阀放大器是一种电液控制技术&#xff0c;它可以驱动不带电气位移反馈的各种比例溢流阀、比例流量阀、比例减压阀、比例方向阀和比例插装阀等。 这种放大器的特点是可以将输入的模拟量指令信号进行处理运算&#xff0c;通过比例电磁铁将驱动电流线性转换为作…

Win10电脑关闭OneDrive自动同步的方法

在Win10电脑操作过程中&#xff0c;用户想要关闭OneDrive的自动同步功能&#xff0c;但不知道具体要怎么操作&#xff1f;首先用户需要打开OneDrive&#xff0c;然后点击关闭默认情况下将文档保存到OneDrive选项保存&#xff0c;最后关闭在这台电脑上同步设置保存就好了。接下来…

使用IDEA创建使用 JDK8 的 2.x.x 版本的 Spring Boot 项目以及 Spring Boot 项目如何修改JDK版本

目录 一、在阿里云上官网上创建项目 二、将 IDEA 中创建项目的源地址修改为阿里云官网 三、创建 3.x.x 的项目之后修改配置降低至 2.7.x 版本和使用 JDK8&#xff08;修改 Spring Boot 的 JDK 版本同理&#xff09; 从上面的 Spring Boot 官网的截图中可以发现&#xff0c;自…

[C#]使用纯opencvsharp部署yolov8-onnx图像分类模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 YOLOv8 是一个 SOTA 模型&#xff0c;它建立在以前 YOLO 版本的成功基础上&#xff0c;并引入了新的功能和改进&#xff0c;以进一步提升性能和灵活性。具体创新包括一个新的骨干网络、一个新…

Docker mysql 主从复制

目录 介绍&#xff1a;为什么需要进行mysql的主从复制 主从复制原理&#xff1a; ✨主从环境搭建 主从一般面试问题&#xff1a; 介绍&#xff1a;为什么需要进行mysql的主从复制 在实际的生产中&#xff0c;为了解决Mysql的单点故障已经提高MySQL的整体服务性能&#xff…

单位转换工具类

单位转换工具类 1. 工具类转换- 定义装换枚举转换类型- 创建转换工具类,1. 通过反射去除字段,2.对照传入map标记的字段需要转换的类型转换3. 重新赋值 2. 注解转换- 定义注解- 解析注解 1. 工具类转换 - 定义装换枚举转换类型 public enum UnitConvertType {/*** 精确度*/ACC…

openmediavault(OMV)(30)插件介绍(3)filebrowser文件管理器

简介 filebrowser可以对omv的文件进行图形化管理,而不需要每次都通过命令进行修改。 更新omv系统 此时已经更新到omv 6.9.10-4 filebrowser安装

java基于SSM的校内信息服务发布系统的设计与实现+vue论文

校内信息服务发布系统的设计与实现 摘要 近年来&#xff0c;信息化管理行业的不断兴起&#xff0c;使得人们的日常生活越来越离不开计算机和互联网技术。首先&#xff0c;根据收集到的用户需求分析&#xff0c;对设计系统有一个初步的认识与了解&#xff0c;确定校内信息服务发…

Multipath多路径管理基础介绍与安装配置使用

0x00 前言简述 Q:什么是Multipath多路径? 答:Multipath I/O 电脑储存技术&#xff0c;指利用两个以上的路径同时在CPU与储存设备之间传送讯号&#xff0c;以达到侦错与强化效能的目的。 简单的说当服务器到某一存储设备有多条路径时&#xff0c;每条路径都会识别为一个单独的…

阿里云服务器地域怎么选择?哪个地域好?

阿里云服务器地域和可用区怎么选择&#xff1f;地域是指云服务器所在物理数据中心的位置&#xff0c;地域选择就近选择&#xff0c;访客距离地域所在城市越近网络延迟越低&#xff0c;速度就越快&#xff1b;可用区是指同一个地域下&#xff0c;网络和电力相互独立的区域&#…

uniapp上传图片,上传头像,多张图片上传,图片回显,图片删除,图片预览

效果图&#xff1a; 上代码不废话&#xff1a; <template><view class"familyCreateMemory"><view class"box"><view class"title"><view>文字&#xff1a;</view><textarea :maxlength"-1"/…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -后端架构搭建

锋哥原创的uniapp微信小程序投票系统实战&#xff1a; uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

Linux查看物理CPU个数、核数、逻辑CPU个数

查看CPU信息&#xff08;型号&#xff09; [rootAAA ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 24 Intel Xeon CPU E5-2630 0 2.30GHz 查看物理CPU个数 [rootAAA ~]# cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l 2 查看每个物理CPU中co…

【Adobe Acrobat DC】弹窗:正在准备文档以供阅读,请稍候

问题描述 Acrobat打开PDF就会有这个弹窗&#xff0c;要所有扫一遍才能看&#xff0c;要等特别久 解决办法1 参考这篇博客评论区里给出的方法 1. 转到“编辑”>“首选项”>“朗读”。 2. 在“屏幕阅读器选项”下面&#xff0c;选择“仅阅读当前可见页面”。 再次打开…

Linux内核源码下载与在线浏览10种方式

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…