Zum Hauptinhalt springen

Kryptowährungs-Portfolio-Tracking

Vollständiger Leitfaden zur Einrichtung und Verwaltung von Kryptowährungs-Portfolios in Beancount.io, einschließlich Multi-Börsen-Tracking, Kostenbasisberechnung und Performance-Analyse.

Die Verwaltung eines Kryptowährungs-Portfolios über mehrere Börsen, Wallets und DeFi-Protokolle hinweg kann eine Herausforderung sein. Dieser umfassende Leitfaden zeigt Ihnen, wie Sie ein genaues Kryptowährungs-Portfolio-Tracking mit Beancounts leistungsstarkem Plain-Text-Buchhaltungssystem einrichten und pflegen.

Entdecken Sie ein Live-Beispiel für ein Kryptowährungs-Hauptbuch:

Kryptowährungs-Beispiel-Hauptbuch in neuem Tab öffnen

Warum traditionelle Portfolio-Tracker unzureichend sind

Häufige Probleme mit Krypto-Portfolio-Tools

  • Begrenzte Börsenunterstützung: Viele Tools unterstützen nicht alle Börsen oder DeFi-Protokolle
  • Ungenau Kostenbasis: Vereinfachte FIFO/LIFO-Berechnungen übersehen komplexe Szenarien
  • Fehlende Transaktionen: API-Einschränkungen und Lücken bei manueller Eingabe
  • Keine Anpassungsmöglichkeiten: Feste Kategorien und Berichtsstrukturen
  • Datenschutzbedenken: Teilen von API-Schlüsseln mit Drittanbieter-Diensten
  • Vendor-Lock-in: Proprietäre Datenformate und begrenzte Exportoptionen

Vorteile von Beancount.io

  • Volle Kontrolle: Besitzen Sie Ihre Daten im Plain-Text-Format
  • Unbegrenzte Anpassung: Erstellen Sie jede benötigte Kontostruktur
  • Präzise Kostenbasis: Chargenbasiertes Tracking mit spezifischer Identifikation
  • Multi-Protokoll-Unterstützung: Verarbeiten Sie jede Börse, jedes Wallet oder DeFi-Protokoll
  • Transparente Berechnungen: Sehen Sie genau, wie Zahlen berechnet werden
  • Zukunftssicher: Das Plain-Text-Format gewährleistet langfristige Zugänglichkeit

Einrichten Ihrer Krypto-Portfoliostruktur

Grundlegende Kontenhierarchie

Beginnen Sie mit einer umfassenden Kontostruktur, die Ihr Krypto-Ökosystem widerspiegelt:

; Exchange Accounts - Organized by Platform
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:Kraken:ADA
1970-01-01 open Assets:Crypto:Binance:ADA
 
; Wallet Accounts - Organized by Type
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:MetaMask:UNI
1970-01-01 open Assets:Crypto:Wallet:TrustWallet:BNB
 
; DeFi Protocol Accounts
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
 
; Income Tracking
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:Crypto:Arbitrage
1970-01-01 open Income:CapitalGains:Crypto
1970-01-01 open Income:CapitalGains:LongTerm
 
; Expense Tracking
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 open Expenses:CapitalLoss:Crypto

Eine Namensregel ist hier entscheidend, und der Parser erzwingt sie eher als dass er sie konventionsbasiert annimmt: Jede Kontokomponente und jedes Warensymbol muss mit einem Großbuchstaben oder einer Ziffer beginnen. Compound schreibt sein Quittungs-Token cUSDC in der gesamten eigenen Oberfläche, aber Assets:DeFi:Compound:cUSDC und ein cUSDC-Ware sind beides Lexer-Fehler. Schreiben Sie sie CUSDC und behalten Sie die Schreibweise des Protokolls in den name:-Metadaten der Ware bei.

Warendefinitionen mit Metadaten

Definieren Sie Ihre Kryptowährungen mit umfangreichen Metadaten für ein besseres Tracking:

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"

Multi-Börsen-Portfolio-Tracking

Aufzeichnen von Käufen über Börsen hinweg

