# Newish rotation strategy

Using the usual on-off market timing gtr test, pick the 1 of commodities, treasuries, S&P 500 or Nasdaq 100 each month during “on” times using
product(-1,tr(1,10),1,tr(1,130)) bottom 3
tr(1,500) top 2
ratio(sma(1,5),tr(1,150)) bottom 1

```                avg           min        max

CAGR: 	16.9 	12.65 	20.15
GSD        18.13      17.22      19.57
LDD         12. 9	  9.5        12.8
LDDD3      5.38        4.0          7.7
MDD      -25.88     -37.0       -21.0
Ulcer         5.81         4.44        9.21
Sharpe        .995         .74        1.19
Beta            .648         .51          .79
TI              26.24     17.39      17.36
```

http://gtr1.net/2013/?s20081231h21::gprc(1)gt0:product(-1,tr(1,10),1,tr(1,130))bn3:tr(1,500)tn2:ratio(sma(1,5),tr(1,150))bn1{U:{DJP}{TLT}{SPY}{QQQ}}

9 Likes

Thanks for sharing. Nice, steady returns. I have a few questions, as I’m not very fluent in GRT1.

Is “product(-1,tr(1,10),1,tr(1,130))” actually the product of 4 numbers?
Does tr(1,10) = return from close 10 days ago to close yesterday?
Would “product(-1,tr(1,10),1,tr(1,130)) bottom 3” be the same as
“product(1,tr(1,10),1,tr(1,130)) top 3”?
You say this is “newish”. Have you reported on this strategy previously?

Thanks again.

1 Like

Product multiplies the numbers together so that’s the same as …
`- Total Return 10-days x Total Return 130-days`
… so the interpretation seems correct. Making the change to…
`product(tr(1,10),tr(1,130)) top 3`
… returns the same output.

One interesting thing to note: The strategy begins on 20081231 but the most recent start of the underlying securities is 20061030. Changing the start date to the end of 2006 to reflect the full data series results in the following:

Avg Min Max SD
CAGR: 12.724566 7.950213 16.626196 2.313169
TR: 597.992676 235.66571 1041.142944 212.520294
Log2TR: 2.730507 1.747025 3.512408 0.470846
SAWR(20; 0.95): 9.085665 5.095499 12.025226 1.845686
GSD(20): 20.414476 19.389374 21.547913 0.698941
DIGSD(20; 0%): 23.528812 21.202877 25.688318 1.217742
LDD(20; 0%): 13.110363 11.438633 14.620325 0.938091
LDDD3: 10.903118 6.874348 17.088968 2.430211
MDD: -48.570343 -62.288918 -29.773438 7.120934
UI(20): 11.152803 6.390105 21.760799 3.503123
Sharpe(20): 0.704676 0.46283 0.891625 0.120703
Beta(20): 0.71289 0.575599 0.84019 0.078566
TI(20): 18.530024 11.38798 26.310253 4.623498
AT: 1.542857 1.263158 1.768421 0.142659

Also fine but not quite as good as from end-2008. I’d love to know the rationale behind that adjustment.

Update URL: GTR1 Backtester

Edit: Removed the part about the lag as I’m confused & my understanding on this is incomplete.

3 Likes

Just trying to trace all my screens from the end of the last crash out of habit.

3 Likes

OK. Given the current market environment there’s potentially value in testing the strategy throughout a bear market though.

So here’s an interesting alternative version: Original strategy from @musselmant (all credit to him), extended back to end-2006, standard BCC bear catcher evaluated every day (and so would create a little extra work), 0.1% transaction friction added (previous formulation with no friction was slightly unrealistic, this version uses friction suitable for trading at close via broker MOC orders).

