Support for two new functions to set up tracking error constraints
for a `Portfolio`

object.

`setTrackingPort`

sets up tracking or benchmark portfolio for a tracking error constraint.`setTrackingError`

sets up a maximum portfolio tracking error constraint.

Credit scorecard supports two new functions for reviewing and converting predictor types:

`predictorinfo`

provides a summary of credit scorecard predictors and their properties.`modifypredictor`

enables you to set properties for credit scorecard predictors to change a predictor type from numeric to categorical or vice versa.

In addition, the `creditscorecard`

object has
two new properties, `NumericPredictors`

and `CategoricalPredictors`

that
have public `GetAccess`

and private `SetAccess`

,
that is, they cannot be set at the command line using the dot notation.

Support for MATLAB^{®} table input for `transprob`

and `transprobprep`

.

Support for simple interest for the following functions:

`zero2disc`

— Support added for`Compounding`

=`0`

for simple interest, where there is no compounding.`disc2zero`

— Support added for`Compounding`

=`0`

for simple interest, where there is no compounding.`zero2fwd`

— Support added for`InputCompounding`

=`0`

for simple interest, where there is no compounding, and also supports`OutputCompounding`

=`0`

for simple interest Functionality Being Changed for`fwd2zero`

,`zero2fwd`

,`pyld2zero`

, and`zero2pyld`

.`fwd2zero`

— Support added for`InputCompounding`

=`0`

for simple interest, where there is no compounding, and also supports`OutputCompounding`

=`0`

for simple interest. See Functionality Being Changed for`fwd2zero`

,`zero2fwd`

,`pyld2zero`

, and`zero2pyld`

.`date2time`

— Support added for`Compounding`

=`0`

for simple interest, where there is no compounding.`zero2pyld`

— Support added for`InputCompounding`

=`0`

for simple interest, where there is no compounding. See Functionality Being Changed for`fwd2zero`

,`zero2fwd`

,`pyld2zero`

, and`zero2pyld`

.`pyld2zero`

— Support added for`OutputCompounding`

=`0`

for simple interest, where there is no compounding. See Functionality Being Changed for`fwd2zero`

,`zero2fwd`

,`pyld2zero`

, and`zero2pyld`

.`zbtprice`

— Support added for`OutputCompounding`

=`0`

for simple interest, where there is no compounding.`zbtyield`

— Support added for`OutputCompounding`

=`0`

for simple interest, where there is no compounding.

`fwd2zero`

, `zero2fwd`

, `pyld2zero`

, and `zero2pyld`

These functions now accept additional optional input arguments
that are specified as name-value pairs: `InputCompounding`

, `OutputCompounding`

, `InputBasis`

,
and `OutputBasis`

.

`ugarch`

will be removed
in a future release. Use the `garch`

object from the Econometrics Toolbox™ instead.

Function Name | What Happens When You Use This Function | Use This Function Instead | Compatibility Considerations |
---|---|---|---|

`ugarch` | Warns | `estimate` | Replace all instances of `ugarch` withthe `garch` object
to create conditional variance models and use the `estimate` function to
fit conditional variance models to data. |

For more information on migrating `ugarch`

code
to `garch`

,
see Likelihood Ratio Test for Conditional Variance Models.

`ugarchpred`

will be removed
in a future release. Use the `garch`

object from the Econometrics Toolbox instead.

Function Name | What Happens When You Use This Function | Use This Function Instead | Compatibility Considerations |
---|---|---|---|

`ugarchpred` | Warns | `forecast` | Replace all instances of `ugarchpred` withthe `garch` object
to create conditional variance models and use the `forecast` function to
generate minimum mean square error forecasts. |

For more information on migrating `ugarchpred`

code
to `garch`

,
see Forecast a Conditional Variance Model.

`ugarchsim`

will be removed
in a future release. Use the `garch`

object from the Econometrics Toolbox instead.

Function Name | What Happens When You Use This Function | Use This Function Instead | Compatibility Considerations |
---|---|---|---|

