پرش به محتوای اصلی

ردیابی پورتفوی ارزهای دیجیتال با مبنای هزینه در Beancount

ردیابی پورتفوی ارزهای دیجیتال در Beancount در صرافیهای مختلف، با مبنای هزینه، دستهها و تحلیل عملکرد در یک دفتر کل.

مدیریت پرتفوی ارز دیجیتال در چندین صرافی، کیف پول و پروتکل‌های دیفای می‌تواند چالش‌برانگیز باشد. این راهنمای جامع نحوه راه‌اندازی و نگهداری پیگیری دقیق پرتفوی ارز دیجیتال با استفاده از سیستم حسابداری متن‌محور قدرتمند Beancount.io را به شما نشان می‌دهد.

مثال زنده دفتر کل ارز دیجیتال را بررسی کنید:

باز کردن Cryptocurrency Example Ledger در برگه جدید

چرا ردیاب‌های سنتی پرتفوی ناکافی هستند

مشکلات رایج ابزارهای پرتفوی کریپتو

  • پشتیبانی محدود از صرافی‌ها: بسیاری از ابزارها همه صرافی‌ها یا پروتکل‌های دیفای را پشتیبانی نمی‌کنند
  • مبنای هزینه نادرست: محاسبات ساده FIFO/LIFO پیچیدگی‌ها را از دست می‌دهد
  • معاملات جاافتاده: محدودیت‌های API و شکاف‌های ورود دستی
  • عدم امکان شخصی‌سازی: دسته‌بندی‌ها و ساختارهای گزارش‌گیری ثابت
  • نگرانی‌های حریم خصوصی: به اشتراک‌گذاری کلیدهای API با سرویس‌های شخص ثالث
  • قفل فروشنده: فرمت‌های داده اختصاصی و گزینه‌های محدود صادرات

مزایای Beancount.io

  • کنترل کامل: مالک داده‌های خود به فرمت متن ساده باشید
  • شخصی‌سازی نامحدود: هر ساختار حسابی که لازم دارید ایجاد کنید
  • مبنای هزینه دقیق: پیگیری مبتنی بر دسته با شناسایی خاص
  • پشتیبانی چندپروتکلی: مدیریت هر صرافی، کیف پول یا پروتکل دیفای
  • محاسبات شفاف: دقیقاً ببینید اعداد چگونه محاسبه می‌شوند
  • آینده‌پذیر: فرمت متن‌ساده دسترسی بلندمدت را تضمین می‌کند

راه‌اندازی ساختار پرتفوی کریپتوی شما

سلسله مراتب پایه حساب‌ها

با یک ساختار حساب جامع که اکوسیستم کریپتو شما را منعکس می‌کند شروع کنید:

; 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

یک قاعده نام‌گذاری در اینجا اعمال می‌شود و تجزیه‌کننده آن را به جای عرف اعمال می‌کند: هر جزء حساب و هر نماد کالا باید با حرف بزرگ یا عدد شروع شود. Compound نشانه رسید خود cUSDC را در سراسر رابط خود استفاده می‌کند، اما Assets:DeFi:Compound:cUSDC و یک کالای cUSDC هر دو خطای لغزش‌خوان هستند. آنها را CUSDC هجی کنید و املا پروتکل را در متاداده name: کالای مربوط حفظ کنید.

تعریف کالاها با متاداده

ارزهای دیجیتال خود را با متاداده‌های غنی برای پیگیری بهتر تعریف کنید:

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"

پیگیری پرتفوی چندصرافه‌ای

ثبت خریدها در صرافی‌های مختلف

همان ارز دیجیتال را در صرافی‌های مختلف با مبنای هزینه دقیق دنبال کنید:

; 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

انتقالات بین صرافی‌ها

انتقال‌ها بین صرافی‌ها را با حفظ مبنای هزینه پیگیری کنید:

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}

فرصت‌های آربیتراژ

آربیتراژ یک رویداد اقتصادی در دو بازار است، بنابراین آن را به عنوان یک تراکنش ثبت کنید. این ورودی 10 ETH که قبلاً در Coinbase دارید را به قیمت 2,580.00 دلار می‌فروشد و بلافاصله موقعیت را در Binance به قیمت 2,500.00 دلار بازیابی می‌کند:

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

