跳到主要内容

使用 Beancount.io 进行加密货币投资组合追踪

管理分布在多个交易所、钱包和 DeFi 协议中的加密货币投资组合可能具有挑战性。 本综合指南将向您展示如何使用 Beancount.io 强大的纯文本会计系统设置和维护准确的加密货币投资组合跟踪。

加密货币投资组合追踪

为什么传统的投资组合追踪工具会失败

加密货币投资组合工具的常见问题

  • 有限的交易所支持:许多工具不支持所有交易所或 DeFi 协议
  • 不准确的成本基础:简化的 FIFO/LIFO 计算遗漏了复杂的场景
  • 缺少交易:API 限制和手动输入差距
  • 无法定制:固定的类别和报告结构
  • 隐私问题:与第三方服务共享 API 密钥
  • 供应商锁定:专有数据格式和有限的导出选项

Beancount.io 的优势

  • 完全控制:以纯文本格式拥有您的数据
  • 无限定制:创建您需要的任何帐户结构
  • 精确的成本基础:基于批次的跟踪与特定标识
  • 多协议支持:处理任何交易所、钱包或 DeFi 协议
  • 透明的计算:准确了解数字的计算方式
  • 面向未来:纯文本格式确保长期可访问性

设置您的加密货币投资组合结构

基本账户层级结构

首先使用反映您的加密货币生态系统的综合帐户结构:

; 交易所账户 - 按平台组织
1970-01-01 open Assets:Crypto:Coinbase:USD
1970-01-01 open Assets:Crypto:Coinbase:BTC
1970-01-01 open Assets:Crypto:Coinbase:ETH
1970-01-01 open Assets:Crypto:Coinbase:ADA

1970-01-01 open Assets:Crypto:Binance:USD
1970-01-01 open Assets:Crypto:Binance:BTC
1970-01-01 open Assets:Crypto:Binance:ETH
1970-01-01 open Assets:Crypto:Binance:BNB

1970-01-01 open Assets:Crypto:Kraken:USD
1970-01-01 open Assets:Crypto:Kraken:BTC
1970-01-01 open Assets:Crypto:Kraken:ETH

; 钱包账户 - 按类型组织
1970-01-01 open Assets:Crypto:Wallet:Ledger:BTC
1970-01-01 open Assets:Crypto:Wallet:Ledger:ETH
1970-01-01 open Assets:Crypto:Wallet:MetaMask:ETH
1970-01-01 open Assets:Crypto:Wallet:MetaMask:USDC
1970-01-01 open Assets:Crypto:Wallet:TrustWallet:BNB

; DeFi 协议账户
1970-01-01 open Assets:DeFi:Uniswap:ETH-USDC-LP
1970-01-01 open Assets:DeFi:Compound:cUSDC
1970-01-01 open Assets:Staking:Ethereum:ETH
1970-01-01 open Assets:Staking:Cardano:ADA

; 收入追踪
1970-01-01 open Income:Crypto:Staking:ETH
1970-01-01 open Income:Crypto:Staking:ADA
1970-01-01 open Income:Crypto:Mining:BTC
1970-01-01 open Income:Crypto:Airdrops
1970-01-01 open Income:Crypto:DeFi:Yield
1970-01-01 open Income:CapitalGains:Crypto

; 费用追踪
1970-01-01 open Expenses:Crypto:Fees:Trading
1970-01-01 open Expenses:Crypto:Fees:Network
1970-01-01 open Expenses:Crypto:Fees:Withdrawal

带有元数据的商品定义

使用丰富的元数据定义您的加密货币,以实现更好的跟踪:

1970-01-01 commodity BTC
name: "Bitcoin"
asset-class: "cryptocurrency"
sector: "digital-currency"
price-source: "coinbase"
website: "https://bitcoin.org"

1970-01-01 commodity ETH
name: "Ethereum"
asset-class: "cryptocurrency"
sector: "smart-contract-platform"
price-source: "coinbase"
website: "https://ethereum.org"

1970-01-01 commodity ADA
name: "Cardano"
asset-class: "cryptocurrency"
sector: "smart-contract-platform"
price-source: "binance"
website: "https://cardano.org"

