import pandas as pd | |
import numpy as np | |
import datetime as dt | |
import pandas_datareader as pdr | |
from datetime import datetime | |
def convert_simFin2(path): | |
df = pd.read_csv(path, sep=';') | |
stocks = df.pivot(index="Date", columns="Ticker", values="Adj. Close") | |
return stocks | |
def log_of_returns2(stocks): | |
log_returns = np.log(stocks/stocks.shift()) | |
return log_returns | |
# Code to Calculate and output Betas | |
# Read in Stock csv data and convert to have each Ticker as a column. | |
#df = pd.read_csv('D:/SimFinData/us-shareprices-daily.csv', sep=';') | |
#stocks = df.pivot(index="Date", columns="Ticker", values="Adj. Close") | |
#stocks | |
#start = min(df['Date']) | |
#end = max(df['Date']) | |
#logRet = np.log(stocks/stocks.shift()) | |
#SP500 = pdr.get_data_yahoo("^GSPC", start) | |
#IXIC = pdr.get_data_yahoo("^IXIC", start) | |
#AOK = pdr.get_data_yahoo("AOK", start) | |
#SP500['SP500'] = SP500['Adj Close'] | |
#IXIC['IXIC'] = IXIC['Adj Close'] | |
#AOK['AOK'] = AOK['Adj Close'] | |
#spAC = np.log(SP500['SP500']/SP500['SP500'].shift()) | |
#spAC = spAC.loc[spAC.index <= end] | |
#ixicAC = np.log(IXIC['IXIC']/IXIC['IXIC'].shift()) | |
#ixicAC = ixicAC.loc[ixicAC.index <= end] | |
#aokAC = np.log(AOK['AOK']/AOK['AOK'].shift()) | |
#aokAC = aokAC.loc[aokAC.index <= end] | |
#sp500B = logRet.join(spAC) | |
#ixicB = logRet.join(ixicAC) | |
#aokB = logRet.join(aokAC) | |
#sp5Cov = sp500B.cov() | |
#ixicCov = ixicB.cov() | |
#aokCov = aokB.cov() | |
#sp500Var = sp500B['SP500'].var() | |
#ixicVar = ixicB['IXIC'].var() | |
#aokVar = aokB['AOK'].var() | |
#sp500Beta = sp5Cov.loc['SP500']/sp500Var | |
#ixicBeta = ixicCov.loc['IXIC']/ixicVar | |
#aokBeta = aokCov.loc['AOK']/aokVar | |
#betas = pd.concat([sp500Beta,ixicBeta,aokBeta], axis=1) | |
#betas['Ticker'] = betas.index | |
#betas = betas[['Ticker','SP500','IXIC','AOK']] | |
#betas.to_csv (r'betas.csv', index = None, header=True) | |