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
68 stars 13 forks source link

Using 'Line' with account name as 'key' only sum up first object #107

Closed nmathey closed 1 year ago

nmathey commented 1 year ago

Hello,

Je me suis enfin posé pour construire proprement mon assistant_config.py et je me rends compte que quand j'utilise Line avec comme key le nom d'un compte seul la valeur du premier objet marchant ce compte s'affiche et non la somme des valeurs de ce même compte.

Ma config

Folder(
 "Stocks market",
 target=TargetRatio(55),
 children=[
      Line("CTO - IB", key="CTO - IB"),
      Line("CTO - Revolut", key="CTO - Revolut"),
      Line("AV - We Save", key="AV - WeSave"),
      SharedFolder(
           "ETF - AV Linxea Avenir",
             bucket=bucket_etf,
             display=FolderDisplay.LINE,
       ),
      Line("AV - MPP", key="AV - MPP"),
  ],
),

Le rendu: par exemple 115 est la valeur de ma position de la première actions sur mon broker et non l'ensemble de toutes les actions pourtant bien récupérées de Finary.

↗ 2901 € Stocks market 44% → 55%                               
       │   ├── ‣  115 € CTO - IB                                          
       │   ├── ‣  445 € CTO - Revolut                                     
       │   ├── ‣  450 € AV - We Save                                      
       │   ├── ‣ 1753 € ETF - AV Linxea Avenir                            
       │   └── ‣  138 € AV - MPP 

C'est ok pour le ShareFolder car j'utilise un 'bucket' pour séparer les fonds euro de mes etf sur mon contrat AV Linxea Avenir

nmathey commented 1 year ago

J'ai trouvé l'astuce en attendant via les enveloppes. Ca fait plus de code et moins intuitif à la conception du assistant_config.py mais ca fait le job.

Déclarer des enveloppes pour chaque compte souhaité puis créer des folder en les affichant en ligne simple. A savoir que la date début est obligatoire pour l'enveloppe "générique" qui dans le cadre d'un CTO n'est pas nécessaire/utile. Peut être un correctif ici ?

cto_ib = Envelope("CTO - IB", "CTO - IB", date(2021,5,1), key="CTO - IB")
    cto_revolut = Envelope("CTO - Revolut", "CTO - Revolut", date(2017,5,1), key="CTO - Revolut")
    av_wesave = Envelope("AV - We Save","AV - We Save", date(2017,5,1), key="AV - WeSave")
    av_mpp = Envelope("AV - MPP", "AV - MPP", date(2021,5,1), key="AV - MPP")
Folder(
  "CTO - IB",
  envelope=cto_ib,
   display=FolderDisplay.LINE,
 ),
Folder(
 "CTO - Revolut",
 envelope=cto_revolut,
 display=FolderDisplay.LINE,
),
SharedFolder(
"ETF - AV Linxea Avenir",
bucket=bucket_etf,
display=FolderDisplay.LINE,
),
Folder(
 "AV - WeSave",
 envelope=av_wesave,
 display=FolderDisplay.LINE,
),
Folder(
 "AV - MPP",
  envelope=av_mpp,
 display=FolderDisplay.LINE,
),
MadeInPierre commented 1 year ago

En effet les Line ne peuvent contenir qu'un seul investissement, il faut forcément passer par un Folder pour en mettre plusieurs. La key ne fonctionne que pour matcher une seule ligne. C'est donc le combo prévu :slightly_smiling_face:

Même si ça prend plus de lignes, je pense qu'il vaut mieux bien séparer les fonctions.

Je crée une issue séparée pour rendre la date de création facultative !