0
我習慣於指數移動平均線(EMA)正在計算following方式:使用熊貓和EWMA
SMA: 10 period sum/10
Multiplier: (2/(Time periods + 1)) = (2/(10 + 1)) = 0.1818 (18.18%)
EMA: {Close - EMA(previous day)} x multiplier + EMA(previous day).
然而,當我運行pd.ewma(df['Close'])
我沒有看到這種方法相匹配的輸出。
下面的代碼給了我期待的答案,但需要更長的時間才能運行。
任何人都有什麼指示什麼是正確的方式來利用這個庫給我輸出我期待?
import pandas.io.data as web
import datetime
import pandas as pd
start = datetime.datetime(2010, 1, 1)
end = datetime.datetime.today()
f = web.DataReader("SPY", 'yahoo', start, end)
f['sma']=pd.rolling_mean(f['Adj Close'],10)
days=10.
alpha=(2./(days+1.))
d={}
for x in f[(f['sma']>0)].index:
if len(d)==0:
d[x] = f[(f.index==x)]['sma'].values[0]
else:
d[x] = (f[(f.index==x)]['Adj Close'].values[0] - d[dt_prior])*alpha + d[dt_prior]
dt_prior = x
pd.Series(d)
你的代碼似乎是從一個不斷更新的Web服務中讀取數據。你能提供一些最小的,可重複的例子,預期的結果和實際結果? – Mephy