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

本人股市多年的老韭菜,各种股票分析书籍,技术指标书籍阅历无数,萌发想法,何不自己开发个股票预测分析软件,选择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.mfbz.cn/a/290899.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业论文内容参考|基于区块链技术的电子健康记录系统的设计与实现

文章目录 摘要前言绪论课题背景国内外相关研究课题内容区块链技术介绍系统分析用户需求分析系统设计系统实现系统测试总结与展望摘要 本文介绍了基于区块链技术的电子健康记录系统的设计与实现。该系统旨在解决传统电子健康记录系统存在的数据安全性、数据隐私性和数据互操作性…

【springboot+mybatis实现CURD模版项目-Jesus】

springbootmybatis实现CURD模版项目-Jesus STEP 1 项目创建 1.1 新建Spring Initializr项目   1.2 选择需要的依赖 springboot有2.7.2直接选272STEP 2 配置更改 2.1更改maven配置   2.2 检查项目配置jdk、sdk、jre版本一致   2.3 检查pom文件&#xff0c;Maven-Reload pr…

鸿蒙OpenHarmony技术—消息机制实现

用户态应用发送消息到驱动 用户态主要代码 struct HdfIoService *serv HdfIoServiceBind(SAMPLE_SERVICE_NAME);......ret serv->dispatcher->Dispatch(&serv->object, SAMPLE_WRITE_READ, data, reply); if (ret ! HDF_SUCCESS) {HDF_LOGE("fail to sen…

通往人工智能的 Go 之路

Agency 该库旨在为那些希望通过清晰、高效且符合 Go 语言惯例的方法来探索大型语言模型&#xff08;LLMs&#xff09;和其他生成式人工智能的开发人员而设计。 特点 纯 Go 语言&#xff1a;快速、轻量级&#xff0c;静态类型&#xff0c;无需涉及 Python 或 JavaScript编写清晰…

人工智能趋势报告解读:ai野蛮式生长的背后是机遇还是危机?

近期&#xff0c;Enterprise WordPress发布了生成式人工智能在营销中的应用程度的报告&#xff0c;这是一个人工智能迅猛发展的时代&#xff0c;目前人工智能已经广泛运用到内容创作等领域&#xff0c;可以预见的是人工智能及其扩展应用还将延伸到我们工作与生活中的方方面面。…

gradle --腾讯国内镜像源

distributionUrlhttps\://mirrors.cloud.tencent.com/gradle/gradle-7.3.3-bin.zip 1.进入到自己工程目录下的wrapper文件夹。 2.编辑gradle-wrapper文件 使用https://mirrors.cloud.tencent.com/gradle/gradle-4.6-all.zip来代替原来的 https\://services.gradle.org/distri…

高精度、大电流、低压差电压调整器芯片 D2632,可以用于电池供电设备等产品上

D2632是一款高精度、大电流、低压差电压调整器。主要作为电源装置提供高效的电压调整。 最大输出电流可达3A&#xff0c;并且外接器件少&#xff0c;拥有输出电压(ADJ) 可调特点。 主要特点&#xff1a; 1. 低压差(满载350mV); 2. 地电流小; …

Oracle导出CSV文件

利用spool spool基本格式&#xff1a; spool 路径文件名 select col1||,||col2||,||col3||,||col4 from tablename; spool off spool常用的设置&#xff1a; set colsep ;    //域输出分隔符 set echo off;    //显示start启动的脚本中的每个sql命令&#xff0c;缺…

利用Embedding优化搜索功能

我们继续用Gemini学习LLM编程之旅。 Embedding是一种自然语言处理 (NLP) 技术&#xff0c;可将文本转换为数值向量。Embedding捕获语义含义和上下文&#xff0c;从而导致具有相似含义的文本具有更接近的Embedding。例如&#xff0c;句子“我带我的狗去看兽医”和“我带我的猫去…

Mysql 动态链接库配置步骤+ 完成封装init和close接口

1、创建新项目 动态链接库dll 2、将附带的文件都删除&#xff0c;创建LXMysql.cpp 3、项目设置 3.1、预编译头&#xff0c;不使用预编译头 3.2、添加头文件 3.3、添加类 3.4、写初始化函数 4、项目配置 4.1、右键解决方案-属性-常规-输出目录 ..\..\bin 4.2、生成lib文件 右…

MAC 签名证书替换

1.概述 在用开发者签名过期后导致签名失效&#xff0c;需要更新证书 当过期时&#xff0c;点击证书时显示“此证书无效” 2.证书分类 3.登录 首先登陆Apple Developer官网开发者账号登陆。登录网址Apple Developer点击Account输入账号登录 4.需要的证书 本司现阶段只在MacO…

客服智能管理系统是如何应用的

客服系统有很多种类&#xff0c;针对不同场景的客服使用的客服系统也不同&#xff0c;如有网店里的在线客服、实体店里的电话客服、网站上的在线客服、公共服务型的热线客服、售后服务客服等等。所谓客服智能管理系统就是一种可以把多个客服场景都管理起来的系统&#xff0c;提…

全面解析vcruntime140_1.dll无法继续执行代码问题

在使用电脑的过程中&#xff0c;我们可能会遇到各种问题&#xff0c;如“找不到vcruntime140_1.dll无法继续执行代码”。vcruntime140_1.dll是Visual C Runtime Library&#xff08;视觉C运行时库&#xff09;的一个组件&#xff0c;主要用于支持应用程序的运行。这个文件包含了…

服务器磁盘挂载及格式化

一边学习,一边总结,一边分享! 写在前面 最近一直折腾组装的电脑,来回折腾了很久关于我花费六千多组了台window+Linux主机,目前基本是可以使用了。对于Windows主机配置基本是没问题,一直在使用,以及桌面化软件,都可以自己安装,只是说这台主机有些软件可能一时半会安装…

爆火小游戏敲木鱼流量主小程序源码系统+完整的代码包以及安装搭建教程

随着移动互联网的快速发展&#xff0c;小程序已成为一种新的应用形态&#xff0c;深入到人们生活的方方面面。其中&#xff0c;小游戏由于其简单、有趣的特点&#xff0c;吸引了大量用户&#xff0c;也成为了许多开发者的首选。敲木鱼小游戏&#xff0c;以其独特的玩法和轻松的…

Transformer从菜鸟到新手(二)

引言 这是Transformer的第二篇文章&#xff0c;上篇文章中我们了解了分词算法BPE&#xff0c;本文我们继续了解Transformer中的位置编码和核心模块——多头注意力。 位置编码 我们首先根据BPE算法得到文本切分后的子词标记&#xff0c;然后经过输入嵌入层将每个标记转换为对…

摆烂式学习ssh

摆烂式学习ssh ssh工作原理ssh基本使用sshd配置文件密钥登录1.客户端2.服务器3.注意事项4.使用密钥登录测试 ssh高级使用技巧1.在非正规端口启动2.rsync 命令3.透过 ssh 通道加密原本无加密的服务4.以ssh信道配合x server 传递图形接口5.ssh配合virtualbox虚拟机使用技巧 ssh工…

【Docker】docker部署conda并激活环境

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、新建dockerfile文件二、使用build创建镜像1.报错&#xff1a;Your shell has not been properly configured to use conda activate.…

ubuntu远程桌面连接之novnc

一、前言 该操作是为了实现vnc桌面连接为url连接方式&#xff0c;且在浏览器中可以对ubuntu进行操作。在使用novnc进行操作前&#xff0c;需要先安装vnc才可。ubuntu下如何安装vnc&#xff0c;可看博主前面写的一篇文&#xff0c;ubuntu远程桌面连接之vnc-CSDN博客&#xff0c;…

保湿剂,预计2026年市场规模将达到约230亿美元

全球市场分析 从全球市场来看&#xff0c;保湿剂市场规模正在快速增长。主要集中在欧美和亚太地区的市场&#xff0c;据市场调研机构的数据显示&#xff0c;预计2026年&#xff0c;全球保湿剂市场规模将达到约230亿美元。保湿剂的应用领域不断拓展&#xff0c;包括从化妆品到个…
最新文章