Trading Quantitatif - page 34

 

Conception de haut niveau d'un environnement commercial local !


Conception de haut niveau d'un environnement commercial local !

Bonjour tout le monde! Je m'appelle Denis et vous regardez "Close to AlgoTrading".

Dans notre dernière vidéo, nous avons discuté de la structure commune d'un système de trading algorithmique. Aujourd'hui, je souhaite créer une conception simple de haut niveau pour un environnement commercial local.

Commençons par identifier ce que nous attendons de notre environnement. Nous voulons pouvoir ajouter de nouvelles stratégies et sources de données à l'avenir. L'évolutivité est importante, car nous nous concentrons actuellement sur le marché boursier, mais nous pourrions nous aventurer dans le trading de crypto-monnaies à l'avenir. Par conséquent, nous devons soutenir de nouveaux marchés. De plus, nous voulons la flexibilité nécessaire pour changer facilement les composants du système.

Examinons maintenant la structure globale de l'environnement commercial.

Les deux composants principaux sont les données et le système commercial. Nous voulons également inclure une interface utilisateur pour contrôler efficacement l'environnement. Comme bloc supplémentaire, considérons l'incorporation d'un système de simulation.

Le composant de données pilote l'ensemble du système. Au départ, nous prévoyons d'utiliser les données de notre courtier et les fichiers sur le disque dur. Cependant, nous pouvons décider ultérieurement d'accéder à différentes bases de données et agences de presse. Étant donné que nous voulons prendre en charge plusieurs sources de données, nous devons prendre en charge différents pilotes.

Les pilotes fournissent des fonctionnalités simples telles que la lecture et l'écriture de données, l'ouverture ou la fermeture de connexions, etc. Cependant, nous ne voulons pas que notre système de trading interagisse directement avec l'API des pilotes. Pour résoudre ce problème, nous introduisons une couche de gestionnaires de données.

Les gestionnaires de données travaillent directement avec les pilotes et implémentent des fonctionnalités logiques telles que la sérialisation des données, la désérialisation et la conversion dans un format spécial. Bien que nous disposions d'un ensemble de gestionnaires de données, nous avons toujours besoin d'une interface unifiée pour notre couche d'application.

Pour fournir ces interfaces, nous introduisons un Data Manager et un Order Manager. Le gestionnaire de données offre une interface commune pour travailler avec des sources de données, tandis que le gestionnaire de commandes fournit une interface commune pour l'exécution des commandes. En utilisant les deux interfaces, le système peut accéder à diverses sources de données et services de courtage.

Voici un aspect important. Nous définissons des composants qui fournissent une interface commune pour accéder aux sources de données. Cela signifie que si notre système de trading souhaite récupérer des actualités, par exemple, il utilisera la même interface, que la source soit notre courtier ou une base de données. Cette conception garantit que l'interface reste inchangée lorsque nous changeons de fournisseur de données. Par conséquent, nous pouvons ajouter de nouvelles sources de données ou changer de courtier sans perturber les fonctionnalités de l'application.

Maintenant que nous avons conçu la partie traitement des données, concentrons-nous sur le principal utilisateur de nos données : le système commercial. Si vous avez regardé ma vidéo précédente, vous connaissez les cinq blocs du système de trading : modèle Alpha, modèle de risque, modèle de coût de transaction, modèle de construction de portefeuille et modèle d'exécution. Ces blocs utilisent le gestionnaire de données et le gestionnaire de commandes pour accéder aux données et aux services de courtage.

Nous avons décrit les composants du système de données et de trading, mais nous devons maintenant définir qui contrôlera tout. Nous avons besoin d'un composant responsable de l'ensemble du système, une application de base. Cette application gérera la séquence de démarrage, l'initialisation du pilote et des composants, et implémentera la machine d'état principale.

Après avoir défini l'application principale, nous devons considérer l'interface utilisateur. Il peut s'agir d'une interface PC ou d'une interface Web, mais il est généralement recommandé de séparer le frontend du backend. Pour y parvenir, nous créons une couche de communication entre l'interface graphique et notre application principale.

De plus, nous devons inclure un composant d'enregistrement. Ce composant implémente l'interface de journalisation et stocke les journaux dans une base de données ou un fichier journal. Nous pouvons également utiliser un système de surveillance basé sur le Web pour suivre notre environnement, qui peut accéder directement au serveur de base de données et lire les données à partir de là. L'application frontale peut utiliser le gestionnaire de données pour accéder aux données et le gestionnaire de commandes pour interagir avec les services du courtier.

Enfin, n'oublions pas la possibilité d'exécution manuelle des ordres. Nous pouvons également intégrer cette fonctionnalité dans le système.

Bien que nous n'ayons pas approfondi l'environnement de simulation dans cette vidéo, il pourrait être mis en œuvre de la même manière qu'un service de courtage supplémentaire sans aucune modification du système existant.

En regardant la conception de notre environnement commercial, nous pouvons dire avec confiance qu'il nous permet d'atteindre nos objectifs. Nous avons divisé notre application en domaines distincts et les avons connectés via des couches d'interface. Les gestionnaires de données et de commandes fournissent des interfaces communes, simplifiant l'accès aux ressources. Avec cette conception, nous pouvons facilement changer de fournisseur ou de courtier de données et utiliser différentes interfaces utilisateur. Nous pouvons également apporter des modifications à des parties spécifiques du système sans avoir à mettre à jour l'intégralité de l'application.

C'est tout pour aujourd'hui. Si j'ai raté quelque chose ou si vous avez des idées sur cette conception, veuillez laisser vos commentaires et n'oubliez pas de vous abonner à cette chaîne. Rendez-vous dans la prochaine vidéo !

High-Level Design of a Homegrown Trading Environment!
High-Level Design of a Homegrown Trading Environment!
  • 2019.11.01
  • www.youtube.com
In this video I tried to create a high-level software design of a homegrown trading environment.You will see how we can split the system into different domai...
 

Environnement de trading API IB - QT C++ - Flask - Modèle RL. Exemple de travail complet.


Environnement de trading API IB - QT C++ - Flask - Modèle RL. Exemple de travail complet.

Je m'appelle Denis et je vous souhaite la bienvenue chez Close to Algo Trading. Aujourd'hui, j'ai une vidéo spéciale dans laquelle je vais démontrer comment tous les composants dont nous avons discuté dans les épisodes précédents peuvent fonctionner ensemble dans le trading réel. Vous pouvez trouver tout le code source sur GitHub et l'essayer par vous-même.

Pour cette démonstration, j'utiliserai l'API Interactive Brokers et mon ancien projet appelé IBTrader. J'ai commencé à travailler sur IBTrader il y a de nombreuses années mais je n'ai jamais eu le temps de le terminer. Cependant, j'envisage de renouveler le projet maintenant. Si ce projet spécial vous intéresse, faites-le moi savoir dans la section commentaires de cette vidéo. Alors, plongeons dans ce que nous allons faire dans cette vidéo. Nous commencerons par une brève mise à jour et un aperçu de notre environnement et de notre agent d'apprentissage par renforcement. Ensuite, je fournirai une introduction rapide au déploiement du modèle avec Flask.

Puisque nous allons utiliser une application Qt pour nous connecter au courtier, nous devons utiliser une API REST pour interagir avec notre modèle. Vers la fin de la vidéo, nous verrons comment toutes ces parties fonctionnent ensemble de manière transparente.

