Search code examples
python-3.xpandasmachine-learningquantitative-finance

Plotting Candlestick in Python


I'd like to plot a candlestick of a promising company. My code is in follows:

import numpy as np
import pandas as pd
from pandas_datareader import data as pdr
import fix_yahoo_finance as yf
yf.pdr_override()

#My python 3.6 seem in trouble using pandas_datareader directly,so I install a makeup

gree=pdr.get_data_yahoo('000651.SZ', start='2000-01-01',end='2018-04-30')
gree.info()
gree['Close'].plot(grid=True,figsize=(8,5))
gree['42d']=pd.rolling(gree['Close'],window=42).mean()
gree['42d']=np.round(pd.rolling(gree['Close'],window=42).mean(),2)
gree['252d']=np.round(pd.rolling_mean(gree['Close'],window=252),2)
gree[['Close','42d','252d']].tail()

I met a problem: AttributeError: module 'pandas' has no attribute 'rolling'. Though I have read almost every available answer,I have no idea how to solve it. Could you do me a favor? :D


Solution

  • I think need Series.rolling, check docs:

    So change:

    gree['42d']=pd.rolling(gree['Close'],window=42).mean()
    gree['42d']=np.round(pd.rolling(gree['Close'],window=42).mean(),2)
    gree['252d']=np.round(pd.rolling_mean(gree['Close'],window=252),2)
    

    to:

    gree['42d'] = gree['Close'].rolling(window=42).mean().round(2)
    gree['252d'] = gree['Close'].rolling(window=252).mean().round(2)
    

    Or if use pandas bellow 0.18.0:

    gree['42d'] = pd.rolling_mean(gree['Close'],window=42)