exchange.SetContractType
The exchange.SetContractType() function is used to set the current contract code for the exchange exchange object.
exchange.SetContractType(symbol)Examples
-
Set the current contract to the current week contract:
javascriptfunction main() { // Set to current week contract exchange.SetContractType("this_week") }pythondef main(): exchange.SetContractType("this_week")c++void main() { exchange.SetContractType("this_week"); } -
When setting a contract with
USDTas margin, you need to switch the trading pair in the code (you can also set the trading pair directly when adding the exchange object):javascriptfunction main() { // Default trading pair is BTC_USD, set contract to current week, contract is coin-margined contract exchange.SetContractType("this_week") Log("ticker:", exchange.GetTicker()) // Switch trading pair, then set contract, switch to USDT-margined contract, different from coin-margined contract exchange.IO("currency", "BTC_USDT") exchange.SetContractType("swap") Log("ticker:", exchange.GetTicker()) }pythondef main(): exchange.SetContractType("this_week") Log("ticker:", exchange.GetTicker()) exchange.IO("currency", "BTC_USDT") exchange.SetContractType("swap") Log("ticker:", exchange.GetTicker())c++void main() { exchange.SetContractType("this_week"); Log("ticker:", exchange.GetTicker()); exchange.IO("currency", "BTC_USDT"); exchange.SetContractType("swap"); Log("ticker:", exchange.GetTicker()); } -
Print the return value of the
exchange.SetContractType()function:javascriptfunction main(){ // Set contract to current week var ret = exchange.SetContractType("this_week") // Return the information of the current week contract Log(ret) }pythondef main(): ret = exchange.SetContractType("this_week") Log(ret)c++void main() { auto ret = exchange.SetContractType("this_week"); Log(ret); }
Returns
| Type | Description |
object | The |
Arguments
| Name | Type | Required | Description |
symbol | string | Yes | The Unless otherwise specified, delivery contract codes in cryptocurrency futures contracts generally include:
Unless otherwise specified, perpetual contract codes in cryptocurrency futures contracts generally include:
|
See Also
Remarks
In cryptocurrency futures contract strategies, taking switching to the BTC_USDT trading pair as an example:
When using the exchange.SetCurrency("BTC_USDT") or exchange.IO("currency", "BTC_USDT") function to switch trading pairs, after switching you need to use the exchange.SetContractType() function to reset the contract in order to determine the current contract to operate under the new trading pair. The system determines whether it is a coin-margined contract or USDT-margined contract based on the trading pair.
For example: When the trading pair is set to BTC_USDT, using the exchange.SetContractType("swap") function to set the contract code to swap sets it to the USDT-margined perpetual contract for BTC. If the trading pair is BTC_USD, using the exchange.SetContractType("swap") function to set the contract code to swap sets it to the coin-margined perpetual contract for BTC.
Detailed introduction to supported cryptocurrency futures contract exchanges. The contract naming for each exchange is as follows:
-
Futures_OKCoin (OKX)
Set to perpetual contract:exchange.SetContractType("swap")
Set to current week contract:exchange.SetContractType("this_week")
Set to next week contract:exchange.SetContractType("next_week")
Set to monthly contract:exchange.SetContractType("month")
Set to next month contract:exchange.SetContractType("next_month")
Set to quarterly contract:exchange.SetContractType("quarter")
Set to next quarter contract:exchange.SetContractType("next_quarter")OKX supports pre-market trading contracts: The contract delivery date is fixed, and an example of the exchange-defined contract code is:
HMSTR-USDT-250207. On the FMZ platform, set the trading pair toHMSTR_USDT, then useexchange.SetContractType("HMSTR-USDT-250207")to set this contract.
For functions that support thesymbolparameter, such as:exchange.GetTicker(),exchange.CreateOrder(), etc., you can specify thesymbolparameter as:HMSTR_USDT.HMSTR-USDT-250207to get market data for this contract or execute orders. -
Futures_HuobiDM (Huobi Futures)
Set to current week contract:exchange.SetContractType("this_week").
Set to next week contract:exchange.SetContractType("next_week").
Set to quarterly contract:exchange.SetContractType("quarter").
Set to next quarter contract:exchange.SetContractType("next_quarter").
Set to perpetual contract:exchange.SetContractType("swap").
Supports contracts withUSDTas margin. TakingBTCcontract as an example: useexchange.IO("currency", "BTC_USDT")to switch to contracts withUSDTas margin,
or directly set the current trading pair toBTC_USDTwhen configuring live trading parameters and adding exchange objects. After switching trading pairs, you need to call theexchange.SetContractType()function again to set the contract. -
Futures_BitMEX (BitMEX)
Set to perpetual contract:exchange.SetContractType("swap").
Futures_BitMEX exchange's delivery contracts are monthly contracts, with contract codes as follows (January to December):code"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"Set delivery contract:
exchange.SetContractType("December"). For example, when the trading pair is set toXBT_USDT, callingexchange.SetContractType("December")function sets the BTC USDT-margined December delivery contract (the actual contract code isXBTUSDTZ23).Futures_BitMEX Contract Information Summary
Futures_BitMEX Defined Contract Code Corresponding Trading Pair on FMZ Corresponding Contract Code on FMZ Notes DOGEUSD DOGE_USD swap USD quoted, XBT settled. XBT is BTC. DOGEUSDT DOGE_USDT swap USDT quoted, USDT settled. XBTETH XBT_ETH swap ETH quoted, XBT settled. XBTEUR XBT_EUR swap EUR quoted, XBT settled. USDTUSDC USDT_USDC swap USDC quoted, XBT settled. ETHUSD_ETH ETH_USD_ETH swap USD quoted, ETH settled. XBTH24 XBT_USD March Expiry: March 2024, month code: H; USD quoted, XBT settled. ETHUSDZ23 ETH_USD December Expiry: December 2023, month code: Z; USD quoted, XBT settled. XBTUSDTZ23 XBT_USDT December Expiry: December 2023, month code: Z; USDT quoted, USDT settled. ADAZ23 ADA_XBT December Expiry: December 2023, month code: Z; XBT quoted, XBT settled. P_XBTETFX23 USDT_XXX P_XBTETFX23 Expiry: November 2023; percentage quoted, USDT settled. -
Futures_GateIO
Set to current week contract:exchange.SetContractType("this_week").
Set to next week contract:exchange.SetContractType("next_week").
Set to quarterly contract:exchange.SetContractType("quarter").
Set to next quarter contract:exchange.SetContractType("next_quarter").
Set to perpetual contract:exchange.SetContractType("swap").
Supports contracts withUSDTas margin. TakingBTCcontract as an example, useexchange.IO("currency", "BTC_USDT")to switch to contracts withUSDTas margin,
or directly set the current trading pair toBTC_USDTwhen configuring live trading parameters and adding exchange objects. After switching trading pairs, you need to call theexchange.SetContractType()function again to set the contract. -
Futures_Deribit
Set to perpetual contract:exchange.SetContractType("swap").
Supports Deribit'sUSDCcontracts.
Delivery contracts include:"this_week","next_week","month","quarter","next_quarter","third_quarter","fourth_quarter".
Spread contracts (future_combo):"this_week,swap","next_week,swap","next_quarter,this_week","third_quarter,this_week","month,next_week", and various other combinations.
For options contracts, you need to pass the specific option contract code defined by the exchange. Please refer to the Deribit official website for details. -
Futures_KuCoin
Coin-margined contracts, for example, set the trading pair toBTC_USD, then set the contract code for coin-margined contracts:
Set to perpetual contract:exchange.SetContractType("swap").
Set to current quarter contract:exchange.SetContractType("quarter").
Set to next quarter contract:exchange.SetContractType("next_quarter").Contracts with USDT as margin:
For example, set the trading pair toBTC_USDT, then set the contract code for USDT-margined contracts.
Set to perpetual contract:exchange.SetContractType("swap"). -
Futures_Binance
Binance Futures exchange defaults to the perpetual contract of the current trading pair, contract code:swap.
Set to perpetual contract:exchange.SetContractType("swap"). Binance perpetual contracts supportUSDTas margin, for example,BTC'sUSDT-margined perpetual contract, set the trading pair toBTC_USDT. Binance also supports coin-margined perpetual contracts, for example,BTC's coin-margined perpetual contract, set the trading pair toBTC_USD.
Set to quarterly contract:exchange.SetContractType("quarter"). Delivery contracts support coin-margined contracts (i.e., using coins as margin), for example,BTC's quarterly contract, set the trading pair toBTC_USD, then set the contractexchange.SetContractType("quarter")to setBTC's coin-margined quarterly contract.
Set to next quarter contract:exchange.SetContractType("next_quarter"). For example,BTC's coin-margined next quarter contract, set the trading pair toBTC_USD, then set the contractexchange.SetContractType("next_quarter").
Binance supports some delivery contracts withUSDTas margin. TakingBTCas an example, set the trading pair toBTC_USDT, then set the contract code.Supports Binance options contracts:
The option contract code format follows the exchange-defined option contract codes:BTC-241227-15000-C,XRP-240112-0.5-C,BTC-241227-15000-P. Taking Binance option contract codeBTC-241227-15000-Pas an example: BTC is the option currency code, 241227 is the exercise date, 15000 is the strike price, P indicates a put option, and C indicates a call option.
For specific information about option types (European options/American options), please refer to the exchange's option contract documentation.
The exchange may restrict option sellers, requiring separate qualification application. Binance options require seller qualification application. -
Futures_Bibox
Bibox perpetual contract code:swap.
Set to perpetual contract:exchange.SetContractType("swap"). -
Futures_Bybit
Defaults to the perpetual contract of the current trading pair, contract code:swap.
Current week contract code:this_week.
Next week contract code:next_week.
Third week contract code:third_week.
Monthly contract code:month.
Next month contract code:next_month.
Quarterly contract code:quarter.
Next quarter contract code:next_quarter.
Third quarter contract code:third_quarter.
Direct use of exchange contract naming: For exampleETHUSDT-04APR25, since some contract types on Bybit exchange do not have clear periodicity, the exchange-defined contract code naming is used directly. -
Futures_Kraken
Defaults to the perpetual contract of the current trading pair, contract code:swap.
swap: Perpetual contract.
month: Current month contract.
quarter: Quarterly contract.
next_quarter: Next quarter contract.
third_quarter: Third quarter contract.
swap_pf: Multi-collateral perpetual contract.
quarter_ff: Multi-collateral quarterly contract.
month_ff: Multi-collateral current month contract.
next_quarter_ff: Multi-collateral next quarter contract.
third_quarter_ff: Multi-collateral third quarter contract.
Direct use of exchange contract naming: For exampleFF_ETHUSD_250307, since some contract types on Kraken exchange do not have clear periodicity, the exchange-defined contract code naming is used directly. -
Futures_Bitfinex
Defaults to the perpetual contract of the current trading pair, contract code:swap. -
Futures_Bitget
Defaults to the perpetual contract of the current trading pair, contract code:swap.
Setting the trading pair toBTC_USDis for coin-margined contracts, setting the trading pair toBTC_USDTis forUSDT-settled contracts. Simulated contracts can set the trading pair to:SBTC_USD,BTC_SUSDT. -
Futures_dYdX (v4)
dYdX perpetual contract code:swap.
Set to perpetual contract:exchange.SetContractType("swap"), dYdX only has theUSD.swapinstrument dimension, using USDC as margin. -
Futures_MEXC
MEXC perpetual contract code:swap.
Set to perpetual contract:exchange.SetContractType("swap"). Setting the trading pair toBTC_USDis for coin-margined contracts, setting the trading pair toBTC_USDTis forUSDT-settled contracts. -
Futures_Crypto
Tokens in the crypto.com exchange account can be converted to USD-denominated credit for use as margin in contract trading.
Set to perpetual contract:exchange.SetContractType("swap"). For example, when the trading pair is set toBTC_USD, callingexchange.SetContractType("swap")function sets the BTC perpetual contract.
crypto.com exchange's delivery contracts are monthly contracts, with contract codes as follows (January to December):code"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"Set delivery contract:
exchange.SetContractType("October"). For example, when the trading pair is set toBTC_USD, callingexchange.SetContractType("October")function sets the BTC October delivery contract.
The contract code corresponding to the current moment is:BTCUSD-231027. -
Futures_WOO
Futures_WOO exchange supportsUSDT-margined contracts, perpetual contract code isswap. For example, when the trading pair is set toBTC_USDT, callingexchange.SetContractType("swap")function sets the current contract to BTC's USDT-margined perpetual contract. -
Futures_Hyperliquid
Futures_Hyperliquid exchange supportsUSDC-margined contracts, perpetual contract code isswap. For example, when the trading pair is set toETH_USD, callingexchange.SetContractType("swap")function sets the current contract to ETH's USDC-margined perpetual contract.
Futures_Hyperliquid only has theUSD.swapinstrument dimension, using USDC as margin.
Futures_Hyperliquid supports HIP-3 instruments. -
Futures_Lighter
Futures_Lighter exchange supportsUSDC-margined contracts, perpetual contract code isswap. For example, when the trading pair is set toBTC_USDC, callingexchange.SetContractType("swap")function sets the current contract to BTC's USDC-margined perpetual contract.
Futures_Lighter only supports perpetual contracts. -
Futures_Backpack
Futures_Backpack exchange supportsUSDC-margined contracts, perpetual contract code isswap. For example, when the trading pair is set toETH_USDC, callingexchange.SetContractType("swap")function sets the current contract to ETH's USDC-margined perpetual contract. -
Futures_edgeX
Futures_edgeX exchange supportsUSDT-margined contracts, perpetual contract code isswap. For example, when the trading pair is set toBTC_USDT, callingexchange.SetContractType("swap")function sets the current contract to BTC's USDT-margined perpetual contract. -
Futures_WOOFI
Futures_WOOFI exchange supportsUSDC-margined contracts, perpetual contract code isswap. For example, when the trading pair is set toETH_USDC, callingexchange.SetContractType("swap")function sets the current contract to ETH's USDC-margined perpetual contract. -
Futures_Coinw
Futures_Coinw exchange supportsUSDT-margined contracts, perpetual contract code isswap. For example, when the trading pair is set toETH_USDT, callingexchange.SetContractType("swap")function sets the current contract to ETH's USDT-margined perpetual contract. -
Futures_Aster
Futures_Aster exchange supportsUSDT-margined contracts, perpetual contract code isswap. For example, when the trading pair is set toETH_USDT, callingexchange.SetContractType("swap")function sets the current contract to ETH's USDT-margined perpetual contract. -
Futures_DeepCoin
Coin-margined contracts, for example, set the trading pair toBTC_USD, then set the contract code for coin-margined contracts:
Set to perpetual contract:exchange.SetContractType("swap").Contracts with USDT as margin:
For example, set the trading pair toBTC_USDT, then set the contract code for USDT-margined contracts.
Set to perpetual contract:exchange.SetContractType("swap").