Menu Fermer

Gestion de portefeuille complète : GoingStrikerBot V2.0

“If you aren’t willing to own a stock for ten years, don’t even think about owning it for ten minutes. Put together a portfolio of companies whose aggregate earnings march upward over the years, and so also will the portfolio’s market value.”
Warren Buffett

Salut chers Quant Wannabees !

Après de nombreux travaux et de nombreuses recherches, j’ai enfin implémenté une stratégie qui passe avec succès l’épreuve du backtest. Détails ici : Stratégie gagnante : le Come-Back to the fioutour !

Malheureusement, le GoingStrikerBot tel qu’il a été conçu depuis le début était fait pour faire du backtesting et trouver une telle stratégie, mais pas du tout pour la faire vivre. Pour cela, il faut tout un ensemble d’éléments qui tiennent de la gestion de portefeuille complète : gestion des ordres, transactions, calcul des prix, des performances, suivi de la valeur du portefeuille par actions…

Une grosse partie de mes travaux de l’année dernière a donc consisté à mettre tout ça en place et je vais vous présenter à quoi ressemble maintenant le GoingStrikerBot V2.0 qui me permet de faire une gestion de portefeuille complète qui suit la stratégie gagnante que j’ai implémenté.

Gestion des données référentielles

On dit souvent qu’en investissement, les données sont le nerf de la guerre. C’est une affirmation on ne peut plus vraie. Je détaillerais ce point dans un autre billet, mais 80% des problèmes que j’ai eu lors du développement de la stratégie étaient dus à des problèmes de données.

Après avoir choisi un bon fournisseur (EODHistoricalData en l’occurrence), j’ai mis en place quelques systèmes automatiques de récupération des données. J’ai également du recréer une toute nouvelle interface qui permettrait de les gérer de manière effiace au jour le jour. J’ai utilisé le FrameWork XAF de DevExpress. Je ferais un autre billet dessus (ça fait beaucoup de futurs billets déjà prévus ça :)) car ça a été pour moi une révolution technique.

La gestion des données référentielles, ce n’est pas compliqué en soi… C’est juste du CRUD en base de données, mais il faut qu’elles soient propres sinon c’est l’anarchie… Si un mapping n’est pas bon, ce sont les prix qui ne seront pas bon… et si les prix ne sont pas bon, ce sont les performances qui seront pas bonnes… et là, tout s’enchaîne, c’est la cata 🙂

Même si j’en ai intégré d’autres (dont je ne parlerais pas ici), les plus importantes sont :

  • Les places de marchés : tout simplement parce que ce sont elles qui contiennent les instruments sur lesquels on veut traiter
  • Les instruments eux-même : qui sont la base de la gestion
Ecran de gestion des instruments


L’écran des marchés a à peu près la même tête, une image supplémentaire n’est pas nécessaire.

Typiquement, ce genre d’écran est important pour gérer les secteurs des sociétés. Comme les secteurs sont utilisés pour la diversification, s’ils sont incorrects, ça peut amener des décisions non pertinentes.

Les cours

Je pense que ça coule de source, mais pour suivre un portefeuille, c’est quand mieux d’avoir les cours des actions sur lesquelles on traite 🙂

Ecran brut de gestion des cours


Je vous accorde que vu comme ça, ce n’est pas le plus pertinent et le plus parlant.

Mais DevExpress XAF possède un système de DashBoards qui permet de créer des écrans récapitulatifs sous la forme de graphes et / ou tableaux.

Vrai écran de suivi des cours


Voilà, c’est quand même un peu mieux.

Grâce au système de DashBoard, il est possible de mixer forme numérique et graphes. Ces derniers peuvent avoir différents horizons de temps comme sur l’image. On peut également calculer automatiquement quelques indicateurs pertinents, comme la performance annuelle ou journalière.

Gestion des transactions

C’est le dernier élément indispensable à la gestion de portefeuille.

En ce qui nous concerne, nous allons simplifier le concept de transactions, et les définir comme l’exécution d’un ordre (ou une partie) au marché.

Gérer les ordres dans la plateforme n’est pas indispensable, mais on ne peut pas couper à la gestion des transactions. Car ce sont les transactions qui déterminent les positions, leur prix de revient, et donc les performances sur une action donnée.

Pour définir une transaction il nous faut :

  • Son type : savoir si c’est l’achat d’une action, sa vente, des frais de courtages…
  • L’instrument : si c’est une action, laquelle est-ce
  • La quantité
  • le prix auquel la transaction a été effectuée
  • et des éléments optionnels comme l’ordre s’il y en a un par exemple

Dans la plateforme, la saisie des transactions est manuelle. Si le broker choisi possède une API sur laquelle il est possible de se brancher, on peut les récupérer automatiquement, mais dans mon cas, il n’y en a pas.

Ecran de reporting et décisions

Les écrans présentés ci-dessus sont plutôt des écrans de contrôle ne servant pas réellement à la prise de décisions.

Pour cela, il a des écrans spécifiques utilisant le système des Dashboard

Ranking

Si vous avez bien étudié notre stratégie gagnante, vous devez savoir qu’elle propose un certain nombre d’actions avec des valeurs “d’inertie”. J’ai donc créé un Dashboard permettant d’avoir une vision synthétique des inerties, accompagnées des cours de l’action concernées.

Ecran de Ranking des inerties


C’est beaucoup plus parlant avec un écran de synthèse de ce genre plutôt qu’une simple valeur numérique

Suivi des positions et performances

Une position correspond à l’ensemble des instruments identiques. Ex : si j’ai 180 actions Total, j’ai une position sur Total de 180. C’est aussi simple que ça. Et l’ensemble des positions constitue le portefeuille.

Et pour suivre un portefeuille, il faut un écran de suivi des positions. C’est fou, tout concorde 🙂

Les informations que l’on y met sont arbitraires et dépendent vraiment de ce qui nous intéresse, mais ils y a quelques éléments sur lesquels il est dur de faire l’impasse :

  • Instrument
  • Quantité
  • Prix de revient : c’est la moyenne pondérée des transactions concernant un instrument donné.
  • Valeur d’achat
  • Valeur courante
  • Performance courante
  • Performance par rapport au portefeuille total
  • Valorisation du portefeuille

En ce qui me concerne, je l’ai fait via un DashBoard, sous la forme d’une Pivot Table, qui est l’équivalent d’un tableau croisé dynamique dans Excel. Ca me permet d’avoir également des agrégations qui m’intéressent.

Ecran de gestion du portefeuille


Voici les éléments indispensables pour pouvoir faire une gestion de portefeuille correcte.

Dans la plateforme, j’ai également implémenté d’autres fonctionnalités, mais qui ne sont pas aussi indispensables que les éléments décrits dans cet article.

Comme vous pouvez le voir, il y en a eu des évolutions par rapport aux derniers screenshots 😀

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *