CoinW
Coinw(现货):CoinW(币赢)现货交易,通过CoinW现货的command式接口(api.coinw.com)接入,全部是REST轮询,没有行情和订单推送。私有接口需要API Key(Access Key、Secret Key)。只交易现货,没有模拟盘;永续合约请使用Futures_Coinw。
Futures_Coinw(期货):CoinW U本位永续合约(USDT、USDC保证金),通过CoinW合约接口(api.coinw.com的/v1/perpum)接入,全部是REST轮询,没有行情和订单推送。私有接口需要API Key(Access Key、Secret Key)。只有永续合约,没有币本位与交割合约,没有模拟盘。
名称与配置
exchange.GetName() | 类型 | 别名 |
|---|---|---|
Coinw | 现货 | 币赢 |
Futures_Coinw | 期货 | CoinW期货 |
| 配置项 | 必填 | |
| - | - | |
| Access Key | 是 | |
| Secret Key | 是 |
交易对与合约代码
Coinw(现货)
交易对示例:BTC_USDT、ETH_USDT
交易对写作BTC_USDT,与CoinW现货的原生代码相同(大写)。本交易所对象只交易现货,带合约后缀的品种会报错,永续合约请使用Futures_Coinw。
Futures_Coinw(期货)
交易对示例:BTC_USDT、BTC_USDC
计价币决定保证金币种:BTC_USDT为USDT本位,BTC_USDC为USDC本位,其它计价币会报错。原生合约名为BTCUSDT、BTCUSDC。
| 合约代码 | 说明 |
|---|---|
swap | 永续合约。 |
CoinW只有永续合约,其它合约代码会报错。下单数量单位为张,每张对应的币数为exchange.GetMarkets()中的CtVal。
专属IO指令
Coinw(现货)
| 指令 | 参数 | 说明 | 返回值 |
|---|---|---|---|
api | method, path, params[, raw] | 直接调用CoinW现货私有接口,总是签名。(详见表下) | 交易所的完整应答(不只是data);应答code不是200时报错。 |
表中长说明的其余部分:
api:CoinW现货按command分发,command要写在params里(例如exchange.IO("api", "POST", "/api/v1/private", "command=returnBalances")),缺少时报错。params为对象或"a=1&b=2"形式的字符串,raw非空时整体替换params。
通用指令base、currency见exchange.IO。
Futures_Coinw(期货)
| 指令 | 参数 | 说明 | 返回值 |
|---|---|---|---|
cross | bool | 全仓(true)/逐仓(false),账户级设置,向交易所发出设置请求;有未平仓的持仓时交易所会拒绝并报错(错误码9042)。 | 设置的值。 |
通用指令api、base、currency见exchange.IO。
常用用法
按command调用现货私有接口(仅Coinw)
javascript
function main() {
// command写在params里("a=1&b=2"字符串或对象),返回完整应答(code为200)
var r = exchange.IO("api", "POST", "/api/v1/private", "command=returnBalances")
Log(r.data)
var params = {command: "returnOpenOrders", currencyPair: "BTC_USDT"}
var orders = exchange.IO("api", "POST", "/api/v1/private", params)
Log(orders.data)
}
函数支持差异
Coinw(现货)
不支持(调用时报错并返回空值):exchange.ModifyOrder、exchange.CreateConditionOrder、exchange.ModifyConditionOrder、exchange.CancelConditionOrder、exchange.GetConditionOrder、exchange.GetConditionOrders、exchange.GetHistoryConditionOrders。
以回退方式支持:
exchange.GetRecords:原生周期为1分钟、3分钟、5分钟、15分钟、30分钟、1小时、2小时、4小时、1天、1周;其它周期由托管者合成。
Futures_Coinw(期货)
不支持(调用时报错并返回空值):exchange.ModifyOrder、exchange.ModifyConditionOrder。
以回退方式支持:
exchange.GetRecords:原生周期为1分钟、3分钟、5分钟、15分钟、30分钟、1小时、4小时、1天、1周、1月;其它周期由托管者合成。单次最多返回300根。
保证金、账户与模拟盘
Futures_Coinw(期货)
保证金模式:用exchange.IO("cross", bool)切换账户的全仓/逐仓;没有切换过时,每次下单前查询账户当前模式并随单带上。CoinW没有设置杠杆的接口:exchange.SetMarginLevel()只记录杠杆倍数(非整数向下取整,取整后小于1时报错),之后按合约随每张订单(含条件单)发送,没有设置过时按10倍下单;也可以在下单附加参数中传leverage指定单张订单的杠杆。
持仓模式:只有单向持仓,不支持exchange.IO("dual", ...)。平仓(closebuy、closesell)通过平掉对应方向的已有持仓实现,没有该方向的持仓时报错。
注意事项
Coinw(现货)
- 查询未完成订单的接口必须带交易对:
exchange.GetOrders()不传参数时只查询当前交易对的未完成订单,不是所有交易对。 - 市价买单的下单量是要花费的计价币金额(按CoinW的
funds下单),市价卖单是交易币数量。 - 下单只区分限价单与市价单:交易所不支持只做Maker(
postOnly)、IOC、FOK,传入时报错,订单不会发出。自定义订单号(clientId)作为CoinW的out_trade_no发送(最长50个字符,只能是字母、数字、-、_),返回和查询用的订单号仍是交易所订单号。
Futures_Coinw(期货)
- 条件单只支持止盈、止损单,不支持OCO;不支持改单和修改条件单,需要先撤单再重新下单。
- 查询未完成订单和未完成条件单的接口必须带交易对:
exchange.GetOrders()、exchange.GetConditionOrders()不传参数时只查询当前合约,不是所有合约。 exchange.GetHistoryOrders()、exchange.GetHistoryConditionOrders()不支持since参数(交易所的历史订单接口没有时间范围参数),传入时报错,只能查询最近的订单。exchange.GetDepth()的数量是张数:交易所给出的币数量按每张币量换算后取整。exchange.GetTrades()的数量同样是张数。- USDT本位与USDC本位是两个账户:
exchange.GetAccount()、exchange.GetAssets()按当前合约的计价币查询对应账户(BTC_USDC.swap查USDC账户);不带交易对时两个账户都返回。 - 限价单支持IOC、FOK与只做Maker(
postOnly),分别对应CoinW的positionType取值IOC、FOK、PostOnly;市价单、平仓单(reduceOnly,走交易所的平仓接口)与条件单不支持这些选项,传入时报错。自定义订单号(clientId)作为thirdOrderId发送,平仓单不支持。