使用 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。