J'essaie de tracer deux cours boursiers sur un graphique d'indice. Cette parcelle est très commune car elle commence les deux stocks avec des prix différents, au même endroit.Décalage de l'index
Voir ci-dessous pour un graphique d'IBM par rapport à TSLA
def get_historical_closes(ticker, start_date, end_date):
# get the data for the tickers. This will be a panel
p = wb.DataReader(ticker, "yahoo", start_date, end_date)
# convert the panel to a DataFrame and selection only Adj Close
# while making all index levels columns
d = p.to_frame()['Adj Close'].reset_index()
# rename the columns
d.rename(columns={'minor': 'Ticker', 'Adj Close': 'Close'}, inplace=True)
# pivot each ticker to a column
pivoted = d.pivot(index='Date', columns='Ticker')
# and drop the one level on the columns
pivoted.columns = pivoted.columns.droplevel(0)
return pivoted
tickers = ['IBM','TSLA']
start = '2015-12-31'
end ='2016-12-22'
df_ret=get_historical_closes(tickers,start,end).pct_change().replace('NaN',0)
df_ret=np.cumprod(1+df_ret)
df_ret.plot()
Comme vous pouvez le voir, les deux commencent à 1,00.
Ce que je voudrais faire est d'avoir la convergence à 1.00 à un point quelconque de l'index de date. Par exemple, j'aimerais voir le même graphique, sauf que les lignes convergent à 1 le 31 juillet 2016. Ainsi, la convergence de l'indice est compensée à un point donné.
Est-ce que quelqu'un a une idée de la façon d'accomplir cela?