In this post, I will show how to integrate the Portfolio Optimizer Web API in a web page.
As a working example, I will display the mean-variance minimum variance frontier1 of 4 indexes.
In addition, I will also display the returns and the volatilities of portfolios made of random weights, to allow a visual comparison between mean-variance return-efficient portfolios and random portfolios.
Note: A fully functional web page corresponding to this post is available … right before your eyes ! Just check the source code of this page.
Integration of the Portfolio Optimizer API in a web page
Cross-origin requests are supported by the Portfolio Optimizer API.
Example of integration: displaying the mean-variance minimum variance frontier
I will use Portfolio Optimizer to display the mean-variance minimum variance frontier of the following 4 indexes:
- ICE US Treasury Short Bond
- ICE US Treasury 20+ Year Bond
- S&P 500
- Gold spot price
Note: The index prices come from https://backtest.curvo.eu/. Be sure to check this site if you are an European investor in ETFs!
Average returns and covariance matrix
One of the first step in a mean-variance analysis is to compute:
- The average arithmetic returns of the analyzed assets
- The covariance matrix of the analyzed assets
With Portfolio Optimizer, this is done thanks to the following API endpoints:
/v1/assets/returns, to compute the assets arithmetic returns from the assets prices
/v1/assets/returns/average, to compute the assets average arithmetic returns from the assets arithmetic returns
/v1/assets/covariance/matrix, to compute the covariance matrix of the assets arithmetic returns
Mean-variance minimum variance frontier
Thanks to the computed average arithmetic returns and covariance matrix, it is possible to plot the mean-variance minimum variance frontier of the analyzed assets.
With Portfolio Optimizer, this is done thanks to the
/v1/portfolio/analysis/mean-variance/minimum-variance-frontier API endpoint.
With Portfolio Optimizer, it is also possible to simulate random portfolios, which are portfolios made of random assets weights.
This is done thanks to the
/v1/portfolio/construction/random API endpoint.
Which gives, on the same graph as the mean-variance minimum variance frontier:
The mean-variance minimum variance frontier is the set of portfolios in the (V,E) plane with the lowest volatility for any given return. ↩