Monday, 16 April 2018

Trading performance - year four

Time flies, and it's time for another annual update on the performance of my own investment and trading. Previous updates can be found here, here and here. These updates follow the UK tax year; from 6th April to 5th April, as I have to do my taxes anyway it makes sense to analyse everything at the same time.

Following the mind numbing detail of the performance analysis there are some concluding thoughts on life, the universe, and everything pertaining to systematically investing / trading for a living.

Investments and benchmarking

My investments fall into the following categories:

  1. In my investment accounts:
    1. UK stocks
    2. Various ETFs, covering stocks, bonds, and gold
  2. In my trading account:
    1. Various ETFs, covering stocks and bonds
    2. A futures contract hedge against those long only ETFs in 2.1, so that the net Beta is around zero
    3. Futures contracts traded by my fully automated trading system
    4. Cash needed for futures margin, and to cover potential trading losses (there is also some cash in my investment accounts, but it's pretty much a rounding error)

I'm excluding from this analysis the value of our house (and any debt secured against it), defined benefit pensions, and my 'cash float' - roughly 3 months of household expenditure that I keep segregated away from my brokerage accounts. Anyone who is living wholly or partly off investment income would do well to keep a similar float, as dividends do not arrive in smooth lumps throughout the year.

For the purposes of benchmarking it's then convenient to aggregate my investments in the following way:

  • A: UK single stocks, benchmarked against any dirt cheap FTSE 100 ETF (FTSE 350 is probably a better benchmark but these ETFs tend to be more expensive).
  • B: Long only investments: All ETFs (in both investment and trading accounts) and UK stocks, benchmarked against a cheap 60:40 fund. This is the type of top down asset allocation portfolio I deal with in my second book.
  • C: Equity neutral: The ETFs in my trading account, plus the equity hedge. Benchmark is zero.
  • D: Futures trading: Return from the futures contracts traded by my fully automated system. This is the type of portfolio I deal with in chapter 15 of my first book. Benchmarks are a similar fund run by my ex employers, or any CTA index of your choosing. The denominator of performance here is the notional capital at risk in my account.
  • E: Trading account value: This is essentially everything in my trading account, and consists of equity neutral + futures trading. No relevant benchmark.
  • F: Everything: Long only investments, plus futures hedge, plus futures trading. For the benchmark here again I use a cheap 60:40 fund, but I include the value of any cash included in my trading account, since if I wasn't trading I could invest this. 
If you prefer maths, then the relationship to the first set of categories is:

A = 1.1
B = 1.1 + 1.2 + 2.1 
C = 2.1 + 2.2
D = 2.3
E = 2.1 + 2.2 + 2.3 = C + D
F = 1.1 + 1.2 + 2.1 + 2.2 + 2.3 + 2.4 = B + 2.2 + D + 2.4

I include this to point out that in many cases you can't just 'add-up the figures included here across categories.

UK Stocks portfolio

My UK stock investments have been in a period of transition for the last few years. The goal is to run these fully systematically (though not in an automated fashion), with all assets held in tax free accounts so that capital gains tax does not eat up returns. The system I use is described in this post I wrote here; with the twist that I now enforce industry diversification. It is in fact very similar to the list of filters I describe in chapter 11 on equity investing in my second book; with the addition of a stop-loss / momentum selling rule.

However there are some legacy issues, in particular I have a couple of large positions which I've been tactically reducing my exposure to (to maximise the use of capital gains allowances).

Anyway enough of a preamble, here are the numbers as a % of initial capital value:

Dividends: 5.8%
Mark to market: 12.0%
Total return: 17.8%

As with previous years the total return figure is misleading as I was a net seller of UK stocks; calculating the IRR I get 18.3%. This compares extremely well with the benchmark which came in at 2.2% (don't get excited - this is probably the high point of this post!).

I've actually outperformed the FTSE with my UK stock picking over each of the last 4 years; this is nowhere near a statistically significant record (and I'm pretty sure that ) but it does give you pause for thought. I'll come back to that thought later.

I owned 13 UK stocks at some point during the year (starting and ending with 10 stocks, three of which were replaced according to the systems rules (KIE, MARS and PFC). The other trades I did were further top slicing of the large position in STOB. Stellar performers were ICP, RMG, BKG and STOB (all of which earned over 25% measured with simple total return); whilst all the stocks I sold ended badly down (partly reflecting the stop loss which meant they were sold on a loss, but also reflecting the fact they didn't sharply recover by year end making me look like an idiot).

Current holdings then are:

ICP 18.8%
STOB 17.1%
BKG 10.4%
VSVS 9.5%
RMG 8.9%
LGEN 7.6%
GOG 7.5%
HSBA 7.4%
IBST 6.9%
BP 6.0%

The relatively large positions in ICP and STOB are historic rather than deliberate; further tactical top slicing should reduce these when tax allowances allow.

Long only investment portfolio

My long only investment portfolio as a whole (which includes the UK shares above, plus ETFs regardless of which account they are in or whether they are hedged) is constructed according to the principals in "Smart Portfolios".

The results here aren't quite as impressive:

Dividends: 4.4%
Mark to market: -3.1%
Total return: 1.3%
IRR: 1.33%
Benchmark: 1.31%

I know for a fact many people are thinking I would have been better off in Bitcoin. Clearly the ETF part of my portfolio dragged down the equity performance (UK equities are roughly 20% of my overall long only investment portfolio).

I was a small net seller of UK stocks, but a net buyer of ETFs (with some net buying overall as I was able to reinvest some additional capital). Generally I was a seller of bonds and a buyer of equities, as discussed last year the asset allocation model I use looks at 12 month momentum to tilt between bonds and equities (this is in part three of my second book). I noted in the previous update that equities were outperforming bonds, so a tilt towards equities away from my strategic allocation is warranted.

Right now MSCI world equities are up around 16% over one year, versus global bonds down around 1.8% so this pattern is unchanged.

I won't look at the current make up or risk exposure of my ETF portfolio just yet, since it only makes sense holistically including the equity hedge.

Trading account

Although the make up of my trading account is complex I only have nice graphs that show the value of everything in it, so here they are:

Since inception

Last 12 months

The good news is I reached a new HWM in February; the bad news is that like the rest of the CTA universe I then got hammered and ended up flat for the year.

And here is the breakdown (all values normalised by my notional capital at risk):

Mark to market: 0.1%
Dividends 3.7%
Commissions: -0.00%

Subtotal: 3.8%

Mark to market: 0.25%
Commissions: -0.00%

Subtotal: 0.25%

Total for stocks and hedge: 4.1%

Gross profit: 0.48%
Commissions: -0.77%
Slippage: -0.47% (Bid ask spread cost -0.91%, less execution algo profit 0.43%)
Interest and fees: -0.09%
FX adjustments: -2.8%

Total for futures: -3.7%

Grand total: 0.4%

A sea of flatness then; basically I made no money trading futures, and then earned some dividends which paid for FX losses. These FX losses aren't unusually large (in context the same numbers for the last few years are -0.8%, +3.2% and +1.7%); but in a year with such flat performance elsewhere they stand out more than they ought to.

These FX losses are essentially the MTM of non GBP cash held in my futures account. Some of this cash is required for initial margin; if I didn't have this then I'd pay interest to borrow foreign currency which seems nuts. However there is also some excess cash, not required for margin. I took the decision not to 'sweep' this cash regularly back into GBP, as a proper hedge fund would do, which would minimise account volatility. Ultimately I'd rather have diversified currency holdings, although there is no right answer to this argument. In the long run I essentially view these FX gains and losses as noise with an expected zero mean.

Commissions and slippage are in line with backtest and previous years.

Some return statistics:

Standard deviation of returns (based on weekly, annualised): 23.8% versus long term target 25%
Average drawdown: 6.3%
Max drawdown: -17.2%
Worst day: -5.7%

Best day: +6.7%

Some trade statistics (from fundseeder)

Profit factor: 0.98
Percent wins: 41.4%
Win/loss ratio: 1.5
Average holding period, winning trades: 32 days
......................................, losing trades: 21 days

It's probably instructive to review this performance in the context of the last few years, including some benchmark figures. 'Bench1' is this AHL fund, using monthly returns from April to March in each year, and a new benchmark 'Bench2' is the SG CTA index. Both have returns scaled up to match my volatility. Remember the benchmark should only be compared against futures trading, not the equity neutral component of the portfolio. Also note that the 'Bench1' fund has an explicit GBP hedge; so won't be as careless with cash exposure as I have been.

Year:    14/15   15/16   16/17   17/18

Hedge:   -1.1%,  16.3%,  14.4%,  4.1%
Futures: 58.2%,  23.2%, -14.0%, -3.7%
Net:     57.2%,  39.6%,   0.3%,  0.4%

Bench1: 106.9%, -10.6%,  -6.2%, 16.4%
Bench2:          -6.7%*,-21.9%, -3.8%

* From 13th April 2015

So for this year at least I'm roughly in line with the CTA index, but behind the better performing AHL fund. This is a similar pattern to last year.

From another point of view my Sharpe Ratio since inception is still running at around 0.98; whilst for the AHL benchmark over the same period it's 0.86 (without risk free rate). None of these figures are statistically significant; and I personally couldn't care less whether I outperform or not, but it's still interesting to look at these figures occasionally (though annually is probably enough - I don't miss the days when institutional pressure meant I had to check in on competitor performance on a monthly basis or even more frequently!).

Digging more deeply it looks like the winning sectors were Volatility and bonds; with losses in FX and Energy. On an individual instrument level gainers were: Palladium, BTP, VSTOXX and Nasdaq and losers: Soybeans, Gas, Korean 3 year bonds and JPYUSD.

Let's look at the good news first; here is Palladium:

Classic picture of a long up trend which we ride until it finishes. After that the signal isn't strong enough to warrant a position. Interestingly Gold was not a profitable market this year, showing the advantages of intra sector diversification. Now for Italian BTP bonds:

A more nuanced example here; the system basically benefits from two clear uptrends each lasting a matter of weeks, and then bides its time in between. VSTOXX is particularly interesting:

The price shows a gradual downward trend; partly due to the rolldown effect that is particularly pronounced in vol markets; and also because vol levels did decline to very low levels (as I discussed at the time). Then in February there was a pronounced spike in vol that took a lot of people by surprise. Because I prefer to stay at least two months out in the contract space I didn't see such a sharp rise in price levels as in 'spot' implied vol, but it's also clear that I didn't have any position on between October and March, and thus avoided the spike entirely.

What gives? Well basically I ran out of margin head room, and because VIX and V2X were very margin hungry I closed my positions in them. So a bit of luck there.

Now the bad news. Soybeans:

Classic stuff where a choppy market results in gradual losses as we get whipsawed like crazy. The other losing markets show similar pictures so I won't bore you.

Holistic view of overall performance

Looking at my entire portfolio the raw numbers come in like this (dividing by a total for assets that includes cash held in my futures and other investment accounts):

Dividends: 4.1%
Mark to market: -3.5%
Total return: 0.56%
.... of which UK stocks: 3.3%
.... of which ETFs: -2.0%
.... of which futures + hedge p&l: -0.65%

IRR: 0.6%

This is a similar picture to last year: a slight under-performance against the benchmark.

Risk exposures

Here are my current cash weights across the entire portfolio:

Bonds:    25.1%
Equities: 65.3%
Other:     3.3% (property & gold)
Cash:      6.4%

Unlike last year the figures here already show the rebalancing I did at year end; as I already mentioned this included a further reallocation away from underperforming bonds to equities.

I prefer to look at risk allocations, which are (with last year in brackets) and [my strategic target allocations in square brackets]:

Bonds:    13.1%  (17%) [25%]
Equities: 59.4%  (54%) [50%]
Other:     2.9%  (3%)  [3%]
Futures*: 24.5%  (26%) [22%]
* Trading, futures hedge offsets equities exposure

Again note the tilt towards equities given their strong relative momentum. Regionally my exposures are (each row adding up to 100% of each asset class):

Asia EM Euro UK US Other
Bonds 0.0% 25.7% 27.8% 4.4% 33.7% 8.4%
Equity 13.5% 27.4% 20.5% 28.8% 9.3% 0.5%

These don't exactly match to the figures in the model portfolios in my second book, partly for historic reasons (the UK equity exposure is still quite high), partly because of availability (eg of Asian bond ETFs), and partly as I tilt towards higher yielding funds.

Some thoughts

It would be nice to make more money, so an interesting question is how? Without digging too deep it looks like my systematic UK equity trading is doing relatively okay, and my futures trading could be better. This leads one to ask a number of questions.

Does the apparent out performance of my UK equities warrant a higher allocation than a Smart Portfolios investor would give it? To put it another way what is the benefit of a long only systematic portfolio exposed to multiple risk factors, versus vanilla market cap weighted? There is some benefit, but in my book I recommend not adjusting portfolio weights too much in the expectation of higher relative Sharpe Ratio. Indeed I'm currently at around 17% of total portfolio risk in UK equities, versus the 4% or so I recommend for a UK investor in my book. If I continue to top slice my outsized positions in ICP and STOB I will still only get down to 15%. In conclusion I think it is worth continuing to tactically reduce my UK equities exposure.

Improving my futures trading is something on the 'to-do' list. Arguably it would make more sense to introduce another asset class; perhaps cover more individual equities, start a long:short portfolio, or look into options. However this will involve far more work than I'm prepared to do so I'm sticking to futures. At some point when I get pysystemtrade to the point where it can replace my current trading system I will be in a position to start looking at some improvements here.

Wednesday, 21 February 2018

CTA allocations, QE, meta-prediction, and conditional return distributions

As most of you know my last proper job (part time lecturing and occasional consulting gigs do not count) was managing the fixed income portfolio for AHL, a large systematic hedge fund. I had the pleasure of that job from late 2010 until mid 2013. It's fair to say that the main topic of discussion around our desk was Quantitative Easing.

The US QE2 programme began in November 2010, and it finished in late 2014. We knew that QE was keeping interest rates relatively low and stable. We knew at some point it would end, and interest rates would rise.

(I'm writing this as a trader rather than an economist, and the fine distinction between the effects of Fed Fund rate rises and the slowing or reversing of asset purchases do not concern us here)

Our number one concern was how our models would react when this event happened. Would our strategies cope, or would they be badly underwater? Given that the QE unwind is still underway this is still very much a live discussion.

The problem here is one of meta-prediction. We aren't trying to predict interest rates, or the returns of assets like US bond futures; we already have our underlying trading strategies for that: momentum, carry, and perhaps a few other bits and pieces. Instead we're trying to make predictions about the returns of the trading strategies. Does momentum do better in particular regimes? Can we identify when carry is likely to under perform? If so we can reallocate our risk capital into the most favourable place. Essentially this is a problem of factor timing. Like Cliff says, factor timing is hard. But let's try anyway.

Some messy python code using pysystemtrade is here

An idiots guide to meta-prediction 

Meta-prediction requires two important ingredients:

  1. A strategy, or strategies, whose returns we can back test historically.
  2. A conditioning variable to identify a particular regime (for simplicity I'm assuming that regimes are discrete rather than continuous here)

Assuming we have these two ingredients our job is easy: partition our historic strategy returns by regime, and test whether there is any difference in strategy performance. We then find the regime that is closest to what we expect to happen next, and determine if our strategy will do better or worse than average.

Choice of strategies

To keep things relatively simple I'm going to use the four core trading rule variations from chapter 15 of my first book: Carry, and 3 variations of momentum - fast, medium, slow (moving average crossovers with speeds 16/64, 32/128, 64/256).

The choice of instruments is more interesting. Obviously we'd see clearer effects if we looked at Eurodollar futures and US bonds; even clearer if we aligned the instrument with the conditioning variable (eg using a 2 year interest rate to see what happens with 2 year bond futures). Of course there are likely to be spillover effects into other bonds, and possibly into other asset classes (the fear of rising interest rates appears to have been one of the causes of the recent sharp sell off in equities). To keep things simple in this post I'm mostly going to look only at the following US interest rate related futures:

  • Eurodollar (traded approximately 3 years out on the curve)
  • US 5 year
  • US 10 year
  • US 20 year (I don't actually trade this but I have the data so why not)

(The US 2 year bond future has insufficient data, so I'm ignoring that. Also I'm focusing purely on US QE in this post. Finally I'm ignoring the possibility of extrapolating from the earlier Japanese QE experiment, and seeing what lessons this would have for the US)

Conditioning variable

To be useful conditioning variables need to have some key properties:

  • Quantifiable
  • Present in history
  • Meaningful historic variation
  • Reasonably distributed
  • Ex-Ante

'Quantifiable' is, I hope, self explanatory to the average reader of this blog. By 'present in history' I mean that we have a long historical record of the variable. QE fails badly on this measure - we've never had QE in the US before.

The OIS - LIBOR spread is an example of a spread that didn't have meaningful variation prior to 2007. It also isn't 'reasonably distributed' - the distribution prior to 2007 is completely different from what followed.

A key part of making meta predictions is to use an ex-ante rather than an ex-post variable. Official US recessions are an example of an ex-post variable - the official announcement is made around a year after each change in regime. Ex-post analysis is interesting, but useless when it comes to making predictions.

Given that QE itself is flawed, what is a variable that is a good QE proxy and satisfies all of the above conditions?  A naive description of the effect of QE reversing would be something like this “Interest rates are low, but have started rising”. The level and change in interest rates would seem to be appropriate variables. To keep things ex-ante we'd need to ensure we measured the level at the start of the period (if we're using daily returns this just means lagging the rate by a day). Similarly the change needs to be up to the start of the period. Let's use the change in the previous 12 months up to the start of the return period.

Which interest rate should we use? The Fed Funds rate is an obvious one. But given we're concerned with QE, which was designed to make bond yields lower, I think we should focus on government bond yields. The average maturity of US debt is relatively short, around 4-6 years. So I'm going to use this 5 year constant maturity bond rate.

Note: the results are similar with the Fed Funds Rate

Here is the interest rate level:
US 5 year constant maturity rate (

I'm not super happy with this variable. If we condition on rate level we'll probably end up partitioning on time: pre 1995 and post 1995. I'm not sure how meaningful the results from that will be. Here is the 12 month change:

Rolling 12 month change in 5 year US interest rates

The amplitude of changes is clearly higher when interest rates are higher; but I'd argue that a 100bp increase is far more significant now than it was back in the early 1980s. However the problem isn't as serious as for the level: this is mostly a reasonably stationary series.

To cope with this I'm going to apply a normalisation to the level: I will divide by the rolling 20 year average of the interest rate. Since interest rate cycles normally last about 10 years this will give us an indication of where we are in the rate cycle; a far more useful conditioning variable.

Here is the normalised level:

Much nicer. After adjustment you can see that interest rates are clearly in a higher part of the cycle than the unadjusted rate would suggest. Here is the normalised change:

The amplitude here is much more constant than before. This gives us two potential conditioning variables:

  • Normalised interest rate level (divided by 10 year average)
  • Normalised interest rate change over last 12 months

Some naive results

Interest rate levels (normalised)

To kick things off here is the account curve for Eurodollar carry, coloured to show the two regimes for normalised interest rate levels.
Carry account curve for Eurodollar futures, conditional on normalised interest rate regime
Notice how we are currently in a 'high' interest rate environment, and that apart from the early 1980's returns look to have been better when rates are low. An open question here is whether we should use return or Sharpe Ratio. It looks like the volatility might be different in the high interest rate environment. I'm going to use Sharpe Ratio, but you should bear this in mind.

Here are the results for Eurodollar futures across different trading rules:

Sharpe Ratio for Eurodollar futures across trading rule variations, conditioned on normalised 5 year rates

The 'low' rate environment here is a normalised range of 0.15 to 0.71; whilst for 'high' it's from 0.71 to 1.57 (these buckets are divided at the median value of the conditioning variable). The rate is currently over 1.0; so at least on a normalised basis we're actually in a 'high' rate environment (in contrast in 2013 just before the 'taper tantrum' the adjusted rate was at an all time low of 0.15).

There seems to be some weak evidence that 'high' is better than low, especially for momentum.

Here are the results for the bond futures:

Sharpe Ratio for 5 year futures across trading rule variations, conditioned on normalised 5 year rates
Sharpe Ratio for 10 year futures across trading rule variations, conditioned on normalised 5 year rates
Sharpe Ratio for 20 year futures across trading rule variations, conditioned on normalised 5 year rates

These are very mixed results. Because of this, and because the normalisation makes things slightly tricky, I don't think there is anything worth pursuing here.

Interest rate changes (normalised)

Now let's move on to looking at interest rate changes. We'll start with Eurodollar, and then move up through the tenors.

Here is the account curve for Eurodollar and the slowest momentum rule, hacked to show the different regimes:

Carry account curve for Eurodollar futures, conditional on normalised interest rate change regime

Notice how we're currently in a rising regime (orange), and how good performance is almost entirely confined to falling rate regimes (blue). Notice also that the trading rule reduces it's volatility when we lose money; this is a classic pattern for trend following. This also means that using conditional Sharpe Ratio is perhaps a little unfair; the absolute losses will be smaller when rates are rising even if the SR looks really bad.

Anyway, do these results hold across other trading rules?

Eurodollar futures, performance of trading rules conditioned on normalised rate changes

'Fall' means the normalised interest rate change was in the range -0.48 to -0.04 over the previous 12 months before the relevant day. 'Rise' means the rate changed was in the range -0.04 to +0.40. The reason for this skew in buckets is of course that interest rates have mostly fallen in the period we're using, and the normalisation doesn't quite correct for this. Changing the buckets so that they cover a strictly negative and positive range won't affect the results.

The current 12 month change in rates is +0.26, so we're solidly in the rising interest rate environment here.

That is a very consistent pattern but let's see if that is repeated across other instruments:

US 5 year bond futures, performance of trading rules conditioned on normalised rate changes
US 10 year bond futures, performance of trading rules conditioned on normalised rate changes
US 20 year bond futures, performance of trading rules conditioned on normalised rate changes

There is a very consistent pattern here: recent rises in interest rates are bad news for carry, and really bad news for momentum (especially the slowest kind). Here is a nice summary chart that shows what happens if we lump all the different futures into a single portfolio (equally weighted):

Portfolio of US bond & rate futures, performance of trading rules conditioned on normalised rate changes
There is some evidence that you might want to up your allocation to carry, and reduce it to trend following especially the slower end in a rising rate environment.

This sort of makes sense: if rates are rising then the net effect of still positive carry plus negative price movements can lead to a 'choppy' total return series; choppy prices are seriously bad news for any kind of trend following; if carry stays long it will benefit from positive total return even if it's much much smaller than what we see in falling rate environments.

What about across portfolios? Here is the performance of each instrument, after applying some sensible forecast weights: system.config.forecast_weights = dict(ewmac16_64 = 0.2, ewmac32_128 = 0.2, ewmac64_256 = 0.2, carry=0.4)

Portfolio of trading rules, Sharpe Ratio across instruments, conditioned on normalised rate changes
Focusing on the pattern of Sharpe Ratios it looks like you might want to up your allocation to US 5 years, but reduce fixed income generally.

Now we may have done a little data mining to get to this point, but blimey! That is one strong result! Consistently falling Sharpe Ratio as we move from a regime of recently falling rates to one of recently rising. It appears to be a very convincing null points for fixed income momentum and carry in the current regime.

Some less naive results

The results above look compelling, and no doubt have many people working in CTAs rushing to deallocate from fixed income momentum as we speak. If we were working for the sell side, where our job was to generate flow rather than do proper research, we'd probably stop there.

But they miss out on an important point: we're only seeing the average conditional return, not the distribution of conditional returns. This is important because the average doesn't tell us how significant the difference is between the returns we're seeing. More specifically what we want is the sampling distribution of the Sharpe Ratio estimate.

We know from Andrew Lo that for i.i.d. returns this has a standard deviation of root(1+.5SR^2).
(For non-normal distributions check out Opdyke)

Rather than mucking about with fancy formula that aren't quite accurate anyway let's bootstrap the relevant distributions. To avoid plot overload I'm going to do these for each trading rule variation individually, for a portfolio of instruments.

Here's the plot for carry

Histogram of sampling estimate for SR, across instruments, for carry rule, conditioned on normalised yield change

There is clearly a serious difference between the performance here. The p-value for a t-test of the performance across these two regimes comes in at just over 1%.

Legend key: Range of conditioning variable, Mean Sharpe Ratio estimate, Independent t-Test p-value for comparing with the worst Sharpe Ratio

The results for other trading rules are equally strong or stronger, so to cut to the chase here is a plot for the entire portfolio of fixed income trading rules and instruments:

Histogram of sampling estimate for SR, across instruments, for all rules, conditioned on normalised yield change

The t-test p-value is pretty significant here, again well under 5%.  It turns out that there is a pretty substantial difference in fixed income strategy performance across different interest rate regimes.

By the way although the result is significant, it isn't as clear cut as the p-value above might lead you to believe. If we cut our data into finer regimes then we get the following Sharpe Ratios:

Average Sharpe Ratio for portfolio of all fixed income instruments and trading rules conditional on normalised interest rate regime
We're currently in the right most bucket (normalised rate change 0.26); it's certainly one of the worst performing regimes, but the results aren't monotonically changing across rates.

Due to the way the regimes are created each bucket as an identical length of return history, but the rate regimes may be of different widths.

A few more experiments

Lest we be accused of p-hacking, here is the result for the unadjusted yield change:

Histogram of sampling estimate for SR, across fixed income instruments, for all rules, conditioned on raw yield change

If anything the results here are more significant than for the normalised yield change. For reference the current 12 month trailing interest rate rise is +0.64%; so we do fall in the orange distribution, but only just. The results here aren't quite as relevant for current meta-predictions than those for the normalised change.

Fixed income is buried, but what about the rest of our CTA portfolio? Should we try a different asset class? Here are the results for S&P 500:

Histogram of sampling estimate for SR, S&P 500 futures, for all rules, conditioned on raw yield change

It looks like rising rate environments are slightly better for momentum and carry in stocks but this is a long way from being significant. Generally we don't see such stark effects for momentum and carry in non fixed income instruments.

Finally here are the results for a couple of long only portfolios (i.e. we're now making predictions not meta-predictions). First long only equally weighted for all four of our fixed income instruments (actually these are inverse vol weighted, not equal weighted):

Histogram of sampling estimate for SR, across fixed income instruments, for long only portfolio, conditioned on adjusted yield change

The results here make sense on one level, but not on another. This plot shows us that if interest rates have recently been rising then we should expect to do relatively badly from fixed income (although the p-value isn't that significant). Another way of putting that is that momentum works: if interest rates have been rising then total return from long only bond portfolios won't be that great (although this measure of momentum is the 12 month change in a single yield, rather than a moving average crossover on the adjusted price of whatever). However we already know that slow momentum is best avoided in fixed income when yields have been rising.

And here is long only S&P 500:

Histogram of sampling estimate for SR, S&P 500 futures as long only portfolio, conditioned on adjusted yield change

It looks like rising rate environments are slightly better for stocks (due to higher economic confidence?) but again this is a long way from being significant. Interesting though and possibly the source of a trading rule idea for stock index prediction.

Summary: what should we do?

Here is a quick summary of the Sharpe Ratios that we've seen so far for each normalised interest rate change regime, plus the p-values when comparing the two regimes.

          Falling Rising P-value
SP500 long 0.04 0.45   28.00%
FI long 0.9 0.44   13.50%
SP 500 CTA 0.68 0.88   69.00%
FI CTA       0.91 0.18   2.00%
EDOLLAR CTA 0.96 0.18   2.20%
US5 CTA       0.84 0.36 18.20%
US10 CTA 0.86 0.25 6.50%
US20 CTA 0.58 0.12 14.00%
FI carry 0.92 0.14 1.20%
FI slow mom 0.7 -0.25 0.20%
FI med mom 0.64 -0.02 2.50%
FI fast mom 0.66 0.10 7.30%

It looks like in a rising interest rate environment you should make the following portfolio adjustments:

  • Long only: Shift to stocks and out of bonds (although bonds still do about as well as stocks in a rising rate environment - it's just that they're not doing as well as when rates are falling and stock performance is flat)
  • CTA vs long only: Perhaps slightly reduce your overall CTA exposure, but not by much (stock CTA strategies actually do a little better, and CTA returns won't be much lower if managers deallocate from fixed income)
  • CTA asset allocation: Shift out of fixed income and into other asset classes. 
  • CTA fixed income instrument weighting: You might want to slightly overweight 5 years at the expense of other tenors
  • CTA fixed income forecast allocation: You might want to slightly overweight faster momentum at the expense of slower momentum (the slow momentum loses out most when we don't get a tailwind of general reductions in yield). On a relative basis carry holds up reasonably well versus momentum.

By the way 'shift' doesn't imply a complete reallocation. I'd be wary of changing my weights by more than a factor of 0.5 / 1.5, even with p-values of 2% or less. So for example if your CTA portfolio is 30% in fixed income; then the largest reduction I'd countenance would be to shift it to 15% in fixed income.

Concluding thoughts

I will be honest - I was surprised by these results - and I didn't set out to find them (always a risk with any piece of research). It's unusual to find meta-predictions that work. Out of loyalty to CTAs generally, and to fixed income specifically, I was rather hoping to find no significant effects.

Have I discovered a holy grail of factor timing? It depends what you mean by factor timing. I haven't shown that we can predict when momentum or carry can do well relative to buy and hold for a given asset class. All I've confirmed is that rising interest rates are not ideal for fixed income, and the results show that is true not only for long only, but also for most strategies that you might care to mention.

But if 'bond momentum' and 'bond carry' are factors, then sure I've found a pretty good predictor of when it does or doesn't work: recent rises in interest rates. Although remember from before that momentum will partially turn itself off when it is losing money, due to weaker signals as you'd expect to get when rates are rising.

I probably won't personally do anything with these results because it's an extra layer of complexity (and I haven't formally back-tested using interest rate changes to alter weightings, which means I haven't accounted for switching costs; plus there is the question as to how we approach say other countries like Germany where I don't have enough data to prove whether this works).

But they are still interesting food for thought.