MadeInPierre / finalynx

A minimalistic companion (CLI & web) to organize your investment portfolio, simulate its future, and reach your life goals.
https://finalynx.readthedocs.io
GNU General Public License v3.0
64 stars 13 forks source link

Handling multiple node matching differently in account listing #138

Open nmathey opened 1 year ago

nmathey commented 1 year ago

Hello,

Lorsque le même nom d'un produit est utilisé dans différentes "comptes" alors le premier seulement est utilisé. En utilisant le Key ID directement cela semble le faire, mais quid lorsqu'on le veut simplement regrouper un compte sans avoir à "le reconstituer" ligne par ligne.

Exemple: J'ai sur mon AV gestion libre Linxea Avenir le SP500 UCITS Hedgé ce produit fait également parti de mon AV gestion pilotée WeSave.

AV - WeSave : Lyxor S&P 500 UCITS ETF Daily Hedged Dist id="10341226"
AV - LINXEA AVENIR :  Lyxor S&P 500 UCITS ETF Daily Hedged Dist id="9388332"

Je split mon AV Linxea en deux bucket pour séparer les fonds euros des ETF et dans ce dernier j'utilise bien le Key ID

INXEA_ETF = Bucket(
    "AV Linxea ETF",
    [
        Line("Lyxor S&P 500 UCITS ETF Daily Hedged Dist", key="9388332"),
   ]
)

Pour WeSave je le récupère en enveloppe pour ensuite l'intégrer dans un Folder:

AV_WESAVE = Envelope("WeSave","WESAVE", key="AV - WeSave")

Folder("AV - WeSave", envelope=AV_WESAVE, display=FolderDisplay.LINE),

Sauf erreur de ma part j'ai bien le bon montant sur mon bucket et mon enveloppe mais j'ai toujours le message suivant:

Warning: Line matched with multiple nodes, updating first only: Lyxor source_base.py:119
           S&P 500 UCITS ETF Daily Hedged Dist 

Problème également présent sur mes différent wallet crypto ou j'ai forcément des Ethereum, et autre token/coin identique sur plusieurs comptes différents.

MadeInPierre commented 1 year ago

Hey! Je craignais un peu que ça arrive x) Galère à gérer ces lignes qui se ressemblent...

Mais du coup tout fonctionne c'est ça ? Seul le warning reste pour rien ?

Je ne vois pas encore comment résoudre la chose car chaque ligne est indépendante : pour chaque ligne, on parcourt l'arbre entier et collecte toutes Line dans le Portfolio qui correspond aux critères (même key et/ou même envelope). Ensuite, on met ce warning si plusieurs Line qui correspondent sont trouvées et on prend la première par défaut pour mettre le amount venant de Finary/RealT. Soit c'est une erreur de l'utilisateur, soit les critères ont été mal définis...

Je te tiens au courant quand une idée me vient !

nmathey commented 1 year ago

Ben écoute oui les comptes semblent bon pourtant.

Par contre justement la key aujourd’hui indique soit l’enveloppe (account sous finary api) ET la ligne/produit (id key sous finary api).

Peut-être séparer les deux identifiants un pour l’account et un pour l’id tout en étant optionnel pour rester simple dans le cas de portefeuilles non complexes?

gierschv commented 1 year ago

Hello,

J'ai eu le même problème lorsque j'ai voulu setup mon portfolio, ça prenait uniquement la première ligne qui correspondait au le nom de la ligne (par exemple un ETF que j'ai sur 2 AV), et du coup le total du portfolio était pas bon, uniquement la 1ere ligne était prise en compte dans le total.

La solution que j'ai eu a été de rajouter les enveloppe sur chaque ligne, ça fonctionne super bien depuis, pas besoin de mettre les ids. 👍

   │   │   │   │   ├── ‣ X € 59% [BNP] Amundi S&P 500 UCITS ETF                                    
   │   │   │   │   ├── ‣ X €  5% [SP2] Amundi S&P 500 UCITS ETF