سه مورد برای کپی کردن:

  • هرگز خط خالی بین پست‌ها نگذارید. خط خالی تراکنش را پایان می‌دهد و Beancount خطای نحوی در پست‌های پس از آن گزارش می‌کند. به جای آن از نظرات تو رفتگی ; برای برچسب زدن به قسمت‌ها استفاده کنید — که همان کاری است که دو خط کامنت بالا انجام می‌دهند.
  • سود همان سود دورریز است، 800.00 دلار، و منفی است چون حساب‌های Income مانده‌های بستانکاری دارند. 55.00 دلار هزینه جدا است: این مبلغ است که 800.00 دلار گسترش ناخالص را به 745.00 دلار سود تبدیل می‌کند و قبلاً در دو پست جداگانه ثبت شده است.
  • بخش فروش مقدار زیادی را که باید قبلاً داشته باشید کاهش می‌دهد. این ورودی فرض می‌کند 10 ETH قبلاً در Coinbase به قیمت 2,500.00 دلار خریداری شده است؛ بدون آن مقدار، کاهش چیزی برای ثبت در برابر آن ندارد.

مدیریت پیشرفته بهای تمام شده

ردیابی مبتنی بر دسته

سیستم مبتنی بر دسته Beancount.io ردیابی دقیق بهای تمام شده را فراهم می‌کند:

; 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

کنوانسیون علامت برای سود و زیان

حساب‌های Income مانده‌های بستانکاری را نگه می‌دارند، بنابراین Beancount آنها را به صورت اعداد منفی ذخیره می‌کند. بنابراین هر سود زیر یک پست منفی به حساب درآمد است و هر زیان یک پست مثبت به حساب هزینه است. هزینه جدا از هر دو است: خود هزینه‌ای است که باید به عنوان هزینه ثبت شود، پس کسر آن از سود نیز دو بار کسر می‌شود و باعث عدم تعادل تراکنش می‌گردد.

برای یک دورریز، محاسبات همیشه به صورت زیر است:

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

روش شناسایی خاص

دسته‌های خاص را برای مدیریت مالیات بهینه بفروشید. نام‌گذاری بهای دسته در پست کاهش همان معنای "شناسایی خاص" در Beancount است و تحت روش پیش‌فرض ثبت STRICT کار می‌کند:

; 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

فروش قدیمی‌ترین یا جدیدترین دسته

نام‌گذاری بها متفاوت یک دسته متفاوت را انتخاب می‌کند. این دو فروش ابتدا دسته 40,000.00 دلاری و سپس دسته 45,000.00 دلاری را می‌گیرند — که دو دسته باقی‌مانده پس از فروش دسته 50,000.00 دلاری در مثال بالا هستند — که همان انتخابی است که FIFO و LIFO به طور خودکار انجام می‌دادند، به صورت دستی تشریح شده:

; 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

همان قیمت فروش، دسته متفاوت، 2,500.00 دلار تفاوت در سود تحقق یافته. اگر ترجیح می‌دهید Beancount دسته را برای شما انتخاب کند، به جای نام‌گذاری بها روش ثبت را روی حساب تنظیم کنید — "FIFO"، "LIFO" یا "HIFO" در دستور open، که در مدیریت موجودی توضیح داده شده است.

تجزیه و تحلیل عملکرد پرتفولیوی سرمایه گذاری

تنظیم ردیابی قیمت

تنظیم خوراک‌های قیمت خودکار برای ارزیابی دقیق:

; 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

ردیابی تخصیص پرتفولیو

از قابلیت‌های گزارش‌گیری Beancount.io برای تحلیل تخصیص استفاده کنید:

-- 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

معیارهای عملکرد

شاخص‌های کلیدی عملکرد را ردیابی کنید:

-- 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"

ادغام استیکینگ و دی‌فای

ردیابی پاداش‌های استیکینگ

ثبت پاداش‌های استیکینگ با شناسایی درآمد مناسب. واحدهای وارد شده و درآمد شناسایی شده همان رویداد هستند که از دو منظر دیده می‌شوند، بنابراین وزن‌هایشان باید خنثی شوند: [units] × [price] دارایی وارد شده، همان تعداد دلار درآمد خارج شده — و درآمد یک بستانکار است، بنابراین مقدار آن منفی است.

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

{2,500.00 USD} و {0.50 USD}، ارزیابی‌های خارجی هستند. Beancount هرچه بنویسید ذخیره می‌کند؛ قیمت نمی‌گیرد یا تعیین نمی‌کند که کدام قیمت صحیح است. یک منبع انتخاب کنید — صرافی که واقعاً در آن فروش می‌کنید یا یک شاخص منتشر شده — و آن را مداوم استفاده کنید، زیرا آن عدد هم درآمد شما و هم مبنای هزینه آینده شما است.

