Skip to content

A Simple Tactical Asset Allocation Portfolio with Percentile Channels

January 26, 2015

I prefer presenting new tools and concepts, but I know that there are a lot of readers that would like to see how they can be applied to creating strategies. So here is a very simple strategy that applies Percentile Channels from the last post to a tactical asset allocation strategy. The strategy starts with only 4 diversified asset classes:

Equities– VTI (or SPY)
Real Estate– IYR (or ICF)
Corporate Bonds– LQD

for Cash we will use SHY

Here are the rules:

1) Use 60,120,180, 252-day percentile channels- corresponding to 3,6,9 and 12 months in the momentum literature- (4 separate systems) with a .75 long entry and .25 exit threshold with long triggered above .75 and holding through until exiting below .25 (just like in the previous post)
2) If the indicator shows that you should be in cash, hold SHY
3) Use 20-day historical volatility for risk parity position-sizing among active assets (no leverage is used). This is 1/volatility (asset A) divided by the sum of 1/volatility for all assets to determine the position size.
4) rebalance monthly

Here are the results for this simple strategy:

p strategy

This is a very consistent strategy which is more notable for its low maximum drawdown and high sharpe ratio (near 2) than its sexy returns. Of course there are many alternatives to “spice” this up by varying the allocation among instruments, changing instruments or using leverage. I wanted to keep the asset list short and simple, and I chose corporate bonds since they provide some of the defensive characteristics of treasurys but with a higher yields and arguably lower systematic risk (no sovereign risk). Substituting the 10-year treasury with IEF instead of corporate bonds produces nearly identical results (1.9 sharpe, 11.8% Cagr, 5.8% max dd). There were better combinations of asset classes and parameters, but this compact list seemed manageable for a self-directed investor without a large portfolio.This is not the ultimate strategy by any means, but shows how to use percentile channels to produce a viable approach to tactical asset allocation.