Avant de commencer, je vous recommande de regarder mes vidéos précédentes pour mieux comprendre les concepts abordés ici. Si vous avez déjà vu ces vidéos, vous vous rappellerez peut-être comment créer un agent RL à l'aide de la bibliothèque TF-Agent. J'ai apporté quelques modifications à la fois à l'agent et à l'environnement pour cette démonstration. L'agent est toujours DQN, comme nous l'utilisions auparavant, mais maintenant nous utiliserons QNetwork au lieu de QRnnNetwork. De même, j'ai simplifié l'environnement. Au lieu d'utiliser plusieurs jours de données historiques, nous n'avons désormais que l'observation des prix du jour en cours.

Cependant, se fier uniquement à l'observation actuelle n'est pas idéal. Pour résoudre ce problème, nous allons transformer notre observation d'un jour pour inclure trois jours historiques. Nous pouvons y parvenir en utilisant le wrapper d'historique du package d'environnements tf-agent et en définissant le paramètre history_length sur 3. Maintenant, si nous vérifions les observations de l'environnement, nous constaterons que nous avons trois de nos observations normales combinées. Chaque observation contient les données OHLC (open, high, low, close) ainsi que le volume.

Pour assurer une gamme cohérente, j'ai effectué quelques transformations, et maintenant nos données d'entrée doivent représenter les changements de pourcentage de prix logarithmique. Enfin, nous devons alimenter notre modèle avec trois observations : le jour courant et les deux jours historiques. Nous devons également nous souvenir des états de position des derniers jours. Une fois l'agent formé, nous aurons une politique qui peut prédire des actions telles que l'achat, la vente, le saut ou la fermeture de position. La politique est mise en œuvre à l'aide d'un réseau de neurones et nous pouvons utiliser une API directe pour travailler avec.

Cependant, que se passe-t-il si nous ne voulons pas coupler étroitement notre application avec le modèle de recommandation ? Ou que se passe-t-il si notre modèle est implémenté en Python et que nous voulons l'utiliser dans différentes applications ? Pour résoudre ce problème, nous pouvons déployer notre modèle en tant que petit service Web à l'aide de Flask. Flask est un micro framework web écrit en Python. J'ai choisi Flask pour cette vidéo car elle est simple et ne nécessite pas beaucoup de temps d'installation. Cela nous permet également d'utiliser JSON pour transférer des données entre notre application et le modèle.

Pour déboguer et déployer notre application Flask, nous pouvons utiliser un Dockerfile. Microsoft a un bon tutoriel sur la façon de créer un Dockerfile, veuillez donc vérifier le lien dans la description pour plus de détails. Notre application Flask aura une route appelée "predict", qui gérera les requêtes POST contenant des données d'entrée au format JSON. La réponse sera également au format JSON. Nous allons écrire du code pour transformer les données JSON et les transmettre au modèle de stratégie pour la prédiction.

Passons maintenant à l'application qui se connecte au courtier, reçoit les données et envoie les commandes au serveur. Bien que nous puissions implémenter notre stratégie directement dans l'application, pour cet exemple, nous ne le ferons pas. Au lieu de cela, nous utiliserons l'application QtIBTrade, qui est connectée au courtier et communique avec notre modèle de sélection de stratégie et d'action à l'aide de l'API REST. QtIBTrade est une application basée sur Qt que j'ai créée il y a quelque temps pour explorer le trading algorithmique en utilisant C++. Il est multiplateforme et bien documenté.

Cependant, veuillez noter que QtIBTrade est toujours en développement car je n'ai pas eu assez de temps pour y travailler. Si quelqu'un est intéressé à collaborer sur ce projet, merci de me le faire savoir ou de vérifier le code sur GitHub (lien fourni dans la description).

Voyons maintenant comment tous ces composants fonctionnent ensemble. Tout d'abord, nous devons démarrer notre application Flask. Je l'ai démarré en mode débogage, nous devons donc nous souvenir du numéro de port et le mettre à jour dans notre application Qt. Ensuite, nous devons nous connecter à l'application ou à la passerelle IB. Avant de cliquer sur le bouton "Se connecter", vérifions si l'API est activée et si nous avons configuré le bon port.

Une fois que tout est configuré, nous pouvons démarrer notre application de test, qui utilise notre modèle. Comme vous pouvez le voir, toutes les cinq secondes, nous envoyons une requête au serveur avec différentes données de prix. Chaque fois que nous recevons des données de prix du courtier, nous déclenchons notre modèle et recevons l'action correspondante en retour.

J'espère que vous avez trouvé cette démonstration intéressante. Si c'est le cas, abonnez-vous à la chaîne pour plus de vidéos. Merci d'avoir regardé, et à la prochaine vidéo !

Trading environment IB API - QT C++ - Flask - RL Model. Complete working example.
Trading environment IB API - QT C++ - Flask - RL Model. Complete working example.
  • 2021.02.21
  • www.youtube.com
This video contains example of the trading environment wich uses Interactive Brokers API (TWS or IB Gateway), QT C++ client and reinforcement learning agent ...
 

Comment facilement et simplement backtester un portefeuille d'actions


Comment facilement et simplement backtester un portefeuille d'actions

Bonjour à tous! Bienvenue à "Près d'AlgoTrading". Je m'appelle Denis, et aujourd'hui je veux partager avec vous un cadre très utile et simple que j'ai développé pour tester différents portefeuilles. Il est basé sur une idée antérieure dont j'ai discuté dans l'une de mes vidéos précédentes.

Bien qu'il existe des implémentations plus puissantes disponibles, telles que celle fournie par quantconnect, je pense qu'il est toujours bon d'avoir une solution locale et simple qui nous permet de tester des idées sans compter sur des services supplémentaires.

Le cœur de ce framework est Backtrader, un framework Python pour le backtesting et le trading. J'ai mis en place une stratégie de rééquilibrage générique que nous allons utiliser, mais le cadre est conçu de manière à permettre de tester différentes idées sans avoir à plonger dans les spécificités de Backtrader.

Examinons de plus près la structure et les composants de ce framework. La stratégie de rééquilibrage est l'élément clé et suit une structure spécifique. Tout d'abord, nous devons sélectionner l'ensemble d'actifs avec lesquels nous allons travailler. Pour cela, nous disposons d'un modèle qui met en œuvre un processus de sélection basé sur notre univers, appelé le modèle de sélection. Une fois que nous avons les actifs sélectionnés, ils sont transmis au modèle alpha. Le modèle alpha est au cœur de notre algorithme et génère les signaux de trading. Ces signaux sont ensuite utilisés pour construire notre portefeuille.

Le modèle de construction de portefeuille prend les signaux générés par le modèle alpha et génère une allocation d'actifs. Cette allocation est un dictionnaire où la clé est le symbole de l'actif et la valeur est le poids. Après avoir construit le portefeuille initial, nous passons à l'étape de rééquilibrage. Ici, nous pouvons supprimer d'anciens actifs, en ajouter de nouveaux ou ajuster la quantité d'actifs dans le portefeuille en fonction des pondérations définies.

Ensuite, nous voudrons peut-être vérifier certaines conditions de risque à l'aide du modèle de risque. Ce modèle reçoit la sortie de l'étape de rééquilibrage, apporte les modifications nécessaires, puis la transmet au modèle d'exécution. Le modèle d'exécution, par défaut, passe des ordres pour acheter ou vendre le nombre d'actifs demandé.

Si vous jetez un œil au code de la stratégie de rééquilibrage, vous verrez la mise en œuvre de chacune de ces étapes. Avant le modèle de sélection, j'appelle une fonction qui renvoie une trame de données avec uniquement les prix de clôture. En effet, pour cette stratégie, nous n'avons besoin que des prix de clôture.

