IITPortf™ is an advanced system for portfolio optimization and backtesting. The core engine enables very fast computation of optimal portfolios, even for a large universe of several thousand assets. The optimization problem constructed and solved is based on well-established and familiar mean-variance techniques, as pioneered by Markowitz. As such, while the system is primarily oriented towards equity optimization, it is applicable to any universe of assets that can be reasonably analyzed in a mean-variance framework. This includes, for instance, the optimization of a fund of funds across an underlying universe of individual mutual and hedge funds.

Defining aspects of the optimization model

  • The risk model employed may be based on a fundamental factor model, a statistical (or blind) factor model, or a hybrid combination of the two. A fundamental factor model can be imported from other sources or estimated from available data using tools provided with the system. A statistical model is estimated on the fly by extracting a specified number of principal components from a time series of asset returns. In a hybrid model, the statistical model is based on the returns unexplained by the fundamental factor model.
  • For the “mean” side of the optimization, a prediction of expected returns is either provided from external sources or generated (using provided tools) from an estimated fundamental factor model.
  • Given the specified expected returns and (co)variances of returns, the user can choose either to optimize a weighted combination of expected return and variance or to maximize expected return subject to an upper bound on risk. The risk component can be calculated in absolute terms or relative to a benchmark portfolio (i.e., a tracking error). Any desired benchmark weights can be provided as data.

Important capabilities and features

  • The optimization covers long-only, leveraged, and long-short portfolios, as determined by specified constraints on four standard measures of portfolio leverage: long, short, gross, and net.
  • Uniform and/or asset-specific bounds on holdings can be specified, either in absolute terms or relative to the weights in the benchmark portfolio.
  • Simple asset-specific logical switches may be provided to stipulate that an existing position must be sold off, must be left as is, can increase only, can decrease only, or can be modified in any way justified by the optimization.
  • An upper bound can be specified on the number of active positions in the optimized portfolio.
  • The user may provide data on asset factor loadings for any number of asset fundamentals or risk factors (e.g., dividend yields, earnings-to-price ratios). These loadings may be used as filters to exclude certain assets from the optimized portfolio. Moreover, total portfolio exposure to a risk factor can be bounded (above and below), either in absolute terms or relative to the exposure of the benchmark portfolio.
  • Assets may be assigned to any number of groupings (e.g., sectors or industries), and the composition of the optimized portfolio across a grouping can be constrained, either in absolute terms or relative to the composition of the benchmark portfolio.
  • Turnover from an existing portfolio can be constrained.
  • Uniform or asset-specific transaction costs can be specified.
  • All parameter and data input files are plain text files, as are various output files reporting the results of optimizations and backtests.

Graphical user interface

  • A user interface component for optimization and backtesting provides for specifying the various preferences and constraints relevant to constructing the optimization problem. It furthermore dispatches an optimization for a single-period or a full backtest process across many periods. Following execution, the interface provides various tabular and graphical views of the optimization and backtest results.
  • A user interface component for data preparation provides for specifying the selection and usage of data on asset fundamentals, returns, bounds, transaction costs, etc. This interface also supports the specification and estimation of a fundamental factor model, as well as generation of expected returns consistent with the estimated factor model. This capability enables a user to construct his/her own customized factor models appropriate to different circumstances and strategies.

Links to other systems and data

Zacks Research System

For users of the Zacks Research System, IIT distributes a set of command files that work with so-called DBM scripts and DbDump scenario files to extract and export data from Zacks databases that is subsequently converted by an IIT program into the IITPortf™ format for asset-specific data. The distribution of this data export machinery includes an example DBM script and matching command files to generate DbDump scenario files. Having performed a complete data export, a Zacks user can employ all aspects of the IITPortf™ system. In the case of long-only portfolios optimized with only a statistical factor model, it is also possible to invoke IITPortf™ as a diversification method within the Zacks Trading Strategy Evaluator application.

Custom Integrations

IIT has worked with users to develop custom procedures for transforming user data into the format used by IITPortf™. Such transformations have included, for example, a method for converting international data provided for different collections of trading days into a uniform calendar for which not all assets can be traded on a given day. IIT is prepared to assist new users in developing appropriate data integration procedures, providing as much or as little of the implementation as the user desires. Experience shows that no more than a few days of effort is likely to be required.