输入/搜索内容
内置函数
Global
Version
Sleep
IsVirtual
Mail
Mail_Go
SetErrorFilter
GetPid
GetLastError
GetCommand
GetMeta
Dial
HttpQuery
HttpQuery_Go
Encode
UnixNano
Unix
GetOS
MD5
DBExec
UUID
EventLoop
__Serve
_G
_D
_N
_C
_Cross
JSON.parse
JSON.stringify
SetChannelData
GetChannelData
Log
Market
Trade
Account
Futures
NetSettings
Threads
threading
Thread
getThread
mainThread
currentThread
Lock
Condition
Event
Dict
pending
Thread
ThreadLock
ThreadEvent
ThreadCondition
ThreadDict
Web3
TA
Talib
talib.CDL2CROWS
talib.CDL3BLACKCROWS
talib.CDL3INSIDE
talib.CDL3LINESTRIKE
talib.CDL3OUTSIDE
talib.CDL3STARSINSOUTH
talib.CDL3WHITESOLDIERS
talib.CDLABANDONEDBABY
talib.CDLADVANCEBLOCK
talib.CDLBELTHOLD
talib.CDLBREAKAWAY
talib.CDLCLOSINGMARUBOZU
talib.CDLCONCEALBABYSWALL
talib.CDLCOUNTERATTACK
talib.CDLDARKCLOUDCOVER
talib.CDLDOJI
talib.CDLDOJISTAR
talib.CDLDRAGONFLYDOJI
talib.CDLENGULFING
talib.CDLEVENINGDOJISTAR
talib.CDLEVENINGSTAR
talib.CDLGAPSIDESIDEWHITE
talib.CDLGRAVESTONEDOJI
talib.CDLHAMMER
talib.CDLHANGINGMAN
talib.CDLHARAMI
talib.CDLHARAMICROSS
talib.CDLHIGHWAVE
talib.CDLHIKKAKE
talib.CDLHIKKAKEMOD
talib.CDLHOMINGPIGEON
talib.CDLIDENTICAL3CROWS
talib.CDLINNECK
talib.CDLINVERTEDHAMMER
talib.CDLKICKING
talib.CDLKICKINGBYLENGTH
talib.CDLLADDERBOTTOM
talib.CDLLONGLEGGEDDOJI
talib.CDLLONGLINE
talib.CDLMARUBOZU
talib.CDLMATCHINGLOW
talib.CDLMATHOLD
talib.CDLMORNINGDOJISTAR
talib.CDLMORNINGSTAR
talib.CDLONNECK
talib.CDLPIERCING
talib.CDLRICKSHAWMAN
talib.CDLRISEFALL3METHODS
talib.CDLSEPARATINGLINES
talib.CDLSHOOTINGSTAR
talib.CDLSHORTLINE
talib.CDLSPINNINGTOP
talib.CDLSTALLEDPATTERN
talib.CDLSTICKSANDWICH
talib.CDLTAKURI
talib.CDLTASUKIGAP
talib.CDLTHRUSTING
talib.CDLTRISTAR
talib.CDLUNIQUE3RIVER
talib.CDLUPSIDEGAP2CROWS
talib.CDLXSIDEGAP3METHODS
talib.AD
talib.ADOSC
talib.OBV
talib.ACOS
talib.ASIN
talib.ATAN
talib.CEIL
talib.COS
talib.COSH
talib.EXP
talib.FLOOR
talib.LN
talib.LOG10
talib.SIN
talib.SINH
talib.SQRT
talib.TAN
talib.TANH
talib.MAX
talib.MAXINDEX
talib.MIN
talib.MININDEX
talib.MINMAX
talib.MINMAXINDEX
talib.SUM
talib.HT_DCPERIOD
talib.HT_DCPHASE
talib.HT_PHASOR
talib.HT_SINE
talib.HT_TRENDMODE
talib.ATR
talib.NATR
talib.TRANGE
talib.BBANDS
talib.DEMA
talib.EMA
talib.HT_TRENDLINE
talib.KAMA
talib.MA
talib.MAMA
talib.MIDPOINT
talib.MIDPRICE
talib.SAR
talib.SAREXT
talib.SMA
talib.T3
talib.TEMA
talib.TRIMA
talib.WMA
talib.LINEARREG
talib.LINEARREG_ANGLE
talib.LINEARREG_INTERCEPT
talib.LINEARREG_SLOPE
talib.STDDEV
talib.TSF
talib.VAR
talib.ADX
talib.ADXR
talib.APO
talib.AROON
talib.AROONOSC
talib.BOP
talib.CCI
talib.CMO
talib.DX
talib.MACD
talib.MACDEXT
talib.MACDFIX
talib.MFI
talib.MINUS_DI
talib.MINUS_DM
talib.MOM
talib.PLUS_DI
talib.PLUS_DM
talib.PPO
talib.ROC
talib.ROCP
talib.ROCR
talib.ROCR100
talib.RSI
talib.STOCH
talib.STOCHF
talib.STOCHRSI
talib.TRIX
talib.ULTOSC
talib.WILLR
talib.AVGPRICE
talib.MEDPRICE
talib.TYPPRICE
talib.WCLPRICE
OS
结构体
内置变量

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

