Portfolio Selection and Optimization

Mario Valadez Trevino
Posted on Oct 31, 2019

Overview

Portfolio is a term used to describe a selection of assets like stocks, currency, bonds, cash, etc. A portfolio's holdings should reflect the owner’s requirements and needs (such as risk tolerance/aversion and expected return). Those requirements depend on the reason for and the time horizon of the investment.

Portfolio selection and stock analysis can be extremely complicated if the main intention is to capitalize on minute-to-minute stock price changes. But if you want to evaluate different portfolio alternatives based on different degrees of risk and return, there are easy ways to do it.

 

The Main Variables and Sharpe Ratio

The 2 main variables that helps us evaluate a portfolio are the variance (volatility) and the expected return.

  • Volatility (standard deviation): this simply tells us how much the price of a particular asset changes. It would never tell us if an asset is good or bad, just its day to day variation.
  • Return: this can indicate if one asset is better than another one, but the main problem is that past performance can’t guarantee future behavior, so it is basically just a reference for evaluation.

 Sharpe Ratio: Sharpe ratio (named for William F. Sharpe), is an indicator that lets us measure both variables at the same time. This ratio basically tells us how much more return a particular set of assets gives us above a risk-free rate (such as a 10 year treasury bond) and then adjusts it by volatility so that they can all be compared in the same terms. It is basically the same process as normalizing the day-to-day variation compared to the risk-free rate.

 

How Graphing and Simulation can Help us Find the Best Portfolio

Simulation and graphing are very powerful tools for finding the best portfolio. In a ‘volatility vs return’ graph we can find the combination of assets that maximizes the return for a particular type of volatility.

If we simulate different portfolio weight combinations we can understand the main idea of the Sharpe ratio concept and how it can be compared to a portfolio that minimizes risk.

The two main points to consider as a reference in the graph are:

  • Minimum Variance Portfolio: This combination of assets will minimize the risk. It won’t necessarily give us a good return, but is a good reference for evaluating other combinations. If you don’t have very little tolerance for risk, this might be the best choice.

Max Sharpe Ratio: This point in the graph is basically the asset combination that gives us a better rate of return compared to its volatility.

Fig1. Simulation of 50,000 randomly generated weights for 3 stocks (AMZN, AAPL and MSFT) evaluated from January to October 2019.

This graphic method is particularly good if you are choosing from a few assets. However, if you try to make a graph out of more assets, it becomes less informative.

Fig2. Simulation of 50,000 randomly generated weights different amount of stocks evaluated from January to October 2019.

Prefiltering Stocks Based on Particular Needs

How can you optimize a portfolio if you have plenty of options? Based on your specific needs you can prefilter the assets in a way that you know you will only be getting the ‘good’ options.

How do I optimize a portfolio if I have plenty of options? Based on your specific needs you can prefilter the assets in a way that you know you will only be getting the ‘good’ options.

So why evaluate a particular asset with a negative return or an asset that gives you really low return and has plenty of volatility? This is when prefiltering proves beneficial.

Fig3. Comparison of top stocks based on Volatility, Return and Sharpe Ratio. Each combination gives different results.

Definitively the portfolio with the lowest volatility will never have the same result as the other two but they will most likely provide less variation. In the last graph we can see that even though the best return stock combination will more likely provide a better average return, it also carries more risk. If your time horizon for the investment is short term, you will want to avoid that. In the middle graph we can see that the best Sharpe ratio stock strikes a perfect balance between both.

Takeaway 1: Basic indicators can filter unnecessary assets that we won’t have the capacity to analyze.

Optimization of the Best Portfolio

As we saw, graphing and simulation works great for a limited amount of assets. If we prefilter those assets, we might be able to get a very good solution but it won’t necessarily be the best one.

A more efficient way to find the best option is to use optimization.In optimization, we just try to solve for the best weights combination that will maximize the Sharpe ratio or minimize the volatility.

Fig4. Comparing each of the prefiltered stocks with the optimization solution.

Takeaway 2: Optimization can help us better determine an asset portfolio when list of comparing assets is too big.

When optimizing more than 500 assets (S&P 500) we see that we can reach a better solution. This solution is intended as a guide since you will end up with a 50 assets portfolio and you probably just want to keep the top 5 so that the management can be simplified

Conclusions

Graphing and simulation are great tools for interpreting how different weights of assets can change a portfolio expected outcome. When the portfolio starts getting more complicated because due to the increasing number of options, then optimization is a better tool. Definitively, if the number of assets is very large and it takes too long to come up with the best solution during optimization, then you can apply some prefiltering to the assets since you already know some of them won’t even move your solution significantly.

About the Data

Data was used from yahoo finance using an API. All the code can be found in the file ‘portfolio_optimization.py’ inside the ‘live_portfolio_scraper’ GitHub repository (https://github.com/mavaladezt/live_portfolio_scraper).

About Author

Mario Valadez Trevino

Mario Valadez Trevino

Mario Valadez Trevino is a NYC Data Science Fellow with a B.S. in Industrial Engineering with minor in Systems Engineering and an MBA. Mario has relevant experience in demand forecasting, production and transportation planning, warehouse management systems and...
View all posts by Mario Valadez Trevino >

Related Articles

Leave a Comment

No comments found.

View Posts by Categories


Our Recent Popular Posts


View Posts by Tags

2019 airbnb Alex Baransky alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus API Application artist aws beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Best Data Science Bootcamp 2020 Best Ranked Big Data Book Launch Book-Signing bootcamp Bootcamp Alumni Bootcamp Prep Bundles California Cancer Research capstone Career Career Day citibike clustering Coding Course Demo Course Report D3.js data Data Analyst data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization Deep Learning Demo Classes Demo Day Demo Lesson Discount dplyr employer networking feature engineering Finance Financial Data Science Flask gbm Get Hired ggplot2 googleVis Hadoop higgs boson Hiring hiring partner events Hiring Partners Industry Experts Instructor Blog Instructor Interview Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter lasso regression Lead Data Scienctist Lead Data Scientist leaflet Lectures linear regression Live Chat Live Online Bootcamp Logistic Regression machine learning Maps matplotlib Medical Research Meet the team meetup Networking neural network Neural networks New Courses nlp NYC NYC Data Science nyc data science academy NYC Open Data NYCDSA NYCDSA Alumni Online Online Bootcamp Online Lectures Online Training Open Data painter pandas Part-time Portfolio Development prediction Prework Programming PwC python python machine learning python scrapy python web scraping python webscraping Python Workshop R R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest Ranking Realtime Interaction recommendation recommendation system regression Remote remote data science bootcamp Scrapy scrapy visualization seaborn Selenium sentiment analysis Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau team TensorFlow Testimonial tf-idf Top Data Science Bootcamp twitter visualization web scraping Weekend Course What to expect word cloud word2vec XGBoost yelp