مبنای پاداش یکبار شناسایی می‌شود

۲۰۰.۰۰ دلار شناسایی شده بالا به مبنای هزینه ۰.۰۸ ETH تبدیل می‌شود. فروش آن بعداً فقط حرکت قیمت از تاریخ پاداش را تحقق می‌بخشد:

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

۴۰.۰۰ دلار سود سرمایه، نه ۲۴۰.۰۰ دلار — ۲۰۰.۰۰ دلار اول در ژانویه به عنوان درآمد ثبت شده بود. ثبت کل ۲۴۰.۰۰ دلار به عنوان سود رایج‌ترین روش شمارش دو برابری درآمد پاداش است. اینکه پاداش چه زمانی مشمول مالیات می‌شود و با چه نرخ، بستگی به حوزه قضایی دارد؛ دفتر کل دریافت و فروش را جداگانه ثبت می‌کند تا هر دو روش گزارش ممکن باشد.

ردیابی بازده دی‌فای

موقعیت‌های پیچیده دی‌فای را ردیابی کنید:

ارائه نقدینگی دو کالا را برای کالای سوم معاوضه می‌کند، بنابراین هر بخش باید به ارز یکسان وزن شود تا معامله تراز شود. بخش ETH و LP قبلاً این کار را کرده‌اند چون هزینه دارند؛ بخش استیبل‌کوین نیاز به @ 1.00 USD صریح دارد، وگرنه Beancount خروج ۲۵,۰۰۰ واحد USDC و ورود ۲۵,۰۰۰.۰۰ دلار ارزش را می‌بیند که کالاهای متفاوتی هستند و تراز نمی‌شوند.

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

مدیریت خودکار پرتفولیو

وارد کردن داده‌های صرافی

Beancount هیچ کلاینت API صرافی ندارد و فایل تنظیماتی برای ارتباط با Coinbase یا Binance وجود ندارد. مسیر پشتیبانی شده یک واردکننده است: شما فایل CSV خروجی صرافی را دانلود می‌کنید (یا با اسکریپت خود می‌گیرید) و آن را با beangulp، چارچوب واردکننده که جایگزین beancount.ingest داخلی Beancount 2 شد، به تراکنش‌های Beancount تبدیل می‌کنید. beancount.ingest در Beancount 3 وجود ندارد.

اگر اسکریپت fetch می‌نویسید، فایل اعتبارسنجی آن فقط متعلق به شماست — هیچ چیزی در زنجیره ابزار Beancount آن را نمی‌خواند:

# 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"

تسویه خودکار

تنظیم تأیید خودکار مانده حساب:

; 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

این سه عدد از صفحه‌های مبادله شما می‌آیند، نه از این صفحه، بنابراین بلوک بالا تا زمانی که تراکنش‌های شما در دفتر کل نباشد، چیزی را تأیید نمی‌کند. دو قانون تعیین می‌کنند که آیا اصلاً تأیید می‌کند یا خیر. دستور balance تعادل را در شروع روز مشخص‌شده اثبات می‌کند، بنابراین اثباتی که تاریخ 2024-01-31 دارد هیچ چیزی را که در 2024-01-31 وارد شده باشد نمی‌بیند — آن را به روز پس از دوره‌ای که می‌بندید تاریخ‌گذاری کنید. و هر حساب اثبات‌شده باید باز باشد، به همین دلیل Assets:Crypto:Kraken:ADA در بخش ساختار پایه‌ای حساب‌ها بالا ظاهر می‌شود.

به‌روز نگه داشتن قیمت‌ها

قیمت‌ها به صورت دستورات price در دفتر کل ذخیره می‌شوند، و هیچ چیزی در Beancount 3.2.3 آنها را برای شما fetch نمی‌کند. دستوری به نام custom "price-source" وجود ندارد — نماد کالا به‌تنهایی حتی یک مقدار معتبر custom نیست، بنابراین آن خط یک خطای نحوی است — و ماژول beancount.plugins.forecast وجود ندارد؛ اگر آن را نام ببرید، بارگذاری‌کننده با خطای واردات متوقف می‌شود.

با استفاده از bea engine enable beanprice، beanprice را درون موتور مدیریت‌شده فعال کنید، سپس با bea price main.beancount قیمت‌ها را fetch کنید. این برنامه فیلد متادیتا price: روی هر دستور commodity را به صورت "<quote currency>:<source module>/<ticker>" می‌خواند و دستورات price را که به دفتر کل خود اضافه می‌کنید، می‌نویسد:

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"
 