`ugarchsim` | Warns | `simulate` | Replace all instances of `ugarchsim` withthe `garch` object
to create conditional variance models and use the `simulate` function to
generate Monte Carlo simulations from conditional variance models. |

For more information on migrating `ugarchsim`

code
to `garch`

,
see Simulate Conditional Variance Model.

Function Name | What Happens When You Use This Function | Use This Function Instead | Compatibility Considerations |
---|---|---|---|

`frontcon` | Error | `Portfolio` | Replace all instances of `frontcon` with`Portfolio` . |

For more information on migrating `frontcon`

code
to `Portfolio`

, see frontcon Migration to Portfolio Object.

`portopt`

has been partially
removed and no longer accepts `ConSet`

or `varargin`

input
arguments. In this release, a modified `portopt`

only
solves a portfolio problem for long-only fully invested portfolios.
Use `Portfolio`

instead.

Function Name | What Happens When You Use This Function | Use This Function Instead | Compatibility Considerations |
---|---|---|---|

`portopt` | Error if `ConSet` or `varargin` input
arguments are used | `Portfolio` | If you want to solve a portfolio problem that is more than
a long-only fully invested portfolio, replace all instances of `portopt` with `Portfolio` . |

For more information on migrating `portopt`

code
to `Portfolio`

, see portopt Migration to Portfolio Object.

Enhancements to

`autobinning`

for the`Algorithm`

name-value pair argument, where a new option`'Monotone'`

is supported.`Monotone`

is an optimal binning algorithm that ensures monotonicity in the weight of evidence (WOE) of the resulting bins.Credit scorecards support model validation using

`validatemodel`

that provides the following three techniques:Receiver Operating Characteristic (ROC)

Cumulative Accuracy Profile (CAP)

Kolmogorov-Smirnov (KS)

Credit scorecards support probability of default using

`probdefault`

.

`autobinning`

support for `'Monotone'`

has compatibility impact The `autobinning`

function
for credit scorecards has an incompatibility with the previous release.
The latest version of `autobinning`

supports,
by default, new binning behavior where the default for the `'Algorithm'`

argument
is now a new name-value pair argument for `'Monotone'`

.
In addition, the algorithms `'EqualFrequency'`

and `'EqualWidth'`

now
support `'SortCategories'`

option for categorical
data. By default, categorical data is sorted by `'odds'`

before
binning.

To recover the previous behavior, use `autobinning`

with
the following name-value pairs:

For the syntax

`sc = autobinning(sc)`

in R2014b, starting in R2015a, the syntax is equivalent to using:sc = autobinning(sc,'Algorithm','EqualFrequency','AlgorithmOptions',{'SortCategories','None'})

For the syntax

`sc = autobinning(sc,'Algorithm','EqualWidth')`

in R2014b, starting in R2015a, the syntax is equivalent to using:sc = autobinning(sc,'Algorithm','EqualWidth','AlgorithmOptions',{'SortCategories','None'})

For the syntax

`sc = autobinning(sc,'Algorithm','EqualFrequency')`

in R2014b, starting in R2015a, the syntax is equivalent to using:sc = autobinning(sc,'Algorithm','EqualFrequency','AlgorithmOptions',{'SortCategories','None'})

Life tables compute the probabilities, hazards, and survivor counts associated with people who are alive at a specified age and have the likelihood of death within a given period in the future. Four main parametric mortality models are supported for life studies: Gompertz, Gompertz-Makeham, Siler, and Heligman-Pollard.

`lifetableconv`

— Convert life table data from either raw form or generated form into different formats and series.`lifetablefit`

— Calibrate parametric life table models based on life table data.`lifetablegen`

— Generate life table data from parametric models.

New example showing how to use Parallel Computing Toolbox™ with SDE functions to improve performance. For details, see Improving Performance of Monte Carlo Simulation with Parallel Computing.

Function Name | What Happens When You Use This Function | Use This Function Instead | Compatibility Considerations |
---|---|---|---|

`frontcon` | Warns | `Portfolio` | Replace all instances of `frontcon` with`Portfolio` . |

To turn off the `frontcon`

warning, see Turning
off the Warning Messages for frontcon.

