计算 5 年滚动 returns
Calculating 5 year rolling returns
我有下面的代码,其中有 returns for U.S。 1995 年 1 月至 2000 年 12 月期间的股票。我希望使用 Python 中的 60 个月滚动 return 来计算 2001 年 1 月的 return。有5年returns,这怎么可能?
我想计算从 2001 年 1 月到 2010 年 12 月期间的每只股票。任何帮助都会很棒!
import quandl
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Use Quandl to get adjusted close price
quandl.ApiConfig.api_key = 'Enter Your Key'
stocks = ['MSFT', 'AAPL', 'WMT', 'GE', 'KO', 'F', 'JNJ', 'BA', 'XOM']
stockdata = quandl.get_table('WIKI/PRICES', ticker = stocks, paginate=True,
qopts = { 'columns': ['date', 'ticker', 'adj_close'] },
date = { 'gte': '1995-1-1', 'lte': '2000-12-31' })
# Setting date as index with columns of tickers and adjusted closing
# price
data1 = stockdata.set_index('date')
table = data1.pivot(columns='ticker')
table.head()
# Daily and annual returns of the stocks
returns_daily = table.pct_change()
returns_daily.head()
您可以使用 .rolling()
创建 60 个月滚动的子集 return
returns_5year=table.rolling(250*6).pct_change()
如果您想要每年 returns,请使用 'asfreq('BA')`
returns_yearly = table.asfreq('BA').pct_change()
我有下面的代码,其中有 returns for U.S。 1995 年 1 月至 2000 年 12 月期间的股票。我希望使用 Python 中的 60 个月滚动 return 来计算 2001 年 1 月的 return。有5年returns,这怎么可能?
我想计算从 2001 年 1 月到 2010 年 12 月期间的每只股票。任何帮助都会很棒!
import quandl
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Use Quandl to get adjusted close price
quandl.ApiConfig.api_key = 'Enter Your Key'
stocks = ['MSFT', 'AAPL', 'WMT', 'GE', 'KO', 'F', 'JNJ', 'BA', 'XOM']
stockdata = quandl.get_table('WIKI/PRICES', ticker = stocks, paginate=True,
qopts = { 'columns': ['date', 'ticker', 'adj_close'] },
date = { 'gte': '1995-1-1', 'lte': '2000-12-31' })
# Setting date as index with columns of tickers and adjusted closing
# price
data1 = stockdata.set_index('date')
table = data1.pivot(columns='ticker')
table.head()
# Daily and annual returns of the stocks
returns_daily = table.pct_change()
returns_daily.head()
您可以使用 .rolling()
创建 60 个月滚动的子集 return
returns_5year=table.rolling(250*6).pct_change()
如果您想要每年 returns,请使用 'asfreq('BA')`
returns_yearly = table.asfreq('BA').pct_change()