Verfolgen Sie dieselbe Kryptowährung über verschiedene Börsen mit präziser Kostenbasis:

; Bitcoin purchases on different exchanges
2024-01-15 * "Buy BTC on Coinbase"
  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 * "Buy BTC on Binance"
  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 * "Buy BTC on Kraken"
  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

Börsenübergreifende Übertragungen

Verfolgen Sie Übertragungen zwischen Börsen unter Beibehaltung der Kostenbasis:

2024-02-01 * "Transfer BTC from Coinbase to 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}

Arbitrage-Möglichkeiten

Eine Arbitrage ist ein wirtschaftliches Ereignis über zwei Plattformen hinweg, daher zeichnen Sie es als eine Transaktion auf. Dieser Eintrag verkauft 10 ETH, die Sie bereits auf Coinbase halten, zu 2.580,00 $ und stellt die Position sofort auf Binance zu 2.500,00 $ wieder her:

2024-02-10 * "Arbitrage: Buy ETH on Binance, Sell on Coinbase"
  ; Buy leg on 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
  ; Sell leg on Coinbase, at the higher price
  Assets:Crypto:Coinbase:ETH     -10 ETH {2500.00 USD} @ 2580.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       -800.00 USD  ; 25,800.00 proceeds - 25,000.00 basis

Drei Dinge zum Übernehmen:

  • Lassen Sie niemals eine Leerzeile zwischen Buchungen. Eine Leerzeile beendet die Transaktion, und Beancount meldet einen Syntaxfehler für die Buchungen danach. Verwenden Sie stattdessen eingerückte ;-Kommentare, um die Positionen zu kennzeichnen – das tun die beiden Kommentarzeilen oben.
  • Der Gewinn ist der Gewinn der Veräußerung, 800,00 $, und er ist negativ, weil Income-Konten Gutschriften enthalten. Die 55,00 $ an Gebühren sind separat: Sie machen aus der 800,00 $-Bruttomarge einen Gewinn von 745,00 $ und sind bereits auf ihren eigenen zwei Buchungen erfasst.
  • Die Verkaufsposition reduziert eine Charge, die Sie bereits halten müssen. Dieser Eintrag geht von 10 ETH aus, die zuvor auf Coinbase zu 2.500,00 $ gekauft wurden; ohne diese Charge hat die Reduzierung nichts, wogegen sie gebucht werden kann.

Fortgeschrittenes Kostenbasis-Management

Chargenbasiertes Tracking

Das chargenbasierte System von Beancount.io ermöglicht eine präzise Kostenbasis-Verfolgung:

; Multiple purchases at different prices
2024-01-01 * "BTC Purchase Lot 1"
  Assets:Crypto:Coinbase:BTC  1.0 BTC {40000.00 USD}
  Assets:Crypto:Coinbase:USD -40000.00 USD
 
2024-02-01 * "BTC Purchase Lot 2"
  Assets:Crypto:Coinbase:BTC  1.0 BTC {45000.00 USD}
  Assets:Crypto:Coinbase:USD -45000.00 USD
 
2024-03-01 * "BTC Purchase Lot 3"
  Assets:Crypto:Coinbase:BTC  1.0 BTC {50000.00 USD}
  Assets:Crypto:Coinbase:USD -50000.00 USD

Die Vorzeichenkonvention für Gewinne und Verluste

Income-Konten enthalten Gutschriften, daher speichert Beancount sie als negative Zahlen. Jeder Gewinn unten ist daher eine negative Buchung auf ein Einkommenskonto, und jeder Verlust ist eine positive Buchung auf ein Aufwandskonto. Die Gebühr ist von beiden getrennt: Sie ist ein eigenständiger Aufwand. Sie also zusätzlich vom Gewinn abzuziehen, würde sie doppelt abziehen und die Transaktion unausgeglichen lassen.

Für eine einzelne Veräußerung lautet die Rechnung immer:

gain (or loss) = gross proceeds - cost basis of the lots removed
net cash       = gross proceeds - fees

Methode der spezifischen Identifikation