37 Comments leave one →
  1. Flo permalink
    January 26, 2015 7:07 am

    Hello David, can you please give some detail on how this strategy handle the four channels ? does the entry condition apply to all ?

    • david varadi permalink*
      January 28, 2015 3:06 pm

      hi Flo, the way to think about it (or implement it) is to use four separate trading systems for each channel length as per Ilya’s comment.

  2. Quarrel permalink
    January 26, 2015 7:12 am

    Hi David,

    For the 4 channels, are you equally dividing the capital amongst each, then within each diving it as per rule 3 (volatility adjusted for the assets then held)?

    Or is the above showing the result for just one of the channels or some other way of grouping them?

    • david varadi permalink*
      January 28, 2015 3:07 pm

      Hi Quarrel, that is exactly what i was doing- equal division of capital per channel.

      • January 28, 2015 3:43 pm

        can you simply average the four percentile price? It shoud be the same and more parsimonious then four different backtest

  3. gerd permalink
    January 26, 2015 1:05 pm

    I have a question as well. Are you adjusting weights on a monthly basis, while
    allowing positions to exit intra month if the 25 percentile level is breached?

    • January 26, 2015 6:43 pm

      Use the corresponding mutual funds and combine data.

      • January 26, 2015 6:45 pm

        That’s the idea. They’re four sets of simple trading strategies: enter at 75%, exit at 25%, and use those return streams as your assets.

    • david varadi permalink*
      January 28, 2015 3:08 pm

      hi Gerd, no trades were taken intramonth–the rules applied only at the end of the month much like simple moving average systems that trade monthly (ie Faber 10 month ma)

  4. January 26, 2015 2:20 pm

    I have a question too. How can your backtest go back to 1995 when ETFs you used have shorter life?

    • January 26, 2015 6:44 pm

      Use corresponding mutual funds and combine data.

      • david varadi permalink*
        January 28, 2015 3:09 pm

        thanks Ilya, yes you can use mutual funds and combine data or the underlying indices from a provider like bloomberg.

    • Riccardo Ronco permalink
      January 28, 2015 8:08 am

      most ETFs replicate a Total Return index hence if you can access that, you can have indeed a longer history.

      • david varadi permalink*
        January 28, 2015 3:09 pm

        thanks riccardo that is correct.

    • david varadi permalink*
      January 28, 2015 3:13 pm

      tstudent, i think you know the answer to that question, but others have provided some solutions.

  5. Riccardo Ronco permalink
    January 28, 2015 8:01 am

    one question for David, If I may. What is the difference with the same system but with an equal weighted allocation (for the active classes of course) vs the 20-day risk parity position sizing. I am asking because I would like to appreciate the difference between lower drawdowns using RP and loss of profitability vs EW. Thank you David. Great work as usual.

    • david varadi permalink*
      January 28, 2015 3:12 pm

      hi Riccardo, there is not a large difference between equal weight and risk parity in this case. It helps you to adjust faster by overweighting bonds and underweighting equities when volatility starts to rise quickly- where the channels may not yet dictate an exit. it also helps to normalize bets across the different markets –this method is consistent with most of the trend-following research. however, i agree that it should cost in terms of return since equities will typically get a smaller allocation on average with that method.
      thank you

  6. John permalink
    January 30, 2015 10:47 am

    Nice post David! You have a gift for making the complicated simple. I hope you are well.

    • david varadi permalink*
      February 2, 2015 10:19 am

      hi John, thank you- due to the number of comments asking questions–perhaps “simple” is a misnomer- perhaps i have a gift of making the simple complex 🙂
      hope you are well too.

  7. Pete permalink
    January 30, 2015 3:32 pm

    I’m doing something terribly wrong trying to replicate this and getting terrible drawdowns at the end of 2008 > 40%; please reply on what I’m doing wrong; thank you!

    I’ve 4 separate strategies running concurrently each with a different lookback period equating to rule #1’s days with each strategy having an equal starting equity value. Monthly, I check the 4 securities. If I don’t have an existing position, then I enter a long position if the closing price > 0.75 * the simple moving average price on that date for the lookback period for that strategy. If I do have a position and provided its closing price > 0.25 * the simple moving average price that day, I maintain the position through the month; otherwise, I exit the position.

    if 1 or more securities don’t trigger a purchase, I allocate SHY in its place. Unless I only have a buy trigger for SHY, I then allocate amongst the all the securities in that strategy according to rule #3. If there are no changes to my positions at the next month, I simply re-allocate according to rule #3.

    • david varadi permalink*
      February 2, 2015 10:16 am

      hi Pete, i think what you are doing wrong is that you are using some constant (.75 etc) times a moving average. The .75 and .25 denote the percentile of price over the lookback window.

      • Pete permalink
        February 2, 2015 2:38 pm

        Thanks David. I was thinking this was a variant of a price envelope channel indicator, but now realize you likely mean something more akin to Microsoft Excel’s Percentile function where the .75/.25 are the k parameter over the closing price series for the lookback periods; correct?

      • Pete permalink
        February 3, 2015 9:20 am

        OK, well, I must be thick-headed on this since Excel’s Percentile function doesn’t improve drawdown results much at all. Are all positions long only? Asking since prior article on Percentile Price Channels indicated long/short positions, but the rules don’t suggest short positions at all on this one. Anyone have a working Excel example of the rules being implemented successfully? Thanks in advance; apologies for my asking, but I’m confident that David’s material is sound, I’m just not able to reproduce it and I know it’s something I’m doing wrong.

  8. February 1, 2015 9:48 am

    Hi David,

    Your latest allocation is just between LQD, VTI, and ICF. That means that you don’t have any signals for DBC. Shouldn’t this imply that the DBC allocation should go to SHY?

    Perhaps I am misunderstanding something, but I am not able to replicate these results.

    • david varadi permalink*
      February 2, 2015 10:17 am

      Hi SS, if you notice the allocations don’t add up to 100%, that means the balance is invested in cash or in this case SHY even though it isn’t listed in the allocations.

  9. David permalink
    February 2, 2015 6:07 pm

    How much of the performance of this strategy is due to rates going down? You seem to be allocating capital by volatility and that normally leads to overweight bonds… but some may say rates can drop only so much.

  10. Steve permalink
    February 2, 2015 10:06 pm

    Has anyone successfully reproduced this yet?

  11. February 3, 2015 1:24 pm

    Hi David, I’d like to backtest a portfolio strategy that triggers buys/sells on momentum extremes and position sizes using minimum correlation. I’d prefer to rebalance on momentum targets, dynamically, rather than by a fixed period (e.g. monthly) 1. Is this possible? 2. What backtest software are you using to create such nice looking charts and spreadsheets? Many thanks for all that you provide herein. Great respect for your work. Stephen

  12. gerd permalink
    February 3, 2015 5:46 pm

    David, one last question. I understand you’re not allocating to DBC as it’s obviously below the 25th percentile, but is DBCs volatility included in the 1/volatility (asset A) divided by the sum of 1/volatility for all assets calculation? And that allocation to shy is DBCs portion of the sum?

  13. Fil Mak permalink
    February 7, 2015 6:45 am

    Backtested the strategy and Sharpe of 1.94 is nowhere near actual values! You should expect something in range of 1. David, if Sharpe 1.94 is true provide proof with spreadsheet or code

  14. Christof permalink
    July 18, 2017 8:24 pm

    David, this is a very inspiring blog, kudos and thank you for your sharing spirit! Here is one quick observation I would like to add. If I didn’t get it wrong, despite good performance possibly some counterintuitive behaviour (which might unneccessarily boost turnover as well) in this setup: when all lookbacks for one asset are negative, you allocate its full (vola-adjusted) share to cash (i.e., all four asset’s lookbacks read a ‘-1’, the absolute value of its ‘Channel Score/vola’ will be incorporated into ‘Sum Abs Score’ and hence a cash position is opened because of its negative ‘Channel Score’). This cash position is then held forward as long as ‘times are bad’. That is the appealing, intuitive part. Now, as soon as things start improving for our asset, channel lookbacks will start to turn ‘1’ one after the other – up to a point where two (possibly the two shorter) lookbacks read ‘1’. In that very case it follows that the cash position is dissolved and ALLOCATED TO ALL OTHER ASSETS (since ‘Channel Score’ is 0, ‘Channel Score / vola’ will also yield 0 now, which in turn will make ‘Sum Abs Score’ smaller ceteris paribus. Hence the other assets’ relative share will increase). This will be maintained up to the point where our asset will continue to recover and now will have 3 or 4 lookbacks with a ‘1’. Then the share which was allocated to the other assets is taken from them again and finally allocated to our recovered asset. Hope I got this clear at least to some extent and somewhat concise. My point is that if an asset’s performance continues to improves after a bleak phase, it is not very intuitive that its share first goes from cash to all other assets until it is finally allocated back to the asset. In an extreme case it could be that 100% of the portfolio will be allocated to one single deterriorating/unchanging asset because all other assets started to show better performance. Just my 2 cents, would be interesting to hear your thoughts. Thanks again!

    • Larry permalink
      December 1, 2017 9:24 pm

      I think Christof’s analysis is correct, and 100% of the portfolio could be allocated to a single(not SHY) asset. That seems unduly risky. A possible solution would be to use an odd number of trend indicators. Then’Channel Score’ can never equal 0, and ‘Channel Score/volatility’ can never equal 0. All of the rejected asset’s weight would be allocated to SHY.


  1. The Whole Street’s Daily Wrap for 1/26/2015 | The Whole Street
  2. A “Simple” Tactical Asset Allocation Portfolio with Percentile Channels (for Dummies) | CSSA
  3. Percentile Channel Strategy Replication | CSSA
  4. Tracking the Performance of Tactical Strategies | CSSA

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: