# Holdings Detail Feature
## Vue d'ensemble
La fonction `get_holdings_detail()` fournit une liste détaillée de tous les produits financiers détenus dans votre portefeuille, avec toutes les informations nécessaires pour permettre à Claude de vous donner des conseils d'investissement personnalisés.
## Motivation
Cette fonction répond à la question: **"est ce que cela permet de lister les produits financier pour être ne mesure de faire des conseils après ?"**
Oui! Cette fonction donne à Claude toutes les informations nécessaires pour:
- ✅ Analyser votre allocation d'actifs
- ✅ Identifier les opportunités de diversification
- ✅ Détecter les positions sous-performantes
- ✅ Calculer vos plus-values et moins-values
- ✅ Recommander des ajustements stratégiques
## Fonctionnalités
### Informations par produit
Pour chaque position, la fonction fournit:
1. **Identification**
- Symbole (ticker)
- Nom complet du produit
- Code ISIN (si disponible)
2. **Classification**
- Type d'actif (Equity, Cryptocurrency, etc.)
- Classe d'actif (Equity, Autres, etc.)
- Sous-classe
- Secteurs économiques
3. **Valorisation**
- Quantité détenue
- Prix de revient unitaire (PRU/average cost)
- Prix de marché actuel (cotation la plus récente)
- Valeur de marché totale
4. **Performance**
- Plus-value ou moins-value en EUR
- Plus-value ou moins-value en pourcentage
- Contribution au portefeuille total (%)
### Analyse de diversification
La fonction calcule automatiquement:
1. **Par type d'actif**
- Répartition en valeur et pourcentage
- Nombre de produits par catégorie
2. **Par classe d'actif**
- Distribution détaillée
- Identification des concentrations
3. **Statistiques globales**
- Valeur totale du portefeuille
- Nombre total de positions
- Valeur moyenne par position
## Implémentation technique
### Requête SQL
La fonction utilise une requête complexe qui:
1. **Extrait les positions** depuis `holdings_snapshots` (JSON)
2. **Joint avec `assets`** pour obtenir les métadonnées
3. **Joint avec `quotes`** pour obtenir les prix actuels
4. **Calcule les valeurs de marché** = quantité × prix actuel
```sql
SELECT
a.symbol, a.name, a.asset_type, a.asset_class,
a.asset_sub_class, a.sectors, a.currency, a.isin,
json_extract(positions.value, '$.quantity') as quantity,
json_extract(positions.value, '$.averageCost') as avg_cost,
json_extract(positions.value, '$.totalCostBasis') as book_value,
COALESCE(q.close, avg_cost) as market_price
FROM holdings_snapshots hs,
json_each(hs.positions) AS positions
JOIN assets a ON json_extract(positions.value, '$.assetId') = a.id
LEFT JOIN (
SELECT symbol, close FROM quotes
WHERE timestamp = (SELECT MAX(timestamp) FROM quotes WHERE symbol = q1.symbol)
) q ON a.symbol = q.symbol
WHERE hs.snapshot_date = (SELECT MAX(snapshot_date) FROM holdings_snapshots)
ORDER BY (quantity * market_price) DESC
```
### Gestion des prix
- **Prix disponible**: Utilise la cotation la plus récente de la table `quotes`
- **Prix indisponible**: Utilise le PRU (average cost) comme fallback
- **Calcul**: valeur_marché = quantité × prix_actuel
### Filtrage optionnel
Paramètre `include_cash`:
- `false` (défaut): Exclut les positions cash
- `true`: Inclut toutes les positions y compris cash
## Exemples d'utilisation
### Commandes de base
```
"Liste tous mes produits financiers"
"Montre-moi mes positions avec leurs prix actuels"
"Affiche le détail de mon portefeuille"
```
### Analyse et conseils
```
"Analyse la diversification de mon portefeuille et donne-moi des recommandations"
"Quelles sont mes positions les plus performantes?"
"Devrais-je rééquilibrer mon portefeuille?"
"Y a-t-il trop de concentration dans certains secteurs?"
"Quelles positions devrais-je renforcer?"
```
### Analyses spécifiques
```
"Compare mes ETF World entre eux"
"Quels sont mes fonds euros?"
"Montre-moi mes crypto-monnaies"
"Liste mes positions perdantes"
```
## Résultat exemple
```
📊 DÉTAIL DES POSITIONS (26 produits)
Valeur totale: 939,319.23 EUR
====================================================================================================
EQUITY: 721,787.59 EUR (76.8%)
----------------------------------------------------------------------------------------------------
WPEA.PA iShares MSCI World Swap PEA UCITS ETF
Quantité: 26890.00 Prix: 6.04 EUR Valeur: 162,528.54 EUR (17.3%)
Classe: Equity Secteur: [Consumer, Tech...] ISIN: IE00BK1PV551
PRU: 5.22 EUR Plus-value: +22,289.33 EUR (+15.9%)
IWDA.L iShares Core MSCI World UCITS ETF USD...
Quantité: 950.00 Prix: 128.07 EUR Valeur: 121,666.51 EUR (13.0%)
Classe: Equity Secteur: [Consumer, Tech...] ISIN: IE00B4L5Y983
PRU: 121.05 EUR Plus-value: +6,668.85 EUR (+5.8%)
[... autres positions ...]
====================================================================================================
ANALYSE DE DIVERSIFICATION:
Par type d'actif:
Equity : 721,787.59 EUR ( 76.8%) - 22 produit(s)
EQUITY : 215,792.94 EUR ( 23.0%) - 3 produit(s)
Cryptocurrency : 1,738.70 EUR ( 0.2%) - 1 produit(s)
Par classe d'actif:
Equity : 721,787.59 EUR ( 76.8%)
Autres : 120,000.00 EUR ( 12.8%)
Non classé : 95,792.94 EUR ( 10.2%)
Cryptocurrency : 1,738.70 EUR ( 0.2%)
Nombre total de lignes: 26
Valeur moyenne par ligne: 36,127.66 EUR
```
## Conseils que Claude peut donner
Avec ces informations détaillées, Claude peut:
### 1. Allocation d'actifs
- Vérifier si la répartition actions/obligations correspond à votre profil de risque
- Identifier les surpondérations géographiques
- Détecter les manques dans certaines classes d'actifs
### 2. Diversification
- Analyser le nombre de positions (trop peu = risque, trop = complexité)
- Vérifier la concentration sectorielle
- Recommander des ajouts pour équilibrer
### 3. Performance
- Identifier les positions perdantes à arbitrer
- Repérer les doublons (plusieurs ETF similaires)
- Suggérer des consolidations
### 4. Optimisation fiscale
- Identifier les plus-values importantes
- Repérer les moins-values à utiliser
- Planifier des ventes stratégiques
### 5. Frais
- Détecter les fonds trop chers
- Suggérer des alternatives moins coûteuses
- Optimiser le choix ETF vs fonds actifs
## Tests
Le fichier `tests/test_holdings_detail.py` valide:
- ✅ Récupération de toutes les positions
- ✅ Calcul correct des valeurs de marché
- ✅ Calcul correct des plus-values
- ✅ Analyse de diversification
- ✅ Structure du résultat
## Version
- **Ajouté dans**: v2.0.0
- **Date**: 2025-11-16
- **Statut**: ✅ Production Ready
## Voir aussi
- [QUICKSTART.md](../QUICKSTART.md) - Guide de démarrage
- [README.md](../README.md) - Documentation principale
- [CLAUDE.md](../CLAUDE.md) - Guide technique