## How to calculate portfolio statistics in Python

In this post we will calculate the following portfolio statistics using Python.

- Portfolio average returns
- Portfolio standard deviation
- Portfolio Sharpe ratio

As usual we will start with loading our libraries.

```
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import pandas_datareader as web
```

We will use the same assets from the last post to build our portfolio.

```
# Create a list of tickers and weights
tickers = ['BND', 'VB', 'VEA', 'VOO', 'VWO']
wts = [0.1,0.2,0.25,0.25,0.2]
```

Next lets download the price data from yahoo finance. We will only keep the adjusted closing price for our stock tickers.

```
price_data = web.get_data_yahoo(tickers,
start = '2013-01-01',
end = '2018-03-01')
price_data = price_data['Adj Close']
```

Next we will calculate the daily returns for our assets.

`ret_data = price_data.pct_change()[1:]`

After this we will calculate the portfolio returns.

`port_ret = (ret_data * wts).sum(axis = 1)`

Lets look at the total cumulative returns for our portfolio.

```
cumulative_ret = (port_ret + 1).cumprod()
fig = plt.figure()
ax1 = fig.add_axes([0.1,0.1,0.8,0.8])
ax1.plot(cumulative_ret)
ax1.set_xlabel('Date')
ax1.set_ylabel("Cumulative Returns")
ax1.set_title("Portfolio Cumulative Returns")
plt.show();
```

We now have the daily returns data. We will convert it to geometric average annual returns.

```
geometric_port_return = np.prod(port_ret + 1) ** (252/port_ret.shape[0]) - 1
print(geometric_port_return)
```

`## 0.09164978620705222`

Next we will calculate the portfolio standard deviation or volatility. This is the annual standard deviation for our portfolio.

```
annual_std = np.std(port_ret) * np.sqrt(252)
print(annual_std)
```

`## 0.12039589835434619`

Next we will calculate the portfolio Sharpe ratio.

```
port_sharpe_ratio = geometric_port_return / annual_std
print(port_sharpe_ratio)
```

`## 0.7612367818155304`

In this post we calculate the

- Portfolio annualized returns
- Portfolio standard deviation
- Portfolio Sharpe ratio