news 2026/1/1 18:20:42

股票指数移动平均EMA和标准差变化Python代码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
股票指数移动平均EMA和标准差变化Python代码

股票指数移动平均EMA和标准差变化计算

Python代码

importpandasaspdimportnumpyasnpimportmatplotlib.pyplotasplt# 设置中文显示plt.rcParams["font.family"]=["SimHei","Microsoft YaHei","SimSun","KaiTi","FangSong"]plt.rcParams["axes.unicode_minus"]=Falseimportakshareasakfromdatetimeimportdatetime,timedeltadeffetch_stock_data(symbol,period='1y'):"""获取股票数据"""end_date=datetime.now().strftime('%Y%m%d')start_date=(datetime.now()-timedelta(days=365)).strftime('%Y%m%d')# 处理股票代码格式,确保符合akshare要求ifnotsymbol.startswith(('sh','sz')):ifsymbol.startswith(('6','9')):symbol=f"sh{symbol}"else:symbol=f"sz{symbol}"# 使用更稳定的stock_zh_a_hist函数获取股票日线数据data=ak.stock_zh_a_hist(symbol=symbol[2:],# 只传股票代码部分,不含sh/szperiod="daily",start_date=start_date,end_date=end_date,adjust="qfq")# 使用前复权价格# 检查数据是否获取成功ifdata.empty:print(f"获取股票{symbol}数据失败,请检查股票代码和网络连接")returnNone# 先转换日期格式if'日期'indata.columns:data[601288'日期']=pd.to_datetime(data['日期'])# 设置日期为索引data.set_index('日期',inplace=True)# 重命名收盘价列if'收盘'indata.columns:data=data.rename(columns={'收盘':'Close'})else:print("数据格式异常,无法处理")returnNonereturndatadefcalculate_ema(data,window=20):"""计算指数移动平均线 EMA"""ema=data['Close'].ewm(span=window,adjust=False).mean()returnemadefcalculate_std(data,window=20):"""计算标准差 STD"""std=data['Close'].rolling(window=window).std()returnstddefplot_analysis(data,ema,std,symbol):"""绘制图表分析结果"""plt.figure(figsize=(14,8))plt.subplot(2,1,1)plt.plot(data['Close'],label='收盘价',color='blue')plt.plot(ema,label='EMA(20)',color='orange')plt.title(f'{symbol}股票价格与EMA分析')plt.legend()plt.subplot(2,1,2)plt.plot(std,label='STD(20)',color='red')plt.title(f'{symbol}股票价格波动性(STD)分析')plt.legend()plt.tight_layout()plt.show()defmain():symbol=input("请输入股票代码(如 000001 或 600000):")data=fetch_stock_data(symbol)# 检查数据获取是否成功ifdataisnotNone:ema=calculate_ema(data)std=calculate_std(data)plot_analysis(data,ema,std,symbol)if__name__=='__main__':main()这里插入代码片

我来为您详细解释这个股票分析程序输出的图表和EMA指标的用法:

程序输出的图表说明

程序运行后会生成一个包含两个子图的图表:

1. 股票价格与EMA分析(上图)

  • 蓝色曲线:股票的每日收盘价走势
  • 橙色曲线:20日指数移动平均线(EMA(20))
  • 标题:显示当前分析的股票代码和分析类型
  • 图例:标识不同曲线的含义

2. 股票价格波动性(STD)分析(下图)

  • 红色曲线:20日收盘价的标准差(STD(20))
  • 标题:显示当前分析的股票代码和波动性分析类型
  • 图例:标识标准差曲线

EMA指标详解

什么是EMA?

EMA(Exponential Moving Average)即指数移动平均线,是一种加权移动平均线,对最近的价格给予更多权重,反应更灵敏。

EMA的计算方法

程序中使用的计算公式:

ema=data['Close'].ewm(span=window,adjust=False).mean()
  • span=window:设置计算窗口大小(这里是20天)
  • adjust=False:使用标准的指数移动平均计算公式,不进行调整

数学公式:

EMA(t) = Price(t) × k + EMA(t-1) × (1 - k) 其中:k = 2 / (n + 1),n是窗口大小

EMA与SMA的区别

  • SMA(简单移动平均):对所有周期价格给予相同权重,反应较迟缓
  • EMA(指数移动平均):对近期价格给予更高权重,能更快反映价格变化

20日EMA的具体应用

