SwiftBeanCountWealthsimpleMapper

CI Status Documentation percentage License: MIT Latest version platforms supported: linux | macOS | iOS | watchOS | tvOS SPM compatible

本项目是 SwiftBeanCount 的一部分,请查看 此处 的主要文档。

简介

这是一个小型库,用于将从 Wealthsimple 下载的数据(通过 WealthsimpleDownloader)转换为 Beancount 格式(通过 SwiftBeanCountModel)。

Beancount 元数据

该库严重依赖 Beancount 文件中的元数据来查找帐户和商品。请将这些添加到您的 Beancount 文件中。

商品

如果您的账本中的商品与 Wealthsimple 使用的符号不同,只需添加 wealthsimple-symbol 作为元数据。

2011-10-18 commodity ACWVETF
  wealthsimple-symbol: "ACWV"

帐户

对于 Wealthsimple 帐户本身,您需要添加以下元数据:importer-type: "wealthsimple"number: "XXX"。 如果该帐户可以持有多种商品(除支票和储蓄账户之外的所有帐户),则需要遵循以下结构: Assets:X:Y:Z:CashAccountName, Assets:X:Y:Z:CommodityName, Assets:X:Y:Z:OtherCommodityName。 现金帐户的名称无关紧要,但所有其他帐户必须以商品符号结尾(参见上文)。 仅将 importer-typenumber 添加到现金帐户。

对于在与 Wealthsimple 帐户之间的交易中使用的帐户,您也需要提供元数据。 这些元数据的格式为 wealthsimple-key: "accountNumber1 accountNumber2"。 帐户号码与上述相同,您可以为每个键指定一个或多个帐户号码。 作为键,使用以下值:

完整示例
2020-07-31 open Assets:Checking:Wealthsimple CAD
  importer-type: "wealthsimple"
  number: "A001"

2020-07-31 open Assets:Investment:Wealthsimple:TFSA:Parking CAD
  importer-type: "wealthsimple"
  number: "B002"
2020-07-31 open Assets:Investment:Wealthsimple:TFSA:ACWV ACWV
2020-07-31 open Assets:Investment:Wealthsimple:TFSA:XGRO XGRO

2020-07-31 open Income:Capital:Dividend:ACWV USD
  wealthsimple-dividend-ACWV: "A001 B002"

2020-07-31 open Assets:Checking:Bank CAD
  wealthsimple-contribution: "A001 B002"

2020-07-31 open Expenses:FinancialInstitutions:Investment:NonRegistered:Fees
  wealthsimple-fee: "A001"

2020-07-31 open Expenses:FinancialInstitutions:Investment:Registered:Fees
  wealthsimple-fee: "B002"

2020-07-31 open Expenses:Tax:NRWT
  wealthsimple-non-resident-withholding-tax: "A001 B002"

2020-07-31 open Assets:TFSAContributionRoom TFSA.ROOM
  wealthsimple-contribution-room: "B002"

2020-07-31 open Expenses:TFSAContributionRoom TFSA.ROOM
  wealthsimple-contribution-room: "B002"

如何使用

  1. 首先,通过 WealthsimpleLedgerMapper(ledger:) 创建一个 mapper 实例,传入包含上述元数据的账本。
  2. 将下载的 Wealthsimple 帐户分配给 mapper 上的 accounts 属性。
  3. 调用 mapPositionsToPriceAndBalancemapTransactionsToPriceAndTransactions 将下载的头寸/交易映射到 SwiftBeanCountModel 的价格和余额/价格和交易。

另请查看完整的文档 此处。 此外,您可以查看使用此库的 SwiftBeanCountImporter

用法

该库支持 Swift Package Manager,因此只需在您的 Package.swift 中添加一个依赖项即可

.package(url: "https://github.com/Nef10/SwiftBeanCountWealthsimpleMapper.git", .upToNextMajor(from: "X.Y.Z")),

限制

请注意,我开发此库是为了满足我自己的需求,可能存在错误。 它目前有一些限制:

非常欢迎提出扩展范围或消除限制的 pull request。