exchange.SetContractType(symbol)

示例

  • 将当前合约设置为当周合约:

    javascript
    function main() { // 设置为当周合约 exchange.SetContractType("this_week") }
    python
    def main(): exchange.SetContractType("this_week")
    rust
    fn main() { // 设置为当周合约 exchange.SetContractType("this_week").unwrap(); }
    c++
    void main() { exchange.SetContractType("this_week"); }
  • 在设置以USDT作为保证金的合约时,需要在代码中切换交易对(也可以在添加交易所对象时直接设置交易对):

    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())
    rust
    fn main() { // 默认交易对为BTC_USD,设置合约为当周,合约为币本位合约 exchange.SetContractType("this_week").unwrap(); Log!("ticker:", exchange.GetTicker(None)); // 切换交易对,然后设置合约,切换成USDT作为保证金的合约,区别于币本位合约 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()); }
  • 打印exchange.SetContractType()函数的返回值:

    javascript
    function main(){ // 设置合约为当周 var ret = exchange.SetContractType("this_week") // 返回当周合约的信息 Log(ret) }
    python
    def main(): ret = exchange.SetContractType("this_week") Log(ret)
    rust
    fn main() { // 设置合约为当周 let ret = exchange.SetContractType("this_week").unwrap(); // 返回当周合约的信息 Log!(ret); }
    c++
    void main() { auto ret = exchange.SetContractType("this_week"); Log(ret); }

返回值

类型描述

object

exchange.SetContractType()函数返回一个结构体,其中包含当前合约代码对应的交易所合约代码。例如,在币安期货合约交易所中,当前合约代码为quarter时,该函数的返回值结构为:{"InstrumentID":"BTCUSD_230630","instrument":"BTCUSD_230630"}

参数

名称类型必填描述

symbol

string

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

加密货币期货合约中的交割合约代码如无特殊说明,一般包括:

  • this_week:当周合约。

  • next_week:次周合约。

  • quarter:当季合约。

  • next_quarter:次季合约。

加密货币期货合约中的永续合约代码如无特殊说明,一般包括:

  • swap:永续合约。

参考

备注

在加密货币期货合约策略中,以切换至BTC_USDT交易对为例:

当使用exchange.SetCurrency("BTC_USDT")exchange.IO("currency", "BTC_USDT")函数切换交易对后,需要再次调用exchange.SetContractType()函数重新设置合约,才能在新的交易对下确定当前需要操作的合约。系统会根据交易对来判定该合约为币本位合约还是USDT本位合约

例如:当交易对设置为BTC_USDT时,使用exchange.SetContractType("swap")函数将合约代码设置为swap,此时即设置为BTCUSDT本位永续合约。若交易对为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对应的合约代码备注
    DOGEUSDDOGE_USDswap美元计价,XBT结算。XBT即BTC。
    DOGEUSDTDOGE_USDTswapUSDT计价,USDT结算。
    XBTETHXBT_ETHswapETH计价,XBT结算。
    XBTEURXBT_EURswap欧元计价(EUR),XBT结算。
    USDTUSDCUSDT_USDCswapUSDC计价,XBT结算。
    ETHUSD_ETHETH_USD_ETHswap美元计价,ETH结算。
    XBTH24XBT_USDMarch到期日:24年3月,月份代码为H;美元计价,XBT结算。
    ETHUSDZ23ETH_USDDecember到期日:23年12月,月份代码为Z;美元计价,XBT结算。
    XBTUSDTZ23XBT_USDTDecember到期日:23年12月,月份代码为Z;USDT计价,USDT结算。
    ADAZ23ADA_XBTDecember到期日:23年12月,月份代码为Z;XBT计价,XBT结算。
    P_XBTETFX23USDT_XXXP_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
    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_USDBTC_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_Lighter
    Futures_Lighter交易所支持USDC本位合约,永续合约代码为swap。例如,将交易对设置为BTC_USDC时,调用exchange.SetContractType("swap")函数即可将当前合约设置为BTC的USDC本位永续合约。
    Futures_Lighter仅支持永续合约。

  • 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")