Private Websocket
<p>[TOC]</p>
<h1>topic 说明</h1>
<h2>accounts topic 说明</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">topic</th>
<th style="text-align: left;">账户</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">accounts.trading</td>
<td style="text-align: left;">trading 交易账户</td>
<td style="text-align: left;">交易账户余额推送</td>
</tr>
<tr>
<td style="text-align: left;">accounts.funding</td>
<td style="text-align: left;">funding 资金账户</td>
<td style="text-align: left;">资金账户余额推送</td>
</tr>
</tbody>
</table>
<h2>orders topic 说明</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">topic</th>
<th style="text-align: left;">交易类型</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">spot.orders.update</td>
<td style="text-align: left;">spot 现货</td>
<td style="text-align: left;">现货订单变更</td>
</tr>
<tr>
<td style="text-align: left;">perp.orders.update</td>
<td style="text-align: left;">perp 合约</td>
<td style="text-align: left;">合约订单变更</td>
</tr>
<tr>
<td style="text-align: left;">perp.position.update</td>
<td style="text-align: left;">perp 合约</td>
<td style="text-align: left;">合约持仓变更</td>
</tr>
</tbody>
</table>
<h2>trades topic 说明</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">topic</th>
<th style="text-align: left;">交易类型</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">spot.orders.trade</td>
<td style="text-align: left;">spot 现货</td>
<td style="text-align: left;">现货订单成交推送</td>
</tr>
<tr>
<td style="text-align: left;">perp.orders.trade</td>
<td style="text-align: left;">perp 合约</td>
<td style="text-align: left;">合约订单成交推送</td>
</tr>
</tbody>
</table>
<h1>event 说明</h1>
<table>
<thead>
<tr>
<th style="text-align: left;">event</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">PING</td>
<td style="text-align: left;">ping</td>
</tr>
<tr>
<td style="text-align: left;">SUB</td>
<td style="text-align: left;">订阅</td>
</tr>
<tr>
<td style="text-align: left;">UNSUB</td>
<td style="text-align: left;">取消订阅</td>
</tr>
<tr>
<td style="text-align: left;">REQ</td>
<td style="text-align: left;">一次性请求</td>
</tr>
<tr>
<td style="text-align: left;">AUTH</td>
<td style="text-align: left;">鉴权</td>
</tr>
</tbody>
</table>
<h1>1、鉴权</h1>
<h2>描述</h2>
<ul>
<li>私有WebSocket 链接鉴权</li>
</ul>
<h2>示例</h2>
<pre><code>{
&quot;event&quot;: &quot;AUTH&quot;,
&quot;token&quot;: &quot;Ao1HPly7jCaRNuVCF/BiSENJUoQBVEd+vZ6xpyBNZebOFX2SOYFg5XqYMJeOBwm5n6ola1QXUoKc4PdYsoa8ywODcPZSkPNfQRwKF12D2/CZW7GqO8Z5YENkE9RsDzEDLXxeF24LpcWhBm6IdCUpO4wM0XlhvOkTb1AHPDHp4EYtYLJvvN8/+h6zhFdrvlstAtg19Cnp/ynjxLoskMBrRw==&quot;
}</code></pre>
<h2>请求参数</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">示例</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">event</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">操作类型[ping,sub,unsub,auth]</td>
<td style="text-align: left;">auth</td>
</tr>
<tr>
<td style="text-align: left;">token</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">用户token</td>
<td style="text-align: left;">-</td>
</tr>
</tbody>
</table>
<h2>成功示例</h2>
<pre><code>{
&quot;msg&quot;: &quot;Authorization successful&quot;,
&quot;code&quot;: 200
}</code></pre>
<h2>失败示例</h2>
<pre><code>{
&quot;msg&quot;: &quot;Authorization failed&quot;,
&quot;code&quot;: 116
}</code></pre>
<h1>2、资金变更订阅</h1>
<h2>描述</h2>
<ul>
<li>私有WebSocket 订阅账户资产变更</li>
</ul>
<h2>示例</h2>
<ul>
<li>订阅交易账户</li>
</ul>
<pre><code>{
&quot;event&quot;: &quot;SUB&quot;,
&quot;topic&quot;: &quot;accounts.trading&quot;
}</code></pre>
<ul>
<li>订阅资金账户</li>
</ul>
<pre><code>{
&quot;event&quot;: &quot;SUB&quot;,
&quot;topic&quot;: &quot;accounts.funding&quot;
}</code></pre>
<ul>
<li>订阅交易账户与资金账户</li>
</ul>
<pre><code>{
&quot;event&quot;: &quot;SUB&quot;,
&quot;topics&quot;: [&quot;accounts.trading&quot;,&quot;accounts.funding&quot;]
}</code></pre>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">示例</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">event</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">操作类型[ping,sub,unsub,auth]</td>
<td style="text-align: left;">sub</td>
</tr>
<tr>
<td style="text-align: left;">topic</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">订阅topic类型</td>
<td style="text-align: left;">accounts.trading</td>
</tr>
<tr>
<td style="text-align: left;">topics</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">List<String/></td>
<td style="text-align: left;">订阅topic类型列表</td>
<td style="text-align: left;">["accounts.trading","accounts.funding"]</td>
</tr>
</tbody>
</table>
<ul>
<li>topic 与 topics 必须有个一个有值</li>
</ul>
<h2>交易账户推送</h2>
<pre><code>{
&quot;data&quot;: [
{
&quot;available&quot;: &quot;9.51397&quot;,
&quot;balance&quot;: &quot;9.51397&quot;,
&quot;currency&quot;: &quot;BTC&quot;,
&quot;frozen&quot;: &quot;0&quot;,
&quot;margin&quot;: &quot;0&quot;,
&quot;usdValuation&quot;: &quot;934344.9212896&quot;
},
{
&quot;available&quot;: &quot;0.33565892031298&quot;,
&quot;balance&quot;: &quot;0.33565892031298&quot;,
&quot;currency&quot;: &quot;ETH&quot;,
&quot;frozen&quot;: &quot;0&quot;,
&quot;margin&quot;: &quot;0&quot;,
&quot;usdValuation&quot;: &quot;1174.1483296116165592&quot;
},
{
&quot;available&quot;: &quot;10055532.711643&quot;,
&quot;balance&quot;: &quot;10056067.781143&quot;,
&quot;currency&quot;: &quot;USDT&quot;,
&quot;frozen&quot;: &quot;535.0695&quot;,
&quot;margin&quot;: &quot;0&quot;,
&quot;usdValuation&quot;: &quot;10056067.781143&quot;
}
],
&quot;event&quot;: &quot;SUB&quot;,
&quot;topic&quot;: &quot;accounts.trading&quot;,
&quot;ts&quot;: 1735115544008
}</code></pre>
<h2>资金账户推送</h2>
<pre><code>{
&quot;data&quot;: [
{
&quot;available&quot;: &quot;167.1747&quot;,
&quot;balance&quot;: &quot;167.1747&quot;,
&quot;currency&quot;: &quot;ETH&quot;,
&quot;frozen&quot;: &quot;0&quot;
},
{
&quot;available&quot;: &quot;1069.5&quot;,
&quot;balance&quot;: &quot;1069.5&quot;,
&quot;currency&quot;: &quot;USDT&quot;,
&quot;frozen&quot;: &quot;0&quot;
}
],
&quot;event&quot;: &quot;SUB&quot;,
&quot;topic&quot;: &quot;accounts.funding&quot;,
&quot;ts&quot;: 1734876275652
}</code></pre>
<h2>参数说明</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">描述</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">data</td>
<td style="text-align: left;">array</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">data.available</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">可用金额</td>
</tr>
<tr>
<td style="text-align: left;">data.balance</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">账户总额</td>
</tr>
<tr>
<td style="text-align: left;">data.currency</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">币种</td>
</tr>
<tr>
<td style="text-align: left;">data.frozen</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">冻结金额</td>
</tr>
<tr>
<td style="text-align: left;">data.margin</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">保证金金额</td>
</tr>
<tr>
<td style="text-align: left;">data.lockVersion</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">账变序号</td>
</tr>
<tr>
<td style="text-align: left;">data.usdValuation</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">账户总额折合USD</td>
</tr>
<tr>
<td style="text-align: left;">op</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送类型</td>
</tr>
<tr>
<td style="text-align: left;">topic</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送topic</td>
</tr>
<tr>
<td style="text-align: left;">ts</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送时间</td>
</tr>
</tbody>
</table>
<h1>3、SPOT 现货 订单变更订阅</h1>
<h2>描述</h2>
<ul>
<li>私有WebSocket 订阅订单变更</li>
</ul>
<h2>示例</h2>
<pre><code>{
&quot;event&quot;: &quot;SUB&quot;,
&quot;topic&quot;: &quot;spot.orders.update&quot;
}</code></pre>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">示例</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">event</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">操作类型[ping,sub,unsub,auth]</td>
<td style="text-align: left;">sub</td>
</tr>
<tr>
<td style="text-align: left;">topic</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">订阅topic类型</td>
<td style="text-align: left;">spot.orders.update</td>
</tr>
<tr>
<td style="text-align: left;">topics</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">List<String/></td>
<td style="text-align: left;">订阅topic类型列表</td>
<td style="text-align: left;">["spot.orders.update","perp.orders.update"]</td>
</tr>
</tbody>
</table>
<ul>
<li>topic 与 topics 必须有个一个有值</li>
</ul>
<h2>Spot订单数据推送</h2>
<pre><code>{
&quot;data&quot;: [
{
&quot;amount&quot;: &quot;3486.78&quot;,
&quot;averagePrice&quot;: &quot;3487.19&quot;,
&quot;createTime&quot;: &quot;2024-12-25T07:01:32&quot;,
&quot;createdAt&quot;: 1735110092943,
&quot;feeCurrency&quot;: &quot;ETH&quot;,
&quot;filledAmount&quot;: &quot;0.002&quot;,
&quot;filledFees&quot;: &quot;0.000004&quot;,
&quot;id&quot;: 882045605710729216,
&quot;price&quot;: &quot;0&quot;,
&quot;side&quot;: &quot;BUY&quot;,
&quot;state&quot;: 2,
&quot;stopPrice&quot;: &quot;0&quot;,
&quot;symbol&quot;: &quot;ETH_USDT&quot;,
&quot;symbolId&quot;: 2,
&quot;type&quot;: &quot;MARKET&quot;,
&quot;updateTime&quot;: &quot;2024-12-25T07:01:32&quot;,
&quot;userId&quot;: 866106763576135680
}
],
&quot;event&quot;: &quot;SUB&quot;,
&quot;topic&quot;: &quot;spot.orders.update&quot;,
&quot;ts&quot;: 1735110093125
}</code></pre>
<h2>参数说明</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">描述</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">data</td>
<td style="text-align: left;">array</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">data.orderId</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单Id</td>
</tr>
<tr>
<td style="text-align: left;">data.userId</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">交易对ID</td>
</tr>
<tr>
<td style="text-align: left;">data.symbolId</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">交易对ID</td>
</tr>
<tr>
<td style="text-align: left;">data.symbol</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">交易对</td>
</tr>
<tr>
<td style="text-align: left;">data.side</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">买卖方向</td>
</tr>
<tr>
<td style="text-align: left;">data.type</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单类型</td>
</tr>
<tr>
<td style="text-align: left;">data.payment</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">支付类型</td>
</tr>
<tr>
<td style="text-align: left;">data.amount</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">下单金额 支付类型[Total:交易额,Amount:交易量]</td>
</tr>
<tr>
<td style="text-align: left;">data.orderAmount</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单下单交易量</td>
</tr>
<tr>
<td style="text-align: left;">data.orderTotal</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单下单交易额</td>
</tr>
<tr>
<td style="text-align: left;">data.price</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单价格</td>
</tr>
<tr>
<td style="text-align: left;">data.stopPrice</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">止盈止损订单触发价格</td>
</tr>
<tr>
<td style="text-align: left;">data.averagePrice</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">成交均价</td>
</tr>
<tr>
<td style="text-align: left;">data.filledCashAmount</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">已成交总金额</td>
</tr>
<tr>
<td style="text-align: left;">data.filledAmount</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">已成交数量</td>
</tr>
<tr>
<td style="text-align: left;">data.filledFees</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">已成交手续费</td>
</tr>
<tr>
<td style="text-align: left;">data.feeCurrency</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">手续费币种</td>
</tr>
<tr>
<td style="text-align: left;">data.volumnRatio</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单完成率</td>
</tr>
<tr>
<td style="text-align: left;">data.state</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单撮合状态 [-1:已撤销,0:已创建(该状态订单尚未进入撮合队列),1:已提交,2:部分成交,3:完全成交]</td>
</tr>
<tr>
<td style="text-align: left;">data.channel</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">下单渠道</td>
</tr>
<tr>
<td style="text-align: left;">data.createdAt</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单创建时间</td>
</tr>
<tr>
<td style="text-align: left;">data.canceledAt</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单撤销时间</td>
</tr>
<tr>
<td style="text-align: left;">data.finishedAt</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单变为终结态的时间</td>
</tr>
<tr>
<td style="text-align: left;">data.createTime</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">创建时间</td>
</tr>
<tr>
<td style="text-align: left;">data.updateTime</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">更新时间</td>
</tr>
<tr>
<td style="text-align: left;">event</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送类型</td>
</tr>
<tr>
<td style="text-align: left;">topic</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送topic</td>
</tr>
<tr>
<td style="text-align: left;">ts</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送时间</td>
</tr>
</tbody>
</table>
<h1>4、SPOT 现货 订单成交订阅</h1>
<h2>描述</h2>
<ul>
<li>私有WebSocket 订阅订单成交</li>
</ul>
<h2>示例</h2>
<pre><code>{
&quot;event&quot;: &quot;SUB&quot;,
&quot;topic&quot;: &quot;spot.orders.trade&quot;
}</code></pre>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">示例</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">event</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">操作类型[ping,sub,unsub,auth]</td>
<td style="text-align: left;">sub</td>
</tr>
<tr>
<td style="text-align: left;">topic</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">订阅topic类型</td>
<td style="text-align: left;">spot.orders.trade</td>
</tr>
<tr>
<td style="text-align: left;">topics</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">List<String/></td>
<td style="text-align: left;">订阅topic类型列表</td>
<td style="text-align: left;">["spot.orders.trade","perp.orders.trade"]</td>
</tr>
</tbody>
</table>
<h2>Spot订单成交数据推送</h2>
<pre><code>{
&quot;data&quot;: [
{
&quot;createdAt&quot;: 1734876774001,
&quot;feeCurrency&quot;: &quot;BTC&quot;,
&quot;filledAmount&quot;: &quot;0.001&quot;,
&quot;filledFees&quot;: &quot;0.000002&quot;,
&quot;id&quot;: 881066995176869888,
&quot;orderId&quot;: 881066994912575488,
&quot;price&quot;: &quot;1&quot;,
&quot;role&quot;: &quot;taker&quot;,
&quot;settleAmount&quot;: &quot;0.001&quot;,
&quot;side&quot;: &quot;BUY&quot;,
&quot;symbol&quot;: &quot;BTC_USDT&quot;,
&quot;type&quot;: &quot;buy-limit&quot;,
&quot;userId&quot;: 866106763576135680
}
],
&quot;event&quot;: &quot;SUB&quot;,
&quot;topic&quot;: &quot;spot.orders.trade&quot;,
&quot;ts&quot;: 1734876774007
}</code></pre>
<h3>参数说明</h3>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">描述</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">data</td>
<td style="text-align: left;">array</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">data.id</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">成交记录ID</td>
</tr>
<tr>
<td style="text-align: left;">data.userId</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">用户ID</td>
</tr>
<tr>
<td style="text-align: left;">data.orderId</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单Id</td>
</tr>
<tr>
<td style="text-align: left;">data.symbol</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">交易对</td>
</tr>
<tr>
<td style="text-align: left;">data.side</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">买卖方向</td>
</tr>
<tr>
<td style="text-align: left;">data.type</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单类型</td>
</tr>
<tr>
<td style="text-align: left;">data.price</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">成交价格</td>
</tr>
<tr>
<td style="text-align: left;">data.filledTotal</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">成交金额 filledAmount * price</td>
</tr>
<tr>
<td style="text-align: left;">data.filledAmount</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">成交数量</td>
</tr>
<tr>
<td style="text-align: left;">data.filledFees</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">交易手续费</td>
</tr>
<tr>
<td style="text-align: left;">data.feeCurrency</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">交易手续费或交易返佣币种</td>
</tr>
<tr>
<td style="text-align: left;">data.role</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">成交角色 maker,taker</td>
</tr>
<tr>
<td style="text-align: left;">data.createdAt</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">该成交记录创建的时间戳</td>
</tr>
<tr>
<td style="text-align: left;">data.createTime</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">创建时间</td>
</tr>
<tr>
<td style="text-align: left;">event</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送类型</td>
</tr>
<tr>
<td style="text-align: left;">topic</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送topic</td>
</tr>
<tr>
<td style="text-align: left;">ts</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送时间</td>
</tr>
</tbody>
</table>
<h1>5、PERP 合约 订单变更订阅</h1>
<h2>描述</h2>
<ul>
<li>私有WebSocket 合约订阅订单变更</li>
</ul>
<h2>示例</h2>
<pre><code>{
&quot;event&quot;: &quot;SUB&quot;,
&quot;topic&quot;: &quot;perp.orders.update&quot;
}</code></pre>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">示例</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">event</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">操作类型[ping,sub,unsub,auth]</td>
<td style="text-align: left;">sub</td>
</tr>
<tr>
<td style="text-align: left;">topic</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">订阅topic类型</td>
<td style="text-align: left;">perp.orders.update</td>
</tr>
<tr>
<td style="text-align: left;">topics</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">List<String/></td>
<td style="text-align: left;">订阅topic类型列表</td>
<td style="text-align: left;">["perp.position.update","perp.orders.update","perp.orders.trade"]</td>
</tr>
</tbody>
</table>
<ul>
<li>topic 与 topics 必须有个一个有值</li>
</ul>
<h2>Perp 订单数据推送</h2>
<pre><code>{
&quot;data&quot;: [
{
&quot;amount&quot;: &quot;196081.92&quot;,
&quot;closePosition&quot;: false,
&quot;createdAt&quot;: 1735117851015,
&quot;id&quot;: 882078145562963968,
&quot;initMargin&quot;: &quot;1960.8&quot;,
&quot;leverage&quot;: 100,
&quot;matchType&quot;: &quot;LIMIT&quot;,
&quot;positionSide&quot;: &quot;BOTH&quot;,
&quot;price&quot;: &quot;98040.96&quot;,
&quot;quantity&quot;: &quot;2&quot;,
&quot;reduceOnly&quot;: false,
&quot;side&quot;: &quot;BUY&quot;,
&quot;state&quot;: 1,
&quot;symbol&quot;: &quot;PERP_BTC_USDT&quot;,
&quot;symbolId&quot;: 1,
&quot;type&quot;: &quot;BASE&quot;,
&quot;userId&quot;: 866106763576135680,
&quot;workingType&quot;: &quot;MARK_PRICE&quot;
}
],
&quot;event&quot;: &quot;SUB&quot;,
&quot;topic&quot;: &quot;perp.orders.update&quot;,
&quot;ts&quot;: 1735117851068
}</code></pre>
<h2>参数说明</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">描述</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">data</td>
<td style="text-align: left;">array</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">data.orderId</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单Id</td>
</tr>
<tr>
<td style="text-align: left;">data.userId</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">交易对ID</td>
</tr>
<tr>
<td style="text-align: left;">data.symbolId</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">交易对ID</td>
</tr>
<tr>
<td style="text-align: left;">data.symbol</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">交易对</td>
</tr>
<tr>
<td style="text-align: left;">data.side</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">委托方向 [BUY:买,SELL:卖]</td>
</tr>
<tr>
<td style="text-align: left;">data.positionSide</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">持仓方向[BOTH:合并持仓(单项) ;多向持仓LONG: 多,SHORT: 空]</td>
</tr>
<tr>
<td style="text-align: left;">data.matchType</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">撮合策略[MARKE:市价, LIMIT:限价, POST_ONLY:只挂单,FOK:全部成交或立即取消,IOC:立即成交并取消剩余,MTC:市价转撤单]</td>
</tr>
<tr>
<td style="text-align: left;">data.reduceOnly</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">仅减仓</td>
</tr>
<tr>
<td style="text-align: left;">data.type</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">BASE:基础单,TP:止盈,SL: 止损,TRIGGER:计划委托(条件单)</td>
</tr>
<tr>
<td style="text-align: left;">data.quantity</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">下单数量</td>
</tr>
<tr>
<td style="text-align: left;">data.amount</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">下单数量(USDT)</td>
</tr>
<tr>
<td style="text-align: left;">data.price</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单价格</td>
</tr>
<tr>
<td style="text-align: left;">data.triggerSide</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">触发类型 -1小于 0等于 1大于</td>
</tr>
<tr>
<td style="text-align: left;">data.stopPrice</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">计划委托触发价格</td>
</tr>
<tr>
<td style="text-align: left;">data.closePosition</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">仅平仓[0:false,1:true]</td>
</tr>
<tr>
<td style="text-align: left;">data.leverage</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">杠杆倍数</td>
</tr>
<tr>
<td style="text-align: left;">data.initMargin</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">初始保证金</td>
</tr>
<tr>
<td style="text-align: left;">data.averagePrice</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">成交均价</td>
</tr>
<tr>
<td style="text-align: left;">data.filledAmount</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">已成交总金额</td>
</tr>
<tr>
<td style="text-align: left;">data.filledQuantity</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">已成交数量</td>
</tr>
<tr>
<td style="text-align: left;">data.filledFees</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">已成交手续费</td>
</tr>
<tr>
<td style="text-align: left;">data.feeCurrency</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">手续费币种</td>
</tr>
<tr>
<td style="text-align: left;">data.slPrice</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">止损价格</td>
</tr>
<tr>
<td style="text-align: left;">data.tpPrice</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">止盈价格</td>
</tr>
<tr>
<td style="text-align: left;">data.state</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单撮合状态 [-4:撤销中, -3:部分成交已撤销, -2:委托异常, -1:已撤销, 0:已创建(该状态订单尚未进入撮合队列), 1:撮合中, 2.部分成交, 3:全部成交, 4:等待触发, 5:已过期]</td>
</tr>
<tr>
<td style="text-align: left;">data.createdAt</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单创建时间</td>
</tr>
<tr>
<td style="text-align: left;">data.canceledAt</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单撤销时间</td>
</tr>
<tr>
<td style="text-align: left;">data.finishedAt</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单变为终结态的时间</td>
</tr>
<tr>
<td style="text-align: left;">data.cancelType</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">撤单类型:0:用户主动撤单,1:系统撤单,2:自成交保护撤单</td>
</tr>
<tr>
<td style="text-align: left;">event</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送类型</td>
</tr>
<tr>
<td style="text-align: left;">topic</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送topic</td>
</tr>
<tr>
<td style="text-align: left;">ts</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送时间</td>
</tr>
</tbody>
</table>
<h1>6、PERP 合约 持仓变更订阅</h1>
<h2>描述</h2>
<ul>
<li>私有WebSocket 合约订阅持仓订单变更</li>
</ul>
<h2>示例</h2>
<pre><code>{
&quot;event&quot;: &quot;SUB&quot;,
&quot;topic&quot;: &quot;perp.position.update&quot;
}</code></pre>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">示例</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">event</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">操作类型[ping,sub,unsub,auth]</td>
<td style="text-align: left;">sub</td>
</tr>
<tr>
<td style="text-align: left;">topic</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">订阅topic类型</td>
<td style="text-align: left;">perp.position.update</td>
</tr>
<tr>
<td style="text-align: left;">topics</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">List<String/></td>
<td style="text-align: left;">订阅topic类型列表</td>
<td style="text-align: left;">["perp.position.update","perp.orders.update","perp.orders.trade"]</td>
</tr>
</tbody>
</table>
<ul>
<li>topic 与 topics 必须有个一个有值</li>
</ul>
<h2>Perp 订单数据推送</h2>
<pre><code>{
&quot;data&quot;: {
&quot;adl&quot;: 1,
&quot;averageClosePrice&quot;: &quot;0&quot;,
&quot;breakEvenPrice&quot;: &quot;98040.9601&quot;,
&quot;closedVolume&quot;: &quot;0&quot;,
&quot;commission&quot;: &quot;55.9784469247&quot;,
&quot;createTime&quot;: &quot;2024-12-25T09:10:25&quot;,
&quot;entryPrice&quot;: &quot;98040.96&quot;,
&quot;id&quot;: 11536,
&quot;initialMargin&quot;: &quot;5597.8&quot;,
&quot;isolatedMargin&quot;: &quot;0&quot;,
&quot;leverage&quot;: 100,
&quot;liquidationPrice&quot;: &quot;16777.4578907&quot;,
&quot;maintenanceMargin&quot;: &quot;2798.922346235&quot;,
&quot;maintenanceMarginRate&quot;: &quot;0.005&quot;,
&quot;marginAsset&quot;: &quot;USDT&quot;,
&quot;maxPositionSize&quot;: &quot;5.7097&quot;,
&quot;notional&quot;: &quot;559784.469247&quot;,
&quot;openOrderMargin&quot;: &quot;5597.8&quot;,
&quot;positionMode&quot;: 1,
&quot;positionSide&quot;: &quot;BOTH&quot;,
&quot;positionSize&quot;: &quot;5.7097&quot;,
&quot;realizedProfit&quot;: &quot;0&quot;,
&quot;status&quot;: 0,
&quot;symbol&quot;: &quot;PERP_BTC_USDT&quot;,
&quot;symbolId&quot;: 1,
&quot;updateTime&quot;: &quot;2024-12-25T09:10:25&quot;,
&quot;userId&quot;: 866106763576135680
},
&quot;event&quot;: &quot;SUB&quot;,
&quot;topic&quot;: &quot;perp.position.update&quot;,
&quot;ts&quot;: 1735118579309
}</code></pre>
<h2>参数说明</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">描述</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">data</td>
<td style="text-align: left;">array</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">data.id</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">持仓Id</td>
</tr>
<tr>
<td style="text-align: left;">data.userId</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">用户ID</td>
</tr>
<tr>
<td style="text-align: left;">data.symbolId</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">交易对ID</td>
</tr>
<tr>
<td style="text-align: left;">data.symbol</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">交易对</td>
</tr>
<tr>
<td style="text-align: left;">data.positionSide</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">持仓方向[BOTH:合并持仓(单项) ;多向持仓LONG: 多,SHORT: 空]</td>
</tr>
<tr>
<td style="text-align: left;">data.positionMode</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">持仓模式[1:全仓cross 2:逐仓isolated]</td>
</tr>
<tr>
<td style="text-align: left;">data.leverage</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">杠杆倍数</td>
</tr>
<tr>
<td style="text-align: left;">data.positionSize</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">持仓数量</td>
</tr>
<tr>
<td style="text-align: left;">data.maxPositionSize</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">最大持仓数量</td>
</tr>
<tr>
<td style="text-align: left;">data.closedVolume</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">已平仓量(累计平仓量)</td>
</tr>
<tr>
<td style="text-align: left;">data.entryPrice</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">持仓价格(均价)</td>
</tr>
<tr>
<td style="text-align: left;">data.averageClosePrice</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">平仓均价(所有平仓均价)</td>
</tr>
<tr>
<td style="text-align: left;">data.notional</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">持仓名义价值(USD)</td>
</tr>
<tr>
<td style="text-align: left;">data.breakEvenPrice</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">持仓已实现盈亏</td>
</tr>
<tr>
<td style="text-align: left;">data.marginAsset</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">保证金币种</td>
</tr>
<tr>
<td style="text-align: left;">data.isolatedMargin</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">逐仓保证金</td>
</tr>
<tr>
<td style="text-align: left;">data.initialMargin</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">初始保证金</td>
</tr>
<tr>
<td style="text-align: left;">data.maintenanceMargin</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">维持保证金</td>
</tr>
<tr>
<td style="text-align: left;">data.openOrderMargin</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单保证金</td>
</tr>
<tr>
<td style="text-align: left;">data.maintenanceMarginRate</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">维持保证金率</td>
</tr>
<tr>
<td style="text-align: left;">data.commission</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">仓位手续费</td>
</tr>
<tr>
<td style="text-align: left;">data.fundingFee</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">资金费用</td>
</tr>
<tr>
<td style="text-align: left;">data.slPrice</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">止损价格</td>
</tr>
<tr>
<td style="text-align: left;">data.tpPrice</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">止盈价格</td>
</tr>
<tr>
<td style="text-align: left;">data.adl</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">自动减仓等级</td>
</tr>
<tr>
<td style="text-align: left;">data.status</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">仓位状态[0:开仓, 1:部分平仓,2:完全平仓,3:强平,4:强减,5:自动减仓]</td>
</tr>
<tr>
<td style="text-align: left;">data.createTime</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">创建时间</td>
</tr>
<tr>
<td style="text-align: left;">data.updateTime</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">更新时间</td>
</tr>
<tr>
<td style="text-align: left;">event</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送类型</td>
</tr>
<tr>
<td style="text-align: left;">topic</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送topic</td>
</tr>
<tr>
<td style="text-align: left;">ts</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送时间</td>
</tr>
</tbody>
</table>
<h1>7、PERP 合约 订单成交订阅</h1>
<h2>描述</h2>
<ul>
<li>私有WebSocket 订阅订单成交
<h2>示例</h2>
<pre><code>{
&quot;event&quot;: &quot;SUB&quot;,
&quot;topic&quot;: &quot;perp.orders.trade&quot;
}</code></pre>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
<th style="text-align: left;">示例</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">event</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">操作类型[ping,sub,unsub,auth]</td>
<td style="text-align: left;">sub</td>
</tr>
<tr>
<td style="text-align: left;">topic</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">订阅topic类型</td>
<td style="text-align: left;">spot.orders.trade</td>
</tr>
<tr>
<td style="text-align: left;">topics</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">List<String/></td>
<td style="text-align: left;">订阅topic类型列表</td>
<td style="text-align: left;">["perp.position.update","perp.orders.update","perp.orders.trade"]</td>
</tr>
</tbody>
</table></li>
</ul>
<h2>perp订单成交数据推送</h2>
<pre><code>{
&quot;data&quot;: [
{
&quot;amount&quot;: &quot;29804.45184&quot;,
&quot;commission&quot;: &quot;2.980445184&quot;,
&quot;commissionAsset&quot;: &quot;USDT&quot;,
&quot;createdAt&quot;: 1735127643110,
&quot;maker&quot;: true,
&quot;orderId&quot;: 882119191890128896,
&quot;positionSide&quot;: &quot;BOTH&quot;,
&quot;price&quot;: &quot;98040.96&quot;,
&quot;quantity&quot;: &quot;0.304&quot;,
&quot;realizedPnl&quot;: &quot;0&quot;,
&quot;side&quot;: &quot;BUY&quot;,
&quot;symbol&quot;: &quot;PERP_BTC_USDT&quot;,
&quot;symbolId&quot;: 1,
&quot;tradeId&quot;: 14333010,
&quot;userId&quot;: 866106763576135680
}
],
&quot;event&quot;: &quot;SUB&quot;,
&quot;topic&quot;: &quot;perp.orders.trade&quot;,
&quot;ts&quot;: 1735127643114
}</code></pre>
<h2>参数说明</h2>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">描述</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">data</td>
<td style="text-align: left;">array</td>
<td style="text-align: left;"></td>
</tr>
<tr>
<td style="text-align: left;">data.tradeId</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">成交记录ID</td>
</tr>
<tr>
<td style="text-align: left;">data.userId</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">用户ID</td>
</tr>
<tr>
<td style="text-align: left;">data.orderId</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单Id</td>
</tr>
<tr>
<td style="text-align: left;">data.symbol</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">交易对</td>
</tr>
<tr>
<td style="text-align: left;">data.side</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">订单方向 [BUY:买,SELL:卖]</td>
</tr>
<tr>
<td style="text-align: left;">data.positionSide</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">持仓方向[LONG: 多,SHORT: 空]</td>
</tr>
<tr>
<td style="text-align: left;">data.price</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">成交价格</td>
</tr>
<tr>
<td style="text-align: left;">data.quantity</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">成交量</td>
</tr>
<tr>
<td style="text-align: left;">data.amount</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">成交额</td>
</tr>
<tr>
<td style="text-align: left;">data.commission</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">交易手续费</td>
</tr>
<tr>
<td style="text-align: left;">data.commissionAsset</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">手续费计价币种</td>
</tr>
<tr>
<td style="text-align: left;">data.maker</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">是否是挂单方[0:false,1:true]</td>
</tr>
<tr>
<td style="text-align: left;">data.realizedPnl</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">实现盈亏平仓才有</td>
</tr>
<tr>
<td style="text-align: left;">data.createdAt</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">该成交记录创建的时间戳</td>
</tr>
<tr>
<td style="text-align: left;">data.createTime</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">创建时间</td>
</tr>
<tr>
<td style="text-align: left;">event</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送类型</td>
</tr>
<tr>
<td style="text-align: left;">topic</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送topic</td>
</tr>
<tr>
<td style="text-align: left;">ts</td>
<td style="text-align: left;">string</td>
<td style="text-align: left;">推送时间</td>
</tr>
</tbody>
</table>