For more information on migrating `frontcon`

code
to `Portfolio`

,
see frontcon
Migration to Portfolio Object.

`portopt`

will
be partially removed in a future release and will no longer accept `ConSet`

or `varargin`

arguments.
In a future release, `portopt`

will
solve the portfolio problem for long-only fully invested portfolios.
Use `Portfolio`

instead.

Function Name | What Happens When You Use This Function | Use This Function Instead | Compatibility Considerations |
---|---|---|---|

`portopt` | Warns | `Portfolio` | If you want to solve a portfolio problem that is more than
a long-only fully invested portfolio, replace all instances of `portopt` with `Portfolio` . |

To turn off the `portopt`

warning, see Turning
off the Warning Messages for portopt.

For more information on migrating `portopt`

code
to `Portfolio`

,
see portopt
Migration to Portfolio Object.

Modeling support for credit scorecard development that includes the following new functions:

`creditscorecard`

creates the`creditscorecard`

object.`autobinning`

applies automatic binning for single or multiple predictors.`bininfo`

returns bin information for a given predictor.`modifybins`

lets you modify bins for a given predictor.`bindata`

bins a dataset using the existing binning rules and performs Weight of Evidence (WOE) transformation.`plotbins`

plots histogram counts for predictor variables.`fitmodel`

fits a logistic regression model using Weight of Evidence (WOE) data.`setmodel`

sets the predictors and coefficients of a linear logistic regression model fitted outside the`creditscorecard`

object and returns an updated`creditscorecard`

object.`displaypoints`

returns scorecard points information, such as points per bin or points per predictor.`formatpoints`

lets you modify point information, such as scaling or rounding.`score`

determines the score for each row of a dataset.

For more information, see Using creditscorecard Objects, Credit Scorecard Modeling Workflow, and Case Study for a Credit Scorecard Analysis.

`fmincon`

functionSupport for `fmincon`

gradients when using `setSolver`

for
CVaR portfolio optimization provides increased performance for CVaR
optimizations.

Certain SDE models that use a constant parameter or a deterministic function of time have a performance improvement.

Support for financial fan charts using `fanplot`

.
Use `fanplot`

to plot the combination of historical
and forecast data to visualize possible outcomes.

The following SDE functions accept parameters you can specify
as a single input argument that is identified as a deterministic function
of time if the function accepts a scalar time `t`

as
its only input argument.

In addition, `ts2func`

accepts
a new parameter value argument for `Deterministic`

to
support deterministic functions of time.

`cuttingplane`

solver for PortfolioCVaR optimization changed The default option for the `cuttingplane`

solver
for a `PortfolioCVaR`

object has changed. The `cuttingplane`

default
option for `MasterSolverOptions`

has changed from

optimoptions('linprog','Algorithm','Simplex','Display','off')

optimoptions('linprog','Algorithm','Dual-Simplex','Display','off')

The following Stochastic Differential Equation (SDE) functions have moved from Econometrics Toolbox to Financial Toolbox™:

The following sample data sets and examples from the `matlab/toolbox/econ/econdemos`

directory
have moved to `matlab/toolbox/finance/findemos`

:

`Demo_AmericanBasket`

`Example_BarrierOption`

`Example_BlackScholes`

`Example_CEVModel`

`Example_CIRModel`

`Example_CopulaRNG`

`Example_LongstaffSchwartz`

`Example_StratifiedRNG`

`Data_GlobalIdx2.mat`

Monte Carlo simulation performance enhancements to the approximate
solution function (`simBySolution`

)
of GBM and HWV models with constant parameters.

New portfolio object `PortfolioMAD`

for
mean-absolute deviation (MAD) portfolio optimization.

`optimoptions`

support `optimoptions`

support
when using solver options for `Portfolio`

, `PortfolioCVaR`

,
and `PortfolioMAD`

objects
for portfolio optimization.

There are two possible incompatibility impacts:

When using

`Portfolio`

or`PortfolioCVaR`

objects and the associated`Portfolio.setSolver`

or`PortfolioCVaR.setSolver`