Avg Min Max SD
CAGR: 16.046114 13.657186 18.408564 1.300555
TR: 970.825806 659.074219 1351.774902 190.395111
Log2TR: 3.397954 2.924241 3.859746 0.255946
SAWR(20; 0.95): 12.659236 10.425286 14.862438 1.073369
GSD(20): 16.108643 15.270206 17.509771 0.589908
DIGSD(20; 0%): 17.50329 16.105982 20.430813 1.090351
LDD(20; 0%): 9.18203 8.194964 11.056284 0.759492
LDDD3: 5.051101 3.440473 7.070497 0.977931
MDD: -25.235233 -37.147564 -19.007826 4.183702
UI(20): 5.805642 4.338057 8.324664 1.07479
Sharpe(20): 1.018084 0.844344 1.165329 0.092069
Beta(20): 0.454774 0.351481 0.570132 0.0693
TI(20): 34.505146 23.878233 48.131031 6.89669
AT: 1.94237 1.704836 2.273115 0.144387

Longer backtest period that includes the 2007-2009 bear market, includes transaction friction, near-to-original 16% CAGR (direction-ally in-line of original strategy backtest with minimal friction added) & slightly more work at about the times the BCC changes to & from zero (0) indicating a bear market.

Not bad at all. Safe withdrawal rate (SAWR) of 12.7% at 95% confidence interval (>10% at the worst start date).

10 Likes

One interesting thing to note: The strategy begins on 20081231 but the most recent start of the underlying securities is 20061030. Changing the start date to the end of 2006 to reflect the full data series results in the following:

On GTR1, the most recent start of pricing is “Pricing Starts: 20061030”

With tr(1,500) Shouldn’t the backtest results be from about 20081030, rather than your date of 20061229?

Thanks craig

1 Like

Here is fun: add APPL to the picks (of course this is 20-20 hindsight!)
cagr 32
gsd 27.7
ldd 14.5
mdd -37.5
sharpe 1.23
beta .7

A fantastic question that prompted a bit more digging and could perhaps explain the @musselmant start date. Looking into it a bit further it’s the ETF DJP that has the late pricing start date. If that ETF is removed 2007 return remains the same indicating that DJP either wasn’t selected or couldn’t be (likely the latter) but 2008 was substantially worse. DJP is a commodities ETF and so is an interesting pick in times when equities are struggling (2007-2009).

So overall I think you’re correct - the earliest date it makes sense to start testing is 20081030 with the following results (which are very nice):

Avg Min Max SD
CAGR: 17.297781 14.875784 20.181833 1.45992
TR: 846.702576 596.945496 1211.425171 166.972824
Log2TR: 3.220898 2.801046 3.713063 0.251126
SAWR(20; 0.95): 13.1644 11.215743 15.715501 1.062328
GSD(20): 15.94001 15.015563 17.696981 0.685726
DIGSD(20; 0%): 17.314957 15.759528 20.939642 1.305874
LDD(20; 0%): 8.921022 7.793042 11.309499 0.909809
LDDD3: 4.683995 2.906514 7.059584 1.030936
MDD: -24.399649 -37.147564 -15.727716 5.124485
UI(20): 5.291617 3.583658 8.860886 1.195447
Sharpe(20): 1.120674 0.933163 1.307157 0.108649
Beta(20): 0.486584 0.357929 0.639724 0.088039
TI(20): 35.572922 23.367495 50.948719 8.253773
AT: 1.931425 1.642392 2.285067 0.159638
Total Return for Year Ending:
20081231 0.020285 0.020278 0.020301 0.000007
20091231 42.039227 42.039215 42.039238 0.000008
20101231 19.875237 17.341089 20.896471 0.809338
20111230 -8.001419 -17.229408 -2.000415 3.952205
20121231 18.482719 6.882668 26.719952 3.896724
20131231 28.214334 17.484224 39.692211 7.050459
20141231 14.795821 6.392694 19.180214 4.052636
20151231 8.641837 8.641827 8.641851 0.000007
20161230 6.675462 3.834772 9.994232 1.858836
20171229 32.663548 32.663536 32.663559 0.000008
20181231 1.826456 -5.560875 16.47644 5.271453
20191231 21.11801 7.056344 34.475945 7.359011
20201231 20.013285 -8.233565 46.047962 18.737349
20211231 28.080055 15.989947 38.126862 4.039348
20221104 19.483124 11.890554 24.392282 3.349899

