IBKR Provider 支持将 Interactive Brokers Flex Query XML 导出的交易记录转换为 Beancount/Ledger 格式。
支持的文件格式¶
- Flex Query XML
支持的记录类型¶
Provider 会读取 Flex XML 中的以下节点:
Trade+assetCategory="STK": 股票、ETF、ADR 买卖,输出为证券交易。Trade+assetCategory="CASH": 外汇交易,例如USD.HKD,输出为换汇交易。CashTransaction: 入金/出金、股息、预扣税、利息和费用等现金流水。
StatementOfFundsLine 是资金流水视图,容易与 Trade / CashTransaction 重复,当前不会作为主数据源转换。
使用方法¶
基本命令¶
double-entry-generator translate -p ibkr -t beancount \
--config example/ibkr/config.yaml \
example/ibkr/example-ibkr-records.xml
Ledger 输出:
double-entry-generator translate -p ibkr -t ledger \
--config example/ibkr/config.yaml \
example/ibkr/example-ibkr-records.xml
配置文件¶
defaultMinusAccount: Equity:Opening-Balances
defaultPlusAccount: Expenses:FIXME
defaultCashAccount: Assets:IBKR:Cash
defaultPositionAccount: Assets:IBKR:Positions
defaultCommissionAccount: Expenses:IBKR:Fees
defaultPnlAccount: Income:IBKR:PnL
defaultCurrency: USD
bookingMethod: FIFO
title: IBKR
ibkr:
rules:
- item: "TSLA,NIO"
sep: ","
positionAccount: Assets:IBKR:Positions:Stocks
- type: "Withholding Tax"
commissionAccount: Expenses:IBKR:Tax
配置说明¶
全局账户¶
defaultCashAccount: IBKR 现金账户。defaultPositionAccount: 默认证券持仓账户。defaultCommissionAccount: 默认手续费/税费账户。defaultPnlAccount: 默认收益账户,用于股息、利息和证券卖出损益补足行。defaultMinusAccount: 入金交易的默认来源账户。bookingMethod: 可选 Beancount 记账方式。示例使用FIFO,用于避免多批次证券卖出时的 lot 匹配歧义。
规则字段¶
IBKR 规则支持:
item: 证券名称或现金交易描述type: 原始类型,例如BUY、SELL、Withholding Taxsep: 多值分隔符,默认为,fullMatch: 是否完整匹配ignore: 匹配后忽略该交易cashAccount: 现金账户positionAccount: 持仓账户commissionAccount: 手续费/税费账户pnlAccount: 损益账户
输出细节¶
IBKR Provider 会尽量保留原始 metadata,包括 account_id、trade_id、transaction_id、ib_order_id、ib_exec_id、exchange、isin、security_id、report_date 和 settle_date。
证券买入会输出现金减少、持仓增加和手续费;证券卖出会输出持仓减少、现金增加、手续费和 PnL 补足行。现金类外汇交易会输出 CurrencyExchange 分录。