methods, the default solver options now reference an`optimoptions`

object, instead of an`optimset`

structure. If you now use default solver options and operating on them assuming this is an`optimset`

structure, some of those operations may no longer work.The

`Portfolio`

or`PortfolioCVaR`

objects and the associated`Portfolio.setSolver`

or`PortfolioCVaR.setSolver`

methods let you pass name-value pair arguments of solver options. In the past, setting solver options that were unused by the solver of choice would simply have no effect, because`optimset`

would accept the options, and the solver would simply ignore them. In contrast,`optimoptions`

objects generate an error if you attempt to set an invalid option.

`optimoptions`

is
the default and recommended method to set solver options, however, `optimset`

is
also supported.

`ftstool`

) import of Excel XLSX files on Linux and Mac OS XSupport for `ftstool`

import
of Excel^{®} XLSX files on Linux^{®} and Mac OS X.

`PortfolioCVaR`

objectNew solver option (`'cuttingplane'`

) for `PortfolioCVaR`

object
for conditional value-at-risk (CVaR) portfolio optimization. For more
information, see `setSolver`

.

`transprobbytotals`

errors when using the algorithm input argument The `'totals'`

input argument to `transprobbytotals`

is
typically generated by `transprob`

.
Because `transprob`

includes
an `'algorithm'`

field in this structure since R2011b,
you no longer need to specify the `'algorithm'`

argument
using a name-value pair when calling `transprobbytotals`

.
If you specify an `'algorithm'`

argument as a name-value
pair when calling `transprobbytotals`

,
you now receive an error.

Specifying the`'algorithm'`

as a name-value
pair argument to `transprobbytotals`

now
causes an error. If you started using this functionality in R2011b
or later, most likely you don't have to take any action. If you have
used this functionality before R2011b, make sure you remove the `'algorithm'`

name-value
pair from calls to `transprobbytotals`

,
and that the `'totals'`

input argument to `transprobbytotals`

contains
an`'algorithm'`

field indicating the desired algorithm.
In most cases, the latter can be achieved by recreating the `'totals'`

structure
with a call to `transprob`

which
automatically adds the`'algorithm'`

field since R2011b.

`datenum`

, `datestr`

, `datevec`

with dates in Financial products might produce inconsistent results Any time you enter a cell array of date strings that are in
different date formats using the MATLAB functions `datenum`

, `datestr`

,
and `datevec`

, these functions previously returned
an error. In R2013a, this behavior has changed. In Financial products
this change can cause an unexpected date format to generate an incorrect
value. For example, the following use of `datevec`

returned
an error before R2013a because of the inconsistent date formats, but
in R2013a this code does not return an error.

datevec({'10-Oct-2012','10-1-2012'}),

As a best practice, you should convert date strings to date numbers before using any functions in Financial Toolbox that use dates as inputs. For more information, see No strict-match requirements for month formats when converting date strings in the MATLAB release notes.

New portfolio object `PortfolioCVaR`

for
conditional value at risk (CVaR) portfolio optimization.

Support for calculating spread measures for floating-rate bonds
using `floatdiscmargin`

and `floatmargin`

.

Support for calculating bond horizon return using `bndtotalreturn`

.

`cfamounts`

Performance improvement for calculating cash flows using `cfamounts`

.

Support is added to `xirr`

for
a global search heuristic to enhance the robustness of `xirr`

.

The portfolio object supports one-way turnover constraints using
the new methods `setOneWayTurnover`

and `getOneWayTurnover`

.

The portfolio object supports estimating an efficient portfolio
that maximizes the Sharpe ratio using the new method `estimateMaxSharpeRatio`

.

Updated `cfamounts`

now
supports time-varying `CouponRate`

and `Face`

scheduling,
including support for sinking fund bonds.

Support is added for credit quality thresholds with `transprobtothresholds`

and `transprobfromthresholds`

.
Support is added for data preprocessing for `transprob`

using `transprobprep`

.
Support is added for user-defined ratings and nonsquare transition
matrices with `transprobgrouptotals`

and `transprobbytotals`

.
For more information, see Credit Risk Analysis.

A new demo shows how to forecast corporate default rates. This includes backtesting and stress testing examples. Run the demo at the MATLAB command line by entering:

showdemo Demo_DefaultRatesForecasts

Function Name | What Happens When You Use This Function | Use This Function Instead | Compatibility Considerations |
---|---|---|---|

`proddf` | Warns | `bndprice` | Replace all instances of `proddf` with`bndprice` . |

`proddfl` | Warns | `bndprice` | Replace all instances of `proddfl` with`bndprice` . |

`proddl` | Warns | `bndprice` | Replace all instances of `proddl` with`bndprice` . |

`yldoddl` | Warns | `bndyield` | Replace all instances of `yldoddl` with`bndyield` . |

`yldoddf` | Warns | `bndyield` | Replace all instances of `yldoddf` with`bndyield` . |

`yldoddfl` | Warns | `bndyield` | Replace all instances of `yldoddfl` with `bndyield` . |

`prbond` | Warns | `bndprice` | Replace all instances of `prbond` with`bndprice` . |

`yldbond` | Warns | `bndyield` | Replace all instances of `yldbond` with`bndyield` . |

`checksiz` | Warns | N/A | Remove all instances from your code. |

`checktyp` | Warns | N/A | Remove all instances from your code. |

`checkrng` | Warns | N/A | Remove all instances from your code. |

Many warning and error IDs have changed from their previous versions. These warnings or errors typically appear during a function call.

If you use warning or error IDs, you might need to change the
strings you use. For example, if you turned off a warning for a certain
ID, the warning might now appear under a different ID. If you use
a `try`

/`catch`

statement in your
code, replace the old identifier with the new identifier. There is
no definitive list of the differences, or of the IDs that changed.

The `totals`

input to `transprobbytotals`

is
typically generated by `transprob`

.
Because `transprob`

now
includes an `algorithm`

field in this structure,
you no longer need to specify the `algorithm`

argument
when calling `transprobbytotals`

.

In a future release, specifying the `algorithm`

argument
to `transprobbytotals`

will
error. Currently, it is still permissible to specify the `algorithm`

argument,
although it usually has no effect.

New portfolio object and methods support mean-variance portfolio optimization with general linear constraints, transaction costs, and turnover constraints. For more information, see Portfolio Optimization Tools and Portfolio Optimization Objects.

Support for estimation of transition matrices based on credit-migration
history using both cohort and duration methods. For more information,
see `transprob`

, `transprobbytotals`

,
and Estimation
of Transition Probabilities.

`portopt`

is
enhanced for improved speed. Specifically, a broader class of problems
now uses the faster linear complementarity programming (LCP) algorithm
to obtain portfolios on the efficient frontier.

A new demo shows how to use Statistics Toolbox functions to support credit ratings. Run the demo at the MATLAB command line by entering:

echodemo demo_creditrating

`cfamounts`

is
enhanced to support new parameter/value pairs for swap functionality.

No New Features or Changes

Support for the `Basis`

day-count convention
for BUS/252. BUS/252 is the number of business days between the previous
coupon payment and the settlement data divided by 252. BUS/252 business
days are non-weekend, non-holiday days. The `holidays.m`

file
defines holidays.

The current `holidays`

function
covers holidays and non-trading days from 1950 to 2050. Using `nyseclosures`

,
you can determine all known and anticipated closures from January
1, 1885 to December 31, 2050.

Support for the following enhancements to bond pricing functions:

Provide the ability to specify the compounding frequency separately from the coupon frequency.

Enable specification of a discounting basis. A discounting basis has two purposes in Price/YTM calculations:

Computing the accrued interest

Computing the discount factors

Support the specification of a formula for computing the interest in the last coupon period.

The enhanced bond pricing functions are:

Function | Purpose |
---|---|

Calculate fraction of coupon period before settlement. | |

Price fixed-income security from yield to maturity. | |

Calculate yield to maturity for fixed-income security. | |

Calculate static spread over spot curve. | |

Calculate bond duration given price. | |

Calculate bond duration given yield to maturity. | |

