```exchange.SetContractType()```函数返回一个结构,其中包含当前合约代码对应的交易所合约代码。 例如币安期货合约交易所,当前合约代码为```quarter```,该函数的返回值结构为:```{"InstrumentID":"BTCUSD_230630","instrument":"BTCUSD_230630"}```。
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")
}
def main():
exchange.SetContractType("this_week")
void main() {
exchange.SetContractType("this_week");
}
设置当前合约为当周合约:
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())
}
def main():
exchange.SetContractType("this_week")
Log("ticker:", exchange.GetTicker())
exchange.IO("currency", "BTC_USDT")
exchange.SetContractType("swap")
Log("ticker:", exchange.GetTicker())
void main() {
exchange.SetContractType("this_week");
Log("ticker:", exchange.GetTicker());
exchange.IO("currency", "BTC_USDT");
exchange.SetContractType("swap");
Log("ticker:", exchange.GetTicker());
}
设置USDT
作为保证金的合约时,需要在代码中切换交易对(也可以在添加交易所对象时直接设置交易对):
function main(){
// 设置合约为当周
var ret = exchange.SetContractType("this_week")
// 返回当周合约的信息
Log(ret)
}
def main():
ret = exchange.SetContractType("this_week")
Log(ret)
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交易所交割合约为月度合约,合约代码如下(一月到十二月):
"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
作为保证金的合约,举例BTC
的USDT
本位永续合约,交易对设置为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-C
,XRP-240112-0.5-C
,BTC-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
。
- Futures_Kraken
默认为当前交易对的永续合约,合约代码:swap
。
```month```:当月合约。
```quarter```:季度合约。
```next_quarter```:次季合约。
```swap_pf```:混合保证金永续合约。
```quarter_ff```:混合保证金季度合约。
```month_ff```:混合保证金当月合约。
```next_quarter_ff```:混合保证金次季度合约。
- 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本位永续合约。
{@fun/Futures/exchange.GetContractType exchange.GetContractType}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}
exchange.SetDirection exchange.GetContractType