In [81]:
import pandas as pd
import numpy as np
In [82]:
from pandas_datareader import data as wb
In [83]:
import matplotlib.pyplot as plt
In [84]:
PG = wb.DataReader('PG', data_source = 'quandl', start="1995-1-1", end='2018-05-01')
In [85]:
PG.head()
Out[85]:
In [86]:
PG.tail()
Out[86]:
In [87]:
PG['simple_reture'] = (PG['AdjClose']/PG['AdjClose'].shift(-1))-1
In [88]:
print (PG['simple_reture'])
In [89]:
PG['simple_reture'].plot(figsize=(8,6))
Out[89]:
In [90]:
avg_reture_d = PG['simple_reture'].mean()
In [91]:
avg_reture_d
Out[91]:
In [92]:
avg_reture_a = PG['simple_reture'].mean() * 250
In [93]:
avg_reture_a
Out[93]:
In [94]:
print(str(round(avg_reture_a,5)*100)+'%')
In [95]:
PG['log_return']=np.log(PG['AdjClose']/PG['AdjClose'].shift(-1))
In [96]:
PG['log_return'].plot(figsize=(8,6))
Out[96]:
In [97]:
avg_reture_log = PG['log_return'].mean()*250
In [98]:
print(str(round(avg_reture_log,5)*100)+'%')
In [99]:
tickers = ['PG', 'MSFT', 'F','GE']
In [100]:
mydata = pd.DataFrame()
In [101]:
for t in tickers:
mydata[t] = wb.DataReader(t, data_source='quandl', start='1995-1-1')['AdjClose']
In [102]:
mydata.info()
In [103]:
mydata.head()
Out[103]:
In [104]:
mydata.tail()
Out[104]:
In [105]:
mydata.iloc[0]
Out[105]:
In [106]:
mydata.iloc[-1]
Out[106]:
In [107]:
df2 = (mydata/mydata.iloc[-1]*100)
In [108]:
df2.plot(figsize=(15,6))
Out[108]:
In [109]:
mydata.plot(figsize=(15,6))
Out[109]:
In [110]:
returns = (mydata/mydata.shift(-1))-1
In [111]:
returns.head()
Out[111]:
In [112]:
weights = np.array([0.25,0.25,0.25,0.25])
In [113]:
np.dot(returns,weights)
Out[113]:
In [114]:
annual_returns = returns.mean()*250
In [115]:
np.dot(annual_returns, weights)
Out[115]:
In [126]:
pfolio_1 = str( round(np.dot(annual_returns,weights*100),3) ) +'%'
In [127]:
print(pfolio_1)
In [129]:
weights_2 = np.array([0.4,0.4,0.15,0.05])
In [130]:
pfolio_2 = str( round(np.dot(annual_returns,weights_2*100),3) ) +'%'
In [131]:
print(pfolio_2)
In [ ]: