app is now using historical exchange rates for transactions

This commit is contained in:
Matthias Hinrichs
2025-07-05 03:44:53 +02:00
parent a96bbe4d2a
commit aef9342cc5
11 changed files with 926 additions and 237 deletions
+11 -8
View File
@@ -12,8 +12,9 @@ A comprehensive portfolio management application built with Go that allows users
### Currency Conversion
- **Automatic Currency Detection**: Automatically detects stock currencies from Yahoo Finance
- **Real-time Exchange Rates**: Fetches current exchange rates from `exchangerate-api.com`
- **Smart Caching**: 1-hour cache for exchange rates to optimize performance
- **Historical Exchange Rates**: Fetches historical exchange rates from the actual transaction date for accurate conversion
- **Smart Caching**: 24-hour cache for historical rates, 1-hour cache for current rates to optimize performance
- **Fallback System**: Uses current rates when historical rates are unavailable (marked with *)
- **160+ Currencies Supported**: Including major currencies like USD, EUR, GBP, JPY, CHF
### User Experience
@@ -110,9 +111,10 @@ portfolio-tracker/
The application automatically:
- Detects the currency of stocks from Yahoo Finance
- Converts transaction amounts to your portfolio's base currency
- Converts transaction amounts using historical exchange rates from the transaction date
- Displays both original and converted amounts for transparency
- Updates exchange rates hourly for accuracy
- Falls back to current rates when historical rates are unavailable (marked with *)
- Provides accurate historical portfolio valuation
### Stock Data
@@ -177,9 +179,9 @@ The application uses SQLite and automatically creates the database file at `data
### Multi-Currency Portfolio Management
- Create portfolios in different base currencies
- Automatic currency conversion for cross-currency transactions
- Real-time exchange rate fetching and caching
- Clear indication of converted vs. original amounts
- Automatic historical currency conversion using transaction-date exchange rates
- Historical and real-time exchange rate fetching with smart caching
- Clear indication of converted vs. original amounts with fallback indicators
### Transaction Management
- Support for Buy, Sell, and Dividend transactions
@@ -209,7 +211,8 @@ This project is licensed under the MIT License - see the LICENSE file for detail
## 🔗 External APIs
- **Yahoo Finance**: Stock data, prices, and company information
- **ExchangeRate API**: Currency exchange rates (free tier, no API key required)
- **ExchangeRate API**: Historical and current currency exchange rates (free tier, no API key required)
- **Frankfurter API**: Fallback for historical exchange rates when primary API is unavailable
## ⚠️ Disclaimer