Variables for futures and options



Type and expiration date (YYYYMMDD format) of the selected contract, or 0 when no valid contract was selected.


int, read/only







Current ask, bid, underlying, and strike price, and trade volume or open interest of the selected contract. 0 when no contract chain was loaded, or no valid contract was selected, or when the parameter is not or not yet available in the selected contract. In historical data, ContractAsk or ContractBid can be 0 with illiquid or worthless contracts; such contracts should not be traded. ContractVal includes the multiplier retrieved from the broker API in [Trade] mode. For retrieving the ask and bid prices, the underlying, and the volume in [Trade] mode, contractPrice must be called before.


var, read/only


The currently selected contract. In [Trade] mode, (string)ThisContract - the first element of the CONTRACT struct - contains the trading class retrieved from the broker API.


The option or future chain for the current bar, asset specific, downloaded by contractUpdate. A list of CONTRACT structs of the size NumContracts.




The number of contracts in the chain, 0...10000.


The row number of the selected contract in the historical .t8 dataset in Test and Train mode, and in the options chain in Trade mode. Can be used to retrieve further data belonging to the contract from additional datasets in the backtest.


int, read/only, asset specific.


Number of underlying units per option / future contract, for calculating the trade volume, selecting a contract, and filtering the options chain (default 0 = download all options). Asset specific; set it after selecting the asset and before buying contracts. If at 0, contractUpdate will in [Trade] mode automatically set this variable to the multiplier of the first contract when available via broker API.


Combination of flags that determine which option or futures prices in historical data or live data are given in cents instead of dollars (default 0 = all prices in dollars). Prices are then automatically converted to dollars when loading history or retrieving data from the broker API. Centage flags can be combined by adding them up. Asset specific; to be set after selecting the asset and before buying contracts.

1 -  strike in cents, in live contract data
2 -  strike in cents, in contract history
4 -  underlying in cents, in live contract data
8 -  underlying in cents, in contract history
16 - ask/bid in cents, in live contract data
32 - ask/bid in cents, in contract history
64 - underlying prices and spreads in cents, in live and historical price data (similar to HedgeRatio = 0.01).

Example: Centage = 59 (= 32+16+8+2+1) for ask/bid always in cents, underlying history in cents but live in dollars, and strike always in cents.


int, asset specific


The time of day in DATE format at which contracts expire; default = 0.5 = 12:00 UTC. Used for contractDays. The contract will at that time on its expiration day be removed from the open trade list, and its profit or loss will be booked to the account. Set this to a higher value for checking contract expiration with the contractCheck function in live trading. Note that many exchanges have restrictions to trading or exercising contracts at their expiration day.




The exchange for the contracts in live trading. Automatically set up when a contract chain is loaded from the broker; otherwise set up the exchange symbol manually through this variable. The list of valid exchange symbols can be obtained from the broker website.


string, asset specific.


Examples: see Options and Futures

See also:

enterLong/Short, Contract, Combo


► latest version online