Рассчитать скользящую доходность / скользящую среднюю, используя Numpy - PullRequest
0 голосов
/ 23 февраля 2019

Я загружаю ежедневно скорректированные данные о ценах для компаний «AAPL», «BA», «GS» и индекс DJIA из yahoo finance между датами «12/31/2008» и «12/31/2018» изатем конвертировать в ежедневный доход на основе Adj.Закрыть.

# Download price data
import pandas as pd  
from pandas_datareader import data as pdr
import fix_yahoo_finance as yf
yf.pdr_override() 
import datetime 

start_dt = datetime.datetime(2008, 12, 31)
end_dt = datetime.datetime(2018, 12, 31)

def getDataBatch(tickers, startdate, enddate):
  def getData(ticker):
    return (pdr.get_data_yahoo(ticker, start=startdate, end=enddate))
  datas = map(getData, tickers)
  return(pd.concat(datas, keys=tickers, names=['Ticker', 'Date']))

data_AAPL = pdr.get_data_yahoo('AAPL', start=start_dt, end=end_dt)
data_BA = pdr.get_data_yahoo('BA', start=start_dt, end=end_dt)
data_GS = pdr.get_data_yahoo('GS', start=start_dt, end=end_dt)
data_DJIA = pdr.get_data_yahoo('^DJI', start=start_dt, end=end_dt)

#Convert into daily return
def getReturns(tickers, start_dt, end_dt, freq): 
    px_data = getDataBatch(tickers, start_dt, end_dt)
    px = px_data[['Adj Close']].reset_index().pivot(index='Date', columns='Ticker', values='Adj Close')
    if (freq=='daily'):
        px = px.resample('D').last()
    ret = px.pct_change().dropna()
    ret.columns = tickers
    return(ret)

Ticker_List = ['AAPL','BA','GS','^DJI']
ReturnData = getReturns(Ticker_List, start_dt, end_dt, freq='daily')
ReturnData.columns = ['AAPL','BA','GS','DJIA']

Я хочу рассчитать скользящую годовую доходность по трем акциям и DJIA, используя для цикла , каждый раз просматривая 252 ежедневных точки данных и сохраняя результаты в новомПеременная.

Я знаю, как использовать функцию прокрутки, но я не уверен, как использовать цикл for, чтобы сделать то же самое.Кто-нибудь знает как это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...