You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python绘制单只股票及其20日移动平均线的相关公式查询

Python绘制单只股票及20日移动平均线完整方案

前置准备

你需要先安装3个常用Python库,执行以下命令即可:

pip install pandas matplotlib yfinance
  • pandas:用于处理时间序列数据,自带滑动窗口计算方法,可直接算出均线值
  • matplotlib:用于绘制可视化图表
  • yfinance:免费调取公开的全球股票交易历史数据,如果你已经有本地股票数据可以不用安装

20日移动平均线基础说明

20日移动平均线(20MA)本质是连续20个交易日收盘价的算术平均值,每日更新时剔除20个交易日前的旧收盘价、加入当日新收盘价重新计算即可。它可以过滤掉股价的短期随机波动,更直观反映股价的中期运行趋势。

完整可运行代码

import pandas as pd
import matplotlib.pyplot as plt
import yfinance as yf

# 1. 拉取股票数据,替换代码即可更换标的
# A股标的需加后缀:.SS代表上交所,.SZ代表深交所,比如600519.SS是贵州茅台
stock_code = "AAPL"
# 拉取最近1年的日度交易数据
stock_data = yf.download(stock_code, period="1y")

# 2. 核心:计算20日移动平均线,仅需1行代码
stock_data['20MA'] = stock_data['Close'].rolling(window=20).mean()

# 3. 绘制图表
plt.figure(figsize=(12,6), dpi=100)
# 绘制收盘价曲线
plt.plot(stock_data['Close'], label=f'{stock_code} 收盘价', color='#1f77b4', linewidth=1)
# 绘制20日均线曲线
plt.plot(stock_data['20MA'], label='20日移动平均线', color='#ff7f0e', linewidth=2)

# 图表样式配置
plt.title(f'{stock_code} 股价及20日均线走势', fontsize=14)
plt.xlabel('日期', fontsize=12)
plt.ylabel('价格(元/美元)', fontsize=12)
plt.legend()
plt.grid(alpha=0.3)
plt.rcParams['font.sans-serif'] = ['SimHei']  # 解决Windows下中文显示问题
plt.rcParams['axes.unicode_minus'] = False
plt.show()

关键说明

  • 均线计算的核心逻辑是rolling(window=20).mean(),如果要计算5日、60日等其他周期的均线,把window参数改成对应数值即可
  • 如果你有本地存储的股票数据,直接用pd.read_csv()读取后,确保有一列是收盘价,再执行均线计算逻辑即可
  • 若图表中文显示异常,可根据你的操作系统替换对应的中文字体配置

内容的提问来源于stack exchange,提问作者Angelo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:24:04