Developing robo-advisor software with semivariance and BlackLitterman model
Phan, Nhan (2020)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2020053015500
https://urn.fi/URN:NBN:fi:amk-2020053015500
Tiivistelmä
The purpose of this thesis was to develop a robo-advisor program for Japanese pension investment fund. A robo-advisor can reduce behavioral biases and provide an objective suggestion for investors. The program will make an investment recommendation on bond and stock market of major economies in North America, Europe and Asia.
The program is based on Markowitz’s Modern Portfolio Theory. The Markowitz framework is used to compute optimal investment portfolios that offer the highest level of expected return for a predetermined level of risk. However, since its release in 1952, many and even Markowitz himself have suggested improvements to the model to improve its application in real world problems. Therefore, the program also implements semivariance, Black-Litterman model and portfolio simplification into the traditional model.
Due to the large amount of data and the complexity of the program, the program must be capable of computing convex optimization with reasonable speed. Program development also takes into consideration the broad user group. To make sure anyone without technical skill can use the model, the program was designed to target simplicity and usability.
Python with CVXPY library for convex optimization and Tkinter for GUI library were chosen for program development. Other Python libraries, NumPy and pandas, were deliberately used due to their ability in handling data and solve mathematic equations.
Improvements were backtested using 10 years of ETF historical data from Bloomberg. The results showed that those improvements reduce the limitation of Modern Portfolio in real world and generally raise the return of the investment. However, further studies should be considered during the extreme market condition.
Based on the backtest result, the final program is a useful tool for asset allocation. However, its limitation in using historical return to forecast is not fully eliminated. Further implementation will focus on developing a better return prediction model, based on the asset’s potential and not on its past performance.
The program is based on Markowitz’s Modern Portfolio Theory. The Markowitz framework is used to compute optimal investment portfolios that offer the highest level of expected return for a predetermined level of risk. However, since its release in 1952, many and even Markowitz himself have suggested improvements to the model to improve its application in real world problems. Therefore, the program also implements semivariance, Black-Litterman model and portfolio simplification into the traditional model.
Due to the large amount of data and the complexity of the program, the program must be capable of computing convex optimization with reasonable speed. Program development also takes into consideration the broad user group. To make sure anyone without technical skill can use the model, the program was designed to target simplicity and usability.
Python with CVXPY library for convex optimization and Tkinter for GUI library were chosen for program development. Other Python libraries, NumPy and pandas, were deliberately used due to their ability in handling data and solve mathematic equations.
Improvements were backtested using 10 years of ETF historical data from Bloomberg. The results showed that those improvements reduce the limitation of Modern Portfolio in real world and generally raise the return of the investment. However, further studies should be considered during the extreme market condition.
Based on the backtest result, the final program is a useful tool for asset allocation. However, its limitation in using historical return to forecast is not fully eliminated. Further implementation will focus on developing a better return prediction model, based on the asset’s potential and not on its past performance.