1. 程式人生 > >指數移動平均

指數移動平均

import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import talib

df=ts.get_k_data('600600')

#簡單移動平均
def SMA(ps,k):
    
    ewma=pd.Series(0.0,index=ps.index)
#    ewma[period-1]=ps[:period].mean()
    
    for i in range(k,len(ps)):
        ewma[i] =ps[i-k:i].sum()/k
        
    return ewma
#指數移動平均
def EMA(ps,period=5,exp=0.1):
    
    ewma=pd.Series(0.0,index=ps.index)
    #數列的首項是五日的均值
    ewma[period-1]=ps[:period].mean()
    
    for i in range(period,len(ps)):
        ewma[i] =exp*ps[i]+(1-exp)*ewma[i-1]
        
    return ewma

ps=df.close
sma=SMA(ps,5)
ema=EMA(ps)