; Example quotes to append after reviewing the output of bea price - and what you would otherwise type by hand
2024-01-15 price BTC 45000.00 USD
2024-01-15 price ETH 2500.00 USD

هر متادیتای دیگری که به یک کالا اضافه کنید — sector، website، یا فیلد price-source که قبلاً در این راهنما استفاده شد — مستندسازی آزاد برای استفاده خودتان است. بارگذاری‌کننده آن را ذخیره می‌کند و هیچ ابزاری روی آن کاری انجام نمی‌دهد.

استراتژی‌های بهینه‌سازی مالیاتی

برداشت منظم زیان مالیاتی

برداشت منظم زیان مالیاتی را به صورت سیستماتیک اجرا کنید:

; 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

سود بلندمدت در مقابل کوتاه‌مدت

دوره‌های نگهداری را برای بهینه‌سازی مالیاتی دنبال کنید:

; 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

لینک ^long-term-btc روی هر دو ورود چیزی است که به شما اجازه می‌دهد خرید و فروش را بعدها کنار هم بیاورید؛ Beancount خودش دوره‌های نگهداری را دنبال نمی‌کند.

گزارش‌دهی و تحلیل‌ها

گزارش‌های خلاصه پرتفوی

گزارش‌های جامع پرتفوی تولید کنید:

-- 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;

تحلیل عملکرد

عملکرد پرتفوی را در طول زمان پیگیری کنید:

-- 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;

تحلیل درآمد

منابع درآمد را تحلیل کنید:

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

بهترین روش‌ها و نکات

1. ثبت مستمر

  • فوراً بعد از اجرا تراکنش‌ها را ثبت کنید
  • از توصیفات استانداردشده تراکنش استفاده کنید
  • هش‌های تراکنش را در متادیتا اضافه کنید

2. تسویه منظم

  • بررسی هفتگی ترازها در تمام پلتفرم‌ها
  • استفاده از اظهارنامه‌های تراز برای کشف اختلافات
  • نظارت بر تراکنش‌های مفقود شده

۳. پشتیبان‌گیری و امنیت

  • پشتیبان‌گیری منظم از فایل‌های Beancount خود
  • استفاده از کنترل نسخه (Git) برای ردیابی تغییرات
  • رمزنگاری داده‌های حساس

۴. مستندسازی

  • ثبت تصمیمات ساختار حساب خود
  • نگهداری یادداشت‌ها درباره تراکنش‌های پیچیده
  • نگهداری سوابق پیکربندی‌های API

۵. آماده‌سازی مالیاتی

  • تولید گزارش‌های فصلی برای برنامه‌ریزی مالیاتی
  • حفظ سوابق دقیق برای اهداف ممیزی
  • مشورت با متخصصان مالیاتی در شرایط پیچیده

نتیجه‌گیری

پیگیری موثر پرتفوی رمزارز نیازمند دقت، ثبات و ابزارهای مناسب است. Beancount.io انعطاف‌پذیری و قدرت لازم برای مدیریت پرتفوی‌های پیچیده کریپتو را در صرافی‌ها، کیف‌پول‌ها و پروتکل‌های دیفای مختلف فراهم می‌کند.

مزایای کلیدی استفاده از Beancount.io برای پیگیری پرتفوی رمزارز:

  • مالکیت کامل داده‌ها: داده‌های شما به صورت متن ساده
  • هزینه مبنای دقیق: ردیابی مبتنی بر دسته با شناسایی خاص
  • انعطاف‌پذیری نامحدود: ساختار حساب سفارشی و گزارش‌گیری
  • بهینه‌سازی مالیاتی: استراتژی‌های پیشرفته برای کاهش مسئولیت مالیاتی
  • آینده‌نگر: فرمت باز تضمین دسترسی بلندمدت

با یک تنظیمات پایه شروع کنید و به تدریج پیگیری خود را با افزایش پیچیدگی پرتفوی گسترش دهید. سرمایه‌گذاری در تنظیمات درست، در گزارش‌دهی دقیق، بهینه‌سازی مالیاتی و درک بهتر پرتفوی به شما سود خواهد رساند.

آماده کنترل پرتفوی رمزارز خود هستید؟ امروز با Beancount.io شروع کنید.

منبع: https://beancount.io/fa/docs/Solutions/cryptocurrency-portfolio-tracking