如何让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
相关产品推荐
相关产品推荐

