How do Futures Contract Rollover Days Work

The rollover day for a Futures contract is one of the most misunderstood features in trading these contracts.
Quite simply, Rollover Day is when traders start to exit the expiring contract and begin trading the front month contract that expires some time in the future.
As part of your job as a trader, you must understand when the contracts expire and ensure you buy/sell out of the existing contract before the date of expiration.
Liquidity And Rollover
The expiring contract can still be traded, as it is still available up to the expiration day, but the liquidity will suffer and you are best advised, if you want to continue in this position, to change to the new contract.
Liquidity: The degree to which an asset or security can be bought or sold in the market without affecting the asset’s price
This will avoid the problems associated with reduced trading volume which I will highlight later in this article
The word “contract” when referring to the Futures market is an actual contract complete with obligations for both the buyer and the seller.
The buyer agrees to take delivery, if trading in commodities such as cattle, and the seller agrees to deliver the product.
Trading in financials, the Futures contracts would be settled in cash.
The fact is that for the majority of traders, actual delivery never takes place as they are speculating on prices and not actually buying the product itself.
Futures Contract Rollover Days Can Differ
The instrument you are trading has a specific day that rollover occurs. All instruments are not created equal though as some expire quarterly and others expire monthly.
Some of the most popular e-mini contracts are the ES, Dow, and the Russell and they are known as stock index instruments. These expire quarterly in the months of March, June, September, and December on the third Friday of the month at 9:30 EST.
Note: Each expiration month is represented by the following letters: March (H), June (M), September (U), December (Z)
Let’s use the ES for an example highlighting the March 2015 expiration: ESH15

