Continuous Contracts

User-defined continuations, (UDC) are constructed price time series for futures. Futures are forward contracts offered on basis of commodities, stocks, indexes, currencies or assets. All futures have a fixed expiration date. Therefore, the history length of futures is limited and ends on the day of expiration. For analysis and testing of trading systems this poses a problem since the available data for each contract is too small.

The solution to this problem is continuous contracts, which include the concatenated price data of expired contracts. You can use continuous contracts for
  • long-term analysis of future markets
  • searching seasonal trends in future markets
  • trading system tests over longer histories
Tradesignal offers several ways to set up continuous contracts. Depending on your data provider, you have the choice between several adjustment and adaptation functions. This way, you can add your own creations to the continuous contracts offered by your data provider. The result and all its included calculations is saved as a symbol, which allows further handling and analysis.

Set up a User-Defined Continuation


User-Defined Continuation Wizard
Since a user-defined continuation (UDC) acts like a normal symbol, it is set up via the context menu of a symbol list.
  1. Select New Symbol in the context menu of a symbol list.
  2. Choose the option User-defined continuation.
The user-defined continuation wizard opens.

Note that depending on your data provider, some of the following options and adaptation methods might not be available (grayed out).

Setting up an UCD is done in four steps.

Contract Selection


Contract Selection
Future Root Code - Enter a Future Root Code, for example "S" for soybeans.

Starting Contract Year - Enter the starting year for the futures.