Verkaufen Sie bestimmte Chargen für optimales Steuermanagement. Die Kosten der Charge in der Reduktionsbuchung zu nennen, bedeutet in Beancount "spezifische Identifikation", und dies funktioniert unter der standardmäßigen STRICT-Buchung:

; Sell the most expensive lot: 1.0 BTC bought at $50,000.00
2024-04-01 * "Sell BTC Lot 3 for tax optimization"
  Assets:Crypto:Coinbase:BTC    -1.0 BTC {50000.00 USD} @ 48000.00 USD
  Assets:Crypto:Coinbase:USD   48000.00 USD  ; gross proceeds
  Expenses:Crypto:Fees:Trading    50.00 USD
  Assets:Crypto:Coinbase:USD     -50.00 USD
  Expenses:CapitalLoss:Crypto   2000.00 USD  ; 50,000.00 basis - 48,000.00 proceeds

Verkauf der ältesten oder neuesten Charge

Die Benennung eines anderen Kostenwerts wählt eine andere Charge aus. Diese beiden Verkäufe nehmen die 40.000,00 $-Charge und dann die 45.000,00 $-Charge – die beiden, die nach dem Verkauf der 50.000,00 $-Charge im obigen Beispiel noch übrig sind – was dieselbe Auswahl ist, die FIFO und LIFO automatisch treffen würden, hier manuell ausgeschrieben:

; Sell the oldest lot (bought 2024-01-01 at $40,000.00)
2024-05-01 * "Sell 0.5 BTC from the oldest lot"
  Assets:Crypto:Coinbase:BTC    -0.5 BTC {40000.00 USD} @ 52000.00 USD
  Assets:Crypto:Coinbase:USD   26000.00 USD  ; gross proceeds, 0.5 * 52,000.00
  Expenses:Crypto:Fees:Trading    30.00 USD
  Assets:Crypto:Coinbase:USD     -30.00 USD
  Income:CapitalGains:Crypto   -6000.00 USD  ; 26,000.00 proceeds - 20,000.00 basis
 
; Sell the newest remaining lot (bought 2024-02-01 at $45,000.00)
2024-05-02 * "Sell 0.5 BTC from the newest lot"
  Assets:Crypto:Coinbase:BTC    -0.5 BTC {45000.00 USD} @ 52000.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  ; 26,000.00 proceeds - 22,500.00 basis

Gleicher Verkaufspreis, andere Charge, 2.500,00 $ Unterschied beim realisierten Gewinn. Wenn Sie möchten, dass Beancount die Charge für Sie auswählt, legen Sie eine Buchungsmethode auf dem Konto fest, anstatt einen Kostenwert zu nennen – "FIFO", "LIFO" oder "HIFO" in der open-Direktive, beschrieben in Bestandsverwaltung.

Portfolio-Performance-Analyse

Preistracking-Einrichtung

Richten Sie automatisierte Preisfeeds für eine genaue Bewertung ein:

; Daily price updates
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

Portfolio-Allokations-Tracking

Nutzen Sie die Berichtsfunktionen von Beancount.io zur Allokationsanalyse:

-- Query for portfolio allocation by asset
SELECT
  account,
  sum(position) as balance,
  value(sum(position)) as market_value
WHERE account ~ "Assets:Crypto"
GROUP BY 1
ORDER BY market_value DESC

Leistungskennzahlen

Verfolgen Sie wichtige Leistungsindikatoren:

-- Total portfolio value query
SELECT
  sum(value(position)) as total_portfolio_value
WHERE account ~ "Assets:Crypto"
 
-- Realized gains/losses
SELECT
  sum(position) as realized_gains
WHERE account ~ "Income:CapitalGains:Crypto"

Staking- und DeFi-Integration

Tracking von Staking-Belohnungen

Erfassen Sie Staking-Belohnungen mit korrekter Einkommensanerkennung. Die ankommenden Einheiten und das erkannte Einkommen sind dasselbe Ereignis aus zwei Perspektiven, daher müssen ihre Gewichte sich aufheben: [Einheiten] × [Preis] an Vermögenswerten herein, dieselbe Anzahl Dollar an Einkommen heraus – und Einkommen ist eine Gutschrift, also negativ.

