Market System Analyzer (MSA) is a software application for traders that optimizes 12 different position sizing methods. The software is designed to increase returns and reduce risk for existing trading systems and methods. MSA can be used to evaluate trading systems or methods, explore different position sizing options, optimize trade sizes, and perform position sizing calculations on a trade by trade basis.
Position sizing is the process of determining the number of shares or contracts to trade. Two of the more popular methods are fixed fractional and fixed ratio position sizing. Both of these methods have an adjustable parameter that determines how quickly contracts or shares are added as the account equity grows or trading profits accumulate. A suitable value for the position sizing parameter -- for example, the risk percentage of fixed risk position sizing -- isn't always obvious. Position sizing optimization is a formal and automatic method for choosing the position sizing parameter based on specific trading objectives.
The position sizing optimization feature of Market System Analyzer is accessed from the Analysis menu for market systems or via the Portfolio menu for portfolios.
For market-system files, the Analysis menu contains the Optimize Position Sizing command.
This command opens the Optimize Position Sizing window, which allows the user to select the performance measure to maximize and an optional drawdown constraint. The user can also choose whether to optimize over all trades in the current sequence or in a walk-forward manner over a sliding window of trades. The optimization can be performed over the current sequence of trades or using Monte Carlo analysis. There is also a choice of search methods.
Selecting the Optimize Position Sizing command brings up the Optimize Position Sizing window.
If "Walk forward" is chosen, the optimization will be repeated for each window as it walks forward one trade at a time. For example, suppose there are 100 trades in the current sequence, and the optimization window is 50 trades in length. The first optimization will be performed over trades 1 - 50. The optimization window then slides forward one trade so that the next optimization is over trades 2 - 51. The third optimization will be over trades 3 - 52, and so on until the last optimization is performed over trades 51 - 100.
In walk-forward optimization, an optimal result is obtained for each window. MSA optionally plots the main chart window with the results applied in an out-of-sample manner if desired. For example, the parameter value optimized over trades 1 - 50 would be applied to calculate the number of contracts for trade 51. In this way, the optimization results can be tested on data not used in the optimization; i.e., without the benefit of hindsight. This feature provides a nearly automatic walk-forward optimization capability.
Clicking the Optimize button initiates the optimization. Once the optimal results are found, they're displayed in the Optimization Results window, as shown below.
Example of optimal position sizing results generated by Market System Analyzer.
To optimize the position sizing for a portfolio of market systems, MSA uses a genetic optimizer. The Optimize Position Sizing window, as shown below, is similar to the one shown above for market systems. However, there are additional options for the genetic algoritm, such as the population size and number of generations.
Portfolio optimization is performed using a genetic optimization algorithm.
After the portfolio optimization is complete, the optimal results are displayed in the Optimization Results window, as shown below.
Portfolio optimization results showing the optimal position sizing parameters for a small portfolio of four market systems.
To learn how to analyze and exploit trade dependency using MSA, click here.