跳转到内容

账户摘要标签

reqAccountSummary() 的第三个参数 tags 决定要返回哪些账户摘要字段。它是英文逗号分隔的字符串,例如:

tags = "NetLiquidation,BuyingPower,AvailableFunds"
app.reqAccountSummary(9001, "All", tags)

标签名必须使用官方英文值。中文文档可以解释字段含义,但代码里不要把字段名翻译成中文。

Python API 提供了 AccountSummaryTags 常量类。推荐优先用常量拼接,减少手写拼错:

from ibapi.account_summary_tags import AccountSummaryTags
tags = ",".join([
AccountSummaryTags.NetLiquidation, # 净清算值
AccountSummaryTags.BuyingPower, # 购买力
AccountSummaryTags.AvailableFunds, # 可用资金
])

也可以直接写字符串:

tags = "NetLiquidation,BuyingPower,AvailableFunds"

实际项目里更推荐把常用组合封装成自己的列表,例如“账户概览字段”“保证金字段”“风控字段”,不要每个脚本里都手写一长串。

这些字段最适合新手先跑通账户摘要请求:

标签中文含义说明
AccountType账户类型例如现金账户、保证金账户等;通常没有币种
NetLiquidation净清算值账户总权益的常用口径,常用于资产概览和仓位比例计算
TotalCashValue总现金价值现金余额相关字段,可能包含期货盈亏影响
BuyingPower购买力账户大致还能买入多少保证金证券
AvailableFunds可用资金开新仓前最常看的可用资金字段之一
ExcessLiquidity超额流动性保证金压力相关字段,过低时需要重点关注
Cushion安全垫比例ExcessLiquidity / NetLiquidation 附近的风险观察口径

如果只是做最小检查时,建议先请求:

tags = "NetLiquidation,BuyingPower,AvailableFunds"
标签中文含义说明
SettledCash已结算现金对现金账户尤其重要;和未结算资金不是同一概念
AccruedCash应计现金应计利息、费用等尚未最终结算的现金项
EquityWithLoanValue含借贷价值权益现金、股票、债券、基金等综合权益口径
PreviousDayEquityWithLoanValue前一日含借贷价值权益用于对比前一交易日权益变化
GrossPositionValue持仓总市值股票和权益期权持仓绝对值之和

这些字段适合账户面板和风险看板。做下单前资金判断时,不要只看一个字段,通常还要结合订单预检查、产品类型和账户权限。

标签中文含义说明
InitMarginReq初始保证金要求建仓所需保证金
MaintMarginReq维持保证金要求持仓期间需要维持的保证金
FullInitMarginReq完整初始保证金要求更完整口径下的初始保证金要求
FullMaintMarginReq完整维持保证金要求更完整口径下的维持保证金要求
FullAvailableFunds完整口径可用资金完整保证金口径下的可用资金
FullExcessLiquidity完整口径超额流动性完整保证金口径下的超额流动性

保证金字段会受账户类型、产品类型、监管规则和实时风险模型影响。它们适合做风险展示,但不能代替真实下单前的订单校验。

标签中文含义说明
LookAheadNextChange下一次前瞻值生效时间用于查看保证金口径下一次变化时间
LookAheadInitMarginReq前瞻初始保证金要求未来口径下的初始保证金要求
LookAheadMaintMarginReq前瞻维持保证金要求未来口径下的维持保证金要求
LookAheadAvailableFunds前瞻可用资金未来口径下的可用资金
LookAheadExcessLiquidity前瞻超额流动性未来口径下的超额流动性

这组字段适合更细的保证金风险提示。新手阶段可以先理解普通保证金字段,再使用前瞻字段。

标签中文含义说明
HighestSeverity最高风险严重级别官方用于描述账户接近强平风险的等级信号
DayTradesRemaining当日交易剩余额度PDT 规则相关;-1 通常表示不受该限制
Leverage杠杆率常见口径是 GrossPositionValue / NetLiquidation
SMASpecial Memorandum Account美股保证金账户相关字段

风险字段只能作为提示,不能当作唯一风控条件。真实交易系统还应结合订单状态、持仓、市场数据、产品规则和错误码处理。

