How To Ratio Adjust Futures Data

In this PRESENTATION – How To Ratio Adjust Futures Data – we learn the steps necessary for rolling futures contracts using the RATIO ADJUST mechanism.  NOTE: You can follow the video presentation and also download the original whitepaper below.  I have included a transcript so that you can follow through the examples I have chosen for the detailed explanations. How To Ratio Adjust Futures Data explains the concepts behind this fairly obscure rolling methodology. If you need to know How To Ratio Adjust Futures Data then look no further, it is all fully explained below.

How To Ratio Adjust Futures Data

Many people who trade futures for a living don’t fully understand the differences between the various roll options available to them, and more importantly, when and how to use them.  What is dangerous is to simply rely upon the continuous data provided by a typical data vendor without knowing what is happening behind the scenes. If you make assumptions here without knowing the implications then as a trader you may be risking more than just surprises.

In this short presentation we look at a little known way to roll based on the RATIO ADJUST mechanism.  We will explore both back ratio adjust and forward ratio adjust methods and how to calculate them.

The fundamental difference between forward and back adjust algorithms when rolling data compared with forward ratio and backward ratio adjust algorithms is the fact that the former are additive and the latter are multiplicative. Some of you may understand this straight off the bat, but some may not.

I will do another presentation at a later time on the more common additive adjustments, but for this presentation we shall concentrate on multiplicative rolls.

Cabestan Research in London gave me a great white paper explaining the concept which I have used in this presentation, so a big thanks to those guys.

Looking at table 2, the ratio back adjust, and working from the bottom row, towards the top we can see t1 and t0 as the roll dates across three contracts of the S&P. The prices are the closes and I have labelled p, q and r with the respective contract names to make it easier to interpret the maths.

Now look what’s happening. At t1 on the 13th June we are dividing SPU17 by SPM17. In other words dividing the most forward month by its nearest back month. This gives us the ratio of 0.99918033 in which to MULTIPLY all data points, ie the open high low and close prior to that roll.

So does it work?  If you get a calculator and follow through the maths you will see still on row 3 that 0.99918033 x the unadjusted close of 2440 is 2438, rounded. On row 4 applying the same ratio, we see the unadjusted close of 2428.5 multiplied by 0.99918033 is 2426.5 rounded, so the logic works.

Now repeat the process until we reach the final roll at t0 on 14th March. Things become more complex. So, let’s strip back the complexity and explain it. Here we now need to look at dividing SPM17 by SPH17, in the same manner as before.  2363.1 divided by 2366.4 is 0.99860547. but what about the ratio we had before we reached this second roll.  The point is you must MULTIPLY this new ratio of 0.99860547 by the old ratio of 0.99918033 to give us the cumulative adjustment of 0.99778695.  It is this figure that we use to multiply the data by in each and every case.  We can see that if we do that, we see that at t0 the unadjusted close was 2366.4.  If we multiply this by the cumulative value of 0.99778695 we do indeed get 2361.2.  Now it’s a simple case of rinse and repeat as the algorithm is clearly defined and programmable either in code or by manual design in a spreadsheet.

Note, to cross check and verify the final results, ideally, if we kept tabs on the cumulative ratios all the way through history the cumulative value in the first row multiplied by close should bring you back to the unadjusted close in that contract. I have used Portara to run off a simple example of 1 minute bar of the S&P back to inception and I have included a cumulative adjustments and unadjusted close as columns in the series to make this helpful.  If we look at the results we can see that the cumulative adjustment of 1.546855533 multiplied by the unadjusted close of 331.0 does indeed verify the close of 331.0.  And, thus, we can determine that the data is proportionately correct.

A quick note if we decide to reverse direction and go with a forward ratio adjust, we must be careful to get the direction of the division in the correct order as it is not the same way around.  If we look at Table 1, in this case, using the forward method, all the mathematical nuances are the same however, logically the division must be the reverse of the back ratio adjust and in this way on the 14th March roll date at t0 the SPH17 is divided by SPM17 to arrive at the forward ratio adjust of 1.001396471.

Lastly, a cautionary note on utilising ratio adjusted data in your backtesting.  If you don’t fully understand this method, don’t use it to predict results! Ratio methods are useful for certain types of testing but if you don’t know what you are doing the results can be very misleading.  By design, data is never negative using ratio adjust. It may appear squeezed compared to backadjusted additive methods as the intuitive shape gets distorted.  But, you can measure the volatility of returns in terms of percentages, avoiding negativity and very small numbers close to zero, which would distort your percentage ratios. Or, even zero itself, and possibly a divide by zero exception if you have decided to build your algorithms with divisions instead of multiplicative factors!  For example a good use for ratio adjusted data is if you were trading two contracts such as Bund and Gold; you could in theory compute a volatility ratio between the two and use that to risk adjust your positions.

A Whitepaper by Cabestan Research – London