Titre : | Optimisation d’un Framework de calcul des indices propriétaires et développement d’un outil de backtesting | Type de document : | projet fin études | Auteurs : | Khalid AMMARI, Auteur | Année de publication : | 2016 | Langues : | Français (fre) | Catégories : | Génie Logiciel
| Mots-clĂ©s : | Structuration indicielle, stratĂ©gies d’investissement, optimisation, donnĂ©es de marchĂ©, backtesting, MongoDB, Python, extreme programming. | Index. dĂ©cimale : | 1666/16 | RĂ©sumĂ© : | Ce présent document représente la synthèse du travail effectué au sein de l’équipe de structuration indicielle de Société Générale Africa Technologies & Services dans le cadre de mon projet de fin d’études. Ce projet vise à optimiser un Framework de valorisation d’indices propriétaires, et de développer un outil de backtesting de stratégies d’investissement qui réutilise au maximum les méthodologies de calcul déjà implémentées dans le Framework.
Pour ce faire, il a fallu d’abord étudier le système existant, et développer des outils qui permettent d’analyser son fonctionnement afin de découvrir des pistes d’amélioration, et des outils pour s’assurer que toute modification ne causera pas de régressions. Nous avons ensuite exploré toutes les sources possibles de données de marché pouvant être utilisées dans le backtesting, et nous avons mis en place une base de données MongoDB pour le stockage de ces données, ainsi qu’un outil qui automatise leur récupération quotidienne. Puis, nous avons développé l’outil de backtesting qui contient tout ce qui est nécessaire pour faire des simulations : des classes pour le chargement des données, la gestion des calendriers, la récupération et la validation des paramètres, l’analyse des résultats, etc. Nous avons implémenté un ensemble de méthodologies de calcul, soit en réutilisant les classes qui existent déjà dans le Framework, soit à zéro pour challenger l’ancienne implémentation et éventuellement découvrir des possibilités d’optimisation.
Au terme de ce projet, nous avons commencé à présenter l’outil de backtesting à d’autres équipes et à demander leurs opinions, afin d’améliorer l’outil et couvrir la majorité des cas d’utilisation.
Etant de donné que Python est le langage de préférence au sein de l’équipe, nous l’avons utilisé dans la plus grande partie du projet. Et comme méthodologie de travail, nous avons adopté extreme programming principalement car elle est adaptée aux équipes réduites avec des besoins changeants.
|
Optimisation d’un Framework de calcul des indices propriétaires et développement d’un outil de backtesting [projet fin études] / Khalid AMMARI, Auteur . - 2016. Langues : Français ( fre) Catégories : | Génie Logiciel
| Mots-clĂ©s : | Structuration indicielle, stratĂ©gies d’investissement, optimisation, donnĂ©es de marchĂ©, backtesting, MongoDB, Python, extreme programming. | Index. dĂ©cimale : | 1666/16 | RĂ©sumĂ© : | Ce présent document représente la synthèse du travail effectué au sein de l’équipe de structuration indicielle de Société Générale Africa Technologies & Services dans le cadre de mon projet de fin d’études. Ce projet vise à optimiser un Framework de valorisation d’indices propriétaires, et de développer un outil de backtesting de stratégies d’investissement qui réutilise au maximum les méthodologies de calcul déjà implémentées dans le Framework.
Pour ce faire, il a fallu d’abord étudier le système existant, et développer des outils qui permettent d’analyser son fonctionnement afin de découvrir des pistes d’amélioration, et des outils pour s’assurer que toute modification ne causera pas de régressions. Nous avons ensuite exploré toutes les sources possibles de données de marché pouvant être utilisées dans le backtesting, et nous avons mis en place une base de données MongoDB pour le stockage de ces données, ainsi qu’un outil qui automatise leur récupération quotidienne. Puis, nous avons développé l’outil de backtesting qui contient tout ce qui est nécessaire pour faire des simulations : des classes pour le chargement des données, la gestion des calendriers, la récupération et la validation des paramètres, l’analyse des résultats, etc. Nous avons implémenté un ensemble de méthodologies de calcul, soit en réutilisant les classes qui existent déjà dans le Framework, soit à zéro pour challenger l’ancienne implémentation et éventuellement découvrir des possibilités d’optimisation.
Au terme de ce projet, nous avons commencé à présenter l’outil de backtesting à d’autres équipes et à demander leurs opinions, afin d’améliorer l’outil et couvrir la majorité des cas d’utilisation.
Etant de donné que Python est le langage de préférence au sein de l’équipe, nous l’avons utilisé dans la plus grande partie du projet. Et comme méthodologie de travail, nous avons adopté extreme programming principalement car elle est adaptée aux équipes réduites avec des besoins changeants.
|
|