账户与订单订阅

订阅账户变动

说明

订阅账户资产、持仓、订单和成交明细的实时变动推送。数据通过以下回调接收:

  • 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 秒全量快照

回调数据字段

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

回调数据示例

{
    "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 秒全量快照

回调数据字段

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

回调数据示例

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

回调数据字段

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

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

回调数据字段

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

回调数据示例

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

Did this page help you?