Calculate bond convexity given price. | |

Calculate bond convexity given yield. | |

Calculate cash flow and time mapping for a bond portfolio. | |

Calculate time factors corresponding to bond cash flow dates. |

Added support for `bndkrdur`

to
calculate key rate duration for bonds to determine the sensitivities
of a bond to nonparallel changes in the yield curve. For more information,
see Calculating
Key Rate Durations for Bonds.

No New Features or Changes

The following functions now support day count conventions for
the `basis`

argument based on ISDA (International
Swap Dealers Association) actual/365:

The following functions now support day count conventions for
the `basis`

argument to support 30/360 International
Securities Market Association (ISMA) convention as a variant of 30/360E
with annual compounding:

The `createholidays`

function
now supports `http://www.FinancialCalendar.com`

trading
calendars. This function can be used from the command line or from
the Trading Calendars graphical user interface. Using `createholidays`

,
you can create `holiday.m`

files, in conjunction
with `FinancialCalendar.com`

data, that can be used
instead of the standard `holidays.m`

that ships with Financial Toolbox software.

The new diagonal covariance matrix estimation feature makes
it possible to estimate large-scale factor models by treating the
residual errors as being jointly independent. The following functions
support `CovarFormat`

, a new input argument:

Two new functions, `arith2geom`

and `geom2arith`

,
support portfolio analysis.

The following new functions are added to compute common investment performance and risk-adjusted metrics:

`sharpe`

, computes the sharpe ratio.`inforatio`

, computes information ratio and tracking error.`portalpha`

, computes risk-adjusted alpha and return.`lpm`

, computes sample lower partial moments.`elpm`

, computes expected lower partial moments.`maxdrawdown`

, computes the drop from maximum to minimum return over a period of time.`emaxdrawdown`

, computes the returns that are transformed into a linear Brownian motion with drift.

As of this release the functionality previously available in Financial Time Series Toolbox has been incorporated into Financial Toolbox software. Financial Toolbox documentation has been modified to include the documentation previously available in the Financial Time Series User's Guide.

Because use of Financial Time Series Toolbox required the purchase and installation of Financial Toolbox software, all customers previously licensed for Financial Time Series Toolbox will continue to have access to it.

The new functions in Version 3.0 of Financial Toolbox software fall into these four categories:

Multivariate Normal Regression With Missing Data (Expectation Conditional Maximization)

Least Squares Regression With Missing Data (Expectation Conditional Maximization)

`mvnrfish` | Fisher information matrix for multivariate normal or least-squares regression |

`mvnrmle` | Multivariate normal regression (ignore missing data) |

`mvnrobj` | Log-likelihood function for multivariate normal regression without missing data |

`mvnrstd` | Evaluate standard errors for multivariate normal regression model |

`ecmmvnrfish` | Fisher information matrix for multivariate normal regression model |

`ecmmvnrmle` | Multivariate normal regression with missing data |

`ecmmvnrobj` | Log-likelihood function for multivariate normal regression with missing data |

`ecmmvnrstd` | Evaluate standard errors for multivariate normal regression model |

`convert2sur` | Convert a multivariate normal regression model into a seemingly unrelated regression model |

Version 2.5 introduces a set of financial statistical computation routines that compute values, such as mean and covariance, when there are missing data elements within a larger data set. These routines implement the Expectation Conditional Maximization (ECM) algorithm with various options that depend on the percentage of missing at random (MAR) data within the data set. The table below lists the functions that implement the ECM algorithm in Financial Toolbox software.

The following ECM functions have been added at this release.

Release | Features or Changes with Compatibility Considerations |
---|---|

R2015b | |

R2015a | |

R2014b | None |

R2014a | None |

R2013b | `optimoptions` support |

R2013a | |

R2012b | None |

R2012a | None |

R2011b | |

R2011a | None |

R2010b | None |

R2010a | None |

R2009b | None |

R2009a | None |

R2008b | None |

R2008a | None |

R2007b | None |

R2007a | None |

R2006b | None |

R2006a | None |

R14SP3 | None |

Was this topic helpful?