一键导入
tax-tracker
Automatic tax tracking for all trades. Calculate capital gains, generate tax reports, and optimize tax liability.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Automatic tax tracking for all trades. Calculate capital gains, generate tax reports, and optimize tax liability.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Complete market analysis for Crypto, Forex, and Stocks with RSI, MACD, trends, and trading recommendations.
Binary Options trading via BinaryFaster. Execute CALL/PUT trades, manage positions, track results.
Regulatory compliance across jurisdictions. KYC status, tax reporting, trading restrictions, and legal guidelines.
Social trading - copy the best traders automatically. Track whales, influencers, and top performers.
DeFi yield hunting across protocols. Find the best APY, auto-compound, manage LP positions, and optimize gas.
Derivatives trading - options, futures, and perpetuals. Advanced strategies for hedging and leverage.
| name | tax-tracker |
| description | Automatic tax tracking for all trades. Calculate capital gains, generate tax reports, and optimize tax liability. |
| metadata | {"openclaw":{"emoji":"🧾","requires":{"bins":["python3"],"pip":["ccxt","pandas","openpyxl"]}}} |
Vollautomatisches Steuer-Tracking für alle Trading-Aktivitäten.
# ~/.kit/config/tax-tracker.json
{
"auto_pilot": {
"enabled": true,
"sync_interval_hours": 24,
"methods": {
"crypto": "FIFO",
"stocks": "FIFO"
},
"tax_loss_harvesting": {
"enabled": true,
"threshold_eur": 500,
"require_approval": true
},
"reports": {
"auto_generate": true,
"schedule": "monthly",
"formats": ["pdf", "csv"]
},
"notifications": {
"tax_deadline_reminder": true,
"large_gain_alert": 1000
}
},
"jurisdiction": "DE",
"tax_year": 2026
}
| Asset | Haltefrist | Steuersatz |
|---|---|---|
| Crypto | 1 Jahr steuerfrei | bis 45% + Soli |
| Aktien | Keine | 25% Abgeltungssteuer |
| ETFs | Keine | 25% + Teilfreistellung |
python3 -c "
import ccxt
import json
import os
from datetime import datetime
exchanges_config = json.load(open(os.path.expanduser('~/.kit/exchanges.json')))
all_trades = []
for name, cfg in exchanges_config.items():
try:
exchange = getattr(ccxt, name)(cfg)
# Fetch all trades (may need pagination)
trades = exchange.fetch_my_trades('BTC/USDT', limit=100)
for t in trades:
all_trades.append({
'exchange': name,
'symbol': t['symbol'],
'side': t['side'],
'amount': t['amount'],
'price': t['price'],
'cost': t['cost'],
'fee': t['fee']['cost'] if t['fee'] else 0,
'timestamp': t['timestamp'],
'date': datetime.fromtimestamp(t['timestamp']/1000).isoformat()
})
print(f'✅ {name}: {len(trades)} trades imported')
except Exception as e:
print(f'⚠️ {name}: {e}')
print(f'\\n📊 Total: {len(all_trades)} trades')
# Save: json.dump(all_trades, open('trades_2026.json', 'w'), indent=2)
"
python3 -c "
from collections import defaultdict
from datetime import datetime, timedelta
# Example trades
trades = [
{'side': 'buy', 'amount': 1.0, 'price': 40000, 'date': '2025-01-15', 'asset': 'BTC'},
{'side': 'buy', 'amount': 0.5, 'price': 45000, 'date': '2025-06-01', 'asset': 'BTC'},
{'side': 'sell', 'amount': 0.8, 'price': 50000, 'date': '2026-02-01', 'asset': 'BTC'},
]
# FIFO calculation
holdings = defaultdict(list) # asset -> [(amount, price, date)]
gains = []
for trade in sorted(trades, key=lambda x: x['date']):
asset = trade['asset']
if trade['side'] == 'buy':
holdings[asset].append({
'amount': trade['amount'],
'price': trade['price'],
'date': datetime.fromisoformat(trade['date'])
})
elif trade['side'] == 'sell':
sell_amount = trade['amount']
sell_price = trade['price']
sell_date = datetime.fromisoformat(trade['date'])
while sell_amount > 0 and holdings[asset]:
lot = holdings[asset][0]
# Calculate how much from this lot
used = min(lot['amount'], sell_amount)
# Calculate gain
proceeds = used * sell_price
cost_basis = used * lot['price']
gain = proceeds - cost_basis
# Check holding period (Germany: 1 year = tax free for crypto)
holding_days = (sell_date - lot['date']).days
tax_free = holding_days >= 365
gains.append({
'asset': asset,
'amount': used,
'proceeds': proceeds,
'cost_basis': cost_basis,
'gain': gain,
'holding_days': holding_days,
'tax_free': tax_free
})
# Update lot
lot['amount'] -= used
sell_amount -= used
if lot['amount'] <= 0:
holdings[asset].pop(0)
print('🧾 CAPITAL GAINS REPORT (FIFO)')
print('=' * 60)
total_gain = 0
taxable_gain = 0
for g in gains:
status = '🟢 Steuerfrei' if g['tax_free'] else '🔴 Steuerpflichtig'
print(f\"{g['asset']}: {g['amount']:.4f} | Gewinn: €{g['gain']:,.2f} | {g['holding_days']}d | {status}\")
total_gain += g['gain']
if not g['tax_free']:
taxable_gain += g['gain']
print()
print(f'Gesamt-Gewinn: €{total_gain:,.2f}')
print(f'Steuerpflichtiger Gewinn: €{taxable_gain:,.2f}')
print(f'Geschätzte Steuer (42%): €{taxable_gain * 0.42:,.2f}')
"
python3 -c "
import ccxt
# Current holdings with cost basis
holdings = [
{'asset': 'BTC', 'amount': 0.5, 'cost_basis': 50000, 'buy_date': '2025-08-01'},
{'asset': 'ETH', 'amount': 2.0, 'cost_basis': 3000, 'buy_date': '2025-09-15'},
{'asset': 'SOL', 'amount': 20, 'cost_basis': 150, 'buy_date': '2025-10-01'},
]
exchange = ccxt.binance()
print('🧾 TAX-LOSS HARVESTING OPPORTUNITIES')
print('=' * 60)
total_unrealized_loss = 0
for h in holdings:
try:
ticker = exchange.fetch_ticker(f\"{h['asset']}/USDT\")
current_price = ticker['last']
current_value = h['amount'] * current_price
cost = h['amount'] * h['cost_basis']
unrealized = current_value - cost
if unrealized < 0:
total_unrealized_loss += abs(unrealized)
print(f\"🔴 {h['asset']}: Unrealized Loss €{unrealized:,.2f}\")
print(f\" Sell now to realize loss for tax offset\")
print(f\" Can rebuy after 30 days (wash sale rule)\")
print()
except:
pass
print(f'Total harvestable losses: €{total_unrealized_loss:,.2f}')
print(f'Potential tax savings (42%): €{total_unrealized_loss * 0.42:,.2f}')
"
python3 -c "
from datetime import datetime
import json
# Mock data - load from trades file
report = {
'year': 2026,
'jurisdiction': 'DE',
'summary': {
'total_proceeds': 125000,
'total_cost_basis': 100000,
'total_gains': 25000,
'tax_free_gains': 15000,
'taxable_gains': 10000,
'total_fees': 500,
'estimated_tax': 4200
},
'by_asset': {
'BTC': {'gains': 18000, 'taxable': 8000},
'ETH': {'gains': 5000, 'taxable': 2000},
'SOL': {'gains': 2000, 'taxable': 0}
}
}
print('🧾 ANNUAL TAX REPORT 2026')
print('=' * 60)
print(f\"Jurisdiction: {report['jurisdiction']}\")
print()
print('SUMMARY')
print('-' * 60)
print(f\"Total Proceeds: €{report['summary']['total_proceeds']:>12,.2f}\")
print(f\"Total Cost Basis: €{report['summary']['total_cost_basis']:>12,.2f}\")
print(f\"Total Gains: €{report['summary']['total_gains']:>12,.2f}\")
print(f\" - Tax Free: €{report['summary']['tax_free_gains']:>12,.2f}\")
print(f\" - Taxable: €{report['summary']['taxable_gains']:>12,.2f}\")
print(f\"Trading Fees: €{report['summary']['total_fees']:>12,.2f}\")
print()
print(f\"Estimated Tax: €{report['summary']['estimated_tax']:>12,.2f}\")
print()
print('BY ASSET')
print('-' * 60)
for asset, data in report['by_asset'].items():
print(f\"{asset:6} | Gains: €{data['gains']:>10,.2f} | Taxable: €{data['taxable']:>10,.2f}\")
"
python3 -c "
import json
import os
from datetime import datetime
config_path = os.path.expanduser('~/.kit/config/tax-tracker.json')
# Auto-pilot logic
def run_auto_pilot():
config = json.load(open(config_path)) if os.path.exists(config_path) else {}
auto = config.get('auto_pilot', {})
if not auto.get('enabled'):
print('⚠️ Auto-pilot disabled')
return
print('🤖 TAX TRACKER AUTO-PILOT')
print('=' * 50)
print(f'Running at: {datetime.now().isoformat()}')
print()
# 1. Sync trades from all exchanges
print('📥 Syncing trades from exchanges...')
# sync_all_trades()
# 2. Calculate current tax position
print('📊 Calculating tax position...')
# calculate_gains()
# 3. Check for tax-loss harvesting
if auto.get('tax_loss_harvesting', {}).get('enabled'):
print('🔍 Checking tax-loss harvesting opportunities...')
# find_harvest_opportunities()
# 4. Generate report if scheduled
if auto.get('reports', {}).get('auto_generate'):
print('📄 Generating tax report...')
# generate_report()
print()
print('✅ Auto-pilot cycle complete')
run_auto_pilot()
"
| Format | Use Case |
|---|---|
| CSV | Import to tax software |
| Archive / Advisor | |
| JSON | K.I.T. internal |
| XLSX | Manual review |
| Deadline | Action |
|---|---|
| 31. Juli | Steuererklärung ohne Steuerberater |
| 28/29. Feb | Steuererklärung mit Steuerberater |
| Laufend | Vorauszahlungen (15.3, 15.6, 15.9, 15.12) |