matplotlib 我试图用50EMA和100EMA绘制一个图表,一切都显示出来了,但由于某种原因,我看不到EMA线

pzfprimi  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(129)

这是我的代码目前的样子。是因为我在M1时间框架上吗?但是没有任何原因我看不到50和100EMA

import MetaTrader5 as mt5
import pandas as pd
import numpy as np
import time
import matplotlib.pyplot as plt
import mplfinance as mpf
from datetime import datetime
import talib as tb



close_price.set_index("time", inplace=True)
ema = stream.EMA(close_price["close"], timeperiod=50)

close_price['EMA_50'] = ema
mpf.plot(close_price, type='candle', style='yahoo', ylabel='Price', mav=(50, 100))

62lalag4

62lalag41#

在没有看到数据的情况下,根据图的外观,我可以做出以下假设:

  • 数据是逐分钟的数据
  • 该图显示 * 仅 * 10分钟的数据。
  • 在调用mpf.plot()时,您要求50点和100点移动平均线。

对于50个时段的移动平均线,您至少需要绘制52个点(52分钟的数据)才能看到代表50个点的移动平均线的2点线。对于100个时段的移动平均线,您至少需要绘制102个点(102分钟的数据)才能看到代表100个点的移动平均线的2点线。
底线:你需要绘制更多的数据,或者使用更小的移动平均线,或者两者兼而有之,才能看到任何东西。
附言
您在问题中提到需要EMA(指数移动平均线),但在调用mpf.plot()时使用的是mav=(50,100) kwarg,即简单移动平均线。

    • 要获得指数移动平均值,kwarg应为ema=(50,100)。**

但请注意,在EMA的情况下,由于Pandas ewm()函数的工作方式 * 与SMA不同 mav),您实际上可以使用少于50个数据点绘制50点EMA,***但是您应该注意在您达到至少50个数据点之前,计算的EMA不是**真正的50时段EMA,而是使用少于50个数据点的近似值。

相关问题