exchange.SetContractType

exchange.SetContractType()函数用于设置{@var/EXCHANGE exchange}交易所对象当前的合约代码。

object

exchange.SetContractType(symbol)

`symbol`参数用于设置合约代码,可选值包括:`"this_week"`、`"next_week"`、`"quarter"`、`"next_quarter"`、`"swap"`等。

加密货币期货合约中**交割合约**代码如无特殊说明一般有:

- `this_week`:当周合约。

- `next_week`:次周合约。

- `quarter`:季度合约。

- `next_quarter`:次季度合约。

加密货币期货合约中**永续合约**代码如无特殊说明一般有:

- `swap`:永续合约。
symbol
true
string

```javascript
function main() {
    // 设置为当周合约
    exchange.SetContractType("this_week")
}```
```python
def main():
    exchange.SetContractType("this_week")```
```cpp
void main() {
    exchange.SetContractType("this_week");
}```
设置当前合约为当周合约:
```javascript
function main() {
    // 默认交易对为BTC_USD,设置合约为当周,合约为币本位合约
    exchange.SetContractType("this_week")
    Log("ticker:", exchange.GetTicker())

    // 切换交易对,然后设置合约,切换成USDT作为保证金的合约,区别于币本位合约
    exchange.IO("currency", "BTC_USDT")
    exchange.SetContractType("swap")
    Log("ticker:", exchange.GetTicker())
}```
```python
def main():
    exchange.SetContractType("this_week")
    Log("ticker:", exchange.GetTicker())
    exchange.IO("currency", "BTC_USDT")
    exchange.SetContractType("swap")
    Log("ticker:", exchange.GetTicker())```
```cpp
void main() {
    exchange.SetContractType("this_week");
    Log("ticker:", exchange.GetTicker());
    exchange.IO("currency", "BTC_USDT");
    exchange.SetContractType("swap");
    Log("ticker:", exchange.GetTicker());
}```
设置以```USDT```作为保证金的合约时,需要在代码中切换交易对(也可以在添加交易所对象时直接设置交易对):
```javascript
function main(){
    // 设置合约为当周
    var ret = exchange.SetContractType("this_week")
    // 返回当周合约的信息
    Log(ret)
}```
```python
def main():
    ret = exchange.SetContractType("this_week")
    Log(ret)```
```cpp
void main() {
    auto ret = exchange.SetContractType("this_week");
    Log(ret);
}```
打印```exchange.SetContractType()```函数的返回值:

在加密货币期货合约策略中,以切换为```BTC_USDT```交易对为例:
当使用```exchange.SetCurrency("BTC_USDT")```或```exchange.IO("currency", "BTC_USDT")```函数切换交易对时,切换后需要使用```exchange.SetContractType()```函数重新设置合约,才能在新交易对下确定当前需要操作的合约。系统根据交易对来确定是**币本位合约**还是**USDT本位合约**。

例如:当交易对设置为```BTC_USDT```时,使用```exchange.SetContractType("swap")```函数将合约代码设置为```swap```,此时即设置为```BTC```的**USDT本位**永续合约。如果交易对为```BTC_USD```,使用```exchange.SetContractType("swap")```函数将合约代码设置为```swap```,此时即设置为```BTC```的**币本位**永续合约。
详细介绍支持的加密货币期货合约交易所,每个交易所的合约命名如下:
- Futures_OKCoin(OKX)
  设置为永续合约:```exchange.SetContractType("swap")```
  设置为当周合约:```exchange.SetContractType("this_week")```
  设置为次周合约:```exchange.SetContractType("next_week")```
  设置为月度合约:```exchange.SetContractType("month")```
  设置为次月合约:```exchange.SetContractType("next_month")```
  设置为季度合约:```exchange.SetContractType("quarter")```
  设置为次季合约:```exchange.SetContractType("next_quarter")```

  OKX支持盘前交易合约:合约交割日期为固定时间,交易所定义的合约代码示例为:```HMSTR-USDT-250207```。在发明者量化平台设置交易对为```HMSTR_USDT```,然后使用```exchange.SetContractType("HMSTR-USDT-250207")```设置该合约。
  对于支持```symbol```参数的函数,例如:```exchange.GetTicker()```、```exchange.CreateOrder()```等,可以指定```symbol```参数为:```HMSTR_USDT.HMSTR-USDT-250207```来获取该合约的行情数据或执行下单等操作。
