Custom Futures

From MultiCharts
Jump to navigation Jump to search

Understanding Custom Futures

Not all data sources provide continuous data (see Which Data Sources Support Expired and Continuous Futures Contracts). If continuous futures data is not provided by your data feed, you can create continuous symbols within MultiCharts.

Custom Futures is a symbol combined from the individual futures contracts. The data series of Custom Futures is created by rolling over the data of the individual contracts added to the QuoteManager.

Custom Futures are useful for backtesting and charting purposes due to short operation time of individual futures contracts. The rollover is performed only on the session end near to the moment of current contract expiration using the rollover rules based on time and activity.

Custom Futures chart is plotted using the data available for individual contracts added in the QuoteManager.

If there is no data for the symbol in the database – the data will be requested from the data feed, similar to plotting regular contracts charts.

“No data” message in the status line of the chart can be displayed if all the requested contracts have no data in the data base and this data cannot be downloaded from the data feed.

Custom Futures limitations:

  • The resolutions available for Custom Futures are 1 Day and lower (tick, point, contract, change, second, minute).
  • Only the Regular Chart type is available for Custom Futures.
  • Bar Magnifier Mode is not available for Custom Futures.
  • DataPlayback for Custom Futures can be used in “As Is” mode only.

Creating Custom Futures symbol

The procedure of creating a Custom Futures symbol consists of multiple steps.

Adding symbols to the data base

Individual futures contracts should be added to the database prior to creating a Custom Futures symbol. Creating a Custom Futures will not add the necessary individual futures contracts. See Adding Symbol(s) to Symbol List section for more information

Adding expired contracts to the database

Some data feeds provide data for expired contracts. Expired contracts may not be available through the lookup window, such contracts should be added manually.

See Adding Symbol(s) to Symbol List section for more information.

Note: Custom Futures and symbols (individual futures) should have the same data provider, exchange and Symbol Root.
Note: Not all data sources provide the historical data for the expired futures contracts. See Which Data Sources Support Expired and Continuous Futures Contracts page to find the list of the data sources supplying the historical data for the expired futures contacts.

Adding symbol roots to the dictionary

For every data provider, not presented in the Symbol Dictionary list in the QuoteManager symbol roots should be added to the Default symbol dictionary.

See Symbol Dictionary for Futures section for more information

Note: The symbol root expiration rule directly affects the symbol expiration date.

Creating a Custom Futures symbol

A new Custom Futures symbol can be created by using the Add Custom Futures window or by entering the Custom Futures symbol parameters into the Command Line toolbar.
If the Custom Futures symbol name is known, the simplest way to create a new chart is to enter the symbol name and all known symbol parameters into the command line.
Any omitted symbol parameters will automatically be selected, and the symbol plotted.

Creating Custom Futures Using the Add Custom Futures Window

To create a Custom Futures symbol:

  1. In the main MultiCharts menu select File, then point to New and click QuoteManager Window.
  2. Go to the Instrument tab.
  3. Then click Add custom futures.
  4. Select the data source.
  5. Input any desired symbol name.
  6. Select the symbol root.
  7. Select contracts to use (if they are specified incorrectly in Symbol Dictionary Settings) by clicking on the check boxes.
  8. Build continuous futures contract on.
    To define the serial number of the contract on which the Custom Futures series is based select one of the available options in the box: Nearest contract, 2nd nearest contract, N nearest contract.
    While building a Custom Futures “N” Nearest contract will be taken for each moment of time. Algorithm of choosing the rollover date

    Event (Volume and/or Open Interest)
    When day (Event) rollover is selected, e.g. the next contract’s Daily bar volume (Days of Higher) was higher than the Volume of previous bar for the specified amount of days (1-9).
    To select the event condition click Event
    To define the rollover condition, select one of the available options in the Days of Higher box: Volume, Open interest, Open Interest or Volume, Open Interest and Volume.

    Time (certain date)
    When Time rollover is selected – the transition from the previous contract to the next contract is done on the day defined by displacement into the past from the expiration date for the specified value 0 – 99 of trading days (Trading Days Prior to Expiration Date). An additional displacement can be set for the value up to 9 months into the past using the Offset, i.e. the rollover date is the date obtained by displacement into the past from the Expiration Date for Offset of months and prior trading days.
    To select time condition click Time. In the Offset by Months prior box, enter an amount of months.

  9. Back adjustment mode
    To define the back adjustment mode, in the Back Adjustment Mode box select one of the available options: no adjustment, absolute difference, ratio.
    • No Adjustment - the bars of each series in use are not changed.
    • Absolute Difference - constant (С = Cnext - Cprev; where Cprev – close of the last bar before the rollover point) is added to all data prior to the rollover date. The data of the last series is not corrected as there was no rollover for it yet.
      If the N contracts are rolled over then the data of the first contract is corrected N-1 times.
    • Ratio adjustment - all data prior to the rollover point is multiplied by the ratio (C= Cnext / Cprev).
      If the N contracts are rolled over then the data of the first contract is corrected N-1 times.
  10. “Symbol Code” field
    Displays rollover encoded in a line. The encoding is done automatically if the information on the Custom Futures tab is changed. The symbol code can be copied, but cannot be modified.
    “Symbol Code” can be used in Real-time market scanner or Command Line to plot a Custom Futures chart bypassing the dialogue window.
  11. Set the Settings and Sessions tabs of Custom Futures up the same way as for individual contracts.

See Setting Properties section for more information

Creating Custom Futures charts

See Creating Charts for more information

Additional information regarding the Symbol Root

The data series of Custom Futures can be created only from the individual contracts present in the Database and named according to the basic template: <Root>[<space>]<AbbrMonth>[<space>]<Year>[<suffix>].

<Root> - all symbols;
<AbbrMonth> - letters F, G, H, J, K, M, N, Q, U, V, X, Z, or abbreviations JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OKT, NOV, DEC; 01,…,12
<Year> - 1, 2 or 4 digits indicating the year;
<empty space> - any quantity of empty spaces;
<suffix> - any sequence of two or more symbols, starting from '/' or '-';
[] - everything that is in the [] brackets can be omitted.

Note: If the necessary symbol is missing from the database data series will be created without it.

Custom Futures that cannot be created in MultiCharts

The root name should not contain following symbols <;> <:> <=> <!> <_>. Custom Futures cannot be created for such symbols.
If the symbol name does not satisfy the basic template, Custom Futures cannot be created for this symbol.


While Plotting a Custom Futures chart you may see yellow alert messages: “To construct Custom Futures please add the following contracts”.

These alerts appear because Custom Futures requests data prior and following the symbols already in the database based on the selected rollover conditions and data request.

Custom Futures chart can be plotted without adding these symbols, if there are other individual contracts with data in QuoteManager.


If there are no futures symbols in the data base for creating a Custom Futures, the following alert message will appear: