From d69ddb02a563bb4304c08a70e41d37a899493ca1 Mon Sep 17 00:00:00 2001 From: Melora Hugues Date: Tue, 19 Dec 2023 22:28:16 +0100 Subject: [PATCH] Add article on action portfolio with firefly --- config.toml | 10 +- .../firefly-action-management/euronext.png | Bin 0 -> 24102 bytes .../posts/firefly-action-management/index.md | 152 ++++++++++++++++++ 3 files changed, 157 insertions(+), 5 deletions(-) create mode 100644 content/fr/posts/firefly-action-management/euronext.png create mode 100644 content/fr/posts/firefly-action-management/index.md diff --git a/config.toml b/config.toml index ed4e03c..428a81e 100644 --- a/config.toml +++ b/config.toml @@ -92,11 +92,11 @@ logoText = "Hello there!" logoHomeLink = "/fr/" [menu] -# [[menu.main]] -# identifier = "blog" -# name = "Blog" -# url = "/posts" -# weight = 1 +[[menu.main]] +identifier = "blog" +name = "Blog" +url = "/posts" +weight = 1 [[menu.main]] identifier = "about_me" diff --git a/content/fr/posts/firefly-action-management/euronext.png b/content/fr/posts/firefly-action-management/euronext.png new file mode 100644 index 0000000000000000000000000000000000000000..65997ff1774f2852a9db32ace002cba907df5dad GIT binary patch literal 24102 zcmZU5V|b+7(sq)Wm=oK!ZBNXOZQGnA6JuiAp4ggL9ox3;FZ-N#@3XJ#`_WJ1S-pC# zs#UtHs>2lIB;aANVL(7Y;J-_XDuIA}4gGwb0|oJUHOo+o_j9cb zgMb49LJ0C*R7k}=<8;l<8@GR{`)Wg1@uEX(ykn>~3Wt7i5tES}N$Luh{{OrU;;bVTB>m_1)Zll2$^RP}gp?N(4-)&&P*DOidrxUu zM-AA2rn{94pU&Nm{vulZ^{3oQtl^F7KewQ!#Ol#MrY@c8FqXg3*5VObR;XA!X0JgE zHxvIeDD-@e8KPje-<&mVo7)BoH4~e#_8aE3JvkKVPUt_2B5F-C-RY7mq|C{!=TewO zCA0(#nd(dKBydias#@KBFzkf=Z!CAbp^<)cM~dvuWcGkyEa0I!kx)^`U$VUXJ6C1x zLA76PrYweVXrmMSDCdmq|7|W*_u@)Tz$P4vN=j$3IFT^6%3yc$sE6pEg+fhvu@T6s zJOsRz#8f>c72A^M{%aTOgW^?rfTENmY}48XCXx;TQt33Bc$$s0 z(G~z}E~Nz!M){i~K}dW-dHO7pyXN0Kb!ILSip-TFa{fp5phNhy0HJY1K2ChG0xNuJ zZkJR~Ea88#?1i=8`Ph(8^UcqQV>O?rBVb?kpI;XaT`%(Oe>VNt=w7!c)KP9JGLH)i z{vWkGtCe?nmMwa+k_?D-A{I`RkiP%=7ymIVwHr?B-6u+MGO?eg*fx|bO2Fa8l9>Lt z_CuFrLvEM+U~5^Hy1fKkQCXH*YqNUvf9)+}o-tU`f=Ogdw_XCWcp#QFRh#^u1x%f= z#av}D2M-PS=M{YuOq!Yi6H}um3ug&z#Um(ErSK>wrv%{NF`ze($wZop2`c#y!?TH&OU#_2yJ$4A}o%GV0gfzDc=B4~3PPyaaX zlmjXip(lq^ledCH8g$qOr;FIw^_wl~$&POK=FUsK(}AJ9vDlt)LP}o+3Y4C1!Y=bq z+Q4g*?{;z;BYB_aeO_pr`0$lTg@E=?wIG5l9cTAGjZN!wwebfOooi--qUgREu3${zsn8l5K|l})1{d9CXmCLSqP`IoL83t*ctfI(PPbf zINHOCD2Lvv2&n9>FmG;6gTAaL;%<#3`Vx`yOGT!=X}%FpUD$oAGq-}>P4-3JU~DI~ z>7M0I#*bJ9qtTZmql@+~cN)0G+*izeapj!HeG{!S6Q7Pf6x`u^%Cj{drtJnZa;u_+ z>I^}XwNCy=m_{;`j?BXybO+h$^6<3WN8Vhdx_A>UyKgmjJtcfvqr-#aMpYg^11H8! z4VOlTF`gkyxFOq);RUQzG0rs&eLbN)W!<`jOqyvXcCIwE-n)0XJn6ItR_=URBJWjE4k~un8!Ny_FxR8c|#b>FWDJ>?d0S+s+@;6MPB#y%if4B^9fJ(qT{T7oyi! zX=41I{;}4}uM4uYWI6dAB^32rw1&5cCWrn=x1w8sU;VErOU7kaaPxtH)c)(jmBkd@ z=>GBS9-{%rr4qu`IoAEIj-(yX9`{5HrBFl?VEPD}Nc)L6a(hS8SOKj2V>=3fOtP9rseKKsAuS!RP}Hl2^?P^UA^_THVh0vs5&7Z6B;( zyuqUb!CQsPOACDYlph;0uPR(AZFX|xBc5?~2bG3?eJ#Aq6bKL0gBK_2f>5Ar{ky3h zSZ>2I^x&2O#hLQRgDN>i$71Q}IiGZG9yX6^yv@~Ohz~7tM4u(`RNk}*kusma-gWM zkbTp3YXF3zU8nCdNP|kXCCou_35P!d#2rT1JKxz7Z(-2XHuS~iQ-{RD8YTAXU2UvA z=$!7gw{q|RT7%Ud9YmX=ZLj6wL#jTQF7GPzc$;Bz#W^5lQFhRujE}#o3RySH5Z?O1 ziSOkK$G`wXyk=@Y#6EsH^6nDGd%tS_-U(FBQq2-Czuy{dihJ_nfCwq86ZY8It66>6 zFlRqlL>OBvpiOfo)R@p-y{w&CvUCc}c)AZ07FT$Rj<>k~AB=2;*huB5BcwnFHl7my70;&o!cofzx+b{lhR z>ycfp`rBjJbN--(WxxGuEL@GV))yW&ChhbC9*sd94t`KQ4!Ew3rfkX`Qm%u=%L;?2 z>8Ce02LTa{Gd%0?T_&78?=S#!b^>0EU~CsQWOAaE=0}vLCSTF^>CBfG)sW|q_}w~s z?s$N-30reZ+k6bIB2*|&->lPim}^5rN8rf-7JoL4?i8um5tTraoTe=OOU#0PWSB{) z#M;X>bObRKRT$R+1hW#)1P^+oH?ufD0U8pi_5=QQHdvDwyb(GG6~&_X-;c+ zk``Dn>ZJc^!^n3KGKxrS&XBSmX;W4aRuRkQbZMV1D5r1kucr6v^ zdK#&J#&9tq4Gf*}DVO}N zk5s;F8hkh`%n^BMmZg^du`OznH%PI0`5#Sj$(|`}I4o4Pvu@rZQD>-NmAW`KI-_Y# zy;CiJgm|1QwGlJTljUCtiz1=OD>tDa?*WSR@~1&a9VuT!Gx8LEyC{SNibSz~f%L-~ zaMI;@TmetS=(l7 zKPO^*OHGru)!?##WUsqd0C(F+5#6P7n~xSay1y@M7H4ej!g)ckGYab$-3)a%g!gZ_ zdnlaYdI&Q=^I0w%eDCaEDmA+=kG@4T8#dE%#_mUx=P0SH>W4X;qU4YL(XVcdDc@8aL?;mZ267wts8+rjB5@mHy@4(&CMe zyFH1ETg}|YLSkj5aJFf5$*K}b_}2J(aunLq_v^kcmAE^VL<5{$i<{({3^}bG%D9iTjEEos1A4AZMHp|`9DzN8M zTcRf*Iv@_;AS`RA7nAkAe;0zlxkt@w#yYn1WuunIH8@-UV$H1>xV@#@loqxf-2|DC zEopKRn{O>&-pDsSt_jSNg_JC1-@Leps4hpSY)vbh5m@E+BMx*?!CRY%<14jRcM3Hs zgZ-AfPKoefLTF%4>zi1(oBAq=ujKb-B}}h4lQb%UOSODSO%gq|%S zu>jxt;$4-aEZD&A<-dh4rd07w6+Grq9fDORUilUiK1X9*1(0CRTU@KbvwV-QwRfn! z^&5{pdV^}PF!M}_O+~PH2p*Wed3kFD>hr0fYw15RFn>Qx}^93Tua{tv1g34Qb(U{-~6J{vnD@^0FdaxflmAGyR44ngQ)hCzzPFVl^ zH3Cqiki)UuPBkl|ngB?0)W1RR)NGIPDbgn&$CUeXWVD6GFfhTL943@#t7HWM+m_cjnd?0xrBy*}>>C#~yoz@+g4I%@M4}q?A_MAqA|% zY6c^Qy<>2mi&u@)GNf|HZN$MszKvB%X7N7Wst$IkE`+@$smq6sH zYxI!i1@nWZ2Id4WTMB%osQhX`M60$0FHzfS8A*$B+1|8TF-la#^Q;9aas@^t%Q`eEp9WK7zjGHcR z%#$tb5RBo05Flb}p!&G)<$RvNpX2Sv$YY6Xol_zj!}I5c!*r(liJDkw?)F4&Y_?RR zB10fUZQe`4>OkF+?Y&~n&UpXpiif|aFwTFXwdGMd<}jWrftkv~;oG3-lo37>Yd+u4 zh&`(k@@pt+c#Qbv5h4>U->!JWcq0650=kEi=I-!TU=Qsx8R*0$v8kSShSgy5j0qwG zD<7m%`|m~g3Uw@YHvu=ex+cd2aRnt9dF|8QHGxIgNy-9(yIhs>zOINWVoN#7QRTCP zCq=lzF-$d|{g7^IZ2mX-%U3*AT6aTp3dm4YCFPE@=p3+1T=z%}+hOtn-D*Yv(_1iK z0($gTW+24Mpz@3Z=N#;4kRi_Spx5VqWS@Pt{rtLE)?kQ$^wZTrNIofFLq3hzRB9A- z3a|S6lDX~M3y3eLIR&S2M3F)&%FqHq%>KL@@}l~pYAl-DbS>UjKqQ$qXJdZ$1F4TuUcqIRaPP$IVjq*aX{5ISfF<6HwCc$E@Ph21?!ME(8Y<(2F-0I-1au-_(ftYG4MjLU06csi0yvy6AaYrNd0Fbne>7n{JbuP+*kzvG(* zkB6t?VOWs05E(UV+rK+8noO*9LD;4HP2f*L{EamH3ARN{fM} zX(nySAWSZb8Z%k9*2L-cLx*(ATi$Q7lX4rpdg}2$Czv*Y_F3+a+ZqHiL*~1`mfJu! z-2PmB5hi+Qbn4R7K$3po9`R7_t%oM##9p0MMSXCjZ?pOIIG3a^*OpkHDH4oUPwjZV z*B=jDqxHP96HPeO+K>OdqY)WybW=b}3<`p2BMAk1|5t`Txfz<&$^{uKeB26kKezmx z89cFR)c$;{Ym24kDrFDVeW(oFU3&3&iB%EzS_z{swf&S)83%bOU^&)OJ8_0g8xsxu z#iHXuQCUNn@cBHW>oV`W%k7p&2EoD`r1XK-*ag92Ki?WUF4!a#Zt8@68&@=HcoY2Q z&!3$M%RHoMv0u92wxa0hT?1{yrJ-lyWL(u6cy4U|KJ7%B$Lklr0P^go_rFsaH4YSq zGMkE6N)nIc&Y7@y9c=i0UB%T^@SqHwJVLaVEvOOtuP-XA?j^1$$p~)@w*W8V( z_fl}Bm&*B;-Vr1MGeY(G`Ic(w$4^J^RroN-v!5(XEfpz0UMb^bAhAkxo-=nj0(rVB zlWrA~%qU%Nc&UPwOd~6gjq+tGBHM2nF)j#t$qly%MArHS$#kOw@EJx*1Jk1o6 zaYj4b2eJPxkx0eI^B}Qo3-L1PA{MO3DAJh|KaEN@r#CK0`1Qk$&zM9()0QSKq z%idBR?gf46T#*W<)Et-CQv2MV^@Ik0L>V9yHT+oV#w~)l?@%NUH~Z$c5ih)M^|qvB z_+d8#@caNfZ{tWbrXXhdw=_EG;1JdZUH$gci~tR^gilVn=HYSgYx)w9DIQJ{0m1$m=8 zg>eo$#i+aQtbx*US(u426u2@? z_U|2i&G=z*K4I&Lz<>>uw&FXb2!V*q<>K}9B7bWo7OLO>6ATZUu(H-AzFDFzo*mY3 z=Jl(V#DVw5R^WclxdOj|+28G*Kj7Hw;cA7`Dm}pVlUP1U0N8Z3Ji1kcQgD5jA1R{E zn_vm4H8zNuZUy|6xbH9g%MTRC`vb>2n`@AYxO6s)S+@5-*g>puP6^TDMGH7iK4ECgf(L58kgw46m&_lp18Fk-l5E z^8Cpy9P2}>JHi$%C-({8grN)~zJ_u~2?L9Scwh1v5E(uOHBqP57sP-jpMeST}&v#r?yx(5& zOQqw5E(fr>(n}jHglB8mpGdcVTz&;hMEDO4)fON^;XHV6bamelVFrD1dvydn8?^U3 z#iDc9i%<2zCcKe_I|DEF!)xM3FL=B6V(%%kT_S}C_8Ael)!AeTVn-vJJ6|f5XyEt9 z{rc@o;=x$pXQc%AeFb8hixF9Xbq7tk7t{J{3*!M?Fqqms=E0UU=77aZHcdm?5wtBG zEj?NC_G|p*dE|pHeE%Wq%n;8rHwOoV6Dn#ZkFO^RnJFx`sa!$l09}uWMmp|6UzDWR zvGRAGM`R8*SOh9=w^to!m05tnG%IUm23=eB9f$yV@J)DK^AZ@$;d+N;9p{_&_P z%&)Z1Icb6Ieh(zCUh=AM7CJ%~=YiEV!PD2871-tt6dLc_Z@eh1*#TUqeux>G2<%Qz$DL^DO`{^IiQr1kw9`5Ac>tAE+ejKi=J0U;NAG$WRkfkJ0@t zq<wF!8}6{B?R zW{!$XHIzqw8ZwDp-X&-m4aN3bA=FaxmleuZP4czo5FSW3gL8ri3>tQirR?=0^IL*s zX>Yxb@;Nx`C!*Ly1VGZ4Nv~vrMc`3+ zZf0dN*@Eo1yPYy4#gk)#yq-|%2iOQWk&85eCAoSlH11bT9^Gsh*n@la^0e3%ChL2crs_p;!}X{t7ynP;nb+g3Cc!#buXo7eXB+%t0JY+k4+XHFN} zuq{a+`57Gw`!Ob;zVO>*lz4w_mLU20L}}zfpk{R5MNS~JO+c@2nJwbvgKqNz<7Gk5 z7Bx~tf^oJKvX#0tyS-bQ#;L{}X5g1X0PdQfCX4!Gzo*pk${EY?!WxTM#|8PBu; z!5_W{d9NELz^DUjc`TyVbk9h<{U&1TUes|9{&&?qgg9cRS5 z&KK{;+8_{4v!qB?lfHAlTaq^~xL|Tr*SvbX;v%0Ai>5> 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 literal 0 HcmV?d00001 diff --git a/content/fr/posts/firefly-action-management/index.md b/content/fr/posts/firefly-action-management/index.md new file mode 100644 index 0000000..e5b3600 --- /dev/null +++ b/content/fr/posts/firefly-action-management/index.md @@ -0,0 +1,152 @@ +--- +title: "Gérer son épargne en action sous Firefly" +date: 2023-12-19T20:10:42+02:00 +draft: true +--- + +## Problématique + +## Gestion du portefeuille + +### Valeur d'une action + +Comme énoncé précédemment, la valeur d'un portefeuille d'actions dépend de la composition de ce portefeuille +(donc de quelles actions et en quelle quantité), et de la valeur unitaire de chacune de ces actions. + +Cette valeur unitaire est définie par les marchés financiers et varie continuellement. On considère +que la valeur d'une action est le prix du dernier ordre d'achat passé pour cette action sur les marchés +financiers. + +{{< callout type="example" >}} +Considérons la valeur "MSCI World" (un ETF trackant les valeurs des plus grosses entreprises dans +le monde entier). Au 10 décembre, les marchés financiers s'ouvrent avec la valeur de 27.13€ par part +pour cette valeur. à 9h05, une personne passe un ordre d'achat de 15 actions au prix de 27.17€. Dès que +cet ordre est exécuté, on considère que l'action "MSCI World" a la valeur de 27.17€ par action. +{{< /callout >}} + +Dans mon cas, je n'ai absolument pas besoin d'une mise à jour rapide des valeurs, une mise à jour +quotidienne est largement suffisante pour mes besoins, et une mise à jour hebdomadaire pourrait même +convenir à vrai dire. + +J'ai choisi donc de considérer pour chaque action, sa valeur au moment de la cloture des marchés (17h). +Mais comment calculer cette valeur ? + +### Obtenir la valeur d'une action + +#### À la recherche d'une API + +Pour le reste de cet article, je considèrerai l'action "MSCI Monde" en titre d'exemple. Avec un navigateur, +on arrive facilement à obtenir les informations que l'on veut : +- La bourse européenne (Euronext) nous donne accès à son [cours](https://live.euronext.com/fr/product/etfs/fr0011869353-xpar/lyxor-msci-wor-pea/ewld) +- On obtient facilement les mêmes informations sur [Google Finance](https://www.google.com/finance/quote/EWLD:EPA?hl=fr) ou [Yahoo Finance](https://fr.finance.yahoo.com/quote/EWLD.PA/profile/?guccounter=1) + +Cependant, il s'agit d'information destinées à un visionnage humain, aucune API n'est publiquement +disponible pour obtenir ces informations de façon automatisée. + +En faisant des recherches sur le sujet, je me heurte rapidement à deux problèmes : +- soit je trouve des services gratuits, mais limités, soit en quantité d'appels (5 appels par jour par exemple) +soit en fonctionnalités (pas d'ETF) +- soit je trouve des services... chers. De l'ordre d'au moins plusieurs dizaines d'euros par mois, ce +qui est complètement en dehors du cadre d'un projet de ce type. + +De plus, la majorité des API disponibles sont basées sur les marchés américains. Étant dans des marchés +européens, il est encore plus difficile d'obtenir les informations voulues. + +#### Scraping d'Euronext + +Finalement, la solution la plus simple revient à faire du scraping d'un site pertinent (cela expose +aux protections anti-bot, mais je n'en ai pas vu sur le site d'Euronext que j'ai décidé d'utiliser, +et le volume de requêtes est en pratique très faible). + +Mon point de départ est la fiche d'une action: prenons notre habituel [MSCI world](https://live.euronext.com/fr/product/etfs/fr0011869353-xpar/lyxor-msci-wor-pea/ewld). + +Toutes les valeurs intéressantes se trouvent sur un bandeau de la fiche de la valeur. Ici il s'agit du +*dernier cours traité* de 27.188€. + +![Bandeau des valeurs de l'action MSCI world sur le site Euronext](euronext.png) + +En observant le contenu de la page web, on obtient d'ailleurs ceci : + +```html +
+
+ + 27,188 +
+
+``` + +Il suffirait donc de faire un petit script de scraping accédant à l'élément possédant l'id `#header-instrument-price` +pour obtenir directement la valeur voulue. Mais on peut faire encore mieux en observant les requêtes +AJAX effectués depuis le navigateur. + +Une requête en particulier est intéressante, puisqu'elle interroge la route `https://live.euronext.com/intraday_chart/getChartData/FR0011869353-XPAR/intraday` +et renvoie un tableau JSON ayant la forme suivante (le tableau est tronqué, mais contient plus de 1000 éléments): + +```json +[ + {"time":"2023-12-12 17:29","price":26.879999999999999,"volume":11}, + {"time":"2023-12-13 09:04","price":26.974,"volume":1888}, + ... + {"time":"2023-12-19 17:35","price":27.187999999999999,"volume":32} +] +``` + +Chaque ligne du tableau contient un ordre d'achat passé au cours de la journée. La valeur intéressante +correspond à la dernière ligne de ce tableau : il s'agit du dernier ordre passé, et correspond donc +exactement à la valeur affichée sur la fiche de la valeur, et est donc la valeur que l'on souhaite +obtenir. + +À partir de là, la fonction Python suivante est suffisante pour obtenir la valeur d'une action donnée + +```python +EURONEXT_BASE_URL = "https://live.euronext.com/intraday_chart/getChartData" + + +class StoredAction(NamedTuple): + name: str + value: float + date: str + + +class Action(NamedTuple): + name: str + code: str + + +def get_last_value_for_action(action: Action) -> StoredAction: + url = f"{EURONEXT_BASE_URL}/{action.code}/intraday" + resp = requests.get(url) + resp_json = resp.json() + if len(resp_json) < 1: + raise ValueError("Empty list of values") + last_value = resp_json[-1] + try: + return StoredAction( + name=action.name, + value=last_value["price"], + date=last_value["time"], + ) + except KeyError as exc: + raise ValueError("Invalid format for response") from exc +``` + +Il suffit de trouver le **code** associé à l'action voulue. Je le trouve à partir de l'URL de la fiche +produit de l'action cherchée. Dans notre exemple, il s'agit de `https://live.euronext.com/fr/product/etfs/fr0011869353-xpar/lyxor-msci-wor-pea/ewld`. +Le code est donc `fr0011869353-xpar`. + +{{< callout type="warning" >}} +De façon surprenante, la deuxième partie du code est sensible à la casse et doit être en majuscules : +- `fr0011869353-xpar` ne renverra aucun résultat +- `fr0011869353-XPAR` renverra le résultat attendu +- `FR0011869353-XPAR` renverra aussi le résultat attendu +- `FR0011869353-xpar` ne renverra aucun résultat +{{< /callout >}} + +À partir de ces éléments, il m'est donc possible de calculer la valeur de mon portefeuille à partir +de son contenu. Il me reste deux questions à résoudre : +- comment stocker le contenu de ce portefeuille, et le mettre à jour à chaque fois que j'achète une +action ? (ou vend) +- comment mettre à jour la valeur totale de mon portefeuille telle qu'elle apparaît sur FireflyIII ? + +## Lien avec Firefly \ No newline at end of file