- Futures_HuobiDM(火币期货)
  设置为当周合约:```exchange.SetContractType("this_week")```。
  设置为次周合约:```exchange.SetContractType("next_week")```。
  设置为季度合约:```exchange.SetContractType("quarter")```。
  设置为次季合约:```exchange.SetContractType("next_quarter")```。
  设置为永续合约:```exchange.SetContractType("swap")```。
  支持以```USDT```作为保证金的合约,以```BTC```合约为例:使用```exchange.IO("currency", "BTC_USDT")```即可切换为以```USDT```作为保证金的合约,
  或者在配置实盘参数、添加交易所对象时直接将当前交易对设置为```BTC_USDT```。切换交易对后需要重新调用```exchange.SetContractType()```函数设置合约。
- Futures_BitMEX(BitMEX)
  设置为永续合约:```exchange.SetContractType("swap")```。
  Futures_BitMEX交易所的交割合约为月度合约,合约代码如下(一月至十二月):
  ```code
  "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"

设置交割合约:exchange.SetContractType("December")。例如,当交易对设置为XBT_USDT时,调用exchange.SetContractType("December")函数可设置BTC的USDT本位十二月交割合约(对应的实际合约代码为XBTUSDTZ23)。

Futures_BitMEX合约信息汇总 |Futures_BitMEX定义的合约代码|在FMZ对应的交易对|在FMZ对应的合约代码|备注| | - | - | - | - | | DOGEUSD | DOGE_USD | swap | 美元计价,XBT结算。XBT即BTC。 | | DOGEUSDT | DOGE_USDT | swap | USDT计价,USDT结算。 | | XBTETH | XBT_ETH | swap | ETH计价,XBT结算。 | | XBTEUR | XBT_EUR | swap | 欧元计价(EUR),XBT结算。 | | USDTUSDC | USDT_USDC | swap | USDC计价,XBT结算。 | | ETHUSD_ETH | ETH_USD_ETH | swap | 美元计价,ETH结算。 | | XBTH24 | XBT_USD | March | 到期日:24年3月,月份代码:H;美元计价,XBT结算。 | | ETHUSDZ23 | ETH_USD | December | 到期日:23年12月,月份代码:Z;美元计价,XBT结算。 | | XBTUSDTZ23 | XBT_USDT | December | 到期日:23年12月,月份代码:Z;USDT计价,USDT结算。 | | ADAZ23 | ADA_XBT | December | 到期日:23年12月,月份代码:Z;XBT计价,XBT结算。 | | P_XBTETFX23 | USDT_XXX | P_XBTETFX23 | 到期日:23年11月;百分比计价,USDT结算。 | - Futures_GateIO 设置为当周合约:exchange.SetContractType("this_week")。 设置为次周合约:exchange.SetContractType("next_week")。 设置为季度合约:exchange.SetContractType("quarter")。 设置为次季合约:exchange.SetContractType("next_quarter")。 设置为永续合约:exchange.SetContractType("swap")。 支持以USDT作为保证金的合约,以BTC合约为例,使用exchange.IO("currency", "BTC_USDT")即可切换为以USDT作为保证金的合约, 或者在配置实盘参数、添加交易所对象时直接将当前交易对设置为BTC_USDT。切换交易对后需要重新调用exchange.SetContractType()函数设置合约。 - Futures_Deribit 设置为永续合约:exchange.SetContractType("swap")。 支持Deribit的USDC合约。 交割合约包括:"this_week""next_week""month""quarter""next_quarter""third_quarter""fourth_quarter"。 差价合约(future_combo):"this_week,swap""next_week,swap""next_quarter,this_week""third_quarter,this_week""month,next_week"等多种组合。 对于期权合约,需要传入交易所定义的具体期权合约代码,详情请参阅Deribit官网。 - Futures_KuCoin 币本位合约:例如将交易对设置为BTC_USD,再设置合约代码,即为币本位合约: 设置为永续合约:exchange.SetContractType("swap")。 设置为当季合约:exchange.SetContractType("quarter")。 设置为次季合约:exchange.SetContractType("next_quarter")

以USDT作为保证金的合约: 例如将交易对设置为BTC_USDT,再设置合约代码,即为以USDT作为保证金的合约。 设置为永续合约:exchange.SetContractType("swap")。 - Futures_Binance 币安期货交易所默认为当前交易对的永续合约,合约代码:swap。 设置为永续合约:exchange.SetContractType("swap")。币安的永续合约支持以USDT作为保证金,例如BTCUSDT本位永续合约,交易对设置为BTC_USDT。币安也支持以币作为保证金的永续合约,例如BTC的币本位永续合约,交易对设置为BTC_USD。 设置为季度合约:exchange.SetContractType("quarter")。交割合约支持币本位合约(即以币作为保证金),例如BTC的季度合约,交易对设置为BTC_USD,再设置合约exchange.SetContractType("quarter"),即可设置为BTC的币本位季度合约。 设置为次季合约:exchange.SetContractType("next_quarter")。例如BTC的币本位次季度合约,交易对设置为BTC_USD,再设置合约exchange.SetContractType("next_quarter")。 币安支持部分以USDT作为保证金的交割合约,以BTC为例,交易对设置为BTC_USDT,再设置合约代码即可。

支持币安期权合约: 期权合约代码格式以交易所定义的期权合约代码为准:BTC-241227-15000-CXRP-240112-0.5-CBTC-241227-15000-P。以币安期权合约代码BTC-241227-15000-P为例:BTC为期权币种代码,241227为行权日期,15000为行权价格,P表示看跌期权,C表示看涨期权。 期权类型(欧式期权/美式期权)的具体信息请查阅交易所期权合约相关资料。 交易所可能会限制期权卖方,需要单独申请资格。币安期权需要申请卖方资格。 - Futures_Bibox Bibox永续合约的合约代码:swap。 设置为永续合约:exchange.SetContractType("swap")。 - Futures_Bybit 默认为当前交易对的永续合约,合约代码:swap。 当周合约代码:this_week。 次周合约代码:next_week。 第三周合约代码:third_week。 月度合约代码:month。 次月合约代码:next_month。 季度合约代码:quarter。 次季度合约代码:next_quarter。 第三季度合约代码:third_quarter。 直接使用交易所合约命名:例如ETHUSDT-04APR25,由于Bybit交易所部分合约品种没有明确的周期性,因此直接使用交易所定义的合约代码命名。 - Futures_Kraken 默认为当前交易对的永续合约,合约代码:swap

  ```month```:当月合约。
  ```quarter```:季度合约。
  ```next_quarter```:次季合约。
  ```third_quarter```:第三季度合约。
  ```swap_pf```:混合保证金永续合约。
  ```quarter_ff```:混合保证金季度合约。
  ```month_ff```:混合保证金当月合约。
  ```next_quarter_ff```:混合保证金次季度合约。
  ```third_quarter_ff```:混合保证金第三季度合约。
  直接使用交易所合约命名:例如```FF_ETHUSD_250307```,由于Kraken交易所部分合约品种没有明确的周期性,因此直接使用交易所定义的合约代码命名。
- Futures_Bitfinex
  默认为当前交易对的永续合约,合约代码:```swap```。
- Futures_Bitget
  默认为当前交易对的永续合约,合约代码:```swap```。
  交易对设置为```BTC_USD```为币本位合约,交易对设置为```BTC_USDT```为```USDT```结算的合约。模拟合约可以设置交易对为:```SBTC_USD```、```BTC_SUSDT```。
- Futures_dYdX (v4)
  dYdX永续合约的合约代码:```swap```。
  设置为永续合约:```exchange.SetContractType("swap")```,dYdX仅有```USD.swap```品种维度,使用的保证金为USDC。
- Futures_MEXC
  MEXC(抹茶)永续合约的合约代码:```swap```。
  设置为永续合约:```exchange.SetContractType("swap")```。交易对设置为```BTC_USD```为币本位合约,交易对设置为```BTC_USDT```为```USDT```结算的合约。
- Futures_Crypto
  crypto.com交易所账户中的代币可以折算为USD计价的额度,用于合约交易的保证金。
  设置为永续合约:```exchange.SetContractType("swap")```。例如,当交易对设置为```BTC_USD```时,调用```exchange.SetContractType("swap")```函数可设置BTC的永续合约。
  crypto.com交易所的交割合约为月度合约,合约代码如下(一月至十二月):
  ```code
  "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"