2024-01-31 * "ETH Staking Rewards - January"
  Assets:Staking:Ethereum:ETH     0.08 ETH {2500.00 USD}
  Income:Crypto:Staking:ETH     -200.00 USD  ; 0.08 * 2,500.00
 
2024-01-31 * "ADA Staking Rewards - January"
  Assets:Staking:Cardano:ADA        25 ADA {0.50 USD}
  Income:Crypto:Staking:ADA      -12.50 USD  ; 25 * 0.50

Die {2,500.00 USD} und {0.50 USD} sind externe Bewertungen. Beancount speichert, was Sie schreiben; es holt keinen Preis und entscheidet nicht, welches Angebot das richtige ist. Wählen Sie eine Quelle – die Börse, auf der Sie tatsächlich verkaufen würden, oder einen veröffentlichten Index – und verwenden Sie sie konsistent, denn diese Zahl ist sowohl Ihr Einkommen als auch Ihre zukünftige Kostenbasis.

Die Basis der Belohnung wird einmalig erfasst

Die oben erkannten 200,00 $ werden zur Kostenbasis der 0,08 ETH. Ein späterer Verkauf realisiert nur die Bewegung seit dem Belohnungsdatum:

2024-06-30 * "Sell the January ETH staking reward"
  Assets:Staking:Ethereum:ETH   -0.08 ETH {2500.00 USD} @ 3000.00 USD
  Assets:Crypto:Coinbase:USD     240.00 USD  ; gross proceeds, 0.08 * 3,000.00
  Income:CapitalGains:Crypto     -40.00 USD  ; 240.00 proceeds - 200.00 basis

40,00 $ Kapitalgewinn, nicht 240,00 $ – die ersten 200,00 $ waren im Januar bereits Einkommen. Die gesamten 240,00 $ als Gewinn zu buchen, ist der häufigste Weg, wie Belohnungseinkommen doppelt gezählt wird. Wann die Belohnung steuerpflichtig wird und zu welchem Satz, variiert je nach Rechtsraum; das Hauptbuch erfasst Erhalt und Veräußerung getrennt, sodass beide Behandlungen daraus berichtet werden können.

DeFi-Yield-Tracking

Verfolgen Sie komplexe DeFi-Positionen:

Liquiditätsbereitstellung tauscht zwei Waren gegen eine dritte, daher muss jede Position in derselben Währung wiegen, bevor die Transaktion ausgeglichen werden kann. Die ETH- und LP-Positionen tun dies bereits, da sie einen Kostenwert tragen; die Stablecoin-Position benötigt einen expliziten @ 1,00 USD, sonst sieht Beancount 25.000 Einheiten USDC abgehen und 25.000,00 $ Wert ankommen, was verschiedene Waren sind und sich nicht aufhebt.

2024-02-01 * "Uniswap LP Position"
  Assets:Crypto:Wallet:MetaMask:ETH    -10 ETH {2500.00 USD}
  Assets:Crypto:Wallet:MetaMask:USDC -25000 USDC @ 1.00 USD
  Assets:DeFi:Uniswap:ETH-USDC-LP      100 UNI-V2-ETH-USDC {500.00 USD}
 
2024-02-28 * "Uniswap LP Rewards - February"
  Assets:Crypto:Wallet:MetaMask:UNI    50 UNI {8.00 USD}
  Income:Crypto:DeFi:Yield          -400.00 USD  ; 50 * 8.00

Automatisiertes Portfoliomanagement

Importieren von Börsendaten

Beancount enthält keinen Börsen-API-Client und es gibt keine Konfigurationsdatei, die es mit Coinbase oder Binance sprechen lässt. Der unterstützte Weg ist ein Importer: Sie laden den CSV-Export der Börse herunter (oder rufen ihn mit einem eigenen Skript ab) und konvertieren ihn mit beangulp in Beancount-Transaktionen – das Importer-Framework, das das in Beancount 2 eingebaute beancount.ingest abgelöst hat. beancount.ingest existiert in Beancount 3 nicht.