1970-01-01 commodity DOT
name: "Polkadot"
asset-class: "cryptocurrency"
sector: "interoperability"
price-source: "kraken"
website: "https://polkadot.network"

多交易所投资组合追踪

记录跨交易所的购买

以精确的成本基础跟踪不同交易所的相同加密货币:

; 在不同交易所购买比特币
2024-01-15 * "在 Coinbase 上购买 BTC"
Assets:Crypto:Coinbase:BTC 1.0 BTC {45000.00 USD}
Assets:Crypto:Coinbase:USD -45000.00 USD
Expenses:Crypto:Fees:Trading 50.00 USD
Assets:Crypto:Coinbase:USD -50.00 USD

2024-01-20 * "在 Binance 上购买 BTC"
Assets:Crypto:Binance:BTC 0.5 BTC {46000.00 USD}
Assets:Crypto:Binance:USD -23000.00 USD
Expenses:Crypto:Fees:Trading 25.00 USD
Assets:Crypto:Binance:USD -25.00 USD

2024-01-25 * "在 Kraken 上购买 BTC"
Assets:Crypto:Kraken:BTC 0.8 BTC {44000.00 USD}
Assets:Crypto:Kraken:USD -35200.00 USD
Expenses:Crypto:Fees:Trading 30.00 USD
Assets:Crypto:Kraken:USD -30.00 USD

跨交易所转账

跟踪交易所之间的转账,同时保持成本基础:

2024-02-01 * "将 BTC 从 Coinbase 转移到 Ledger"
Assets:Crypto:Coinbase:BTC -0.5 BTC {45000.00 USD}
Assets:Crypto:Wallet:Ledger:BTC 0.5 BTC {45000.00 USD}
Expenses:Crypto:Fees:Withdrawal 0.0005 BTC {45000.00 USD}
Assets:Crypto:Coinbase:BTC -0.0005 BTC {45000.00 USD}

套利机会

跟踪交易所之间的套利交易:

2024-02-10 * "套利:在 Binance 上购买 ETH,在 Coinbase 上出售"
; 在 Binance 上购买
Assets:Crypto:Binance:ETH 10 ETH {2500.00 USD}
Assets:Crypto:Binance:USD -25000.00 USD
Expenses:Crypto:Fees:Trading 25.00 USD
Assets:Crypto:Binance:USD -25.00 USD

; 在 Coinbase 上出售(价格更高)
Assets:Crypto:Coinbase:ETH -10 ETH {2500.00 USD}
Assets:Crypto:Coinbase:USD 25800.00 USD
Expenses:Crypto:Fees:Trading 30.00 USD
Assets:Crypto:Coinbase:USD -30.00 USD
Income:Crypto:Arbitrage 745.00 USD

高级成本基础管理

基于批次的跟踪

Beancount.io 基于批次的系统提供精确的成本基础跟踪:

; 以不同价格多次购买
2024-01-01 * "BTC 购买批次 1"
Assets:Crypto:Coinbase:BTC 1.0 BTC {40000.00 USD}
Assets:Crypto:Coinbase:USD -40000.00 USD

2024-02-01 * "BTC 购买批次 2"
Assets:Crypto:Coinbase:BTC 1.0 BTC {45000.00 USD}
Assets:Crypto:Coinbase:USD -45000.00 USD

2024-03-01 * "BTC 购买批次 3"
Assets:Crypto:Coinbase:BTC 1.0 BTC {50000.00 USD}
Assets:Crypto:Coinbase:USD -50000.00 USD

特定识别方法

出售特定批次以实现最佳税务管理:

; 首先出售最高成本基础批次(税务亏损收割)
2024-04-01 * "出售 BTC 批次 3 以进行税务优化"
Assets:Crypto:Coinbase:BTC -1.0 BTC {50000.00 USD}
Assets:Crypto:Coinbase:USD 48000.00 USD
Expenses:Crypto:Fees:Trading 50.00 USD
Assets:Crypto:Coinbase:USD -50.00 USD
Expenses:CapitalLoss:Crypto 2000.00 USD ; 已实现亏损

FIFO 与 LIFO 跟踪

实施不同的成本基础方法:

