Я написал библиотеку финансовых графиков, которая может делать то, что вы ищете:
import yfinance as yf
import finplot as fplt
df = yf.download('SPY',start='2019-01-01', end = '2020-04-20')
fplt.create_plot('SPY Price')
fplt.candlestick_ochl(df[['Open','Close','High','Low']])
fplt.plot(df.Close.rolling(20).mean(), color='#f00')
fplt.plot(df.Close.ewm(span=20).mean(), color='#0f0')
fplt.show()
Она оптимизирована, и я часто использую ее для построения полмиллиона или более свечей. Удачи!