账户与订单订阅
订阅账户变动
说明
订阅账户资产、持仓、订单和成交明细的实时变动推送。数据通过以下回调接收:
on_asset— 资产变动(每 5 秒全量快照)on_position— 持仓变动(每 5 秒全量快照)on_order— 订单状态变动(实时)on_transaction— 成交明细(实时)
参数
| 参数 | 类型 | 说明 |
|---|---|---|
| account | &str | 交易账户 ID。如不指定,默认订阅所有资金账号(含模拟账号) |
示例
// 订阅订单状态变动
push.subscribe(&SubjectType::OrderStatus, None, Some("your_account"), None);
// 订阅资产变动
push.subscribe(&SubjectType::Asset, None, Some("your_account"), None);
// 订阅持仓变动
push.subscribe(&SubjectType::Position, None, Some("your_account"), None);
// 订阅成交明细
push.subscribe(&SubjectType::OrderTransaction, None, Some("your_account"), None);
订阅上述四种主题中的任意一个,都会推送全部四种主题数据。取消任意一个主题,会取消全部四种主题的订阅。
资产变动回调
对应回调: on_asset
推送频率: 每 5 秒全量快照
回调数据字段
| 字段 | 类型 | 说明 |
|---|---|---|
| account | String | 资金账号 |
| currency | String | 币种。USD 美元,HKD 港币 |
| segment | String | 按交易品种划分的分类。S 表示股票,C 表示期货,D 表示数字货币,F 表示基金,CONSOLIDATED 表示股票和基金聚合 |
| availableFunds | double | 可用资金,隔夜剩余流动性 |
| excessLiquidity | double | 当前剩余流动性 |
| netLiquidation | double | 总资产(净清算值)。现金余额和证券总市值之和 |
| equityWithLoan | double | 含贷款价值总权益。等于总资产 - 美股期权 |
| buyingPower | double | 购买力。仅适用于股票品种(segment 为 S 时有意义) |
| cashBalance | double | 现金额。当前所有币种的现金余额之和 |
| grossPositionValue | double | 证券总价值 |
| initMarginReq | double | 初始保证金 |
| maintMarginReq | double | 维持保证金 |
| timestamp | long | 时间戳(毫秒) |
回调数据示例
{
"account": "13810712",
"currency": "USD",
"segment": "S",
"availableFunds": 2285040.55,
"excessLiquidity": 2284942.05,
"netLiquidation": 2285529.37,
"equityWithLoan": 2285418.28,
"buyingPower": 9140162.19,
"cashBalance": 2284275.24,
"grossPositionValue": 1143.04,
"initMarginReq": 377.74,
"maintMarginReq": 476.24,
"timestamp": "1669888806020"
}持仓变动回调
对应回调: on_position
推送频率: 每 5 秒全量快照
回调数据字段
| 字段 | 类型 | 说明 |
|---|---|---|
| account | String | 资金账号 |
| symbol | String | 持仓标的代码,如 'AAPL', '00700', 'ES', 'CN' |
| expiry | String | 到期日,仅支持期权、窝轮、牛熊证 |
| strike | String | 行权价,仅支持期权、窝轮、牛熊证 |
| right | String | 方向,仅支持期权、窝轮、牛熊证 |
| identifier | String | 标的标识符。股票的 identifier 与 symbol 相同;期货带有合约月份,如 'CN2201' |
| multiplier | int | 每手数量,仅限期货、期权、窝轮、牛熊证 |
| market | String | 市场。US, HK |
| currency | String | 币种。USD 美元,HKD 港币 |
| segment | String | 按交易品种划分的分类。S 表示股票,C 表示期货,D 表示数字货币,F 表示基金 |
| secType | String | 交易品种。STK 股票, OPT 期权, WAR 窝轮, IOPT 牛熊证, CASH 外汇, FUT 期货, FOP 期货期权 |
| positionQty | double | 持仓数量 |
| salableQty | double | 可卖数量 |
| averageCost | double | 持仓均价 |
| latestPrice | double | 标的当前价格 |
| marketValue | double | 持仓市值 |
| unrealizedPnl | double | 持仓盈亏 |
| timestamp | long | 时间戳(毫秒) |
回调数据示例
{
"account": "13810712",
"symbol": "AAPL",
"identifier": "AAPL",
"multiplier": 1,
"market": "US",
"currency": "USD",
"segment": "S",
"secType": "STK",
"positionQty": 4.0,
"averageCost": 75.0,
"latestPrice": 147.23,
"marketValue": 588.92,
"unrealizedPnl": 288.92,
"timestamp": "1669888802018"
}订单变动回调
对应回调: on_order
推送频率: 订单状态变化时实时推送(Submitted、Cancelled、Inactive、Filled 等)
回调数据字段
| 字段 | 类型 | 说明 |
|---|---|---|
| id | long | 订单号 |
| account | String | 资金账号 |
| symbol | String | 标的代码,如 'AAPL', '00700', 'ES', 'CN' |
| expiry | String | 到期日,仅支持期权、窝轮、牛熊证 |
| strike | String | 行权价,仅支持期权、窝轮、牛熊证 |
| right | String | 方向,仅支持期权、窝轮、牛熊证 |
| identifier | String | 标的标识符。股票的 identifier 与 symbol 相同;期货带有合约月份,如 'CN2201' |
| multiplier | int | 每手数量,仅限期货、期权、窝轮、牛熊证 |
| action | String | 买卖方向。BUY 表示买入,SELL 表示卖出 |
| market | String | 市场。US、HK |
| currency | String | 币种。USD 美元,HKD 港币 |
| segment | String | 按交易品种划分的分类。S 表示股票,C 表示期货 |
| secType | String | 交易品种。STK 股票, OPT 期权, WAR 窝轮, IOPT 牛熊证, CASH 外汇, FUT 期货, FOP 期货期权 |
| orderType | String | 订单类型。MKT 市价单 / LMT 限价单 / STP 止损单 / STP_LMT 止损限价单 / TRAIL 跟踪止损单 |
| isLong | boolean | 是否多头持仓 |
| totalQuantity | long | 下单数量 |
| filledQuantity | long | 成交总数量(分多笔成交时为累计成交总数) |
| avgFillPrice | double | 成交均价 |
| limitPrice | double | 限价单价格 |
| stopPrice | double | 止损价格 |
| realizedPnl | double | 已实现盈亏(仅综合账号有该字段) |
| status | String | 订单状态。PendingSubmit / Submitted / Cancelled / Inactive / Filled 等 |
| replaceStatus | String | 订单改单状态 |
| cancelStatus | String | 订单撤单状态 |
| outsideRth | boolean | 是否允许盘前盘后交易,仅适用于美股 |
| canModify | boolean | 是否能修改 |
| canCancel | boolean | 是否能取消 |
| liquidation | boolean | 是否为平仓订单 |
| name | String | 标的名称 |
| source | String | 订单来源(OpenApi 或其他) |
| errorMsg | String | 错误信息 |
| commissionAndFee | float | 佣金费用总计 |
| openTime | long | 下单时间 |
| timestamp | long | 订单状态最后更新时间 |
| userMark | String | 自定义标注信息 |
| timeInForce | String | 订单有效时间。DAY 当日有效,GTC 撤销前有效,GTD 有效至指定日期 |
回调数据示例
{
"id": "28875370355884032",
"account": "736845",
"symbol": "CL",
"identifier": "CL2609",
"multiplier": 1000,
"action": "BUY",
"market": "US",
"currency": "USD",
"segment": "C",
"secType": "FUT",
"orderType": "LMT",
"isLong": true,
"totalQuantity": "1",
"filledQuantity": "1",
"avgFillPrice": 77.76,
"limitPrice": 77.76,
"status": "Filled",
"outsideRth": true,
"name": "WTI原油2312",
"source": "android",
"commissionAndFee": 4.0,
"openTime": "1669200792000",
"timestamp": "1669200782221"
}成交明细回调
对应回调: on_transaction
推送频率: 订单成交时实时推送
回调数据字段
| 字段 | 类型 | 说明 |
|---|---|---|
| id | long | 订单执行 ID |
| orderId | long | 订单号 |
| account | String | 资金账号 |
| symbol | String | 标的代码,如 'AAPL', '00700', 'ES', 'CN' |
| identifier | String | 标的标识符。股票的 identifier 与 symbol 相同;期货带有合约月份,如 'CN2201' |
| multiplier | int | 每手数量(期权、期货专有) |
| action | String | 买卖方向。BUY 表示买入,SELL 表示卖出 |
| market | String | 市场。US、HK |
| currency | String | 币种。USD 美元,HKD 港币 |
| segment | String | 按交易品种划分的分类。S 表示股票,C 表示期货 |
| secType | String | 交易品种。STK 表示股票,FUT 表示期货 |
| filledPrice | double | 成交价格 |
| filledQuantity | long | 成交数量 |
| createTime | long | 创建时间 |
| updateTime | long | 更新时间 |
| transactTime | long | 成交时间 |
| timestamp | long | 时间戳(毫秒) |
回调数据示例
{
"id": "28875370482237440",
"orderId": "28875370355884032",
"account": "736845",
"symbol": "CL",
"identifier": "CL2609",
"multiplier": 1000,
"action": "BUY",
"market": "US",
"currency": "USD",
"segment": "C",
"secType": "FUT",
"filledPrice": 77.76,
"filledQuantity": "1",
"createTime": "1669200793664",
"updateTime": "1669200793664",
"transactTime": "1669200793593",
"timestamp": "1669200782233"
}取消订阅
说明
取消账户变动的订阅推送。
取消任意一个订阅,会把 OrderStatus、Asset、Position、OrderTransaction 四种订阅都取消。
示例
// 取消订阅
push.unsubscribe(&SubjectType::OrderStatus, None, Some("your_account"), None);
push.unsubscribe(&SubjectType::Asset, None, Some("your_account"), None);
push.unsubscribe(&SubjectType::Position, None, Some("your_account"), None);
push.unsubscribe(&SubjectType::OrderTransaction, None, Some("your_account"), None);Updated 8 days ago
Did this page help you?
