exchange.SetContractType
The exchange.SetContractType() function is used to set the current contract code of the exchange exchange object.
exchange.SetContractType(symbol)Examples
-
Set the current contract to the current-week contract:
javascriptfunction main() { // Set to the current-week contract exchange.SetContractType("this_week") }pythondef main(): exchange.SetContractType("this_week")rustfn main() { // Set to the current-week contract exchange.SetContractType("this_week").unwrap(); }c++void main() { exchange.SetContractType("this_week"); } -
When setting a contract that uses
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() { // The default trading pair is BTC_USD; set the contract to current-week, which is a coin-margined contract exchange.SetContractType("this_week") Log("ticker:", exchange.GetTicker()) // Switch the trading pair, then set the contract, switching to a USDT-margined contract, as distinct from a 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())rustfn main() { // The default trading pair is BTC_USD; set the contract to current-week, which is a coin-margined contract exchange.SetContractType("this_week").unwrap(); Log!("ticker:", exchange.GetTicker(None)); // Switch the trading pair, then set the contract, switching to a USDT-margined contract, as distinct from a coin-margined contract exchange.IO(("currency", "BTC_USDT")).unwrap(); exchange.SetContractType("swap").unwrap(); Log!("ticker:", exchange.GetTicker(None)); }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 the contract to current-week var ret = exchange.SetContractType("this_week") // Returns the information of the current-week contract Log(ret) }pythondef main(): ret = exchange.SetContractType("this_week") Log(ret)rustfn main() { // Set the contract to current-week let ret = exchange.SetContractType("this_week").unwrap(); // Returns the information of the current-week contract 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, the codes for delivery contracts in cryptocurrency futures contracts generally include:
Unless otherwise specified, the codes for perpetual contracts in cryptocurrency futures contracts generally include:
|
See Also
Remarks
In cryptocurrency futures contract strategies, take switching to the BTC_USDT trading pair as an example:
After switching the trading pair using the exchange.SetCurrency("BTC_USDT") or exchange.IO("currency", "BTC_USDT") function, you need to call the exchange.SetContractType() function again to reset the contract, so as to determine the specific contract to operate on under the new trading pair. The system determines whether the contract is a coin-margined contract or a 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 BTC USDT-margined perpetual contract. If the trading pair is BTC_USD, using the exchange.SetContractType("swap") function to set the contract code to swap sets it to the BTC coin-margined perpetual contract.
Detailed introduction to the cryptocurrency futures contract exchanges supported by the platform. The contract naming conventions for each exchange are 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 offers pre-market trading contracts, whose delivery dates are fixed. Taking the exchange-defined contract code
HMSTR-USDT-250207as an example, first set the trading pair toHMSTR_USDTon the FMZ platform, then useexchange.SetContractType("HMSTR-USDT-250207")to set this contract.
For functions that support thesymbolparameter (such asexchange.GetTicker(),exchange.CreateOrder(), etc.), you can specify thesymbolparameter asHMSTR_USDT.HMSTR-USDT-250207to obtain market data for this contract or to place orders and perform other operations. -
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 usingUSDTas margin. Taking theBTCcontract as an example: callexchange.IO("currency", "BTC_USDT")to switch to a contract usingUSDTas margin,
or directly set the current trading pair toBTC_USDTwhen configuring live trading parameters and adding the exchange object. After switching the trading pair, you must call theexchange.SetContractType()function again to set the contract. -
Futures_BitMEX (BitMEX)
Set to perpetual contract:exchange.SetContractType("swap").
The delivery contracts on the Futures_BitMEX exchange are monthly contracts, with the following contract codes (January through December):code"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"Set a delivery contract:
exchange.SetContractType("December"). For example, when the trading pair is set toXBT_USDT, calling theexchange.SetContractType("December")function sets the USDT-margined December delivery contract for BTC (the corresponding actual contract code isXBTUSDTZ23).Summary of Futures_BitMEX contract information
Contract code defined by Futures_BitMEX Corresponding trading pair on FMZ Corresponding contract code on FMZ Remarks DOGEUSD DOGE_USD swap USD-denominated, XBT-settled. XBT is BTC. DOGEUSDT DOGE_USDT swap USDT-denominated, USDT-settled. XBTETH XBT_ETH swap ETH-denominated, XBT-settled. XBTEUR XBT_EUR swap EUR-denominated (EUR), XBT-settled. USDTUSDC USDT_USDC swap USDC-denominated, XBT-settled. ETHUSD_ETH ETH_USD_ETH swap USD-denominated, ETH-settled. XBTH24 XBT_USD March Expiry: March 2024, month code H; USD-denominated, XBT-settled. ETHUSDZ23 ETH_USD December Expiry: December 2023, month code Z; USD-denominated, XBT-settled. XBTUSDTZ23 XBT_USDT December Expiry: December 2023, month code Z; USDT-denominated, USDT-settled. ADAZ23 ADA_XBT December Expiry: December 2023, month code Z; XBT-denominated, XBT-settled. P_XBTETFX23 USDT_XXX P_XBTETFX23 Expiry: November 2023; denominated in percentage, 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 usingUSDTas margin. Taking theBTCcontract as an example, callexchange.IO("currency", "BTC_USDT")to switch to a contract usingUSDTas margin,
or directly set the current trading pair toBTC_USDTwhen configuring live trading parameters and adding the exchange object. After switching the trading pair, you must 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 in the specific options contract code defined by the exchange; for details, please refer to the Deribit official website. -
Futures_KuCoin
Coin-margined contracts: for example, set the trading pair toBTC_USD, then set the contract code, which yields a coin-margined contract.
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 using USDT as margin:
For example, set the trading pair toBTC_USDT, then set the contract code, which yields a contract using USDT as margin.
Set to perpetual contract:exchange.SetContractType("swap"). -
Futures_Binance
The Binance Futures exchange defaults to the perpetual contract of the current trading pair, with contract code:swap.
Set to perpetual contract:exchange.SetContractType("swap"). Binance's perpetual contracts support usingUSDTas margin; for example, for theUSDT-margined perpetual contract ofBTC, set the trading pair toBTC_USDT; Binance also supports coin-margined perpetual contracts, for example the coin-margined perpetual contract ofBTC, for which you set the trading pair toBTC_USD.
Set to quarterly contract:exchange.SetContractType("quarter"). Delivery contracts include coin-margined contracts (i.e., using the coin as margin); for example, to set the quarterly contract ofBTC, set the trading pair toBTC_USD, then callexchange.SetContractType("quarter")to set the coin-margined quarterly contract ofBTC.
Set to next-quarter contract:exchange.SetContractType("next_quarter"). For example, to set the coin-margined next-quarter contract ofBTC, set the trading pair toBTC_USD, then callexchange.SetContractType("next_quarter").
Binance supports someUSDT-margined delivery contracts. TakingBTCas an example, set the trading pair toBTC_USDT, then set the contract code.Supports Binance options contracts:
The options contract code format follows the exchange definition, for exampleBTC-241227-15000-C,XRP-240112-0.5-C,BTC-241227-15000-P. Taking the Binance options contract codeBTC-241227-15000-Pas an example: BTC is the option's underlying coin code, 241227 is the exercise date, 15000 is the strike price, P indicates a put option, and C indicates a call option.
For the specific type of option (European or American), please refer to the relevant documentation on the exchange's options contracts.
The exchange may impose restrictions on option sellers, requiring a separate application for eligibility. Binance options, for instance, require applying for seller eligibility. -
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, with 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.
Directly use the exchange's contract naming: for exampleETHUSDT-04APR25. Since some contract instruments on the Bybit exchange have no clear periodicity, the exchange-defined contract code is used directly for naming. -
Futures_Kraken
Defaults to the perpetual contract of the current trading pair, with 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.
Directly use the exchange's contract naming: for exampleFF_ETHUSD_250307. Since some contract instruments on the Kraken exchange have no clear periodicity, the exchange-defined contract code is used directly for naming. -
Futures_Bitfinex
Defaults to the perpetual contract of the current trading pair, with contract code:swap. -
Futures_Bitget
Defaults to the perpetual contract of the current trading pair, with contract code:swap.
Setting the trading pair toBTC_USDyields a coin-margined contract, and setting the trading pair toBTC_USDTyields aUSDT-settled contract. For simulation contracts, you can set the trading pair toSBTC_USDorBTC_SUSDT. -
Futures_dYdX (v4)
dYdX perpetual contract code:swap.
Set to perpetual contract:exchange.SetContractType("swap"). dYdX has only theUSD.swapinstrument dimension, and the margin used is USDC. -
Futures_MEXC
MEXC perpetual contract code:swap.
Set to perpetual contract:exchange.SetContractType("swap"). Setting the trading pair toBTC_USDyields a coin-margined contract, and setting the trading pair toBTC_USDTyields aUSDT-settled contract. -
Futures_Crypto
Tokens in the crypto.com exchange account can be converted into a USD-denominated allowance to be used as margin for contract trading.
Set to perpetual contract:exchange.SetContractType("swap"). For example, when the trading pair is set toBTC_USD, calling theexchange.SetContractType("swap")function sets the perpetual contract of BTC.
The delivery contracts on the crypto.com exchange are monthly contracts, with the following contract codes (January through December):code"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"Set a delivery contract:
exchange.SetContractType("October"). For example, when the trading pair is set toBTC_USD, calling theexchange.SetContractType("October")function sets the October delivery contract of BTC.
The contract code corresponding to the current moment isBTCUSD-231027. -
Futures_WOO
The Futures_WOO exchange supportsUSDT-margined contracts, with perpetual contract codeswap. For example, when the trading pair is set toBTC_USDT, calling theexchange.SetContractType("swap")function sets the current contract to the USDT-margined perpetual contract of BTC. -
Futures_Hyperliquid
The Futures_Hyperliquid exchange supportsUSDC-margined contracts, with perpetual contract codeswap. For example, when the trading pair is set toETH_USD, calling theexchange.SetContractType("swap")function sets the current contract to the USDC-margined perpetual contract of ETH.
Futures_Hyperliquid has only theUSD.swapinstrument dimension, and the margin used is USDC.
Futures_Hyperliquid supports HIP-3 instruments. -
Futures_Lighter
The Futures_Lighter exchange supportsUSDC-margined contracts, with perpetual contract codeswap. For example, when the trading pair is set toBTC_USDC, calling theexchange.SetContractType("swap")function sets the current contract to the USDC-margined perpetual contract of BTC.
Futures_Lighter supports perpetual contracts only. -
Futures_Backpack
The Futures_Backpack exchange supportsUSDC-margined contracts, with perpetual contract codeswap. For example, when the trading pair is set toETH_USDC, calling theexchange.SetContractType("swap")function sets the current contract to the USDC-margined perpetual contract of ETH. -
Futures_edgeX
The Futures_edgeX exchange supportsUSDT-margined contracts, with perpetual contract codeswap. For example, when the trading pair is set toBTC_USDT, calling theexchange.SetContractType("swap")function sets the current contract to the USDT-margined perpetual contract of BTC. -
Futures_WOOFI
The Futures_WOOFI exchange supportsUSDC-margined contracts, with perpetual contract codeswap. For example, when the trading pair is set toETH_USDC, calling theexchange.SetContractType("swap")function sets the current contract to the USDC-margined perpetual contract of ETH. -
Futures_Coinw
The Futures_Coinw exchange supportsUSDT-margined contracts, with perpetual contract codeswap. For example, when the trading pair is set toETH_USDT, calling theexchange.SetContractType("swap")function sets the current contract to the USDT-margined perpetual contract of ETH. -
Futures_Aster
The Futures_Aster exchange supportsUSDT-margined contracts, with perpetual contract codeswap. For example, when the trading pair is set toETH_USDT, calling theexchange.SetContractType("swap")function sets the current contract to the USDT-margined perpetual contract of ETH. -
Futures_DeepCoin
Coin-margined contracts: for example, set the trading pair toBTC_USD, then set the contract code, which yields a coin-margined contract.
Set to perpetual contract:exchange.SetContractType("swap").Contracts using USDT as margin:
For example, set the trading pair toBTC_USDT, then set the contract code, which yields a contract using USDT as margin.
Set to perpetual contract:exchange.SetContractType("swap").