Appendix C: Rollovers

Rollover Concepts

What is a Rollover?

The Rollover “issue” arises primarily when analyzing data from futures exchanges but could also arise with any data stored in the MIM that is of the relation “type” future even if it is not from a futures exchange.

Futures Exchanges

Futures exchanges operate as mechanisms to transfer various risks associated with exposure to commodity prices from those engaged in the physical handling of the commodities to the financial marketplace. The principal device of a futures exchange is the making of a market or exchange for buying and selling contracts for delivery and purchase of commodities at various times in the future, usually for cash.

Futures Contracts

Futures contracts are always for quite specific delivery periods in the future and they typically have a lifespan of about 2 years or so. So if you look at what is trading on a futures exchange at any one time, you get a list of different commodities and then for each commodity a number of “contracts” for delivery at different times into the future.

Of course, all the data from the futures exchanges are stored in the MIM database as they are quoted by the exchange. The pattern of this data is a kind of never ending cycle of delivery contract pricing, with each contract having a “life” of a pre-determined number of months depending on the commodity and the marketplace. So the main set of data you get are relatively short-lived time-series representing prices for a particular delivery period.

These delivery contracts are usually represented in the MIM by a Contract parent (for example, for NYMEX Light Crude Oil , the symbol parent is CL) then a year and a month code.

For example, CL_2003Q is the symbol for the August 2003 contract for NYMEX crude (CL). The default month symbols are as follows:

January          F
February         G
March            H
April            J
May              K
June             M
July             N
August           Q
September        U
October          V
November         X
December         Z

Our example of CL_2003Q – the August 2003 Crude contract, first started trading back in February 2001 and will cease trading as it approaches the delivery month – August 2003. Each contract ceases quoting a short while before the delivery period commences, when it is deemed to have “expired”. The expiration date is an important concept in futures trading and is also known as the final trading day. The expiration date for CL_2003Q is July 22, 2003.

For analysis of data history, delivery month contracts like CL_2003Q have quite specific value – when you want to compare the prices for delivery at a particular time of year or the spread between different delivery months, for example.

Relative Delivery Month Contracts

However, on any given day, the principal interest to many analysts is not a specific delivery month, but rather a “relative” delivery month – relative, that is, to the date when prices were published.

The concept of relative data relationships means that you can create a historical series of prices concerning delivery one or two months into the future (for example) all the way back to the inception of the futures commodity, simply by establishing rules that determine which actual delivery month price to look at relative to the publication date.

The resultant series are known as “continuation” series, because they represent continuous prices, not subject to expiration dates like the individual delivery month contracts.

In the MIM the default continuation futures series are known as the front, back and far continuations, representing quotes for delivery for one, two and three delivery periods out from the publication date. The MIM also calculates continuation futures series for many further periods out into the future, depending on the number of delivery months quoting for a particular commodity over time.

Depending on which time period of history you study, a futures continuation series is like a patchwork quilt, made up of different actual delivery contracts that were, at certain times the “front” contract or the “far” contract or any number of contracts out. The key to determining which contracts make up a particular continuation series is first to know how many “live” delivery periods out from the present the series is going to be and second to know when each delivery period ceases to be “live” or Expires – the expiration dates.

MIM rollover functionality is a flexible tool to assist the analyst in determining these two key variables when creating futures continuation series. Quite simply, the XMIM query language allows you to specify the number of delivery periods out from the nearby delivery period used to calculate the continuation series and exactly how to determine the date when the continuous series changes from looking at one delivery contract, to looking at the next delivery contract in line. The second of these key variables is normally the date when the front contract delivery month expires, but it can be moved forward to an earlier date. This key variable is known as the rollover date.

XMIM query language Rollover functionality is principally about using different rules to determine the rollover date in a continuation futures series, but it then extends to provide different rules about handling any unwanted differences (or volatility) between prices for the delivery contract being used before the rollover date and the prices for the delivery contract being used after the rollover date.

Rollover Functionality in the MIM

Although rollover functionality affects only two aspects of continuation futures series, the functionality is applied differently in different circumstances and so the documentation reflects this. There are 2 separate sets of functionality, designed to meet different circumstances:

  • ROLLOVER_ DATE and ROLLOVER_POLICY

  • adjust_contract and select_contract

You can use any of these functions to adjust the rollover of a continuation futures series.

Software Tools for Creating Rollovers

XMIM and MIMIC are the software tools for creating rollovers. Both software programs share the same rollover language and concepts. This document uses the XMIM software to illustrate rollover examples.

Application of Rollover Policies in the MIM

There are two ways to apply rollover policy to data in a MIM database. The first is to create new continuation series that will be visible to users as new relations in the hierarchy – customizing the new continuations to reflect a specific roll policy. The second is to use existing continuation series as a starting point for your analysis but adjust their default rollover to adapt them to your specific needs.

Of these two applications, the first requires use of and knowledge about, the BMIM scripting language to create new continuation relations. This is relatively specialist knowledge that is addressed separately in the BMIM documentation. For more information, see the "BMIM Scripting Language" chapter in the MIM Data and Development Guide.

This document therefore only covers the second application where you adapt the rollover policy of an existing futures continuation symbol.