账户与订单订阅
订阅账户变动
说明
订阅账户资产、持仓、订单和成交明细推送。资产和持仓按 5 秒快照推送,订单和成交明细实时推送。数据通过以下回调接收:
on_asset— 资产变动(每 5 秒全量快照)on_position— 持仓变动(每 5 秒全量快照)on_order— 订单状态变动(实时)on_transaction— 成交明细(实时)
下表和示例使用 Rust prost 回调值的 snake_case 字段名。JSON 仅展示字段和值,不代表这些结构体实现了 serde::Serialize。
资产和持仓快照的实盘与模拟盘推送频率一致。
参数
| 参数 | 类型 | 说明 |
|---|---|---|
| account | &str | 交易账户 ID。如不指定,默认订阅所有资金账号(含模拟账号) |
示例
// 订阅订单状态变动
push.subscribe(&SubjectType::Order, 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::Transaction, None, Some("your_account"), None);
订阅上述四种主题中的任意一个,都会推送全部四种主题数据。取消任意一个主题,会取消全部四种主题的订阅。
资产变动回调
对应回调: on_asset
推送频率: 每 5 秒全量快照,实盘和模拟盘频率一致
回调数据字段
| 字段 | 类型 | 说明 |
|---|---|---|
| account | String | 资金账号 |
| currency | String | 币种。USD 美元,HKD 港币 |
| seg_type | String | 按交易品种划分的分类。S 表示股票,C 表示期货,D 表示数字货币,F 表示基金,CONSOLIDATED 表示股票和基金聚合 |
| available_funds | double | 可用资金,隔夜剩余流动性 |
| excess_liquidity | double | 当前剩余流动性 |
| net_liquidation | double | 总资产(净清算值)。现金余额和证券总市值之和 |
| equity_with_loan | double | 含贷款价值总权益。等于总资产 - 美股期权 |
| buying_power | double | 购买力。仅适用于股票品种(segment 为 S 时有意义) |
| cash_balance | double | 现金额。当前所有币种的现金余额之和 |
| gross_position_value | double | 证券总价值 |
| init_margin_req | double | 初始保证金 |
| maint_margin_req | double | 维持保证金 |
| timestamp | long | 时间戳(毫秒) |
回调数据示例
{
"account": "13810712",
"currency": "USD",
"seg_type": "S",
"available_funds": 2285040.55,
"excess_liquidity": 2284942.05,
"net_liquidation": 2285529.37,
"equity_with_loan": 2285418.28,
"buying_power": 9140162.19,
"cash_balance": 2284275.24,
"gross_position_value": 1143.04,
"init_margin_req": 377.74,
"maint_margin_req": 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 港币 |
| seg_type | String | 按交易品种划分的分类。S 表示股票,C 表示期货,D 表示数字货币,F 表示基金 |
| sec_type | String | 交易品种。STK 股票, OPT 期权, WAR 窝轮, IOPT 牛熊证, CASH 外汇, FUT 期货, FOP 期货期权 |
| position_qty | double | 持仓数量 |
| salable_qty | double | 可卖数量 |
| average_cost | double | 持仓均价 |
| latest_price | double | 标的当前价格 |
| market_value | double | 持仓市值 |
| unrealized_pnl | double | 持仓盈亏 |
| timestamp | long | 时间戳(毫秒) |
回调数据示例
{
"account": "13810712",
"symbol": "AAPL",
"identifier": "AAPL",
"multiplier": 1,
"market": "US",
"currency": "USD",
"seg_type": "S",
"sec_type": "STK",
"position_qty": 4.0,
"average_cost": 75.0,
"latest_price": 147.23,
"market_value": 588.92,
"unrealized_pnl": 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 港币 |
| seg_type | String | 按交易品种划分的分类。S 表示股票,C 表示期货 |
| sec_type | String | 交易品种。STK 股票, OPT 期权, WAR 窝轮, IOPT 牛熊证, CASH 外汇, FUT 期货, FOP 期货期权 |
| order_type | String | 订单类型。MKT 市价单 / LMT 限价单 / STP 止损单 / STP_LMT 止损限价单 / TRAIL 跟踪止损单 |
| is_long | boolean | 是否多头持仓 |
| total_quantity | long | 下单数量 |
| filled_quantity | long | 成交总数量(分多笔成交时为累计成交总数) |
| avg_fill_price | double | 成交均价 |
| limit_price | double | 限价单价格 |
| stop_price | double | 止损价格 |
| realized_pnl | double | 已实现盈亏(仅综合账号有该字段) |
| status | String | 订单状态。PendingSubmit / Submitted / Cancelled / Inactive / Filled 等 |
| replace_status | String | 订单改单状态 |
| cancel_status | String | 订单撤单状态 |
| outside_rth | boolean | 是否允许盘前盘后交易,仅适用于美股 |
| can_modify | boolean | 是否能修改 |
| can_cancel | boolean | 是否能取消 |
| liquidation | boolean | 是否为平仓订单 |
| name | String | 标的名称 |
| source | String | 订单来源(OpenApi 或其他) |
| error_msg | String | 错误信息 |
| commission_and_fee | float | 佣金费用总计 |
| open_time | long | 下单时间 |
| timestamp | long | 订单状态最后更新时间 |
| user_mark | String | 自定义标注信息 |
| time_in_force | String | 订单有效时间。DAY 当日有效,GTC 撤销前有效,GTD 有效至指定日期 |
回调数据示例
{
"id": "28875370355884032",
"account": "736845",
"symbol": "CL",
"identifier": "CL2609",
"multiplier": 1000,
"action": "BUY",
"market": "US",
"currency": "USD",
"seg_type": "C",
"sec_type": "FUT",
"order_type": "LMT",
"is_long": true,
"total_quantity": "1",
"filled_quantity": "1",
"avg_fill_price": 77.76,
"limit_price": 77.76,
"status": "Filled",
"outside_rth": true,
"name": "WTI原油2312",
"source": "android",
"commission_and_fee": 4.0,
"open_time": "1669200792000",
"timestamp": "1669200782221"
}成交明细回调
对应回调: on_transaction
推送频率: 订单成交时实时推送
回调数据字段
| 字段 | 类型 | 说明 |
|---|---|---|
| id | long | 订单执行 ID |
| order_id | 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 港币 |
| seg_type | String | 按交易品种划分的分类。S 表示股票,C 表示期货 |
| sec_type | String | 交易品种。STK 表示股票,FUT 表示期货 |
| filled_price | double | 成交价格 |
| filled_quantity | long | 成交数量 |
| create_time | long | 创建时间 |
| update_time | long | 更新时间 |
| transact_time | long | 成交时间 |
| timestamp | long | 时间戳(毫秒) |
回调数据示例
{
"id": "28875370482237440",
"order_id": "28875370355884032",
"account": "736845",
"symbol": "CL",
"identifier": "CL2609",
"multiplier": 1000,
"action": "BUY",
"market": "US",
"currency": "USD",
"seg_type": "C",
"sec_type": "FUT",
"filled_price": 77.76,
"filled_quantity": "1",
"create_time": "1669200793664",
"update_time": "1669200793664",
"transact_time": "1669200793593",
"timestamp": "1669200782233"
}取消订阅
说明
取消账户变动的订阅推送。
取消任意一个订阅,会把 OrderStatus、Asset、Position、OrderTransaction 四种订阅都取消。
示例
// 取消订阅
push.unsubscribe(&SubjectType::Order, 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::Transaction, None, Some("your_account"), None);Updated about 1 month ago
Did this page help you?