Passons maintenant brièvement en revue la mise en œuvre des modèles dans le cadre. Le modèle de sélection est simple. Son objectif principal est de supprimer les actifs avec des prix manquants ou nuls pour s'assurer que toutes les données que nous utilisons sont valides. Le modèle alpha est une simple stratégie de momentum générique. Dans ce cas, nous achetons des actifs avec le momentum le plus élevé. Pour le modèle d'allocation, nous implémentons un modèle qui attribue des poids égaux à tous les actifs.

Enfin, le modèle de rééquilibrage effectue un rééquilibrage simple en fonction des pondérations attribuées. Une fois que nous avons implémenté tous les modèles, voyons comment les utiliser.

Tout d'abord, nous avons besoin de quelques données. Pour cet exemple, je vais utiliser la liste actuelle des tickers S&P 500 comme univers. Nous allons télécharger les données historiques de prix pour tous ces stocks à partir de janvier 2007. Ensuite, nous remplissons notre configuration. Nous définissons la structure de notre source de données en précisant que nous n'utiliserons que les cours d'ouverture et de clôture. Le prix d'ouverture est nécessaire car nous voulons ouvrir et fermer des positions en fonction du prix d'ouverture du jour suivant.

Nous définissons également notre liste d'actifs, le ticker de référence, la trésorerie de départ, la négociation d'options à l'ouverture et définissons une période de préchauffage pour que notre algorithme calcule l'élan en fonction de l'année dernière. Ensuite, nous créons notre configuration de stratégie. Dans cette configuration, nous définissons l'option rebalanceDay sur 22, ce qui signifie que nous rééquilibrerons notre portefeuille une fois par mois. Nous avons également un paramètre de réserve de trésorerie pour éviter les erreurs d'exécution dues à des fonds insuffisants.

Ensuite, nous définissons tous nos modèles et leurs paramètres. Avant de commencer le backtest, nous devons attribuer deux jeux de données à notre configuration : un contenant les données de tous nos actifs et un autre contenant les données de référence. Enfin, nous pouvons appeler la fonction backtest et attendre que le rapport soit généré. Le rapport est généré à l'aide du package quantstats et fournit de nombreuses informations utiles.

Vous pouvez trouver le code complet sur ma page GitHub. Le lien est fourni dans la description.

C'est tout pour aujourd'hui. Merci d'avoir regardé, et si vous avez des questions ou des commentaires, veuillez les laisser ci-dessous. N'oubliez pas de vous abonner à ma chaîne pour plus de contenu passionnant.

How Easily And Simply to Backtest a Stock Portfolio
How Easily And Simply to Backtest a Stock Portfolio
  • 2022.06.20
  • www.youtube.com
The video describes the simple, but powerful, framework for backtesting the portfolio ideas. It is based on Backtrader, but to use it you don't need to know ...
 

Comment battre le marché. Momentum et optimisation du portefeuille


Comment battre le marché. Momentum et optimisation du portefeuille

Bonjour à tous! Je m'appelle Denis et vous regardez "Close to AlgoTrading".

Dans cette courte vidéo, nous allons explorer deux stratégies d'investissement de portefeuille de base : Momentum of Return et Momentum comme différence entre le prix et la tendance. Nous verrons également comment les méthodes d'optimisation de portefeuille peuvent nous aider à améliorer nos résultats d'investissement.

Le momentum est essentiellement la différence entre deux prix pris sur un intervalle fixe. Il représente la vitesse ou le taux de changement. Dans le contexte du marché boursier, le momentum peut être exprimé en rendements quotidiens. L'idée derrière la stratégie de momentum est simple : si le prix a augmenté dans le passé, il est susceptible de continuer à augmenter à l'avenir. Il est commode d'exprimer tous les marchés dans la même notation pour faciliter les comparaisons.

Pour le marché boursier, le momentum est souvent défini comme la différence entre le prix d'aujourd'hui et une valeur moyenne mobile correspondante. Lorsque l'élan devient plus important, les prix s'éloignent davantage de la moyenne mobile. Inversement, lorsque le momentum devient plus petit, la vitesse de variation des prix ralentit et les prix se rapprochent ou même dans le sens négatif par rapport à la moyenne mobile.

Pour implémenter ces deux types de momentum, j'ai déjà créé un modèle alpha. Cela nous permet de les tester avec différents paramètres.

Calculons le momentum sur une période d'un an et sélectionnons les 10 premières actions avec le momentum le plus élevé. Nous rééquilibrerons notre portefeuille une fois par mois et tous les actifs recevront des allocations égales. Maintenant, copions notre configuration et définissons un autre type d'élan. Nous pouvons ajouter ces configurations à notre test et les backtester sur la période de 2005 à 2015.

Vous pouvez voir que les deux stratégies affichent une volatilité et une baisse similaires, et qu'elles surperforment l'investissement dans l'indice. Cependant, il est important de noter que nous acceptons un peu plus de risque par rapport à la détention de l'indice. Pour réduire le risque au niveau de l'indice, on peut essayer d'utiliser certaines méthodes d'optimisation de portefeuille. Au lieu du modèle d'allocation égale, nous utiliserons un modèle qui implémente plusieurs méthodes d'optimisation du package pyportfolioopt, dont j'ai parlé dans une vidéo précédente sur l'optimisation de portefeuille.

Ici, je vais vous montrer comment modifier notre configuration pour utiliser le modèle d'allocation d'optimisation de portefeuille. Nous allons tester deux méthodes bien connues, CLA et HRP, ainsi que deux méthodes plus spécifiques : Efficient CVaR (Conditional Value at Risk) et Efficient CDaR (Conditional Drawdown at Risk). Pour des informations plus détaillées sur ces méthodes, veuillez vous référer à la documentation officielle. Gardez à l'esprit que ces méthodes d'optimisation peuvent prendre un certain temps à s'exécuter, car elles ne sont pas très rapides. Attendons patiemment que le backtesting soit terminé.

Vous pouvez observer que toutes les méthodes améliorent nos résultats. Notre stratégie initiale Momentum de rendement, qui utilise une allocation basée sur l'optimiseur de valeur à risque conditionnelle, réduit la baisse de près de 12 %. La même stratégie, avec l'optimiseur de prélèvement conditionnel à risque, améliore notre rendement de 3 %. Nous avons vu qu'une simple modification du modèle d'allocation peut améliorer considérablement nos résultats. Il existe de nombreuses autres façons d'améliorer cette stratégie initiale. Ce qui est plus important, c'est que l'idée simple d'utiliser le momentum fonctionne et surpasse le marché, et nous pouvons la mettre en œuvre en quelques étapes simples.

C'est tout pour aujourd'hui. Rendez-vous dans la prochaine vidéo !

How to beat the Market. Momentum and Portfolio Optimization
How to beat the Market. Momentum and Portfolio Optimization
  • 2022.07.06
  • www.youtube.com
This video is a quick demonstration how to get a good investment result using the simple strategy. With few portfolio optimization methods we can achieve hig...
 

Au-delà du ratio de Sharpe : dévoilement d'une évaluation efficace de la stratégie de trading


Au-delà du ratio de Sharpe : dévoilement d'une évaluation efficace de la stratégie de trading

Bonjour à tous! Bienvenue à "Près d'AlgoTrading". Aujourd'hui, nous plongeons dans le monde passionnant de l'évaluation des stratégies de trading. Nous découvrirons pourquoi le ratio de Sharpe, bien que populaire, n'est peut-être pas toujours le meilleur outil pour le travail.

