Naive optimization methods for trading system portfolios

On my last article about portfolio balancing methods for Forex trading systems we discussed how the use of historical portfolio performance to find optimum portfolios for future trading becomes less and less useful as the number of systems added becomes larger and less correlated. Due to these reasons we are left to find other methods for portfolio balancing – what are commonly referred to as “naive” methods – that can help us balance the system weights within our portfolios to achieve optimum forward performance. On today’s post we will be discussing several possible balancing methods for portfolio trading, why they might or might not work and how they are to be implemented for the balancing of your trading system arsenal.

$w_i = T\times\frac{cf_i}{\sum_{x=1}^{N}cf_x}$  (Equation 1)

$cf_i = \frac{\sum_{x=1}^{N}f_x}{f_i}$ (Equation 2)

 

$w_i = System\, i’s\, weight$
$T = Total\, portfolio\, risk$
$N = Total\, number\, of\, systems$
$cf_x = Compensation factor\, value\, for\, each\, system\, x$
$cf_i = Compensation factor\, value\, for\, system\, i$
$f_x = Factor\, value\, for\, each\, system\, x$
$f_i = Factor\, value\, for\, system\, i$

What is a naive portfolio balancing method? Naive methods are methods that do not require any calculation of portfolio performance in order to come to a conclusion about what to trade while non-naive methods do require them. For example the markowitz portfolio balancing methodology uses the covariance matrix of your systems to find the efficient historical frontier to estimate what the best system combination would be and so it is a non-naive method. The simplest possible method for portfolio balancing, giving everything the same weight, is a naive balancing method as it does not make use of any historical portfolio performance in order to come to a conclusion about what to trade. However this is not the best choice when balancing trading system portfolios.

The issue with equal weight balancing is that it has a fundamentally flawed core assumption: that everything we trade is the same. This means that if you have 3 systems, one trades once a week, the other once a year and the other once every minute the equal weight method will have a resulting performance that will be mainly that of system 3 – the highest frequency system – as the other systems will have very little participation in the overall results of the portfolio. If the total portfolio risk was 1% and every system risked 0.33% per trade but system 1 took that risk only once a year while system 3 took it once every minute it is not hard to see how the portfolio would be severely biased according to frequency. Other naive methods can help us eliminate this bias by establishing compensation factors that attempt to eliminate it.

Selection_463

This brings us to frequency-based balancing as the next form of naive portfolio building. This method is part of a group of techniques I like to refer to as factor-based balancing methods where you attempt to compensate for some fundamental difference in compounding efficiency between the strategies by adjust their weights against some statistical characteristic. Equation one represents the main form of factor-based balancing methods in which you determine each system’s weight by assigning it a fraction of the total weight depending on the inverse of its contribution to the chosen factor. In the case of frequency-based balancing each system’s weight would be the total desired portfolio weight multiplied by the system’s frequency based compensation factor over the sum of all the compensation factors for all systems. The compensation factors are calculated according to Equation 2.

The frequency-based balancing gives you a portfolio where trading systems can contribute equally to the ending result depending on how often they trade. If a system trades once a week and the other once a year then the first system will have 52 times less risk than the second system so that both contribute equally to the end result. This removes the problem of having severe imbalances due to frequency but it is not the only solution we can apply to the problem. We could compensate using other factors, such as the system CAGR or the system expectancy (win rate times reward to risk times frequency). In the end these are all naive methods because they don’t make any calculations of historical portfolio performance as they only use individual system factors to balance the load between them.

Selection_464

The table above shows you a comparison between three different naive balancing methods on two different portfolios containing 1440 and 1890 trading systems where the risk has been set so that all portfolios have roughly the same overall CAGR. As you can see the equal weight method gives us the worst results in terms of Profit Factor and Sharpe while the frequency and CAGR factor-based balancing methods give s much better overall result. The total risk of the frequency based method is also lower than the CAGR method as it distributes weights more homogeneously than the CAGR factor-based balancing due to the fact that frequency differences are less radical than differences in the CAGR across the system sets. The ending Sharpe and Profit Factor values are also better in both cases but are better overall for the frequency-based balancing method.

As you can see there are many choices available besides using an equal-weights approach when balancing trading systems within a portfolio. A simple factor-based balancing method can improve historical portfolio performance significantly without explicitly introducing bias by evaluating historical portfolio performance results and can therefore lead to potentially better forward trading results as a consequence. Since factors such as trading frequency have a good chance of remaining consistent going forward it is likely that this portfolio provides a far better balancing for large portfolios of uncorrelated systems than a method like traditional Markowitz optimization.

If you would like to learn more about how to build, balance and trade very large system portfolios (thousands of systems!) on real trading accounts  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.

6 Responses to “Naive optimization methods for trading system portfolios”

  1. James says:

    Hi Daniel,

    Thanks for all of the great articles recently!

    You define a ‘naive’ balancing method to be one that does not require any historical performance calculations. Then surely the CAGR (and perhaps the expectancy) balancing methods would be classed as ‘non-naive’, since CAGR is indeed a measure of historical performance?

    James

    • admin says:

      Hi James,

      Thanks for writing. Glad you like the articles :o) I define non-naive methods as those that use the historical performance of portfolios to make the decision about what to trade. Since these methods do not use any type of portfolio performance calculation they classify as naive according to my definition. The main problem with non-naive methods is their use of portfolio calculations which introduce substantial assumptions about system correlations. Do let me know if you have any other questions,

      Best Regards,

      Daniel

  2. Kevin says:

    Hi Daniel,

    For the large number of combined systems in your example, what is the average number of trades per year? I assume you include transaction costs :)

    Also, for non-forex traders can these type of systems be developed on futures or is the minimum contract size (or other) an issue?

    Finally, is it possible to update real-time performance of any recent systems shown on the blog. For example: http://mechanicalforex.com/2015/05/looking-at-some-of-my-algorithmic-trading-systems-from-2010-revisiting-three-trend-following-strategies-bb-cci-and-rsi.html

    I think there is another but I can’t locate it. Always enjoy reading your posts.

    Kevin

    • admin says:

      Hi Kevin,

      Thanks for writing. Very glad to hear you enjoy reading my posts :o) Yes, the systems include transaction costs. The average number of trades per system in those back-tests is around 35 trades/year, although there are trading systems that take from 25 to more than 110 trades/year. The trades per week for these portfolios are in the order of thousands per week. It’s really something to see them trade :o)

      In the case of non-Forex trading I don’t see why systems like these cannot be developed although the user should have enough capital to be able to trade them. Since the minimum lot size is much higher this means you would need millions to be able to trade similarly sized portfolios at an acceptable risk per system.

      About performance, real-time performance of our trading systems are reserved to Asirikuy members.

      Do let me know if you have any other questions,

      Best regards,

      Daniel

  3. Kevin says:

    Hi Daniel,

    Thank you for your answers. This is very interesting and intriguing. Maybe you will see me next year!

    Kevin

Leave a Reply

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