账户与订单订阅

订阅账户变动

说明

订阅账户资产、持仓、订单和成交明细推送。资产和持仓按 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 秒全量快照,实盘和模拟盘频率一致

回调数据字段

字段类型说明
accountString资金账号
currencyString币种。USD 美元,HKD 港币
seg_typeString按交易品种划分的分类。S 表示股票,C 表示期货,D 表示数字货币,F 表示基金,CONSOLIDATED 表示股票和基金聚合
available_fundsdouble可用资金,隔夜剩余流动性
excess_liquiditydouble当前剩余流动性
net_liquidationdouble总资产(净清算值)。现金余额和证券总市值之和
equity_with_loandouble含贷款价值总权益。等于总资产 - 美股期权
buying_powerdouble购买力。仅适用于股票品种(segment 为 S 时有意义)
cash_balancedouble现金额。当前所有币种的现金余额之和
gross_position_valuedouble证券总价值
init_margin_reqdouble初始保证金
maint_margin_reqdouble维持保证金
timestamplong时间戳(毫秒)

回调数据示例

{
    "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 秒全量快照,实盘和模拟盘频率一致

回调数据字段

字段类型说明
accountString资金账号
symbolString持仓标的代码,如 'AAPL', '00700', 'ES', 'CN'
expiryString到期日,仅支持期权、窝轮、牛熊证
strikeString行权价,仅支持期权、窝轮、牛熊证
rightString方向,仅支持期权、窝轮、牛熊证
identifierString标的标识符。股票的 identifier 与 symbol 相同;期货带有合约月份,如 'CN2201'
multiplierint每手数量,仅限期货、期权、窝轮、牛熊证
marketString市场。US, HK
currencyString币种。USD 美元,HKD 港币
seg_typeString按交易品种划分的分类。S 表示股票,C 表示期货,D 表示数字货币,F 表示基金
sec_typeString交易品种。STK 股票, OPT 期权, WAR 窝轮, IOPT 牛熊证, CASH 外汇, FUT 期货, FOP 期货期权
position_qtydouble持仓数量
salable_qtydouble可卖数量
average_costdouble持仓均价
latest_pricedouble标的当前价格
market_valuedouble持仓市值
unrealized_pnldouble持仓盈亏
timestamplong时间戳(毫秒)

回调数据示例

{
    "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 等)

回调数据字段

字段类型说明
idlong订单号
accountString资金账号
symbolString标的代码,如 'AAPL', '00700', 'ES', 'CN'
expiryString到期日,仅支持期权、窝轮、牛熊证
strikeString行权价,仅支持期权、窝轮、牛熊证
rightString方向,仅支持期权、窝轮、牛熊证
identifierString标的标识符。股票的 identifier 与 symbol 相同;期货带有合约月份,如 'CN2201'
multiplierint每手数量,仅限期货、期权、窝轮、牛熊证
actionString买卖方向。BUY 表示买入,SELL 表示卖出
marketString市场。US、HK
currencyString币种。USD 美元,HKD 港币
seg_typeString按交易品种划分的分类。S 表示股票,C 表示期货
sec_typeString交易品种。STK 股票, OPT 期权, WAR 窝轮, IOPT 牛熊证, CASH 外汇, FUT 期货, FOP 期货期权
order_typeString订单类型。MKT 市价单 / LMT 限价单 / STP 止损单 / STP_LMT 止损限价单 / TRAIL 跟踪止损单
is_longboolean是否多头持仓
total_quantitylong下单数量
filled_quantitylong成交总数量(分多笔成交时为累计成交总数)
avg_fill_pricedouble成交均价
limit_pricedouble限价单价格
stop_pricedouble止损价格
realized_pnldouble已实现盈亏(仅综合账号有该字段)
statusString订单状态。PendingSubmit / Submitted / Cancelled / Inactive / Filled 等
replace_statusString订单改单状态
cancel_statusString订单撤单状态
outside_rthboolean是否允许盘前盘后交易,仅适用于美股
can_modifyboolean是否能修改
can_cancelboolean是否能取消
liquidationboolean是否为平仓订单
nameString标的名称
sourceString订单来源(OpenApi 或其他)
error_msgString错误信息
commission_and_feefloat佣金费用总计
open_timelong下单时间
timestamplong订单状态最后更新时间
user_markString自定义标注信息
time_in_forceString订单有效时间。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

推送频率: 订单成交时实时推送

回调数据字段

字段类型说明
idlong订单执行 ID
order_idlong订单号
accountString资金账号
symbolString标的代码,如 'AAPL', '00700', 'ES', 'CN'
identifierString标的标识符。股票的 identifier 与 symbol 相同;期货带有合约月份,如 'CN2201'
multiplierint每手数量(期权、期货专有)
actionString买卖方向。BUY 表示买入,SELL 表示卖出
marketString市场。US、HK
currencyString币种。USD 美元,HKD 港币
seg_typeString按交易品种划分的分类。S 表示股票,C 表示期货
sec_typeString交易品种。STK 表示股票,FUT 表示期货
filled_pricedouble成交价格
filled_quantitylong成交数量
create_timelong创建时间
update_timelong更新时间
transact_timelong成交时间
timestamplong时间戳(毫秒)

回调数据示例

{
    "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);

Did this page help you?