Dans cette vidéo, nous aborderons quatre domaines principaux. Dans un premier temps, nous définirons le ratio de Sharpe et expliquerons sa formule. Ensuite, nous aborderons les limites du ratio de Sharpe. Troisièmement, nous introduirons les ratios Sortino et Calmar comme mesures alternatives. Enfin, nous comparerons deux stratégies de trading hypothétiques utilisant toutes ces métriques. Alors, qu'est-ce que le ratio de Sharpe ? Nommé d'après le lauréat du prix Nobel William F. Sharpe, il mesure la performance d'un investissement par rapport à un actif sans risque après ajustement de son risque. En d'autres termes, le ratio de Sharpe cherche à caractériser dans quelle mesure le rendement d'un actif compense l'investisseur pour le risque pris.

La formule du ratio de Sharpe est la suivante : Ratio de Sharpe = (Rendement attendu - Taux sans risque) / Ecart type.

Considérons une stratégie avec un rendement attendu de 8 %, un taux sans risque de 2 % et un écart type de 15 %. Le ratio de Sharpe serait de (8 - 2) / 15, soit environ 0,4. Cependant, le ratio de Sharpe présente plusieurs limites dont nous devons tenir compte. Premièrement, il suppose que les rendements suivent une distribution normale, ce qui n'est souvent pas le cas pour de nombreuses stratégies de trading qui présentent des distributions non normales avec des rendements asymétriques ou à queue grasse. Cela peut conduire à des résultats trompeurs lors de l'utilisation du ratio de Sharpe.

Deuxièmement, le ratio de Sharpe favorise les stratégies qui génèrent de petits bénéfices fréquents et suppose que ces bénéfices peuvent être augmentés proportionnellement. Cette hypothèse peut ne pas être vraie pour tous les types de stratégies, en particulier les stratégies de trading à haute fréquence. Par conséquent, les stratégies de trading à haute fréquence peuvent sembler plus efficaces lorsqu'elles sont évaluées à l'aide du ratio de Sharpe. Troisièmement, le ratio de Sharpe ne tient pas explicitement compte du risque extrême, qui fait référence à la probabilité d'événements extrêmes ou de pertes importantes. Les stratégies présentant un risque extrême plus élevé peuvent ne pas être reflétées de manière adéquate dans le ratio de Sharpe, sous-estimant potentiellement le risque associé à ces stratégies.

Compte tenu de ces limitations, les traders se tournent souvent vers des mesures alternatives telles que le ratio Sortino et le ratio Calmar. Ces mesures fournissent des informations supplémentaires et peuvent aider à surmonter certaines des limites du ratio de Sharpe. Le ratio de Sortino mesure le rendement ajusté au risque d'un investissement en ne tenant compte que de la volatilité à la baisse. Il se concentre sur l'écart des rendements en dessous d'un seuil spécifié, généralement le taux sans risque. Ce ratio fournit une évaluation plus précise du risque et correspond à la préoccupation commune des investisseurs à l'égard des risques baissiers.

D'autre part, le ratio de Calmar évalue le rendement ajusté au risque en comparant le taux de rendement annuel moyen au drawdown maximum. Ce ratio est particulièrement utile pour les stratégies où le drawdown maximum est un facteur critique. Il met en évidence le rendement généré par rapport au risque de subir des pertes importantes. En considérant ces mesures alternatives, les traders acquièrent une perspective plus complète sur les caractéristiques de risque et de rendement de leurs stratégies de trading. Le ratio Sortino se concentre sur la volatilité à la baisse, tandis que le ratio Calmar mesure le rendement par rapport à la baisse maximale.

Maintenant, comparons deux stratégies hypothétiques utilisant ces métriques. Nous les appellerons Stratégie A et Stratégie B. La Stratégie A a un rendement annuel de 15 %, un écart type de 10 %, un écart à la baisse de 7 % et un drawdown maximum de -20 %. Cela nous donne un ratio de Sharpe de 1,3, un ratio de Sortino de 1,86 et un ratio de Calmar de 0,8. D'autre part, la stratégie B a un rendement annuel de 12 %, un écart type de 8 %, un écart à la baisse de 5 % et un drawdown maximum de -15 %. Le ratio de Sharpe pour la stratégie B est de 1,25, le ratio de Sortino est de 2,0 et le ratio de Calmar est de 0,8.

Comme nous pouvons le voir, bien que la stratégie A ait un rendement plus élevé, la stratégie B la surpasse lorsque nous prenons en compte l'écart à la baisse et le drawdown maximum, montrant un risque plus faible pour le rendement. Par conséquent, la stratégie B vous donne plus de rendement pour chaque unité de risque, ce qui est une considération importante dans toute décision d'investissement. Le choix entre le ratio de Sharpe et les mesures alternatives dépend des caractéristiques et des objectifs spécifiques de votre stratégie de trading. Voici quelques recommandations pour vous aider à décider quand vous concentrer sur le ratio de Sharpe et quand considérer d'autres mesures :

Quand accorder plus d'attention au ratio de Sharpe : Le ratio de Sharpe peut être un outil précieux lors de l'évaluation de stratégies qui entrent dans certaines catégories. Par exemple, si vous avez un portefeuille d'investissement à long terme bien diversifié axé sur les actifs traditionnels tels que les actions et les obligations, le ratio de Sharpe fournit une mesure appropriée de la performance ajustée au risque. Il est particulièrement pertinent pour les stratégies avec des rendements relativement stables, un risque modéré et un accent sur les rendements globaux ajustés au risque.

Quand envisager des métriques alternatives : D'autre part, des métriques alternatives telles que le ratio de Sortino et le ratio de Calmar entrent en jeu pour les stratégies qui peuvent ne pas être conformes aux hypothèses du ratio de Sharpe. Par exemple, si vous êtes engagé dans des stratégies de trading à haut risque telles que le trading d'options, les stratégies basées sur l'effet de levier ou les stratégies avec des positions concentrées, les mesures alternatives deviennent plus précieuses. Ces stratégies présentent souvent des distributions de rendement non normales, un risque extrême plus élevé et peuvent nécessiter une concentration sur la gestion du risque baissier. Le ratio de Sortino et le ratio de Calmar offrent des informations plus spécifiques sur la performance ajustée au risque, le risque extrême et les baisses, fournissant une meilleure évaluation de la viabilité de la stratégie dans ces contextes.

N'oubliez pas qu'aucune métrique ne peut pleinement saisir la complexité et les nuances d'une stratégie de trading. Il est essentiel d'envisager une combinaison de paramètres pour acquérir une compréhension globale du risque et du rendement. En utilisant plusieurs mesures telles que le ratio Sharpe, le ratio Sortino et le ratio Calmar, vous pouvez évaluer les forces et les faiblesses de votre stratégie sous différents angles, permettant une évaluation plus robuste et une prise de décision éclairée.

C'est tout pour le tutoriel d'aujourd'hui. Merci de vous joindre à nous et nous espérons que vous avez trouvé cette vidéo utile.

Beyond the Sharpe Ratio: Unveiling Effective Trading Strategy Assessment
Beyond the Sharpe Ratio: Unveiling Effective Trading Strategy Assessment
  • 2023.05.24
  • www.youtube.com
Welcome to our insightful tutorial on trading strategy assessment! In this video, we delve into the popular Sharpe Ratio and explore its limitations when eva...
 

Simulation rapide de Monte Carlo pour l'estimation du rabattement maximal attendu (exécutez le code python x2000 plus rapidement)


Simulation rapide de Monte Carlo pour l'estimation du rabattement maximal attendu (exécutez le code python x2000 plus rapidement)

Bienvenue tout le monde! Je suis Denis et vous regardez CloseToalgotrading.