Wenn Sie ein Abrufskript schreiben, gehört die Datei mit den Anmeldedaten nur Ihnen – nichts in der Beancount-Toolchain liest sie:

# Configuration for YOUR OWN fetch script. No Beancount tool reads this file.
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"

Automatisierter Abgleich

Richten Sie die automatisierte Saldenverifizierung ein:

; Balance assertions for automated verification
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

Diese drei Zahlen stammen von Ihren Börsenbildschirmen, nicht von dieser Seite, daher wird der obige Block gegen nichts verifizieren, bis Ihre eigenen Transaktionen im Hauptbuch stehen. Zwei Regeln entscheiden, ob er überhaupt verifiziert. Eine balance-Direktive prüft den Saldo zu Beginn des genannten Tages, daher sieht eine Prüfung vom 31.01.2024 nichts, was am 31.01.2024 gebucht wurde – datieren Sie sie auf den Tag nach dem abzuschließenden Zeitraum. Und jedes geprüfte Konto muss offen sein, weshalb Assets:Crypto:Kraken:ADA oben im Abschnitt Grundlegende Kontenhierarchie erscheint.

Preise aktuell halten

Preise leben im Hauptbuch als price-Direktiven, und nichts in Beancount 3.2.3 holt sie für Sie. Es gibt keine custom "price-source"-Direktive – ein bloßes Warensymbol ist nicht einmal ein gültiger custom-Wert, daher ist diese Zeile ein Syntaxfehler – und kein beancount.plugins.forecast-Modul; der Loader stoppt mit einem Importfehler, wenn Sie es benennen.

Was es gibt, ist beanprice, ein separates Paket (pip install beanprice), das den Befehl bean-price bereitstellt. Es liest ein price:-Metadatenfeld auf jeder commodity-Direktive in der Form "<Quote-Währung>:<Quellmodul>/<Ticker>" und schreibt price-Direktiven, die Sie an Ihr Hauptbuch anhängen:

1970-01-01 commodity BTC
  name: "Bitcoin"
  asset-class: "cryptocurrency"
  price: "USD:beanprice.sources.coinbase/BTC-USD"
 
1970-01-01 commodity ETH
  name: "Ethereum"
  asset-class: "cryptocurrency"
  price: "USD:beanprice.sources.coinbase/ETH-USD"
 
; What bean-price appends - and what you would otherwise type by hand
2024-01-15 price BTC 45000.00 USD
2024-01-15 price ETH 2500.00 USD

Alle anderen Metadaten, die Sie an eine Ware anhängen – sector, website oder das früher in diesem Leitfaden verwendete Feld price-source – sind freie Dokumentation zu Ihrem eigenen Nutzen. Der Loader speichert sie und kein Tool reagiert darauf.

Steueroptimierungsstrategien

Tax-Loss-Harvesting

Implementieren Sie systematisches Tax-Loss-Harvesting:

; The lot being harvested, so this block stands on its own
2024-03-01 * "Buy ADA on Binance"
  Assets:Crypto:Binance:ADA       1000 ADA {0.60 USD}
  Assets:Crypto:Binance:USD    -600.00 USD
 
; Identify positions with unrealized losses
2024-12-15 * "Tax loss harvesting - Sell ADA at loss"
  Assets:Crypto:Binance:ADA      -1000 ADA {0.60 USD} @ 0.45 USD
  Assets:Crypto:Binance:USD       450.00 USD  ; gross proceeds
  Expenses:Crypto:Fees:Trading      5.00 USD
  Assets:Crypto:Binance:USD        -5.00 USD
  Expenses:CapitalLoss:Crypto     150.00 USD  ; 600.00 basis - 450.00 proceeds
 
; Repurchase after wash sale period (31 days)
2025-01-16 * "Repurchase ADA after wash sale period"
  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

Langfristige vs. kurzfristige Gewinne

Verfolgen Sie Haltedauern zur Steueroptimierung:

; Use metadata to track purchase dates
2024-01-01 * "BTC Purchase - Long-term hold" ^long-term-btc
  Assets:Crypto:Coinbase:BTC  1.0 BTC {40000.00 USD}
  Assets:Crypto:Coinbase:USD -40000.00 USD
 