Next Contract to Select - If no special specifications have to be met for the contracts, select an entry from the list. However, for several reasons, some contracts are not handled the same way at all times of the year and therefore should be exempted from the history. Therfore there is a way to exempt contracts:
  • Exclude the contracts of one or more defined months. For this option, select or deselect the check boxes in front of the
  • months' names. You can also click the All button for all months, or the Quarters buttons to select contracts from March, June, September and December. Please note that this options only applies to contracts of a monthly expiring nature.
    • Exclude the contracts of one or more defined week days. For this option, select or deselect the check boxes in front of the days' names. Please note that this option only applies the contracts that are of a daily expiring nature.
    As of version 6.2 of Tradesignal if you use the TMDS as your data provider you can additionally select whether the adjustment calculation should be done on the server or on the client, what until now was the only possible way. Server side calculation is used by default if available because it is faster and less resource consuming. Some options will not be available in this case. Therefore it is possible to switch back to client side calculation by selecting the checkbox Enable client side calculation options. All other data providers do not offer this option thus the client side calculation will always be used and cannot get switched off.

    Rollover Method


    Rollover Method
    Here you can define the rollover method. You can either use fixed intervals or let the market define the rollover moment. For the latter, conditions based on open interest and trading volume are available.

    Rollover Trigger

    Rollover strictly on the expiration day of the contract - The history of the new contract is connected to the history of the expiring contract on the expiration date.

    Rollover strictly on a specific day of the expiration month of the contract - For this method, you can define on which day of the expiration month the rollover will take place.

    Rollover a number of days before the expiration day of the contract - For this method, you can define a number of days before the expiration day on which the rollover will take place.

    Rollover a number of days before the expiration month of the contract - For this method, you can define a number of days before the expiration month on which the rollover will take place.

    Rollover when Open Interest of the next contract exceeds the current contract - The rollover date is controlled by the market. When the open interest of the next contract exceeds that of the current contract, the rollover takes place.

    Rollover when Volume of the next contract exceeds the current contract - The rollover date is controlled by the market. When the trading volume of the next contract exceeds that of the current contract, the rollover takes place.

    Rollover when Open Interest OR Volume of the next contract exceeds the current contract - This is a hybrid of the two previous methods. The rollover takes place when either the open interest or the trading volume of the new contract exceeds that of the current contract. The rollover date is controlled by the market.

    Rollover when Open Interest AND Volume of the next contract exceeds the current contract - This is a hybrid of the two previous methods. The rollover takes place when both the open interest and the trading volume of the new contract exceed that of the current contract. The rollover date is controlled by the market.

    Rollover Trigger Options


    Rollover Trigger
    The volume or open interest conditions can be tracked for several days.

    Trading days before expiry - Set the number of days for tracking. Select all (*) or the number of days (0-31) from the list.

    Consecutive trigger occurrences - Select the number of triggers that have to be set off (1-4).

    Rollover - Advanced Options

    For some methods, the Advanced button is available. It opens another dialog in which you can set rollover intraday details for trading periods shorter than a day.

    Use data only from the expiring contract - On the expiration date, only contract data of the expiring contract are taken into account for the calculation.

    Use data only from the continuing contract - On the expiration date, only contract data of the new contract are taken into account for the calculation.

    Combine data from both contracts into a single candle - The data of both contracts is used to calculate a combined value.

    Include non-trading days in all interval calculations - Select this option to include non-trading days into the calculation for intervals of the rollover triggers.

    Force rollover to occur at the following time - For trading periods shorter than a day, you can set the time. Enter the hours and minutes in the respective fields.

    Data Adjustment


    Data Adjustment
    User-defined contracts are constructed by mathematical concatenation of price histories of single contracts. This is done to avoid the so-called rollover gaps, price differences between the expiring and the new contracts. However, this may result in side effects like extreme price divergence in past histories of continuous contracts as compared to the originally traded contracts. Choose the data adjustment method depending on your preferences or to avoid certain side effects.

    Data Adjustment Method

    No Adjustment - The data of the contracts is simply concatenated without further adjustments. This results in a large price gap at each rollover date. However, the advantage is that even histories in the distant past still show the real traded prices.

    Backward Adjustment - The history of the expiring contract is adjusted to the price of the next contract, i.e. either raised or lowered. For each additionally concatenated contract, the complete past history is adjusted this way. Therefore, the resulting data for the distant past is very different from the actually traded prices. It is also possibly to receive negative (nonsensical) values in the process.

    Forward Adjustment - The history of the new contract is adjusted to the price of the expiring contract.

    Proportional Adjustment - For this, the complete history is calculated anew. All past prices are multiplied with the ratio of the input fields (see below). This way, no negative values can result since the values are multiplied instead of subtracted.

    Fields with which to calculate the adjustment

    Select which fields the chosen adjustment method should be based on.

    Closing price of both contracts - The calculation is based on the closing prices.

    Open of new contract; Close of expiring contract - The calculation is based on the close of the expiring and the open of the new contract.

    Opening price of both contracts - The calculation is based on the opening prices.

    Average price of both contracts - The calculation is based on an average, namely (Highest High + Lowest Low / 2) of both contracts.

    Advanced Options for the Adaptation

    For some settings, an additional dialog is available under Advanced.... Here you can define which contract data should be used for calculating the price difference.

    The bar after the rollover day

    Same day as the rollover day

    Summary

    In the summary you can see an overview of your settings. You can also select the option Create a New chart using this UDC when the wizard finishes.

    Manage Continuous Contracts

    Via the context menu of the contract symbol you can reach all other functions for the contract:
    • You can use continuous contracts in the documents Chart, Market Profile, Watchlist, Scanner and Portfolio.
    • You can copy, rename or delete contracts.
    • You can open the user-defined continuation wizard to edit the adjustment and calculation methods. To do so, select Edit Continuation Symbol in the context menu.

    Example: Creating a Continuous Contract for Futures

    1. In the toolbox, click on Symbol Lists.
    2. Click on New Symbol to open the Symbol wizard.
    3. Select user-defined continuation and click on Next. The user-defined continuation (UDC) wizard opens.
    In the UDC wizard:
    1. For Future Root Code, enter a symbol/shortcut, e.g. "S" for soybeans. (Futures are not automatically available for all account types. Contact Tradesignal for an upgrade, if necessary.)
    2. From the list of contract series, select the top entry so that all available contracts will be taken into account.
    3. Click on Quarters to select the four months in which quarters end.
    4. Click on Next.
    5. As trigger for the concatenation, select Rollover when volume of the next contract exceeds the current contract.
    6. Click on Next.
    7. Select Proportional Adjustment and closing prices of both contracts as fields for the calculation.
    8. Click on Next.
    9. Check the Create a new chart using this UDC when the wizard finishes option and click on Done.
    10. Enter a name for the contract.
    The continuous contract now appears as symbol in the symbol list.

    Literature

    • Fundamental Analysis - Jack D. Schwager