The March 2015 contract expires on March 20, 2015. The rollover to the June Futures contract (ESM15) is 8 days before expiry which is March 12, 2015. This is when you want to monitor the volume in your market as many traders begin to exit that current contract.
Most traders that I speak with will either change contracts on rollover or will trade the front month the next day.
Another popular Futures instrument to trade is Crude Oil or CL
Instead of a quarterly rollover, Crude Oil Futures rolls on a month to month interval.
Keeping with March 2015, you’d be trading CLH15 but rolling over to the April contract CLJ15 in the following manner:
- Trading the current month CLH15 will stop on the third business day prior to the 25 day of the month.
- If the twenty-fifth calendar day of the month is a non-business day, trading shall cease on the third business day prior to the last business day preceding the twenty-fifth calendar day.
(http://is.gd/clcontract)
Ensure that for any Futures market you trade that you are fully educated on the rollover particulars to avoid any issues with your trading positions.
EFFECTS OF ROLLOVER
You may have heard about difficulties with liquidity, and increased volatility associated with rollover days. These result from the changeover that happens. Most traders move from trading the current contract into the next contract, and that means that the volume of the expiring contract becomes less, usually resulting in larger spreads, and the trading volume for the next period increases.
Volume: Total amount of futures contracts bought and sold during trading day (other time frame)
Here we have a comparison of volume between the expiring month and the front month.

You can see the gradual decline of volume plus the incline of volume in the front month. If you are not paying attention to rollover, you may start seeing its effects in terms of liquidity.
The increasing spreads on the expiring contract can be harmful to you if you day-trade, and the new contract will usually have very tight spreads on the rollover day. This is also important if you are a longer-term trader who wants to carry the contract past the expiration date, as the small spreads mean that you will pay the least to do the transfer.
If you are considering opening a position within a few days of rollover day, then you may find it better to use the new contract at the start.
Don’t Fear Contract Rollover
Futures Contract Rollover is not complex but it is something you should be extremely aware of. While most markets rollover at the same time, as we have seen with crude oil, there can be differences.
Just ensure you are checking the calendar and unless you are holding long term positions, begin trading the front month contract when most of the players change over.
How do futures contracts roll over?
Gordon Scott has been an active investor and technical analyst or 20+ years. He is a Chartered Market Technician (CMT).
Traders roll over futures contracts to switch from the front month contract that is close to expiration to another contract in a further-out month. Futures contracts have expiration dates as opposed to stocks that trade in perpetuity. They are rolled over to a different month to avoid the costs and obligations associated with settlement of the contracts. Futures contracts are most often settled by physical settlement or cash settlement.
Key Takeaways
- Traders will roll over futures contracts that are about to expire to a longer-dated contract in order to maintain the same position following expiry.
- The roll involves selling the front-month contract already held to buy a similar contract but with longer time to maturity.
- Depending whether the futures is cash vs. physical settlement may influence the roll strategy.
Why Roll?
Rolling futures contracts refers to extending the expiration or maturity of a position forward by closing the initial contract and opening a new longer-term contract for the same underlying asset at the then-current market price. A roll enables a trader to maintain the same risk position beyond the initial expiration of the contract, since futures contracts have finite expiration dates. It is usually carried out shortly before expiration of the initial contract and requires that the gain or loss on the original contract be settled.
A futures position must be closed out either before the First Notice Day, in the case of physically delivered contracts, or before the Last Trading Day, in the case of cash-settled contracts. The contract is usually closed for cash, and the investor simultaneously enters into the same futures contract trade with a later expiry date.
For example, if a trader is long a crude oil future at $75 with a June expiry, they would close this trade before it expires and then enter into a new crude oil contract at the current market rate and that expires at a later date.
Physical Settlement
Non-financial commodities such as grains, livestock and precious metals most often use physical settlement. Upon expiration of the futures contract, the clearinghouse matches the holder of a long contract against the holder of a short position. The short position delivers the underlying asset to the long position. The holder of the long position must place the entire value of the contract with the clearinghouse to take delivery of the asset.
This is quite costly. For example, one contract of corn with 5,000 bushels costs $25,000 at $5.00 a bushel. In addition, there are delivery and storage expenses. Thus, most traders want to avoid physical delivery and roll their positions prior to expiration to avoid it.
Cash Settlement
Many financial futures contracts, such as the popular E-mini contracts, are cash settled upon expiration. This means on the last day of trading, the value of the contract is marked to market and the trader’s account is debited or credited depending on whether there is a profit or loss. Large traders usually roll their positions prior to expiration to maintain the same exposure to the market. Some traders may attempt to profit from pricing anomalies during these rollover periods.
Current contract in front что это
Continuous Futures Contracts for Backtesting Purposes
Continuous Futures Contracts for Backtesting Purposes
In a previous article on QuantStart we investigated how to download free futures data from Quandl. In this article we are going to discuss the characteristics of futures contracts that present a data challenge from a backtesting point of view. In particular, the notion of the «continuous contract» and «roll returns». We will outline the main difficulties of futures and provide an implementation in Python with pandas that can partially alleviate the problems.
Brief Overview of Futures Contracts
Futures are a form of contract drawn up between two parties for the purchase or sale of a quantity of an underlying asset at a specified date in the future. This date is known as the delivery or expiration. When this date is reached the buyer must deliver the physical underlying (or cash equivalent) to the seller for the price agreed at the contract formation date.
In practice futures are traded on exchanges (as opposed to Over The Counter — OTC trading) for standardised quantities and qualities of the underlying. The prices are marked to market every day. Futures are incredibly liquid and are used heavily for speculative purposes. While futures were often utilised to hedge the prices of agricultural or industrial goods, a futures contract can be formed on any tangible or intangible underlying such as stock indices, interest rates of foreign exchange values.
A detailed list of all the symbol codes used for futures contracts across various exchanges can be found on the CSI Data site: Futures Factsheet.
The main difference between a futures contract and equity ownership is the fact that a futures contract has a limited window of availability by virtue of the expiration date. At any one instant there will be a variety of futures contracts on the same underlying all with varying dates of expiry. The contract with the nearest date of expiry is known as the near contract. The problem we face as quantitative traders is that at any point in time we have a choice of multiple contracts with which to trade. Thus we are dealing with an overlapping set of time series rather than a continuous stream as in the case of equities or foreign exchange.
The goal of this article is to outline various approaches to constructing a continuous stream of contracts from this set of multiple series and to highlight the tradeoffs associated with each technique.
Forming a Continuous Futures Contract
The main difficulty with trying to generate a continuous contract from the underlying contracts with varying deliveries is that the contracts do not often trade at the same prices. Thus situations arise where they do not provide a smooth splice from one to the next. This is due to contango and backwardation effects. There are various approaches to tackling this problem, which we now discuss.
Common Approaches
Unfortunately there is no single «standard» method for joining futures contracts together in the financial industry. Ultimately the method chosen will depend heavily upon the strategy employing the contracts and the method of execution. Despite the fact that no single method exists there are some common approaches:
Back/Forward («Panama») Adjustment
This method alleviates the «gap» across multiple contracts by shifting each contract such that the individual deliveries join in a smooth manner to the adjacent contracts. Thus the open/close across the prior contracts at expiry matches up.
The key problem with the Panama method includes the introduction of a trend bias, which will introduce a large drift to the prices. This can lead to negative data for sufficiently historical contracts. In addition there is a loss of the relative price differences due to an absolute shift in values. This means that returns are complicated to calculate (or just plain incorrect).
Proportional Adjustment
The Proportionality Adjustment approach is similar to the adjustment methodology of handling stock splits in equities. Rather than taking an absolute shift in the successive contracts, the ratio of the older settle (close) price to the newer open price is used to proportionally adjust the prices of historical contracts. This allows a continous stream without an interruption of the calculation of percentage returns.
The main issue with proportional adjustment is that any trading strategies reliant on an absolute price level will also have to be similarly adjusted in order to execute the correct signal. This is a problematic and error-prone process. Thus this type of continuous stream is often only useful for summary statistical analysis, as opposed to direct backtesting research.
Rollover/Perpetual Series
The essence of this approach is to create a continuous contract of successive contracts by taking a linearly weighted proportion of each contract over a number of days to ensure a smoother transition between each.
For example consider five smoothing days. The price on day 1, $P_1$, is equal to 80% of the far contract price ($F_1$) and 20% of the near contract price ($N_1$). Similarly, on day 2 the price is $P_2 = 0.6 \times F_2 + 0.4 \times N_2$. By day 5 we have $P_5 = 0.0 \times F_5 + 1.0 \times N_5 = N_5$ and the contract then just becomes a continuation of the near price. Thus after five days the contract is smoothly transitioned from the far to the near.
The problem with the rollover method is that it requires trading on all five days, which can increase transaction costs.
There are other less common approaches to the problem but we will avoid them here.
Roll-Return Formation in Python and Pandas
The remainder of the article will concentrate on implementing the perpetual series method as this is most appropriate for backtesting. It is a useful way to carry out strategy pipeline research.
We are going to stitch together the WTI Crude Oil «near» and «far» futures contract (symbol CL) in order to generate a continuous price series. At the time of writing (January 2014), the near contract is CLF2014 (January) and the far contract is CLG2014 (February).
In order to carry out the download of futures data I’ve made use of the Quandl plugin. Make sure to set the correct Python virtual environment on your system and install the Quandl package by typing the following into the terminal:
Now that the Quandl package is intalled, we need to make use of NumPy and pandas in order to carry out the roll-returns construction. If you haven’t got NumPy or pandas installed, please follow my tutorial here. Create a new file and enter the following import statements:
The main work is carried out in the futures_rollover_weights function. It requires a starting date (the first date of the near contract), a dictionary of contract settlement dates ( expiry_dates ), the symbols of the contracts and the number of days to roll the contract over (defaulting to five). The comments below explain the code:
Now that the weighting matrix has been produced, it is possible to apply this to the individual time series. The main function downloads the near and far contracts, creates a single DataFrame for both, constructs the rollover weighting matrix and then finally produces a continuous series of both prices, appropriately weighted:
The output is as follows:
It can be seen that the series is now continuous across the two contracts. The next step is to carry this out for multiple deliveries across a variety of years, depending upon your backtesting needs.
References
If you would like more detail in forming continuous series of futures prices then please have a look at the following links:

QSAlpha
Join the QSAlpha research platform that helps fill your strategy research pipeline, diversifies your portfolio and improves your risk-adjusted returns for increased profitability.

The Quantcademy
Join the Quantcademy membership portal that caters to the rapidly-growing retail quant trader community and learn how to increase your strategy profitability.

Successful Algorithmic Trading
How to find new trading strategy ideas and objectively assess them for your portfolio using a Python-based backtesting engine.

Advanced Algorithmic Trading
How to implement advanced trading strategies using time series analysis, machine learning and Bayesian statistics with R and Python.
What are 1! and 2! continuous futures contracts?
A continuous futures contract is an artificial financial instrument derived by linking multiple individual futures contracts with different expiration dates. This method creates a smooth price series that helps traders identify long-term trends and patterns, eliminating the need to manually switch between individual contracts. You can learn more about the switching continuous futures contracts on TradingView Chart in this article.
1! continuous contract (front month)
The 1! continuous contract represents the front or nearest expiration month contract. It rolls over to the next contract when the current front-month contract expires. This series is widely used for short-term analysis and trading, as it provides an accurate reflection of the current market sentiment and price movements.
2! continuous contract (second month)
The 2! continuous contract represents the second nearest expiration month contract. It rolls over to the next contract upon the expiration of the current second-month contract. This series is often used for medium-term analysis and trading, as it captures the market’s expectations for the next contract period and provides insight into potential price movements.
Benefits of continuous futures contracts
Continuous futures contracts offer several advantages for traders and analysts:
- Seamless price series: Continuous contracts provide a smooth price series that facilitates trend analysis and pattern identification, helping traders make better-informed decisions.
- Simplified analysis: By creating a single continuous price series, these contracts eliminate the need to manually switch between individual futures contracts, simplifying the analysis process.
Limitations of continuous futures Contracts
Despite their benefits, continuous futures contracts also have some limitations: