In [2]:
%matplotlib inline

In [3]:
from pandas_datareader import data

In [4]:
import datetime as dt

In [36]:
from math import sqrt

In [51]:
from numpy import log, exp

In [137]:
import pandas as pd

In [230]:
start = dt.datetime(2014,11,28)

In [231]:
end = dt.datetime(2016,12,9)

In [232]:
spy = data.DataReader('SPY','yahoo',start,end)['Adj Close']

In [237]:
p = data.DataReader('MO','yahoo',start,end)['Adj Close']

In [238]:
df = pd.DataFrame({'SPY':spy,'Stock':p})

In [239]:
df /= df.iloc[0]

In [240]:
df.plot();



In [221]:
r = df.pct_change().dropna()

In [222]:
r.std()


Out[222]:
SPY      0.009431
Stock    0.009902
dtype: float64

In [223]:
df.iloc[-1]


Out[223]:
SPY      2.149857
Stock    3.633068
Name: 2016-12-09 00:00:00, dtype: float64

In [224]:
n = df.count()

In [225]:
(((df.iloc[-1]**(1/n))**252) - 1)/(r.std()*sqrt(252))


Out[225]:
SPY      0.903749
Stock    1.517135
dtype: float64

In [42]:
KO = data.DataReader('KO','yahoo',start,end)

In [43]:
p['KO'] = KO['Adj Close']

In [45]:
p['KO'] /= p['KO'].iloc[0]

In [46]:
p['KO'] = log(p['KO'])

In [79]:
p[['SPY','AAPL']].plot();



In [55]:
p.head()


Out[55]:
E XOM COP SPY KO
Date
1995-12-01 0.000000 0.000000 0.000000 0.000000 0.000000
1995-12-04 -0.022007 0.011191 -0.007326 0.012223 0.006167
1995-12-05 0.000000 0.025398 -0.007326 0.018783 0.020814
1995-12-06 0.005108 0.034759 -0.011009 0.021043 0.046333
1995-12-07 0.005108 0.038053 -0.018417 0.015761 0.033655

In [56]:
exp(p).iloc[-1]


Out[56]:
E      6.718162
XOM    7.757184
COP    7.575459
SPY    5.414596
KO     3.585011
Name: 2016-12-09 00:00:00, dtype: float64

In [67]:
AAPL = data.DataReader('AAPL','yahoo',start,end)

In [68]:
p['AAPL'] = AAPL['Adj Close']

In [69]:
p['AAPL'] /= p['AAPL'].iloc[0]

In [70]:
p['AAPL'] = log(p['AAPL'])

In [ ]: