使用 mplfinance 在同一面板上显示 OHLC 和体积数据

OHLC and Volume Data on the same Panel using mplfinance

有没有办法在同一面板上绘制体积和 OHLC 数据?

我尝试将两者的面板 ID 设置为相同,但只绘制体积数据(我猜体积数据稍后绘制,因此替换了 OHLC 数据?)。

    kwargs = {
        'type': "candle",
        'volume': True,
        'volume_panel': 0,
        'main_panel': 0,
        'mav': (6,9),
        'title': f"{self.meta['2. Symbol']}",
        'show_nontrading': True,
        'style': self.plotStyle,
        'addplot': adps
    }

    mplf.plot(self.ohlcv, **kwargs)

Example with the code

Mplfinance 实际上 策划 两者 OHLC 和 Volume。

问题是价格和交易量被绘制在同一个 y-axis 上,并且很可能您的交易量值要大几个或多个数量级比价格。因此您看不到价格。

解决方法是使用 mpf.make_addplot()

分别绘制体积或 ohlc

(对音量使用 type='bar',对 ohlc 数据使用 type='ohlc'type='candle')。在对 mpf.make_addplot() 的调用中,您 可能 需要设置 secondary_y=True(或者它可能会自动工作)。


或者,您的问题让我想到了将 mplfinance 增强为 自动 如果它检测到 ohlc 和体积数据位于同一面板上,则将体积放在第二轴上。因此,您可以避免调用 make_addplot() 以将其中之一放在辅助轴上。

此增强功能在 mplfinance 版本 v0.12.9b1 中,因此您需要安装该版本。有了这个增强功能,您所要做的就是您在上面尝试过的,即只需将 volume_panelmain_panel 设置为相同的值,一切都会自动运行。

通过此增强功能,mpf.plot() 有两个您可能会觉得有用的附加参数:

  • volume_alpha= 设置音量条的不透明度(如果您希望它们更亮或更透明,让 ohlc 数据更明显 and/or 脱颖而出。
  • volume_ylim= 能够设置音量的 y-axis 最小值和最大值,以防您希望音量条在外观上稍微小一些(通过设置 volume_ylim最大值显着大于最大音量)。