; FIFO 销售(先进先出)
2024-05-01 * "FIFO 销售 - 首先出售最早的 BTC"
Assets:Crypto:Coinbase:BTC -0.5 BTC {40000.00 USD}
Assets:Crypto:Coinbase:USD 26000.00 USD
Expenses:Crypto:Fees:Trading 30.00 USD
Assets:Crypto:Coinbase:USD -30.00 USD
Income:CapitalGains:Crypto 6000.00 USD ; 52000 - 20000 = 6000

; LIFO 销售(后进先出) - 如果使用不同的方法
2024-05-01 * "LIFO 销售 - 首先出售最新的 BTC"
Assets:Crypto:Coinbase:BTC -0.5 BTC {45000.00 USD}
Assets:Crypto:Coinbase:USD 26000.00 USD
Expenses:Crypto:Fees:Trading 30.00 USD
Assets:Crypto:Coinbase:USD -30.00 USD
Income:CapitalGains:Crypto 3500.00 USD ; 26000 - 22500 = 3500

投资组合业绩分析

价格追踪设置

设置自动价格提要以进行准确估值:

; 每日价格更新
2024-01-15 price BTC 45000.00 USD
2024-01-15 price ETH 2500.00 USD
2024-01-15 price ADA 0.50 USD

2024-01-16 price BTC 46000.00 USD
2024-01-16 price ETH 2550.00 USD
2024-01-16 price ADA 0.52 USD

投资组合分配追踪

使用 Beancount.io 的报告功能来分析分配:

; 按资产查询投资组合分配
SELECT
account,
sum(position) as balance,
value(sum(position)) as market_value
WHERE account ~ "Assets:Crypto"
GROUP BY 1
ORDER BY market_value DESC

业绩指标

跟踪关键业绩指标:

; 总投资组合价值查询
SELECT
sum(value(position)) as total_portfolio_value
WHERE account ~ "Assets:Crypto"

; 已实现收益/亏损
SELECT
sum(position) as realized_gains
WHERE account ~ "Income:CapitalGains:Crypto"

Staking 和 DeFi 集成

Staking 奖励跟踪

记录 staking 奖励并进行适当的收入确认:

2024-01-31 * "ETH Staking 奖励 - 1 月"
Assets:Staking:Ethereum:ETH 0.08 ETH {2500.00 USD}
Income:Crypto:Staking:ETH 200.00 USD

2024-01-31 * "ADA Staking 奖励 - 1 月"
Assets:Staking:Cardano:ADA 25 ADA {0.50 USD}
Income:Crypto:Staking:ADA 12.50 USD

DeFi 收益跟踪

跟踪复杂的 DeFi 头寸:

2024-02-01 * "Uniswap LP 头寸"
Assets:Crypto:Wallet:MetaMask:ETH -10 ETH {2500.00 USD}
Assets:Crypto:Wallet:MetaMask:USDC -25000 USDC
Assets:DeFi:Uniswap:ETH-USDC-LP 100 UNI-V2-ETH-USDC {500.00 USD}

2024-02-28 * "Uniswap LP 奖励 - 2 月"
Assets:Crypto:Wallet:MetaMask:UNI 50 UNI {8.00 USD}
Income:Crypto:DeFi:Yield 400.00 USD

自动化投资组合管理

API 集成设置

连接交易所 API 以实现自动数据导入:

# 交易所 API 集成的示例配置
exchanges:
coinbase:
api_key: "your_api_key"
api_secret: "your_api_secret"
passphrase: "your_passphrase"
binance:
api_key: "your_api_key"
api_secret: "your_api_secret"

自动对账

设置自动余额验证:

; 用于自动验证的余额断言
2024-01-31 balance Assets:Crypto:Coinbase:BTC 2.5 BTC
2024-01-31 balance Assets:Crypto:Binance:ETH 15.0 ETH
2024-01-31 balance Assets:Crypto:Kraken:ADA 1000.0 ADA

价格提要自动化

配置自动价格更新:

; 价格提要配置
plugin "beancount.plugins.auto_accounts"
plugin "beancount.plugins.forecast"

; 自动价格获取
2024-01-01 custom "price-source" BTC "coinbase"
2024-01-01 custom "price-source" ETH "coinbase"
2024-01-01 custom "price-source" ADA "binance"

