[英]How can I get my exponential moving average to reflect the same value as the one I defined on Yahoo Finance?
我怎樣才能讓我的指數移動平均線反映與我在雅虎財經上定義的相同的價值?
我嘗試使用 pandas_ta package 來計算它們,如下所示:
df['ema48'] = ta.ema(df.close, length=48)
嘗試使用 pandas package:
df['ema48'] = pd.Series.ewm(df['close'], span=48).mean()
在 Yahoo Finance 上時,我單擊“移動平均線”,將周期更改為 48,並將類型更改為“指數”(並且選擇“關閉”作為字段),但我的代碼沒有返回與 YF 上相同的值. 使用這兩種計算,我今天 08:39 得到了 1991.70,而 YF 顯示的是 1992.00。
最小可重現示例
from datetime import date, timedelta
import pandas as pd
import pandas_ta as pdta
import yfinance as yf
pair = 'ETH-GBP'
today = str(date.today())
yesterday = str(date.today() - timedelta(days=1))
def get_historical_data(symbol, start_date, interval):
df1 = yf.download(symbol, start=start_date, interval=interval)
df1 = df1.drop(columns=['Open', 'High', 'Low', 'Adj Close', 'Volume'])
df1 = df1.astype(float)
return df1
df = get_historical_data(pair, yesterday, '1m')
df['ema48'] = pdta.ema(df.Close, length=48)
df['ema48two'] = pd.Series.ewm(df['Close'], span=48).mean()
print(df.tail(1))
我在兩列中都得到了相同的值,你檢查了兩次嗎?
我剛剛復制了您的代碼並在我的計算機上運行它。
順便說一句,這是 pandas_ta function 的代碼,如果您想進一步了解,請查看它,在我看來,如果您安裝了 TA,您可能會看到一些差異,但最后兩列應該會聚為相同的值。
https://github.com/twopirllc/pandas-ta/blob/main/pandas_ta/overlap/ema.py
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.