File Exchange

## Using MATLAB to Optimize Portfolios with Financial Toolbox

version 1.0.0.1 (118 KB) by Bob Taylor

### Bob Taylor (view profile)

Scripts and data to demonstrate the new Portfolio object in Financial Toolbox.

Updated 01 Sep 2016

A .zip file contains a series of scripts that were used in the MathWorks webinar "Using MATLAB to Optimize Portfolios with Financial Toolbox." The scripts demonstrate features of the Portfolio object and follows with case studies that demonstrate how to customize the tools for different tasks, including Sharpe/information ratio optimization and 130/30 portfolios. A readme.txt. file in the .zip folder describes how to use the scripts.

### Cite As

Bob Taylor (2020). Using MATLAB to Optimize Portfolios with Financial Toolbox (https://www.mathworks.com/matlabcentral/fileexchange/31290-using-matlab-to-optimize-portfolios-with-financial-toolbox), MATLAB Central File Exchange. Retrieved .

Ewen Chan

### Ewen Chan (view profile)

Bob:

"The BlueChipStocks file contains monthly total return data for 44 stocks, 1 market index, and 1 cash index."

Are you measuring the return from month-to-month or are you measuring the return based on some other reference point? (e.g. if you had \$10000 invested into that asset at the start of the availability of the asset, is your return calculated based on that hypothetical \$10000 investment, or is it something else)?

Thank you.

Salvatore Pronesti

mono

### mono (view profile)

correction:

in the script, the backtest is performed in quarter, then it is converted into annual (times pfactor).

but in figure(1), the input variable 'X' is in month, then [srsk, sret] = p.estimatePortMoments(swgt) gives the risk and result also in month. Then times pfactor convert it into quarterly result but NOT in annual.

mono

### mono (view profile)

If I understood correctly, in 'part2_strategy.m' file, PortRisk, PortReturn as well as PortMean, PortSigma are converted into quarterly period (times pfactor or sort(pfactor)). So the plotted figure(1) and printed results are also in quarter NOT in annual. Not sure if you mean to do so.

Great scripts.
mono

erdek15

### erdek15 (view profile)

Dear Bob,

Thank you very much for this. I have a question regarding the Map variable. When you said "...which assets were in the universe on a given date", does it mean certain assets were simply non-existent at certain point in time (i.e. delisted from the exchange)?

meng wang

Great demo!

Cyrus

Ales Kudrna

Chongwu Guo

Amazing model

Bob Taylor

### Bob Taylor (view profile)

The Portfolio object has the methods estimateFrontierByReturn and estimateFrontierByRisk, where the former provides portfolios for specified portfolio returns and the latter provides portfolios for specified portfolio risks. Once you have portfolios from these methods, the methods estimatePortReturn and estimatePortRisk provide portfolio returns and risks for specified portfolios.

In a mean-variance framework with normally-distributed asset returns, the periodicity of the data has no impact on the portfolios on the efficient frontier. The portfolio returns and risks, however, will depend upon the periodicity of underlying asset returns.

Hua

### Hua (view profile)

Dear Bob Taylor,

How could I find out for what the risk is for a given target return? (line 130)
I can look at the graph and make an estimation but is there a way to output the exact number??

Also I am working on daily data and plotting an efficient frontier for every three month. would it still work?

I look forward to hear back from you, any help will be high appreciated.

Hua

Narek

Bob Taylor

### Bob Taylor (view profile)

The webinar and scripts illustrate various ways to implement portfolio optimization under an assumption that you already have the data you need (gathering, managing, scrubbing, and forming total returns data can be a messy or easy process depending upon which data sources you might be able to access). The MATLAB Datafeed Toolbox has a good selection of sources although some sources require that you to have a license to obtain such data.

The BlueChipStocks file contains monthly total return data for 44 stocks, 1 market index, and 1 cash index. These data are in the variable Data with corresponding asset identifiers in the variable Asset and (month-end) dates in the variable Date. The last variable Map contains indicators that match the pattern of Data to identify which assets were in the universe on a given date.

If you have monthly total return data, you should be able to modify these four variables to suit your requirements and the scripts ought to work with minor modification (for example, you would have to specify the time period for backtests and so forth).

Arslan Habib, CFA

### Arslan Habib, CFA (view profile)

The question is how to create the file named bluechipstocks. Please help. I am stuck at this point and its useless I can not define my stocks and time period my choice. Any help will he highly appreciated. You can also send email at arslanhabbib@gmail.com

Arslan Habib, CFA

### Arslan Habib, CFA (view profile)

In this video you can not change the stocks in the bluechipstocks sheet. How will change the bluechipstocks sheet to use stocks which i want instead of the stocks you have ?

rakesh

thnks

Robin

Robin

### Robin (view profile)

Many thanks for part1_intro - of great help for my master's thesis' research! Question: in what way does "Confirm that Maximum Sharpe Ratio is a Maximum" fulfill it's purpose as the Sharpe generated there has different values (risk, return) from the one generated in "Maximize the Sharpe Ratio"?

Benjamin

### Benjamin (view profile)

where is "map" coming from? There doesn't seem to be any correspondance between map and when the assets were live.

oussama salhi

Very good model

Raymond Morano

### Raymond Morano (view profile)

I see the portfolio object in release 2007B