Portfolio Optimization: What is the best way to calculate trading system weights?

When you have more than one trading system to use you instantly face a problem related with the specific weights you should assign to your strategies. Your end goal is to maximize the risk adjusted return of your systems under live trading conditions but you only have information from back-testing results. Is there an ideal way to select the weights of your portfolio based on back-testing data such that the returns of your portfolio in real trading are maximized? On today’s post I’ll seek to answer this question using my personal research as well as published results from others online. We’ll look at the portfolio optimization problem and why the selection of an optimum setup is not as straightforward as it might initially appear.


There are mainly two types of strategies available when balancing a trading system portfolio (deciding which weights to give to each system). The first set of strategies are described as “naive strategies” and correspond to those strategies that do not make use of historical return data to decide what weights to assign. The simplest naive strategy is the equal-weight method, where all systems are given exactly the same weight, assuming that there is no way to know how to balance a portfolio beyond knowing that we want everything to trade equally. There are other naive strategies, such as balancing by frequency, where the frequency of trading systems is used to balance trading between systems. This means that a system with a higher frequency would have a lower weight and vice versa.

I will call the second set of strategies for portfolio balancing “designed strategies”. These strategies use the historical information available through back-testing to attempt to maximize the potential return of a portfolio. The most common designed strategy is to perform an optimization of portfolio weights that attempts to maximize the portfolio’s risk adjusted return in a portfolio back-test. In simple terms this means that you should choose your weights such that a risk adjusted return statistic – such as the Sharpe ratio – has the maximum possible value in the back-testing period. This is usually called a Markowitz optimization which seeks to find the portfolio’s historical efficient frontier so that we can use it in live trading.

So why would we ever choose naive strategies Vs more elaborate designed strategies? The main reason is that designed strategies find optimum weights for past performance which often fail to be the same optimum values for real live trading. The reason why this happens is due to the estimation and model errors within the portfolio optimization process. The back-testing data knows only the past and changes between system correlations in the future are bound to change the way in which systems interact and therefore make a balancing based on historical results clearly sub-optimal. Furthermore, the weighing process usually removes systems from trading (because it considers them detrimental to the portfolio’s historical Sharpe ratio) but this causes a significant reduction in the level of diversification available in the portfolio. You can read this article for a study comparing different designed strategies to naive strategies.


Say you have 100 systems and a Markowitz optimization process removes 50 system from trading, you will now trade only 50 systems that were selected with a significant estimation error. Perhaps in real trading those 50 systems would have been quite important to increase the level of return within the portfolio. When you use a naive balancing method that simply distributes weights equally among those 100 systems you will have the maximum possible degree of diversification – everyone trades equally – therefore any use of a designed strategy should justify this loss of diversification with a better guarantee of an increased live performance risk adjusted return. You can try to get away from this issue by constructing a method that is a hybrid between both, say you perform a Markowitz optimization of your 100 systems but then add X% risk to all systems, such that everyone trades but the Markowitz favored systems trade a bit more. These entropy enhancing methods show some merit but often underperform the equally weight method as well. Read this paper for more information.

The view is not very encouraging. We know from research in the field that when using trading systems attempting to balance to maximize historical performance gives sub-optimal results due to estimation errors and reductions in diversification. We also know that this problem becomes more pronounced as our set of systems becomes either larger or more uncorrelated. This is quite intuitive as having more systems increases our estimation errors while systems being more uncorrelated increases the diversification penalty from failing to use any one strategy. Long story short, the bigger and more uncorrelated your system set is the more difficult it will be for you to find a balancing method that performs better in live trading than a naive portfolio balancing strategy. When in doubt, use equal weights. 

Can we do anything then? Well, suppose that our goal is not to maximize performance under all market conditions – as traditional portfolio balancing suggests – but to reduce bad performance when market conditions are unfavorable. We know that our worst trading scenario is a random walk, as system equity curves would follow a negatively biased – due to the spread – random walk that would end up in bankruptcy, so we can think that our best shot at creating a good portfolio is simply to create the portfolio that shows the highest risk adjusted return when trading on random data sets. This means we should carry out simulations of our systems on a large number of random data series, then perform an optimization for each set of tests and then get an average optimum weight for our systems from all the optimizations on random data. Since we know random walk trading is the most unfavorable condition and we can shield against it – since we can create as many simulations on random data as we wish – we can therefore get a portfolio that is at least best performing under the worst conditions. This is most likely going to under-perform relative to the naive strategies under favorable conditions but it will be the optimum portfolio to trade when things go temporarily sour.

If you would like to learn more about how you can trade portfolios containing hundreds of trading systems and how different balancing methods work  please consider joining Asirikuy.com, a website filled with educational videos, trading systems, development and a sound, honest and transparent approach towards automated trading.

Print Friendly
You can leave a response, or trackback from your own site.

One Response to “Portfolio Optimization: What is the best way to calculate trading system weights?”

  1. josh Osborne says:

    I know that you focus on mechanical trading, but do you still keep up with those that are not trading with algorithms? On the non algorithm trading front, there is a free network out with a different type of trading style called Tastytrade.
    Have you heard of it, and if so, what do you think of their method of trading?
    They use research as well to come up with their trading methods, and the research is done by the data scientists on their show.

    Anyway, just wondering what your thoughts are.

Leave a Reply

Subscribe to RSS Feed Follow me on Twitter!
Show Buttons
Hide Buttons