Dans cette vidéo, nous allons nous plonger dans le processus d'amélioration significative des performances d'exécution d'un code Python, potentiellement de plus de mille fois. Notre objectif n'est pas seulement de le rendre intéressant mais aussi très utile. Pour y parvenir, nous utiliserons l'exemple de la simulation de Monte Carlo pour calculer un drawdown maximum attendu.

Pour commencer, abordons la question fondamentale de savoir ce que signifie le drawdown maximum et comment il peut être calculé. Le drawdown maximum sert d'indicateur du risque baissier sur une période donnée. Exprimé généralement en pourcentage, il est déterminé à l'aide de la formule suivante.

Bien que la formule semble prometteuse, nous pouvons obtenir une précision encore meilleure en l'appliquant à des données réelles. Prenons l'exemple de SPY et définissons la période sur 100 jours. Le graphique affiche les cours de clôture de SPY sur ces 100 jours. Deux tirages sont évidents, le second semblant être le maximum. Pour calculer le drawdown, on peut effectuer un calcul simple. Le prix le plus élevé a atteint environ 212,1, et le plus bas était de 204,4. En utilisant la formule mentionnée précédemment, nous pouvons estimer le prélèvement maximal à environ 3,6 %.

Cependant, ce résultat manque de précision en raison des hypothèses faites sur le niveau des prix. Pour obtenir un calcul plus précis, nous utiliserons une fonction Python spécialement conçue à cet effet. Une implémentation possible est la suivante :

[Code Python pour calculer le drawdown maximum]

Cette fonction calcule le rabattement maximal, ce qui donne une valeur de 3,5 %. Le temps d'exécution de cette fonction est d'environ 16,3 microsecondes, ce qui est respectable. Mais pouvons-nous encore améliorer ce timing sans recourir à des techniques complexes et compliquées ? La réponse est un oui retentissant, et la mesure la plus simple pour améliorer l'exécution consiste à utiliser Numba.

Numba est un compilateur open source JIT (Just-In-Time) qui traduit un sous-ensemble de code Python et NumPy en code machine hautement efficace. En convertissant notre code Python en Numba, nous pouvons améliorer considérablement ses performances. Cependant, l'implémentation initiale de notre fonction ne fonctionnera pas avec Numba car elle ne reconnaît pas la fonction "accumuler le maximum". Néanmoins, nous pouvons concevoir une méthode alternative pour calculer le rabattement maximal sans utiliser cette fonction. Le calcul du rabattement modifié peut être mis en œuvre comme suit :

