Get Started

Sortino ratio

For this exercise, the portfolio returns data are stored in a DataFrame called df, which you'll use to calculate the Sortino ratio. The Sortino ratio is just like the Sharpe ratio, except for that it uses the standard deviation of the negative returns only, and thereby focuses more on the downside of investing.

Let's see how big the Sortino ratio is compared to the earlier calculated Sharpe ratio. The risk-free rate rfrand the target return target are already defined and are both zero.

This is a part of the course

“Introduction to Portfolio Analysis in Python”

View Course

Exercise instructions

  • Select the returns using .loc that are strictly less than the target, and store them in a new DataFrame called downside_returns.
  • Calculate the mean of the expected returns, and the standard deviation of the downside returns.
  • Calculate the Sortino ratio using rfr for the risk-free rate.

Hands-on interactive exercise

Have a go at this exercise by completing this sample code.

# Create a downside return column with the negative returns only
downside_returns = df.loc[df['pf_returns'] ____ target]

# Calculate expected return and std dev of downside
expected_return = df['____'].____()
down_stdev = downside_returns['pf_returns'].____()

# Calculate the sortino ratio
sortino_ratio = (____ - ____)/____

# Print the results
print("Expected return  : ", expected_return*100)
print("Downside risk   : ", down_stdev*100)
print("Sortino ratio : ", sortino_ratio)

This exercise is part of the course

Introduction to Portfolio Analysis in Python

AdvancedSkill Level
4.7+
9 reviews

Learn how to calculate meaningful measures of risk and performance, and how to compile an optimal portfolio for the desired risk and return trade-off.

What is DataCamp?

Learn the data skills you need online at your own pace—from non-coding essentials to data science and machine learning.

Start Learning for Free