设置交割合约:exchange.SetContractType("October")。例如,当交易对设置为BTC_USD时,调用exchange.SetContractType("October")函数可设置BTC的十月交割合约。 当前时刻对应的合约代码为:BTCUSD-231027。 - Futures_WOO Futures_WOO交易所支持USDT本位合约,永续合约代码为swap。例如,当交易对设置为BTC_USDT时,调用exchange.SetContractType("swap")函数可将当前合约设置为BTC的USDT本位永续合约。 - Futures_Hyperliquid Futures_Hyperliquid交易所支持USDC本位合约,永续合约代码为swap。例如,当交易对设置为ETH_USD时,调用exchange.SetContractType("swap")函数可将当前合约设置为ETH的USDC本位永续合约。 Futures_Hyperliquid仅有USD.swap品种维度,使用的保证金为USDC。 Futures_Hyperliquid支持HIP-3品种。 - Futures_Backpack Futures_Backpack交易所支持USDC本位合约,永续合约代码为swap。例如,当交易对设置为ETH_USDC时,调用exchange.SetContractType("swap")函数可将当前合约设置为ETH的USDC本位永续合约。 - Futures_edgeX Futures_edgeX交易所支持USDT本位合约,永续合约代码为swap。例如,当交易对设置为BTC_USDT时,调用exchange.SetContractType("swap")函数可将当前合约设置为BTC的USDT本位永续合约。 - Futures_WOOFI Futures_WOOFI交易所支持USDC本位合约,永续合约代码为swap。例如,当交易对设置为ETH_USDC时,调用exchange.SetContractType("swap")函数可将当前合约设置为ETH的USDC本位永续合约。 - Futures_Coinw Futures_Coinw交易所支持USDT本位合约,永续合约代码为swap。例如,当交易对设置为ETH_USDT时,调用exchange.SetContractType("swap")函数可将当前合约设置为ETH的USDT本位永续合约。 - Futures_Aster Futures_Aster交易所支持USDT本位合约,永续合约代码为swap。例如,当交易对设置为ETH_USDT时,调用exchange.SetContractType("swap")函数可将当前合约设置为ETH的USDT本位永续合约。 - Futures_DeepCoin 币本位合约:例如将交易对设置为BTC_USD,再设置合约代码,即为币本位合约: 设置为永续合约:exchange.SetContractType("swap")

以USDT作为保证金的合约: 例如将交易对设置为BTC_USDT,再设置合约代码,即为以USDT作为保证金的合约。 设置为永续合约:exchange.SetContractType("swap")

{@fun/Futures/exchange.GetContractType exchange.GetContractType}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}