mplfinance 移动平均线和指数移动平均线

mplfinance moving average gaps and exponential moving averages

我正在 mplfinance 图上打印移动平均线,正如预期的那样存在差距。

在大多数图表软件上,即 TradingView 等,它们在移动平均线上没有缺口 - 并假设它们从前面的 -n 个元素中提取数据(即使是不连续的跳跃,它们也接受这一点)。

请问我有两个问题:

  1. 如何 运行 移动平均线没有缺口(理解它会 在不连续的 n 个元素内倾斜)...即拉入前一天并将其用于移动平均线计算但不显示那一天(以便移动平均线已经在左侧 运行ning情节的一侧 - 下方将在 12 月 21 日开始)?

  2. 如果我想在 mplfinance 内部函数之外计算此移动平均线(或更改为指数移动平均线等),我将如何将其作为单独的图表添加到烛台顶部?

我的代码如下:

import mplfinance as mpf
import pandas as pd
from polygon import RESTClient
import yfinance as yf
import datetime

start = datetime.date(2021,12,21)
end = datetime.date(2021,12,23)
yfResults = yf.download("AAPL", start=start, end=end, period='1d', interval='5m')
mpf.plot(yfResults, type='candlestick', xrotation=0, style='yahoo', tight_layout=True, volume=True, mav=(9, 20), figratio=(48,24))

  1. 正如您所暗示的,那些在移动平均线开始时没有显示缺口的系统通过使用显示数据之前的数据作为移动平均线计算的一部分来做到这一点.您可以通过在调用 mpf.plot() 时设置 kwarg xlim=(min,max) 来完成同样的事情,方法是将 min 设置为比您的最大移动平均值小 1,和 max=len(data) ... 所以例如给定上面的代码,执行:
mpf.plot( yfResults, type='candlestick', xrotation=0, style='yahoo',
         tight_layout=True, volume=True, mav=(9, 20), figratio=(48,24),
         xlim=(19,len(yfResults)) )
  1. 您可以使用 mpf.make_addplot() api 和 addplot kwarg 计算和绘制任何其他数据。有关详细信息,请参阅 https://github.com/matplotlib/mplfinance/blob/master/examples/addplot.ipynb