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

如何让mplfinance的移动平均线基于开盘价计算?附现有代码

如何让mplfinance的移动平均线基于开盘价计算?

嘿,我来帮你搞定这个问题!默认情况下,mplfinance里的mav参数是自动基于收盘价计算移动平均线的,没有直接的参数可以让它切换到开盘价。不过咱们可以换个思路:手动计算开盘价的均线,然后把它作为额外的图层加到蜡烛图上就行。

下面是修改后的完整代码,我会一步步给你解释:

import pandas as pd
import mplfinance as mpf

# 读取并预处理数据(这部分和你原来的代码一致)
AAPL1 = pd.read_csv('./HMW1/AAPL.csv', index_col=0, parse_dates=True)
AAPL1.index.name = 'Date'
AAPL1 = AAPL1.loc['2020-03-15' : '2020-06-14']

# 手动计算基于开盘价的10日和20日移动平均线
AAPL1['Open_MA10'] = AAPL1['Open'].rolling(window=10).mean()
AAPL1['Open_MA20'] = AAPL1['Open'].rolling(window=20).mean()

# 创建均线的绘图对象
ap = mpf.make_addplot(AAPL1[['Open_MA10', 'Open_MA20']])

# 绘制蜡烛图并添加自定义均线
mpf.plot(AAPL1, type='candle', addplot=ap)

关键步骤解释:

  • 手动计算均线:用pandas的rolling().mean()方法,针对Open列计算指定窗口的移动平均,这样就能得到完全基于开盘价的均线数据。
  • 创建addplot对象:mpf.make_addplot()用来生成额外的绘图图层,把我们计算好的两条均线传进去就行。
  • 整合到主图:调用mpf.plot()时,通过addplot参数把自定义的均线图层添加到蜡烛图上,这样就能看到基于开盘价的均线啦。

如果需要给均线设置不同的颜色或者样式,还可以在make_addplot里加参数,比如color=['red', 'blue']来区分两条线,按需调整就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 11:47:42