1. 判断趋势方向
  • 当价格在EMA上方:通常表示处于上升趋势
  • 当价格在EMA下方:通常表示处于下降趋势
  • EMA斜率向上:趋势可能继续上升
  • EMA斜率向下:趋势可能继续下降
2. 支撑位与阻力位
  • 支撑位:价格下跌到EMA附近时可能获得支撑反弹
  • 阻力位:价格上涨到EMA附近时可能遇到阻力回调
3. 交易信号
  • 金叉:短期EMA(如5日)上穿长期EMA(如20日),可能发出买入信号
  • 死叉:短期EMA下穿长期EMA,可能发出卖出信号
4. 价格与EMA的偏离程度
  • 价格与EMA偏离过大时,通常会回归,这是一种超买超卖的判断依据

结合标准差(STD)的分析

  • 标准差:衡量价格的波动性或风险程度
  • 高标准差:价格波动大,风险高,可能处于趋势反转或剧烈波动期
  • 低标准差:价格波动小,风险低,可能处于横盘整理期

实际应用示例

  1. 趋势确认:如果价格持续在20日EMA上方运行,且EMA斜率向上,说明上升趋势强劲
  2. 入场时机:当价格回调到20日EMA附近获得支撑,并伴随成交量放大时,可能是较好的买入时机
  3. 止损设置:可以将止损位设置在20日EMA下方一定比例处,保护利润
  4. 风险评估:结合标准差曲线,如果价格上升但标准差下降,说明趋势稳定;如果标准差同时上升,说明波动加大,风险增加

这个程序提供了基础的技术分析工具,您可以根据自己的交易策略进一步优化参数(如调整EMA的窗口大小)或结合其他技术指标(如MACD、RSI等)进行更全面的分析。

6001288农行近期 指数移动平均和标准差图形

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/1 15:08:01

【量子计算Agent调度优化】:揭秘未来任务调度的核心算法与实战策略

第一章:量子计算Agent调度的演进与挑战随着量子计算技术从理论探索走向工程实现,调度机制在多Agent协同环境中的角色愈发关键。传统经典计算中的任务调度模型难以应对量子态叠加、纠缠测量和退相干时间等独特物理约束,推动了量子计算Agent调度…

作者头像 李华
网站建设 2026/1/1 15:20:06

3步搞定智能QQ机器人:OneBot协议零门槛搭建指南

3步搞定智能QQ机器人:OneBot协议零门槛搭建指南 【免费下载链接】LiteLoaderQQNT-OneBotApi NTQQ的OneBot API插件 项目地址: https://gitcode.com/gh_mirrors/li/LiteLoaderQQNT-OneBotApi 还在为复杂的机器人开发头疼吗?🤔 今天我要…

作者头像 李华
网站建设 2025/12/30 7:53:32

阵列信号处理波束形成

一、基础理论框架 1. 波束形成原理 空间滤波本质:通过阵列单元信号加权叠加,增强目标方向信号增益,抑制干扰与噪声关键参数: 阵元间距(通常≤λ/2≤λ/2≤λ/2避免栅瓣)波束指向角(θarcsin(λd…

作者头像 李华
网站建设 2026/1/1 1:45:33

联想拯救者BIOS高级设置解锁:从入门到精通的完整指南

联想拯救者BIOS高级设置解锁:从入门到精通的完整指南 【免费下载链接】LEGION_Y7000Series_Insyde_Advanced_Settings_Tools 支持一键修改 Insyde BIOS 隐藏选项的小工具,例如关闭CFG LOCK、修改DVMT等等 项目地址: https://gitcode.com/gh_mirrors/le…

作者头像 李华
网站建设 2025/12/29 10:17:56

终极指南:5分钟掌握Tidal音乐下载器完整使用技巧

还在为无法离线收听高品质Tidal音乐而苦恼吗?🎵 Tidal-Media-Downloader作为一款实用的开源工具,让音乐下载变得简单高效!无论你是Windows、Linux还是Mac用户,都能轻松打造专属音乐库。 【免费下载链接】Tidal-Media-D…

作者头像 李华
网站建设 2025/12/29 23:14:54

如何快速掌握vue-plugin-hiprint:Vue项目打印设计的终极解决方案

如何快速掌握vue-plugin-hiprint:Vue项目打印设计的终极解决方案 【免费下载链接】vue-plugin-hiprint hiprint for Vue2/Vue3 ⚡打印、打印设计、可视化设计器、报表设计、元素编辑、可视化打印编辑 项目地址: https://gitcode.com/gh_mirrors/vu/vue-plugin-hip…

作者头像 李华