Having said that … understanding that the strategy did well without DJP in the last bear market is perhaps a worthwhile learning to boost confidence a little further, and it’s probably worth going into a further review after this current bear is resolved (did the BCC addition add value if used etc.). Note: The version with BCC offers a 0.8% higher average CAGR once friction is added.

And I’d personally explore the `tr(1,500) top 2` line to see if that 500 could be reduced with equivalent or better results or is that 2-year total return necessary (GTR1 was having issues supplying other timeframes when I was preparing this).

8 Likes

I’ve extended this with a bit of financial creativity. The Pimpco TR commodity fund, PCRIX, that has high correlations to the DJP and starts in 2002 IIRC. The GSG index starts in the 80s and could be used to extend the test further but I am not sure it is a total return fund. I used the US Treasury mutual fund, CPTNX with ~6 year duration as a proxy for TLT. The fund, KTCAX, or the Fidelity Select fund, FSPTX, are tech funds with high correlations to Qs, in the .97-.98 range. I had to use the compressed link option because the regular one used “w” “t” “f” so the post was not allowed.

Here is the gtr back to 20020701:

7 Likes

Nice work (and nice result). Thanks.

I think you need to report results from about 20040701 due to tr(1,500). My guess is that gprc is =0 for dates prior to its listing, so tr(1,500) will give incorrect results.

Still has a CAGR of 14+ with a 20040701 start date.

Regards

Craig

2 Likes

Impressive Results! Musselmant’s newish rotation strategy historically extended by using commodities data and adding BCC to reduce drawdown from as aussi suggested gives a CAGR of 14.8 and a perpetual SAWR of 11.4%.
I compared this to Wouter Keller’s Bold Asset Allocation – Aggressive TAA strategy (the highest performing TAA strategy I’m aware of). Over the same period this equaled the Bold Asset Allocation Aggressive’s 14.9 CAGR, don’t know how the SAWR’s would compare.
RAM

4 Likes

here is a tuned version
cagr 16
gsd 16.1
ldd 8.8
mdd -25…4
ui 5.4
sharpe .989
beta .37
worst average year 2006 -4.7
second worst ave yr 2011 -1.9
third worst ave year 2018 .2
worst any start date year -15.6
up 18% this year
{PCRIX}{TLT}{SPY}{QQQ}
product(tr(1,10),tr(1,150)) top 3
tr(1,500) top 2
ratio(sma(1,20),tr(1,140)) bottom 1

6 Likes

Outstanding, I’m defiantly going to spend some time playing with this to verify how robust it appears to be. At this point it comes across as a straight forward concept of long time momentum and short term reversal. My best overall profit maker was based on only 3 funds moving between them based on long time momentum and inverse short time momentum. Worked best by reviewing just before closing to see if a predicted gain vs trading cost justified a trade. Worked very well for 4 years even in a down market.

Thanks for posting this.

RAM

2 Likes

I like! I did a few quick looks using the SPGSCI as a proxy for commodities and it has some pretty large DDs. It seems we need a Trend/Managed Futures Fund not just commodities. I’ll post anything interesting.
Thanks Musselmant.

2 Likes

How did you add BCC? Are you going to cash if BCC=0? Something else?

Not sure which person is “you” but yes to cash.

2 Likes

Here is a chart of our PCRIX commodity fund and the GS commodity index. I’d say pretty well correlated the linear regression of returns shows an adjusted r^2 of .7474.

I built this in an effort to extend the backtest. The commodities asset is the hardest to replicate of the 4 funds. IF we use the SPGSCI and go back the DDs are too severe and the returns fall.

Take a look and tell me where I might be wrong, I’d like to be. ;-]