官方说明里常见字段名是 RegTEquityRegTMargin,表示 Regulation T 相关权益和保证金字段。

Python API 的 AccountSummaryTags 常量类中暴露的是:

AccountSummaryTags.ReqTEquity
AccountSummaryTags.ReqTMargin

也就是说,常量名是 ReqT...,而不是 RegT...。使用常量时按安装包为准;如果手写字符串,应优先在实际 TWS 环境里检查是否返回对应字段。

除普通标签外,官方还支持 $LEDGER 系列特殊标签,用来请求现金余额相关字段:

标签中文含义说明
$LEDGER基础币种 Ledger返回基础币种下的现金余额相关字段
$LEDGER:USD指定币种 Ledger只请求指定币种,例如美元
$LEDGER:ALL全部币种 Ledger请求所有币种的现金余额相关字段

这类标签不在 Python AccountSummaryTags.AllTags 普通常量列表里。需要使用时可以直接写字符串:

tags = "$LEDGER:USD"

$LEDGER:ALL 可能返回更多行,调试时建议先从单一币种开始,避免日志里出现大量敏感现金余额。

AccountSummaryTags.AllTags 会拼接官方 Python 常量类里的普通标签:

from ibapi.account_summary_tags import AccountSummaryTags
tags = AccountSummaryTags.AllTags

本地安装的 Python API 中,AllTags 包含 29 个普通标签。它适合做字段探索,但不建议生产代码默认长期请求全部字段。

请求全部普通标签时,TWS 模拟账户可能不会返回所有字段:

CONNECTED=True
REQUESTED_TAG_COUNT=29
RAW_CALLBACK_ROWS=44
UNIQUE_FIELD_ROWS=22
RECEIVED_TAG_COUNT=22
RECEIVED_TAGS=AccountType,AccruedCash,AvailableFunds,BuyingPower,Cushion,EquityWithLoanValue,ExcessLiquidity,FullAvailableFunds,FullExcessLiquidity,FullInitMarginReq,FullMaintMarginReq,GrossPositionValue,InitMarginReq,LookAheadAvailableFunds,LookAheadExcessLiquidity,LookAheadInitMarginReq,LookAheadMaintMarginReq,LookAheadNextChange,MaintMarginReq,NetLiquidation,SMA,TotalCashValue
CURRENCIES=EMPTY,USD
NON_INFO_ERROR_COUNT=0
IS_CONNECTED_AFTER_DISCONNECT=False

这说明三件事:

  • 请求了某个标签,不代表账户一定会返回这个标签。
  • 同一个字段可能因为初始快照和更新收到多次回调。
  • 公开输出时应只保留字段结构,账户号和金额必须脱敏。
场景建议标签
最小连通性验证NetLiquidation,BuyingPower,AvailableFunds
账户概览面板AccountType,NetLiquidation,TotalCashValue,BuyingPower,AvailableFunds,ExcessLiquidity,Cushion
保证金风险展示InitMarginReq,MaintMarginReq,ExcessLiquidity,Cushion,HighestSeverity
现金余额查看TotalCashValue,SettledCash,AccruedCash$LEDGER:USD
字段探索AccountSummaryTags.AllTags,但只在调试阶段使用

字段越多,日志和界面里越容易出现敏感财务数据。开发时可以请求较多字段,公开文档、报错信息和线上日志里应尽量只保留字段名、状态和脱敏后的结构。

现象常见原因处理方式
手写字段收不到结果标签名拼错,或账户不支持该字段先用 AccountSummaryTags 常量,或用少量常见字段验证
AllTags 请求后返回字段少于 29 个账户类型、权限或数据状态不支持全部字段按实际返回字段处理,不要假设每个字段必定存在
currency 是空字段不是金额字段,例如 AccountTypeCushion允许空币种,显示为 EMPTY 或空字符串
金额计算精度不稳定把字符串金额直接转成浮点数计算财务金额建议用 Decimal 处理
想查看持仓明细账户摘要不是持仓接口使用 reqPositions() 或账户更新/组合相关接口

IBKR Campus: TWS API Documentation