Financial Toolbox
Product Description
- Financial Toolbox Introduction and Key Features
- Asset Allocation and Portfolio Optimization
- Risk Analysis and Investment Performance
- Fixed-Income Analysis and Option Pricing
- Financial Time Series Analysis
- Regression and Estimation with Missing Data
- Technical Indicators and Financial Charts
Asset Allocation and Portfolio Optimization
Financial Toolbox provides a comprehensive suite of portfolio optimization and analysis tools for performing capital allocation, asset allocation, and risk assessment. You can:
- Estimate asset return and total return moments from price or return data
- Compute portfolio-level statistics
- Perform constrained mean-variance optimization and analysis
- Examine the time evolution of efficient portfolio allocations
- Perform capital allocation
- Account for turnover and transaction costs in portfolio optimization problems
Example portfolio optimization application built using MATLAB, Financial Toolbox, and object-oriented design. The application enables the interactive selection of a portfolio, comparison to a benchmark, visualization, and reporting of key performance metrics.
Object-Oriented Portfolio Construction and Analysis
The toolbox provides portfolio optimization tools, which enable you to customize and extend the base behavior for your asset allocation or portfolio type using object-oriented programming. Two classes are provided: an abstract class for developing new portfolio types, and a mean-variance portfolio optimization class for traditional portfolio optimization problems. The portfolio object supports the entire workflow, from defining the portfolio problem to evaluating the efficient frontier, to setting up a record of purchase and sales.
Solving an example portfolio optimization problem along the efficient frontier using the object-oriented portfolio optimization tools. The toolbox helps you construct and solve a portfolio optimization problem using the Portfolio object (left), estimate the efficient frontier and the initial portfolio (top right), and create a blotter containing the asset weights for five equally spaced portfolios along the efficient frontier (bottom right).
Defining the Portfolio Optimization Problem
The portfolio optimization object provides a simplified interface for setting up and solving portfolio optimization problems that include descriptive metadata. You can specify a portfolio name, the number of assets in an asset universe, and asset identifiers, and also define an initial portfolio allocation. For mean-variance optimization, you can define asset return moments either by defining them as arrays or by estimating them from the return time series in a matrix or financial time series objects. Supported constraints include:
- Linear inequality
- Linear equality
- Bound
- Budget
- Group
- Group ratio
- Turnover
You can also work with proportional transaction costs in the portfolio optimization problem definition, which enables both gross and net portfolio return optimization.
Plot of efficient frontiers for an example portfolio optimization problem with and without proportional transaction costs (TX) and turnover (TO) constraints.
Error Checking and Validating the Portfolio
The portfolio optimization object provides error checking during the portfolio construction phase. In some cases, you may want to validate your inputs to or outputs from the portfolio optimization to reduce the time-consuming error checking done prior to solving the optimization problem. Two methods are provided for estimating bounds and checking problem feasibility.
Efficient Portfolio and Efficient Frontiers
Depending on your goals, you can identify efficient portfolios or efficient frontiers. The portfolio optimization object provides methods for both. You can solve for efficient portfolios by providing one or more target risks or returns. You can also obtain optimal portfolios on the efficient frontier by specifying the number of portfolios to find, or solve for the optimal portfolios at the efficient frontier endpoints.
Postprocessing and Trade Reporting
Once you have identified a portfolio’s risk and return, you can use the portfolio optimization object methods to troubleshoot results that seem questionable, adjust the problem definition to move toward an efficient portfolio, or set up an asset trading record. The portfolio object supports the generation of a trade record as a dataset array. You can use the dataset array to keep track of purchases and sales of assets and to capture trades to be executed.

Free Computational Finance Interactive Kit
Experience the power of MATLAB for computational finance.
Get free kit