; Sell after one year for long-term capital gains treatment
2025-01-02 * "BTC Sale - Long-term capital gains" ^long-term-btc
  Assets:Crypto:Coinbase:BTC    -1.0 BTC {40000.00 USD} @ 55000.00 USD
  Assets:Crypto:Coinbase:USD   55000.00 USD
  Income:CapitalGains:LongTerm -15000.00 USD  ; 55,000.00 proceeds - 40,000.00 basis

Der ^long-term-btc-Link auf beiden Einträgen ermöglicht es Ihnen, Kauf und Verkauf später gemeinsam abzurufen; Beancount verfolgt Haltedauern selbst nicht.

Berichte und Analysen

Portfolio-Zusammenfassungsberichte

Erstellen Sie umfassende Portfolioberichte:

-- Portfolio allocation by cryptocurrency
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;

Performance-Analysen

Verfolgen Sie die Portfolio-Performance im Zeitverlauf:

-- Monthly portfolio performance
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;

Einkommensanalyse

Analysieren Sie Einkommensquellen:

-- Income breakdown by source
SELECT
  account,
  sum(position) as total_income
WHERE account ~ "Income:Crypto"
GROUP BY account
ORDER BY total_income DESC;

Best Practices und Tipps

1. Konsistente Erfassung

  • Erfassen Sie Transaktionen unmittelbar nach der Ausführung
  • Verwenden Sie standardisierte Transaktionsbeschreibungen
  • Fügen Sie Transaktions-Hashes in die Metadaten ein

2. Regelmäßiger Abgleich

  • Verifizieren Sie Salden wöchentlich über alle Plattformen hinweg
  • Verwenden Sie Saldenprüfungen, um Abweichungen zu erkennen
  • Überwachen Sie auf fehlende Transaktionen

3. Backup und Sicherheit

  • Sichern Sie Ihre Beancount-Dateien regelmäßig
  • Verwenden Sie Versionskontrolle (Git) zur Änderungsverfolgung
  • Verschlüsseln Sie sensible Daten

4. Dokumentation

  • Dokumentieren Sie Ihre Kontostruktur-Entscheidungen
  • Pflegen Sie Notizen zu komplexen Transaktionen
  • Bewahren Sie Aufzeichnungen über API-Konfigurationen auf

5. Steuervorbereitung

  • Erstellen Sie vierteljährlich Berichte für die Steuerplanung
  • Pflegen Sie detaillierte Aufzeichnungen für Prüfungszwecke
  • Konsultieren Sie Steuerberater für komplexe Situationen

Fazit

Effektives Kryptowährungs-Portfolio-Tracking erfordert Präzision, Konsistenz und die richtigen Tools. Beancount.io bietet die Flexibilität und Leistungsfähigkeit, um komplexe Krypto-Portfolios über mehrere Börsen, Wallets und DeFi-Protokolle hinweg zu verwalten.

Hauptvorteile der Nutzung von Beancount.io für das Krypto-Portfolio-Tracking:

  • Volle Dateneigentümerschaft: Ihre Daten im Plain-Text-Format
  • Präzise Kostenbasis: Chargenbasiertes Tracking mit spezifischer Identifikation
  • Unbegrenzte Flexibilität: Individuelle Kontostrukturen und Berichte
  • Steueroptimierung: Fortgeschrittene Strategien zur Minimierung der Steuerlast
  • Zukunftssicher: Offenes Format gewährleistet langfristige Zugänglichkeit

Beginnen Sie mit einem grundlegenden Setup und erweitern Sie Ihr Tracking schrittweise, während Ihr Portfolio komplexer wird. Die Investition in ein ordnungsgemäßes Setup zahlt sich in genauen Berichten, Steueroptimierung und Portfolio-Einblicken aus.

Bereit, die Kontrolle über Ihr Kryptowährungs-Portfolio zu übernehmen? Starten Sie noch heute mit Beancount.io.

Quelle: https://beancount.io/de/docs/Solutions/cryptocurrency-portfolio-tracking