[Code Python pour le calcul du rabattement modifié à l'aide de Numba]

Comme vous pouvez le constater, nous avons ajouté un décorateur Numba au-dessus de la définition de la fonction. Avec cette implémentation, Numba ne soulève aucune plainte et le temps d'exécution est réduit à seulement 4,8 microsecondes. Cela représente une amélioration de plus de trois fois en termes de vitesse. C'est assez simple, n'est-ce pas ? Personnellement, je préfère cette implémentation car elle décrit l'algorithme de manière simple.

Ainsi, nous pouvons calculer avec précision le drawdown maximum, qui s'élève à 3,5%. Appelons-le le « prélèvement maximal historique ». Sur la base de cette mesure du risque, nous pouvons supposer que si les conditions du marché restent inchangées, notre risque maximum ne sera que de 3,5 %. Cependant, cela soulève la question de savoir si nous pouvons nous fier uniquement à une valeur dérivée d'une seule observation spécifique. Ne serait-il pas préférable d'avoir quelques observations supplémentaires sur des situations similaires ? En effet, ce serait bénéfique, et c'est là qu'intervient la méthode de Monte Carlo.

Prenons un moment pour clarifier ce qu'implique la méthode de Monte Carlo. Il s'agit de décrire un processus à travers un modèle mathématique utilisant des générateurs de variables aléatoires. Le modèle est ensuite calculé à plusieurs reprises et les caractéristiques probabilistes du processus sont dérivées sur la base des données acquises.

Dans notre cas, le processus implique une série de rendements boursiers, que nous simulons à l'aide du modèle Geometric Brown Motion (GBM). Le modèle GBM suppose que les rendements des actions suivent un processus stochastique en temps continu et il est largement utilisé dans la modélisation financière. En simulant les rendements boursiers à l'aide de GBM, nous pouvons générer plusieurs scénarios et calculer le prélèvement maximal pour chaque scénario. Cela nous donnera une distribution des baisses maximales, fournissant une estimation plus robuste du risque de baisse.

Pour mettre en œuvre la simulation de Monte Carlo, nous devons définir les paramètres du modèle GBM. Ces paramètres incluent le taux de dérive (μ), la volatilité (σ) et l'horizon temporel (T). Nous préciserons également le nombre d'exécutions de simulation (N) et le nombre de pas de temps (M) dans chaque exécution. Une fois ces paramètres définis, nous pouvons procéder à la simulation.

Voici un exemple d'implémentation de la simulation de Monte Carlo pour calculer le rabattement maximal attendu à l'aide de Python :

import numpy as np

def monte_carlo_max_drawdown(S0, mu, sigma, T, N, M):
    dt = T / M

    S = np.zeros((N, M+ 1 ))
    S[:, 0 ] = S0

     for i in range( 1 , M+ 1 ):
        epsilon = np.random.normal( 0 , 1 , N)
        S[:, i] = S[:, i- 1 ] * np. exp ((mu - 0.5 * sigma** 2 ) * dt + sigma * np. sqrt (dt) * epsilon)

    drawdowns = np.zeros(N)

     for i in range(N):
        peak = np.maximum.accumulate(S[i])
        drawdowns[i] = np.max((peak - S[i]) / peak)

    expected_max_drawdown = np.mean(drawdowns)

     return expected_max_drawdown

# Example usage
S0 = 100.0    # Initial stock price
mu = 0.05    # Drift rate
sigma = 0.2    # Volatility
T = 1.0    # Time horizon in years
N = 10000    # Number of simulation runs
M = 252    # Number of time steps (assuming 252 trading days in a year)

expected_max_drawdown = monte_carlo_max_drawdown(S0, mu, sigma, T, N, M)
print( "Expected Maximum Drawdown:" , expected_max_drawdown)

Dans cet exemple, nous utilisons NumPy pour gérer efficacement les opérations sur les tableaux. Nous initialisons un tableau S pour stocker les cours boursiers simulés pour chaque exécution et pas de temps. Nous parcourons les pas de temps et simulons les variations du cours des actions à l'aide de la formule GBM. Après avoir simulé toutes les exécutions, nous calculons le prélèvement pour chaque exécution en trouvant la valeur maximale et en la soustrayant du prix actuel. Enfin, nous calculons le drawdown maximum attendu en prenant la moyenne de tous les drawdowns.

En exécutant cette simulation de Monte Carlo, nous pouvons estimer le rabattement maximal attendu sur la base de plusieurs scénarios simulés. Cela fournit une compréhension plus complète du risque de baisse par rapport à une seule observation à partir de données historiques.

En conclusion, nous avons exploré le concept de drawdown maximum, son calcul à partir de données historiques, et l'application de la méthode de Monte Carlo pour estimer le drawdown maximum attendu. Nous avons également discuté de la manière d'améliorer les performances du calcul du drawdown à l'aide de Numba. L'intégration de ces techniques peut grandement améliorer l'efficacité et la précision des calculs financiers, en donnant aux commerçants et aux investisseurs des mesures de risque précieuses pour la prise de décision.

Merci d'avoir regardé CloseToalgotrading ! J'espère que vous avez trouvé cette vidéo informative et utile. Si vous avez des questions ou des commentaires, n'hésitez pas à les partager ci-dessous. Restez à l'écoute pour d'autres sujets passionnants sur le trading algorithmique et la finance quantitative.

Fast Monte Carlo Simulation For Estimation Maximum Expected Drawdown (run python code x2000 faster)
Fast Monte Carlo Simulation For Estimation Maximum Expected Drawdown (run python code x2000 faster)
  • 2022.02.27
  • www.youtube.com
In this video we will see how with a few simple steps we can improve execution performance of a python code more than in x1000 time. And in order for us to b...
 

Optimisation du portefeuille pour maximiser le ratio de Sharpe à l'aide de R Studio (CRAN)


Optimisation du portefeuille pour maximiser le ratio de Sharpe à l'aide de R Studio (CRAN)

Bonjour les amis, bienvenue dans Macro Sapiens. Dans le tutoriel d'aujourd'hui, nous allons apprendre à optimiser un portefeuille pour maximiser le ratio de Sharpe. Le ratio de Sharpe mesure les rendements du portefeuille par unité de risque pris. Pour ce faire, nous utiliserons les bibliothèques quantmod, PortfolioAnalytics, PerformanceAnalytics et NSE2R. La bibliothèque quantmod nous aidera à récupérer les données de Yahoo Finance, PortfolioAnalytics fournira la fonction d'optimisation, PerformanceAnalytics aidera à la visualisation et NSE2R est une bibliothèque dédiée à la Bourse nationale de l'Inde.

Tout d'abord, nous définissons une variable appelée "stock_names" pour stocker les noms des actions. Nous utilisons la bibliothèque quantmod pour récupérer les données de Yahoo Finance pour les 50 symboles boursiers de l'indice Nifty 50 en Inde. Nous extrayons la colonne de symboles et la stockons dans une nouvelle variable appelée "symbols".

Ensuite, nous devons spécifier les dates de début et de fin des données que nous voulons récupérer. Nous utilisons la variable "depuis" pour définir la date de début au 1er janvier 2018 et la date de fin à la date actuelle. Nous nous concentrons sur les cours de clôture ajustés car ils fournissent une meilleure représentation de la performance de l'action et les stockons dans une variable appelée "prices_data".

Pour calculer le rendement du portefeuille, nous utilisons la formule des rendements quotidiens : (Cours de clôture du jour 2 - Cours de clôture du jour 1) / Cours de clôture du jour 1. Nous modifions la fonction pour gérer les valeurs manquantes (NA) dans les données.

Ensuite, nous définissons les noms de colonne de l'ensemble de données de rendement du portefeuille comme "fonds". Cela sera utilisé plus tard dans le processus d'optimisation.

Maintenant, nous pouvons démarrer le processus d'optimisation à l'aide de la bibliothèque PortfolioAnalytics. Nous créons un portefeuille initial et ajoutons des contraintes. Une contrainte garantit que la pondération totale du portefeuille est égale à 1, et l'autre contrainte spécifie que nous voulons un portefeuille long uniquement, c'est-à-dire sans pondérations négatives.

Nous ajoutons la fonction objectif, qui est le rendement moyen du portefeuille en utilisant les prix_données. Nous avons fixé le nombre maximum d'itérations pour le processus d'optimisation à 2000.

Pour calculer le ratio de Sharpe, nous devons définir le taux de rendement sans risque. Dans ce cas, nous le considérons comme 0 %. Nous utilisons la fonction de la bibliothèque PerformanceAnalytics pour analyser les rendements du portefeuille et calculer le ratio de Sharpe.

Nous créons un tableau pour afficher les résultats, y compris le rendement maximal du ratio de Sharpe obtenu grâce à l'optimisation aléatoire et les rendements de l'optimiseur de retour sur investissement. Nous traçons la frontière efficiente pour visualiser les portefeuilles optimisés.

De plus, nous comparons les rendements du portefeuille avec les rendements d'un investissement dans l'indice Nifty 50. Nous calculons les rendements cumulés pour chaque approche et les traçons pour analyser les performances.

Sur la base des résultats, nous observons que la méthode d'optimisation de portefeuille aléatoire offre un ratio de Sharpe et des rendements cumulés plus élevés par rapport à l'optimiseur de ROI et à l'indice Nifty 50.

Ces pondérations optimisées peuvent être utilisées pour créer un panier d'actions à investir. En suivant la performance du panier sur une période donnée, les investisseurs peuvent prendre des décisions éclairées sur l'investissement dans les actions sélectionnées.

Nous espérons que vous avez trouvé ce tutoriel utile. Si vous avez des questions, n'hésitez pas à les poser. N'oubliez pas d'aimer, de partager et de vous abonner à notre chaîne. Merci!

Portfolio optimization for maximizing Sharpe Ratio using R Studio (CRAN)
Portfolio optimization for maximizing Sharpe Ratio using R Studio (CRAN)
  • 2021.08.28
  • www.youtube.com
Portfolio optimization for maximizing Sharpe Ratio using R Studio (CRAN)#SharpeRatio #Rstudio #CRAN #Portfolio #Optimization
 

Taux ponctuel par rapport aux taux à terme (calculs pour les examens CFA® et FRM®)


Taux ponctuel par rapport aux taux à terme (calculs pour les examens CFA® et FRM®)

Bonne journée tout le monde! Je voudrais présenter le concept d'aujourd'hui pour notre discussion. Nous explorerons le calcul des taux à terme à partir des taux au comptant, mais au lieu d'utiliser la formule, nous utiliserons la méthode de la chronologie. Cette approche éliminera le besoin de mémoriser des formules complexes et rendra le processus plus intuitif.

Avant d'entrer dans les détails, récapitulons brièvement les définitions des taux à terme et au comptant. Le taux au comptant fait référence à tout taux d'intérêt disponible sur le marché à l'heure actuelle. Il représente le taux auquel on peut investir pendant une période spécifique, comme deux, trois, quatre ou cinq ans à partir d'aujourd'hui. Le taux au comptant est un taux investissable, permettant aux particuliers de gagner des rendements en investissant sur le marché.

D'autre part, le taux à terme est un taux théorique souvent appelé taux à terme implicite. Il représente le taux d'intérêt projeté entre deux périodes futures. Par exemple, nous pourrions vouloir déterminer le taux entre la troisième et la quatrième année si nous sommes actuellement à la période zéro. Le taux à terme est calculé sur la base des taux au comptant actuels et sert de prévision du taux d'intérêt à un moment futur.

Il est important de noter que le taux à terme n'est pas un taux investissable à moins qu'il ne soit bloqué à l'aide d'un instrument dérivé tel qu'un contrat à terme ou un contrat à terme. Jusque-là, il reste un taux implicite, ce qui signifie qu'il peut exister ou non dans la réalité lorsque la période de temps spécifiée arrivera dans le futur.

Pour rendre le taux à terme implicite investissable, il faut conclure un contrat à terme. Cela garantit que le taux est fixe et peut être utilisé dans les transactions financières au moment futur désigné.

Explorons maintenant la méthode de la chronologie pour calculer les taux à terme. Nous allons d'abord examiner la formule, mais rappelez-vous que l'objectif est de s'éloigner des formules et d'adopter la méthode de la chronologie. En comparant les deux approches, vous vous rendrez compte que la méthode de la chronologie donne les mêmes résultats sans avoir besoin de mémoriser la formule.

La formule de calcul des taux à terme est la suivante :

(1 + za)^a * (1 + ifr) = (1 + zb)^b

Dans cette formule, "a" représente l'échéance la plus courte, "b" désigne l'échéance la plus longue, "za" et "zb" désignent les taux au comptant respectifs pour les échéances les plus courtes et les plus longues, et "ifr" représente le taux à terme implicite entre période de temps "a" et "b".

Maintenant, illustrons un exemple pour solidifier notre compréhension. On nous donne les taux au comptant suivants : le taux au comptant à un an est de 5 % et le taux au comptant à deux ans est de 6 %. Notre objectif est de déterminer le taux à terme d'un an dans un an à partir d'aujourd'hui.

En utilisant la formule, nous pouvons substituer les taux au comptant donnés dans l'équation :

(1 + 0,05)^1 * (1 + ifr) = (1 + 0,06)^2

En simplifiant encore, on obtient :

1,05 * (1 + ifr) = 1,1236

Maintenant, explorons la méthode de la chronologie pour le même calcul. Dessinez une chronologie avec la période de temps zéro, un et deux. Tracez les taux au comptant en conséquence. Pour le taux au comptant sur deux ans, marquez 6 % de zéro à deux. Pour le taux au comptant à un an, marquez 5 % de zéro à un. Notre objectif est de calculer le taux à terme d'un an dans un an à partir d'aujourd'hui, noté "f".

Pour déterminer le taux à terme implicite à l'aide de la méthode de la chronologie, nous nous appuyons sur le principe de non-arbitrage. Ce principe affirme que quel que soit l'itinéraire choisi sur la ligne du temps, nous devrions nous retrouver avec la même valeur future. Dans ce cas, nous pouvons investir 1 $ pendant deux ans à 6 % d'intérêt ou investir 1 $ pendant un an à 5 % d'intérêt, puis réinvestir ce montant pour une autre année au taux à terme « f ».

Pour calculer le taux à terme sur un an, nous commençons par investir 1 $ pour un an au taux au comptant sur un an de 5 %. Cet investissement passe à 1,05 $ après un an.

Maintenant, nous prenons le 1,05 $ et le réinvestissons pour une autre année au taux à terme "f". La valeur future de cet investissement devrait être la même que si vous investissiez 1 $ pendant deux ans au taux au comptant de 6 % sur deux ans.

Supposons que le taux à terme "f" est de x %. Nous pouvons établir l'équation comme suit :

(1 + 0,05) * (1 + x%) = (1 + 0,06)^2

En simplifiant encore, nous avons :

1,05 * (1 + x%) = 1,1236

En divisant les deux côtés par 1,05 :

1 + x % = 1,1236 / 1,05

1 + x % = 1,07

x% = 1,07 - 1

x% = 0,07

Ainsi, le taux à terme d'un an dans un an à partir d'aujourd'hui, noté « f », est de 7 %.

En utilisant la méthode de la chronologie, nous avons pu calculer le taux à terme sans nous fier à la formule. Cette approche fournit une représentation visuelle de la chronologie et permet une compréhension plus intuitive du taux à terme implicite.

Spot Rate vs. Forward Rates (Calculations for CFA® and FRM® Exams)
Spot Rate vs. Forward Rates (Calculations for CFA® and FRM® Exams)
  • 2020.08.17
  • www.youtube.com
AnalystPrep's Concept Capsules for CFA® and FRM® ExamsThis series of video lessons is intended to review the main calculations required in your CFA and FRM e...
 

Ratio de Sharpe, ratio de Treynor et alpha de Jensen (calculs pour les examens CFA® et FRM®)


Ratio de Sharpe, ratio de Treynor et alpha de Jensen (calculs pour les examens CFA® et FRM®)

Mesdames et messieurs, je vous adresse à tous mes chaleureuses salutations. Aujourd'hui, nous aborderons un sujet important, à savoir les différentes mesures de la performance d'un portefeuille. Plus précisément, nous explorerons le ratio de Sharpe, le ratio de Treynor et l'alpha de Jensen. Bien qu'il existe plusieurs autres mesures de performance du portefeuille, ces trois sont largement reconnues comme essentielles. Comprendre l'interrelation entre ces mesures et leur signification pratique est crucial, non seulement pour vos prochains examens CFA ou FRM, mais aussi pour leur application dans la vie réelle. Ces concepts imprègnent les trois niveaux du programme CFA, soulignant leur importance tout au long de votre parcours d'examen.

Commençons par le ratio de Sharpe qui, à ce jour, reste le ratio le plus estimé dans le domaine. Son attrait réside dans sa simplicité, malgré certaines limitations inhérentes. Néanmoins, il continue d'être le ratio de référence lors de la comparaison de fonds, comme il est couramment rapporté par les fonds spéculatifs et les fonds communs de placement. De même, le ratio de Treynor et l'alpha de Jensen sont largement utilisés dans l'industrie. Il est donc essentiel d'appréhender ces notions, non seulement pour vos examens mais aussi pour leur pertinence pratique.

Le ratio de Sharpe, formulé comme suit, mérite notre attention :

Ratio de Sharpe = (Rendement du portefeuille - Taux sans risque) / Ecart type du portefeuille

Au numérateur, le "rendement du portefeuille (rp)" représente le rendement excédentaire par rapport au taux sans risque (rf). Lorsqu'on investit dans un portefeuille, on s'attend à des rendements supérieurs au taux sans risque, car prendre des risques implique de rechercher de plus grandes récompenses. Par conséquent, nous nous concentrons sur le rendement excédentaire, qui signifie le rendement obtenu au-delà du taux sans risque. Au dénominateur, nous avons l'écart-type, qui sert de mesure de risque. Ici, il est essentiel de noter que l'écart-type tient compte à la fois des risques diversifiables et non diversifiables. Les risques diversifiables peuvent être éliminés grâce à la diversification, tandis que les risques non diversifiables persistent. Par conséquent, le ratio de Sharpe évalue le rendement excédentaire par unité de risque total, combinant à la fois les risques systématiques et non systématiques.

Il est crucial de souligner que la valeur du ratio de Sharpe est la plus pertinente par rapport aux ratios de Sharpe des autres portefeuilles. Il trouve son importance lors de l'évaluation des portefeuilles les uns par rapport aux autres. En fait, les professionnels de l'industrie qualifient souvent les ratios de Sharpe de « dièses ». Par exemple, les gestionnaires de portefeuille pourraient dire : « Je rapporte deux points forts » ou « Trois points pointus », indiquant leurs ratios de Sharpe respectifs.

Un ratio de Sharpe plus élevé est considéré comme favorable. Un ratio plus élevé indique la capacité d'un portefeuille à générer plus de rendement pour le même niveau de risque, ce qui en fait un choix préférable. Ainsi, lors de la sélection d'un portefeuille basé sur le ratio de Sharpe, optez pour celui qui a le ratio le plus élevé.

Maintenant, tournons notre attention vers le ratio de Treynor, qui a une ressemblance frappante avec le ratio de Sharpe dans son numérateur mais diverge dans son dénominateur. Le ratio Treynor mesure le rendement excédentaire par unité de risque systématique, noté bêta. Le bêta représente le risque systématique non diversifiable inhérent à un investissement. Cette mesure plus étroite se concentre uniquement sur le risque systématique, contrairement à la portée plus large du ratio de Sharpe. De même, le ratio Treynor est plus précieux par rapport aux ratios d'autres fonds comparables. La sélection d'un portefeuille basé sur le ratio Treynor implique de choisir celui qui a le ratio le plus élevé, car une valeur plus élevée indique un rendement excédentaire plus élevé par unité de risque systématique.

Avant d'explorer l'alpha de Jensen, passons en revue le modèle d'évaluation des actifs financiers (CAPM). CAPM nous aide à comprendre l'alpha de Jensen, car il aide à déterminer le rendement attendu ou le rendement requis pour un portefeuille. CAPM calcule le rendement attendu en commençant par le taux sans risque et en ajoutant le bêta multiplié par la prime de risque du marché (la différence entre le rendement du marché et le risque.

L'alpha de Jensen, également connu sous le nom d'indice de performance Jensen ou simplement alpha, est une mesure du rendement excédentaire d'un portefeuille par rapport à son rendement attendu sur la base du modèle d'évaluation des actifs financiers (CAPM). Le CAPM relie le rendement attendu d'un actif ou d'un portefeuille à son bêta, qui représente le risque systématique ou la sensibilité aux mouvements du marché.

L'alpha de Jensen est calculé comme suit :

Alpha de Jensen = Rendement du portefeuille - [Taux sans risque + Beta × (Rendement du marché - Taux sans risque)]

Dans cette formule, le rendement du portefeuille représente le rendement réel obtenu par le portefeuille, le taux sans risque est le rendement d'un investissement sans risque tel qu'une obligation d'État, le bêta mesure la sensibilité du portefeuille aux mouvements du marché et le rendement du marché est le rendement moyen du marché global.

L'alpha de Jensen indique si le portefeuille a surperformé ou sous-performé son rendement attendu sur la base du CAPM. Un alpha positif suggère que le portefeuille a généré des rendements excédentaires au-delà de ce qui serait attendu compte tenu de son risque systématique, tandis qu'un alpha négatif indique une sous-performance. Par conséquent, les investisseurs et les gestionnaires de portefeuille recherchent généralement des alphas positifs lors de l'évaluation de la performance des investissements.

Il est important de noter que l'alpha de Jensen ne tient compte que du risque systématique et ne tient pas compte du risque total ou des risques spécifiques associés au portefeuille. Par conséquent, il est recommandé d'utiliser l'alpha de Jensen conjointement avec d'autres mesures de performance, telles que le ratio de Sharpe et le ratio de Treynor, pour acquérir une compréhension plus complète de la performance d'un portefeuille.

En résumé, le ratio de Sharpe, le ratio de Treynor et l'alpha de Jensen sont tous des mesures précieuses pour évaluer la performance d'un portefeuille. Le ratio de Sharpe évalue le rendement excédentaire par unité de risque total, tandis que le ratio de Treynor se concentre sur le rendement excédentaire par unité de risque systématique. L'alpha de Jensen compare le rendement réel d'un portefeuille à son rendement attendu sur la base du CAPM, en ne tenant compte que du risque systématique. Ces mesures offrent différentes perspectives sur la performance du portefeuille et peuvent être utilisées ensemble pour prendre des décisions d'investissement éclairées.

Sharpe Ratio, Treynor Ratio and Jensen's Alpha (Calculations for CFA® and FRM® Exams)
Sharpe Ratio, Treynor Ratio and Jensen's Alpha (Calculations for CFA® and FRM® Exams)
  • 2020.08.15
  • www.youtube.com
AnalystPrep's Concept Capsules for CFA® and FRM® ExamsThis series of video lessons is intended to review the main calculations required in your CFA and FRM e...
 

Covariance et corrélation (calculs pour les examens CFA® et FRM®)


Covariance et corrélation (calculs pour les examens CFA® et FRM®)

Bonjour à tous, commençons par discuter du concept de covariance et de corrélation. Le sujet d'aujourd'hui peut être déroutant pour de nombreuses personnes car la corrélation est un terme couramment entendu, tandis que la covariance est souvent peu familière en matière de calculs. De plus, la covariance et la corrélation sont destinées à mesurer la même chose, ce qui peut prêter à confusion. Nous explorerons pourquoi nous avons deux mesures différentes dans le même but et déterminerons quand utiliser la covariance et quand utiliser la corrélation. De plus, nous examinerons comment calculer à la fois la covariance et la corrélation.

Avant de plonger dans la covariance, revoyons rapidement comment calculer la variance car elle constitue la base de notre discussion. Une fois que nous comprenons comment calculer la variance, nous pouvons passer à la covariance et explorer la relation entre les deux mesures. Cela nous aidera à mieux comprendre l'origine de ces mesures et leur relation avec la corrélation.

Prenons maintenant un exemple pour comprendre le calcul de la variance. Nous avons une série de données représentant les rendements du portefeuille sur cinq ans. Les rendements sont donnés en pourcentage pour chaque année. Pour calculer la variance, nous devons d'abord déterminer la moyenne ou la moyenne de la série de données. Nous additionnons tous les rendements et divisons la somme par le nombre d'observations, qui dans ce cas est de cinq ans. Cela nous donne la moyenne de la série de données.

Ensuite, nous calculons l'écart par rapport à la moyenne pour chaque observation. Nous soustrayons la moyenne de chaque valeur de retour. Cela nous donne l'écart par rapport à la moyenne pour chaque observation. Les écarts au carré sont ensuite calculés en mettant au carré chaque écart. Nous additionnons tous les écarts au carré et divisons le résultat par le nombre d'observations pour obtenir la variance. Enfin, nous prenons la racine carrée de la variance pour trouver l'écart type, qui est une mesure connexe.

Il est important de noter que pendant que nous calculons la variance manuellement ici, dans des scénarios ou des examens du monde réel comme CFA ou FRM, ces calculs sont généralement effectués à l'aide de fonctions intégrées dans des calculatrices comme BA2 Plus ou BA2 Plus Professional.

Passant à la covariance, il s'agit d'une mesure du co-mouvement ou de la relation entre deux séries de données différentes. Contrairement à la variance, qui traite d'une seule série de données, la covariance nous permet d'examiner comment deux séries de données évoluent ensemble. Par exemple, nous pouvons utiliser la covariance pour analyser le co-mouvement entre un ETF et un indice de référence. Une covariance positive indique que les deux variables évoluent dans le même sens, tandis qu'une covariance négative suggère des mouvements opposés. Une covariance de zéro indique qu'il n'y a pas de relation entre les variables.

Pour calculer la covariance, nous soustrayons la moyenne de la première série de données de chaque observation de cette série et la multiplions par l'écart par rapport à la moyenne de la deuxième série de données. Nous répétons ce processus pour toutes les observations, multiplions les écarts, résumons les résultats et divisons par le nombre d'observations pour obtenir la covariance.

Il convient de noter que la covariance partage des similitudes avec la variance, mais elle implique deux séries de données différentes au lieu d'une seule. En fait, la variance peut être considérée comme un cas particulier de covariance où les deux variables sont identiques.

Cependant, il y a une limite à l'utilisation de la covariance seule. Bien que la covariance donne un aperçu de la relation entre deux variables, elle ne donne pas une idée de l'ampleur de la relation. Cela pose un défi lors de la comparaison des relations entre différentes séries de données. C'est là que la corrélation entre en jeu.

La corrélation est une version standardisée de la covariance. Il est calculé en divisant la covariance par le produit des écarts types des deux séries de données. Ce processus de normalisation nous permet de comparer les relations sur une échelle standardisée, allant de -1 à +1. Une corrélation de +1 indique une relation positive parfaite, -1 représente une relation négative parfaite et 0 indique l'absence de relation.

La covariance et la corrélation sont des mesures qui nous aident à comprendre la relation entre différentes séries de données. La covariance fournit une indication du co-mouvement entre les variables, tandis que la corrélation normalise cette mesure et permet une utilisation facile.

Covariance and Correlation (Calculations for CFA® and FRM® Exams)
Covariance and Correlation (Calculations for CFA® and FRM® Exams)
  • 2020.08.19
  • www.youtube.com
AnalystPrep's Concept Capsules for CFA® and FRM® ExamsThis series of video lessons is intended to review the main calculations required in your CFA and FRM e...