税务优化策略

税务亏损收割

实施系统的税务亏损收割:

; 识别具有未实现亏损的头寸
2024-12-15 * "税务亏损收割 - 以亏损出售 ADA"
Assets:Crypto:Binance:ADA -1000 ADA {0.60 USD}
Assets:Crypto:Binance:USD 450.00 USD
Expenses:Crypto:Fees:Trading 5.00 USD
Assets:Crypto:Binance:USD -5.00 USD
Expenses:CapitalLoss:Crypto 150.00 USD ; 已实现亏损

; 在虚卖期(31 天)后回购
2025-01-16 * "在虚卖期后回购 ADA"
Assets:Crypto:Binance:ADA 1000 ADA {0.45 USD}
Assets:Crypto:Binance:USD -450.00 USD
Expenses:Crypto:Fees:Trading 5.00 USD
Assets:Crypto:Binance:USD -5.00 USD

长期与短期收益

跟踪持有期以进行税务优化:

; 使用元数据跟踪购买日期
2024-01-01 * "BTC 购买 - 长期持有" ^long-term-btc
Assets:Crypto:Coinbase:BTC 1.0 BTC {40000.00 USD}
Assets:Crypto:Coinbase:USD -40000.00 USD

; 一年后出售以获得长期资本收益待遇
2025-01-02 * "BTC 销售 - 长期资本收益" ^long-term-btc
Assets:Crypto:Coinbase:BTC -1.0 BTC {40000.00 USD}
Assets:Crypto:Coinbase:USD 55000.00 USD
Income:CapitalGains:LongTerm 15000.00 USD

报告和分析

投资组合摘要报告

生成综合投资组合报告:

-- 按加密货币划分的投资组合分配
SELECT
commodity,
sum(position) as total_units,
value(sum(position)) as market_value,
value(sum(position)) / (
SELECT value(sum(position))
FROM positions
WHERE account ~ "Assets:Crypto"
) * 100 as allocation_percentage
WHERE account ~ "Assets:Crypto"
GROUP BY commodity
ORDER BY market_value DESC;

业绩分析

跟踪投资组合随时间的推移的表现:

-- 每月投资组合业绩
SELECT
year(date) as year,
month(date) as month,
value(sum(position)) as portfolio_value
WHERE account ~ "Assets:Crypto"
GROUP BY year, month
ORDER BY year, month;

收入分析

分析收入来源:

-- 按来源划分的收入细目
SELECT
account,
sum(position) as total_income
WHERE account ~ "Income:Crypto"
GROUP BY account
ORDER BY total_income DESC;

最佳实践和提示

1. 一致的记录

  • 在执行后立即记录交易
  • 使用标准化的交易描述
  • 在元数据中包含交易哈希

2. 定期对账

  • 每周验证所有平台上的余额
  • 使用余额断言来捕获差异
  • 监控缺少的交易

3. 备份和安全

  • 定期备份您的 Beancount 文件
  • 使用版本控制 (Git) 进行更改跟踪
  • 加密敏感数据

4. 文档

  • 记录您的账户结构决策
  • 维护复杂交易的注释
  • 保留 API 配置的记录

5. 税务准备

  • 每季度生成报告以进行税务规划
  • 维护详细记录以进行审计
  • 咨询税务专业人士以了解复杂情况

结论

有效的加密货币投资组合跟踪需要精确、一致和正确的工具。 Beancount.io 提供了管理跨多个交易所、钱包和 DeFi 协议的复杂加密货币投资组合所需的灵活性和强大功能。

使用 Beancount.io 进行加密货币投资组合跟踪的主要优势:

  • 完全数据所有权:您的数据采用纯文本格式
  • 精确的成本基础:基于批次的跟踪与特定标识
  • 无限的灵活性:自定义帐户结构和报告
  • 税务优化:用于最大限度减少税务责任的高级策略
  • 面向未来:开放格式确保长期可访问性

从基本设置开始,并随着您的投资组合复杂性的增长逐渐扩展您的跟踪。 对正确设置的投资将在准确的报告、税务优化和投资组合见解方面获得回报。

准备好掌控您的加密货币投资组合了吗? 立即开始使用 Beancount.io