输入/搜索内容
内置函数
Global
Log
Market
Trade
Account
Futures
Exchange
IO
exchange.IO
exchange.IO("api", ...)
exchange.IO("currency", ...)
exchange.IO("base", ...)
exchange.IO(mode, value)
exchange.IO("rate", ...)
Network
Storage
Threads
TA
Talib
OS
结构体
内置变量与常量
通用约定
交易所

切换交易所的交易模式,包括模拟盘/实盘、全仓/逐仓、双向/单向持仓、统一账户、杠杆模式及自成交预防等。

exchange.IO(mode)
exchange.IO(mode, value)

示例

  • 切换模拟盘/实盘环境(以Futures_OKCoin(OKX期货)为例)。

    javascript
    function main() { exchange.IO("simulate", true) // Switch to demo trading environment // ... trading logic ... exchange.IO("simulate", false) // Switch back to live trading environment }
    python
    def main(): exchange.IO("simulate", True) # ... trading logic ... exchange.IO("simulate", False)
    rust
    fn main() { let _ = exchange.IO(("simulate", true)); // Switch to demo trading environment // ... trading logic ... let _ = exchange.IO(("simulate", false)); // Switch back to live trading environment }
  • 切换合约的保证金模式和持仓模式(以币安期货为例)。

    javascript
    function main() { exchange.IO("dual", true) // Switch to hedge mode (dual position) exchange.IO("dual", false) // Switch to one-way mode exchange.SetContractType("swap") exchange.IO("cross", true) // Switch to cross margin exchange.IO("cross", false) // Switch to isolated margin }
    python
    def main(): exchange.IO("dual", True) exchange.IO("dual", False) exchange.SetContractType("swap") exchange.IO("cross", True) exchange.IO("cross", False)
    rust
    fn main() { let _ = exchange.IO(("dual", true)); // Switch to hedge mode (dual position) let _ = exchange.IO(("dual", false)); // Switch to one-way mode let _ = exchange.SetContractType("swap"); let _ = exchange.IO(("cross", true)); // Switch to cross margin let _ = exchange.IO(("cross", false)); // Switch to isolated margin }
  • 切换统一账户模式(以币安期货为例)。

    javascript
    function main() { exchange.IO("unified", true) // Switch to unified account mode exchange.IO("unified", false) // Switch to normal mode }
    python
    def main(): exchange.IO("unified", True) exchange.IO("unified", False)
    rust
    fn main() { let _ = exchange.IO(("unified", true)); // Switch to unified account mode let _ = exchange.IO(("unified", false)); // Switch to normal mode }
  • 设置自成交预防(STP)模式(以币安为例)。

    javascript
    function main() { // "NONE" means disable STP mode, other parameters: "EXPIRE_TAKER", "EXPIRE_MAKER", "EXPIRE_BOTH" exchange.IO("selfTradePreventionMode", "NONE") }
    python
    def main(): exchange.IO("selfTradePreventionMode", "NONE")
    rust
    fn main() { // "NONE" means disable STP mode, other parameters: "EXPIRE_TAKER", "EXPIRE_MAKER", "EXPIRE_BOTH" let _ = exchange.IO(("selfTradePreventionMode", "NONE")); }

返回值

类型描述

string / number / bool / object / array / any

返回值因指令而异,部分指令(例如某些交易所的cross、dual)即使调用成功也返回空值;调用失败时返回空值,可通过GetLastError获取错误信息。

参数

名称类型必填描述

mode

string

是

模式指令,例如simulate、cross、dual,完整指令列表见下表。

value

bool / string

否

指令的取值,类型与含义见下表;部分指令无需此参数。

参考

备注

通用交易模式指令

以下指令在多个交易所中通用。各交易所支持哪些指令见能力矩阵;取值含义、是否按合约生效以及返回值的差异,见各交易所页面。

指令参数功能
simulatebool模拟盘(true)/实盘(false)。建议在添加交易所时勾选“模拟盘”,此指令仅为兼容旧策略而保留
crossbool全仓(true)/逐仓(false)
dualbool双向持仓(true)/单向持仓(false)
unifiedbool统一账户(true)/普通账户(false)
trade_margin无切换为逐仓杠杆模式
trade_super_margin无切换为全仓杠杆模式
trade_normal无切换回普通现货模式
selfTradePreventionModestring自成交预防(STP)模式
模拟盘

支持模拟盘的交易所在添加时的配置中提供“模拟盘”勾选项。勾选后,该交易所对象自启动起即连接模拟盘(测试网),策略无需再切换。支持的交易所包括:币安现货与期货、Bybit现货与期货、OKX现货与期货、Bitget现货与期货、Gate.io现货与期货、Futures_DigiFinex、Hyperliquid现货与期货(测试网)、Futures_Lighter、富途(模拟交易账户)。

exchange.IO("simulate", true/false)仍可在运行中切换模拟盘/实盘,用于兼容旧策略(支持的交易所见下方各指令的支持表);新策略应以添加交易所时的勾选为准。DigiFinex现货交易所本身不提供模拟环境。