品种代码
交易所对象的函数用字符串参数symbol指定品种。写法由平台统一定义,与交易所接口里的原始写法无关,换交易所不用改这部分代码。
不传symbol
单个品种的函数(GetTicker、GetDepth、GetTrades、GetRecords、GetHistoryOrders等)不传symbol时作用于**当前品种**:当前交易对由exchange.SetCurrency设置(初始值为实盘、回测配置里的交易对),期货的合约代码由exchange.SetContractType设置。查询多个品种的函数不传时按「范围」查询,见下文「查询范围」。
交易对
现货品种写作「交易币种_计价币种」,大写,以下划线_分隔:BTC_USDT是以USDT计价的BTC,ETH_BTC是以BTC计价的ETH。
合约
期货交易所对象上的品种写作「交易对.合约代码」,以.分隔:
| 写法 | 含义 |
|---|---|
BTC_USDT.swap | BTC的USDT本位永续合约 |
BTC_USD.swap | BTC的币本位永续合约 |
BTC_USDT.quarter | BTC的USDT本位季度合约 |
BTC_USD.this_week | BTC的币本位当周合约 |
计价币种区分保证金类型:USDT、USDC等稳定币为U本位,USD为币本位。通用的合约代码有swap(永续)、this_week(当周)、next_week(次周)、quarter(季度)、next_quarter(次季度),各交易所实际支持哪些见exchange.SetContractType。
加密货币期货交易所对象的默认合约是永续合约swap:没有调用exchange.SetContractType()时,不传symbol的行情、交易函数作用于当前交易对的永续合约。
期权
期权品种写作「交易对.期权合约代码」,期权合约代码使用交易所自己的写法。例如Futures_Binance(币安期货)的期权BTC-240108-40000-C写作BTC_USDT.BTC-240108-40000-C。
原生代码
商品期货、股票类交易所(Futures_CTP(CTP商品期货)、Futures_Futu(富途)、Futures_IB(盈透证券))没有「交易对.合约代码」两段:品种就是交易所的原生合约代码,例如CTP的rb2501。富途、盈透的代码本身可能含.(例如00700.HK),整串作为一个品种,不拆分。
查询范围
GetOrders、GetPositions、GetConditionOrders、GetFundings可以一次查询多个品种。symbol可以是具体品种,也可以是「计价币种.合约类型」形式的范围:
| symbol | 范围 |
|---|---|
USDT.swap | USDT本位永续合约 |
USDT.futures | USDT本位交割合约 |
USD.swap | 币本位永续合约 |
USD.futures | 币本位交割合约 |
USDT.option | USDT本位期权 |
USD.option | 币本位期权 |
USD.futures_combo | 差价组合合约(Futures_Deribit的币本位组合) |
USD.futures_ff | 线性交割合约(Futures_Kraken,合约代码以_ff结尾) |
USD.swap_pf | 线性永续合约(Futures_Kraken,合约代码swap_pf) |
计价币种按交易所实际使用的写(例如USDC.swap)。交易所接口不支持的范围会报错并返回空值。
不传symbol或传空字符串""时的缺省范围
- 现货交易所对象:查询全部品种。
- 加密货币期货交易所对象:查询「当前计价币种 + 当前合约所属的合约类型」。当前合约是组合合约(合约代码含英文逗号,如
quarter,swap,或为Deribit原生组合代码,如BTC-FS-26DEC25_PERP)时为futures_combo;是期权时为option;是swap_pf时为swap_pf;以_ff结尾时为futures_ff;其它含swap的为swap,否则为futures;没有设置合约时按swap。例如当前品种为BTC_USDT.swap时等价于传USDT.swap,为BTC_USD.quarter时等价于传USD.futures,为BTC_USD.quarter,swap时等价于传USD.futures_combo。 - 没有「计价币种 + 合约类型」划分的期货交易所对象(
Futures_CTP、Futures_Futu、Futures_IB、Futures_Polymarket):查询全部品种。 - 少数交易所的查询接口必须指定品种,这些交易所上
GetOrders、GetConditionOrders不传symbol时只查询当前交易对。
查询成功但范围内没有数据时返回空数组[];调用失败时返回空值,见失败与空值。GetHistoryOrders、GetHistoryConditionOrders不使用范围,不传symbol时查询当前品种。