exchange.IO(mode, value)
切换交易所的交易模式,包括模拟盘/实盘、全仓/逐仓、双向/单向持仓、统一账户、杠杆模式及自成交预防等。
exchange.IO(mode)
exchange.IO(mode, value)示例
-
切换模拟盘/实盘环境(以
Futures_OKCoin(OKX期货)为例)。javascriptfunction main() { exchange.IO("simulate", true) // Switch to demo trading environment // ... trading logic ... exchange.IO("simulate", false) // Switch back to live trading environment }pythondef main(): exchange.IO("simulate", True) # ... trading logic ... exchange.IO("simulate", False)rustfn main() { let _ = exchange.IO(("simulate", true)); // Switch to demo trading environment // ... trading logic ... let _ = exchange.IO(("simulate", false)); // Switch back to live trading environment } -
切换合约的保证金模式和持仓模式(以币安期货为例)。
javascriptfunction 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 }pythondef main(): exchange.IO("dual", True) exchange.IO("dual", False) exchange.SetContractType("swap") exchange.IO("cross", True) exchange.IO("cross", False)rustfn 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 } -
切换统一账户模式(以币安期货为例)。
javascriptfunction main() { exchange.IO("unified", true) // Switch to unified account mode exchange.IO("unified", false) // Switch to normal mode }pythondef main(): exchange.IO("unified", True) exchange.IO("unified", False)rustfn main() { let _ = exchange.IO(("unified", true)); // Switch to unified account mode let _ = exchange.IO(("unified", false)); // Switch to normal mode } -
设置自成交预防(STP)模式(以币安为例)。
javascriptfunction main() { // "NONE" means disable STP mode, other parameters: "EXPIRE_TAKER", "EXPIRE_MAKER", "EXPIRE_BOTH" exchange.IO("selfTradePreventionMode", "NONE") }pythondef main(): exchange.IO("selfTradePreventionMode", "NONE")rustfn 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 | 返回值因指令而异,部分指令(例如某些交易所的 |
参数
| 名称 | 类型 | 必填 | 描述 |
mode | string | 是 | 模式指令,例如 |
value | bool / string | 否 | 指令的取值,类型与含义见下表;部分指令无需此参数。 |
参考
备注
通用交易模式指令
以下指令在多个交易所中通用。各交易所支持哪些指令见能力矩阵;取值含义、是否按合约生效以及返回值的差异,见各交易所页面。
| 指令 | 参数 | 功能 |
|---|---|---|
simulate | bool | 模拟盘(true)/实盘(false)。建议在添加交易所时勾选“模拟盘”,此指令仅为兼容旧策略而保留 |
cross | bool | 全仓(true)/逐仓(false) |
dual | bool | 双向持仓(true)/单向持仓(false) |
unified | bool | 统一账户(true)/普通账户(false) |
trade_margin | 无 | 切换为逐仓杠杆模式 |
trade_super_margin | 无 | 切换为全仓杠杆模式 |
trade_normal | 无 | 切换回普通现货模式 |
selfTradePreventionMode | string | 自成交预防(STP)模式 |
模拟盘
支持模拟盘的交易所在添加时的配置中提供“模拟盘”勾选项。勾选后,该交易所对象自启动起即连接模拟盘(测试网),策略无需再切换。支持的交易所包括:币安现货与期货、Bybit现货与期货、OKX现货与期货、Bitget现货与期货、Gate.io现货与期货、Futures_DigiFinex、Hyperliquid现货与期货(测试网)、Futures_Lighter、富途(模拟交易账户)。
exchange.IO("simulate", true/false)仍可在运行中切换模拟盘/实盘,用于兼容旧策略(支持的交易所见下方各指令的支持表);新策略应以添加交易所时的勾选为准。DigiFinex现货交易所本身不提供模拟环境。