Python dans le Trading Algorithmique - page 20

 

Comment coder un arrêt de piste dans le backtesting de la stratégie Python



Comment coder un arrêt de piste dans le backtesting de la stratégie Python

Aujourd'hui, j'ai un tutoriel de codage passionnant pour vous en Python. Nous apprendrons comment mettre en œuvre un stop suiveur dans notre stratégie de trading et analyser son impact sur nos capitaux propres et nos rendements. Si vous êtes nouveau sur cette chaîne, je vous recommande de regarder les vidéos précédentes de cette playlist, en particulier les deux ou trois dernières, où nous avons discuté de la stratégie en détail. Vous pouvez également trouver le code Python dans le cahier Jupiter, qui est disponible en téléchargement à partir du lien dans la description. Cela vous permettra d'affiner les paramètres et d'expérimenter par vous-même.

Avant de plonger dans la partie codage, récapitulons brièvement la stratégie que nous allons utiliser. En un mot, nous avons automatisé la détection des niveaux de support et de résistance, ainsi que l'identification des modèles de chandeliers se produisant autour de ces niveaux. Sur la base de ces signaux, nous exécuterons nos ordres de trading. Par exemple, si nous identifions un signal d'achat, tel qu'un modèle d'avalement haussier précédé d'une forte bougie de rejet, nous entrerons dans une position longue. Pour gérer le risque, nous devons définir un ordre stop-loss, qui détermine la perte maximale que nous sommes prêts à tolérer. Traditionnellement, le stop-loss est fixé à une certaine distance du prix d'entrée. Cependant, dans ce tutoriel, nous allons le remplacer par un stop suiveur.

Un stop suiveur suit le mouvement des prix dans la direction rentable, nous permettant de capturer plus de gains lors d'une tendance haussière. Dans notre exemple, puisque nous sommes en position d'achat, le stop suiveur suivra le prix à mesure qu'il monte, en maintenant une certaine distance derrière lui. Cependant, si le prix tente de s'inverser et atteint le niveau stop-loss, notre transaction sera fermée pour éviter de nouvelles pertes. Ce mécanisme de stop suiveur permet de maximiser les profits, en particulier pendant les tendances de prix prolongées, au lieu d'utiliser un niveau de profit fixe qui pourrait limiter nos gains potentiels.

Maintenant, appliquons ce concept à notre stratégie discutée précédemment. Nous utiliserons le même programme que nous avons détaillé précédemment. Si vous ne le connaissez pas, veuillez vous référer à la liste de lecture et regarder les deux ou trois dernières vidéos, qui couvrent les modèles de chandeliers et l'automatisation de la détection des niveaux de support et de résistance. La seule différence cette fois est qu'au lieu d'utiliser un ratio stop-loss ou take-profit fixe, nous mettrons en œuvre le trailing stop. Vers la fin de ce didacticiel, je testerai la stratégie et démontrerai les rendements potentiels réalisables avec cette méthode de stop suiveur.

Pour commencer, nous chargeons nos données, qui sont le graphique en chandeliers quotidien pour la paire de devises EUR/USD de 2003 à 2021. Nous avons un ensemble de fonctions qui aident à détecter les niveaux de support et de résistance, ainsi que divers modèles de chandeliers comme les modèles engloutissants, étoiles filantes et modèles de rejet. Si vous êtes intéressé par les détails de mise en œuvre de ces fonctions, veuillez vous référer aux vidéos précédentes.

Ensuite, nous générons nos signaux de trading. Un signal d'achat est désigné par une valeur de 2, un signal de vente par 1, et s'il n'y a pas de signal, la valeur est définie sur 0. Cette information est ajoutée en tant que nouvelle colonne dans notre bloc de données. Voici à quoi ressemble notre bloc de données maintenant, avec des colonnes pour le prix d'ouverture, le haut, le bas, le prix de clôture, le volume (que nous n'utiliserons pas dans cette stratégie) et la colonne de signal.

Pour backtester notre stratégie, nous utiliserons le package de backtesting présenté dans la dernière vidéo de cette liste de lecture. Nous définissons une classe appelée "MyCandleStrategy" qui hérite de la classe "Strategy" fournie par le package de backtesting. Nous redéfinissons deux fonctions : "initialize" et la fonction suivante appelée à chaque chandelier. Dans la fonction d'initialisation, nous définissons la variable "stop_loss_trail", qui représente la distance (en pips) pour notre stop suiveur. Cette valeur peut être expérimentée pour trouver la valeur optimale du stop suiveur pour notre stratégie.

Dans la fonction suivante, nous implémentons la logique de notre stop suiveur. Nous commençons par vérifier si nous avons une position ouverte. Si nous le faisons, nous calculons le niveau de stop-loss actuel en soustrayant la valeur du stop suiveur du prix le plus élevé depuis que nous sommes entrés dans la position. Cela garantit que le niveau stop-loss traîne derrière le prix à mesure qu'il augmente. Nous vérifions ensuite si le prix actuel a atteint ou est tombé en dessous du niveau stop-loss. Si c'est le cas, nous clôturons la position et mettons à jour nos statistiques de trading.

Maintenant que nous avons implémenté la logique du stop suiveur, nous pouvons procéder à l'exécution du backtest et à l'analyse des résultats. Voici un exemple de la façon d'exécuter le backtest et d'imprimer la courbe d'équité : Cela générera un graphique montrant la courbe d'équité de notre stratégie avec le stop suiveur appliqué. Vous pouvez également accéder à d'autres mesures de performance et statistiques fournies par le package de backtesting pour évaluer les performances de la stratégie.

Enfin, pour affiner la valeur du stop suiveur, vous pouvez parcourir une plage de valeurs et exécuter plusieurs backtests pour comparer les résultats. Cela vous aidera à trouver la valeur stop suiveuse optimale qui maximise vos rendements.

Cela conclut notre tutoriel sur la mise en œuvre d'un stop suiveur dans notre stratégie de trading. N'oubliez pas d'expérimenter différentes valeurs et de tester soigneusement la stratégie avant de l'appliquer au trading réel. Si vous avez des questions ou avez besoin d'aide supplémentaire, n'hésitez pas à demander. Bon codage et bon trading !

How To Code A Trail Stop In Python Strategy Backtesting
How To Code A Trail Stop In Python Strategy Backtesting
  • 2021.10.22
  • www.youtube.com
Trailing stop, or stop loss strategy is presented and coded in python for algorithmic trading methods. The strategy is Backtested showing high profitability...
 

Comment backtester une stratégie de trading en Python



Comment backtester une stratégie de trading en Python

Bonjour à tous et bienvenue dans une autre vidéo. Aujourd'hui, je voudrais aborder un sujet très important pour nos stratégies de trading, à savoir le backtesting. Jusqu'à présent, nous avons présenté différentes stratégies et nous nous sommes appuyés uniquement sur des comptages statistiques pour vérifier la fiabilité des estimations de notre modèle pour le trading. Cependant, le backtesting de notre stratégie apporte des informations supplémentaires, à savoir le montant des bénéfices pouvant être réalisés dans un certain délai.

Ce pourcentage de profit est important à définir si vous envisagez tout type d'investissement dans votre stratégie. Avant de continuer, comme d'habitude, le code est un cahier Jupyter Python que vous pouvez télécharger à partir du lien dans la description de cette vidéo. Ce sujet a été proposé par l'un de vos messages, alors merci encore de partager vos réflexions. Nous obtenons des idées vraiment intéressantes à partir de vos commentaires, et je m'excuse si je n'ai pas eu le temps de discuter de toutes les idées proposées, mais je garde une liste, et je pense que nous allons les couvrir à l'avenir.

Parlons maintenant des outils de backtesting. Il existe de nombreuses bibliothèques disponibles en ligne, mais personnellement, je préfère coder mes propres fonctions. De cette façon, je sais exactement ce qui se passe dans mon code, en particulier en ce qui concerne les backtests. Nous avons besoin de quelque chose de fiable et de robuste. Cependant, parmi les forfaits proposés, j'avais deux choix. L'un utilisait un package appelé "vectorbt", que j'ai trouvé un peu difficile à apprendre en quelques heures et à commencer à utiliser pour mes propres stratégies. La documentation était rare et j'ai dû chercher dans des forums et des exemples en ligne pour trouver de nombreux détails. Bien qu'il ait un énorme potentiel et offre de nombreuses options, je ne voulais pas passer un mois à me familiariser avec les fonctions nécessaires juste pour tester une stratégie simple.

Donc, pour cette vidéo, j'ai opté pour le deuxième choix, qui est un package appelé "backtesting.py". À mon avis, il offre une approche plus simple. Maintenant, sautons dedans et voyons combien d'argent notre stratégie aurait rapporté. Pour cet exemple, je vais tester la stratégie précédente dont nous avons discuté dans la résistance et prendre en charge la détection automatisée et la vidéo de détection des modèles de chandeliers. Ce sont deux indicateurs que nous allons combiner et utiliser dans cette vidéo.

Tout d'abord, je vais charger et nettoyer les données. Ensuite, j'appliquerai les fonctions de support et de résistance pour la détection. Si c'est la première fois que vous regardez sur cette chaîne, je vous recommande de revenir en arrière et de vérifier les vidéos précédentes sur la façon de détecter les fonctions de support et de résistance, ainsi que celle où nous expliquons comment détecter les motifs engloutissants, les étoiles filantes, le pendu et autres modèles de chandeliers.

Ensuite, nous calculons notre signal, qu'il s'agisse d'un signal d'achat, d'un signal de vente ou d'aucun signal du tout, sur la base de l'approche mentionnée précédemment. Nous étiquetons nos deux signaux et remplissons une colonne dans notre bloc de données. Nous pouvons vérifier le nombre de signaux que nous avons obtenus juste pour nous assurer que nos fonctions fonctionnent correctement.

Maintenant, je vais changer les titres des colonnes pour les rendre compatibles avec le package backtesting.py. Cette étape est sensible à la casse, nous devons donc nous assurer que les noms correspondent exactement. Ensuite, je sélectionne une série de lignes avec lesquelles travailler.

Après avoir mis en place notre data frame, nous passons à la partie la plus intéressante : définir notre stratégie et la backtester. Je vais importer les bibliothèques requises, y compris le module "stratégie", et supprimer l'exemple sur le croisement des moyennes mobiles lentes et rapides.

Ensuite, je définis une nouvelle classe appelée "MyCandlesStrategy" qui étend la classe "Strategy" et remplace ses deux méthodes abstraites : __init__ et next. La méthode __init__ est utilisée pour initialiser les premières variables ou fonctions au début de la stratégie. Il n'est exécuté qu'une seule fois, idéalement pour pré-calculer tous les indicateurs et signaux dont dépend la stratégie.

Dans l'ensemble, le backtesting est un aspect crucial des stratégies de trading, car il fournit des informations précieuses sur la rentabilité potentielle d'une stratégie sur une période de temps spécifique. Dans cette vidéo, nous allons nous plonger dans le backtesting et son importance pour nos stratégies de trading.

Avant de poursuivre, comme d'habitude, le code de cette discussion est disponible sous forme de cahier Jupyter Python, que vous pouvez télécharger à partir du lien fourni dans la description de la vidéo. Le sujet du backtesting a été suggéré par l'un de nos téléspectateurs, et j'apprécie les idées intéressantes et les commentaires que je reçois de vous tous. Bien que je n'aie peut-être pas l'occasion de discuter immédiatement de toutes les idées proposées, je maintiens une liste et m'efforce de les couvrir dans de futures vidéos.

En ce qui concerne les outils de backtesting, de nombreuses bibliothèques sont disponibles en ligne. Bien que je ne les connaisse pas tous, personnellement, je préfère coder mes propres fonctions. Cette approche me permet d'avoir un contrôle et une compréhension complète du fonctionnement interne du code, ce qui est particulièrement crucial pour le backtesting. Nous avons besoin d'une solution robuste et fiable pour évaluer nos modèles de trading.

Parmi les forfaits proposés, j'avais deux options. Le premier était un package appelé "Vectorbt", qui, bien que puissant et riche en fonctionnalités, avait une courbe d'apprentissage abrupte. La documentation de ce package était quelque peu limitée et j'ai dû chercher dans des forums et des exemples en ligne pour rassembler les informations nécessaires. Bien que Vectorbt ait un potentiel immense, je ne voulais pas passer trop de temps à me familiariser avec ses fonctions uniquement dans le but de tester une stratégie simple dans cette vidéo.

Par conséquent, j'ai opté pour le deuxième choix, un package appelé "backtesting.py". À mon avis, ce package offre une approche plus simple du backtesting, ce qui le rend plus adapté à nos besoins. Cela dit, plongeons-y et voyons combien de bénéfices notre stratégie aurait générés.

Dans cet exemple, je vais tester la stratégie précédente dont nous avons discuté, qui impliquait la détection automatisée des niveaux de résistance et de support, ainsi que la détection des modèles de chandeliers. Ces deux indicateurs seront combinés pour former notre stratégie. Pour une explication détaillée de la détection des niveaux de support et de résistance et des modèles de chandeliers, je vous encourage à regarder les vidéos correspondantes sur notre chaîne.

Pour commencer, nous chargeons et nettoyons les données comme d'habitude. Ensuite, nous implémentons les fonctions de support et de résistance pour la détection. Si vous êtes nouveau sur cette chaîne, je vous recommande de consulter les vidéos précédentes sur la détection du support et de la résistance et l'identification des modèles de chandeliers pour une meilleure compréhension.

Une fois que nous avons calculé nos signaux, qui déterminent s'il s'agit d'une situation d'achat, de vente ou d'absence de signal, nous comptons le nombre de signaux pour nous assurer que nos fonctions fonctionnent correctement.

À l'avenir, nous devons ajuster les noms de colonne dans notre DataFrame pour qu'ils soient compatibles avec le package "backtesting.py". Il est essentiel de respecter la sensibilité à la casse et les conventions de nommage requises par le package. De plus, nous sélectionnons une série de lignes et apportons les modifications de colonne nécessaires.

Pour résumer, notre DataFrame contient les colonnes suivantes : temps, ouverture, prix haut, bas et de clôture, ainsi que le volume (que nous n'utiliserons pas pour le moment) et la colonne de signal que nous avons calculée précédemment.

Ensuite, nous définissons une fonction de signal qui renvoie la colonne de signal de notre DataFrame. Cette fonction sera nécessaire plus tard lorsque nous définirons notre classe de stratégie.

Nous arrivons maintenant à la partie la plus intéressante, où nous définissons notre stratégie et effectuons des backtests. Pour ce faire, nous suivons les directives fournies dans la documentation backtesting.py. Ils suggèrent qu'une nouvelle stratégie devrait étendre la classe Strategy et remplacer ses deux méthodes abstraites : init et next.

La méthode init est chargée d'initialiser les variables et les fonctions requises par la stratégie. Il est appelé avant l'exécution de la stratégie et est généralement utilisé pour pré-calculer tous les indicateurs ou signaux sur lesquels la stratégie s'appuie. En surchargeant cette fonction, nous pouvons définir les indicateurs nécessaires à l'aide des fonctions Python classiques et des exemples fournis dans la documentation backtesting.py.

Dans notre méthode init, nous définissons les indicateurs nécessaires à notre stratégie. Dans ce cas, nous utiliserons la fonction de signal que nous avons créée précédemment pour obtenir la colonne de signal de notre DataFrame. Nous avons également fixé les frais de commission à zéro, car nous ne prendrons en compte aucun frais de négociation pour cet exemple.

La méthode suivante est au cœur de notre stratégie. Il est appelé pour chaque barre de trading et est chargé de prendre les décisions de trading en fonction des conditions actuelles du marché. Dans notre implémentation, nous vérifions s'il y a un signal d'achat (signal égal à 1) et nous n'avons pas de position actuellement. Si ces conditions sont remplies, nous entrons dans une position longue (achat).

De même, s'il y a un signal de vente (signal égal à -1) et que nous avons une position longue, nous quittons la position (vente). Nous ne considérons pas les positions courtes dans cet exemple, nous n'avons donc que des signaux d'achat et de vente.

Une fois que nous avons défini notre stratégie, nous en créons une instance et passons notre DataFrame et notre fonction signal comme arguments. Nous créons ensuite une instance de la classe Backtest à partir du package backtesting.py, en passant notre instance de stratégie et DataFrame comme arguments.

Enfin, nous exécutons le backtest en appelant la méthode run sur notre instance Backtest. Cette méthode exécute la stratégie et produit les résultats.

Les résultats incluent diverses mesures de performance telles que le rendement total, le rendement annualisé, le prélèvement maximal, etc. Nous pouvons accéder à ces métriques en utilisant les attributs correspondants de l'instance Backtest.

En plus des métriques de performance, l'instance Backtest fournit diverses fonctions de traçage pour visualiser les résultats. Nous pouvons tracer la courbe des fonds propres, qui montre la croissance du compte de trading au fil du temps, ainsi que d'autres graphiques utiles tels que les prélèvements et le journal des transactions.

Dans notre exemple, nous traçons la courbe d'équité et imprimons le résumé des résultats du backtest, y compris les mesures de performance.

Après avoir exécuté le code, nous pouvons observer le tracé de la courbe d'équité, qui montre la croissance de notre compte de trading au fil du temps. La synthèse des résultats du backtest fournit des informations précieuses sur la performance de notre stratégie.

En backtestant notre stratégie, nous pouvons évaluer sa rentabilité et évaluer sa performance. Ce processus nous permet de mieux comprendre l'efficacité de notre modèle de trading et de prendre des décisions éclairées quant à son utilisation potentielle dans des scénarios de trading réels.

Cela conclut notre discussion sur le backtesting à l'aide du package backtesting.py. J'espère que vous avez trouvé cette vidéo informative et qu'elle vous a fourni une approche pratique pour tester vos stratégies de trading. N'oubliez pas d'expérimenter différentes stratégies, indicateurs et paramètres pour trouver ceux qui conviennent le mieux à vos objectifs de trading.

Comme toujours, n'hésitez pas à laisser des commentaires, des questions ou des suggestions pour de futures vidéos. Vos remarques sont très appréciées. Merci d'avoir regardé, et je vous verrai dans la prochaine vidéo !

How To Backtest A Trading Strategy in Python
How To Backtest A Trading Strategy in Python
  • 2021.10.07
  • www.youtube.com
In this video I am presenting a backtesting method using the backtesting.py package. We will backtest a winning strategy using python, we already detailed th...
 

Stratégie de négociation automatisée d'action sur les prix en Python



Stratégie de négociation automatisée d'action sur les prix en Python

Dans cette vidéo, nous discuterons d'une stratégie de trading qui utilise des modèles de chandeliers et des niveaux de support et de résistance. L'objectif principal de cette stratégie est d'automatiser le processus de détection des modèles d'action des prix et de l'appliquer aux données historiques de l'euro par rapport au dollar américain.

Pour commencer, examinons les éléments clés de cette stratégie. Les modèles de chandeliers sont des représentations graphiques des mouvements de prix sous la forme de barres ou de bougies. Ces modèles fournissent des informations précieuses sur le sentiment du marché et les inversions de tendance potentielles. En analysant ces modèles, les traders peuvent prendre des décisions éclairées sur le moment d'entrer ou de sortir des transactions.

Les niveaux de support et de résistance, en revanche, sont des niveaux de prix spécifiques où le marché a historiquement montré une tendance à s'inverser ou à stagner. Ces niveaux agissent comme des barrières psychologiques pour les commerçants et peuvent être utilisés pour identifier les points d'entrée et de sortie potentiels.

Passons maintenant à l'implémentation de cette stratégie en Python. Nous utiliserons des données historiques de l'euro par rapport au dollar américain, qui peuvent être obtenues à partir de diverses sources de données financières ou API. Pour cet exemple, nous supposerons que nous avons déjà collecté et prétraité les données nécessaires.

Nous automatiserons la stratégie en utilisant Python et quelques bibliothèques populaires. La première étape consiste à importer les bibliothèques requises, y compris les pandas pour la manipulation des données, matplotlib pour le traçage et talib pour les indicateurs d'analyse technique. Talib est une bibliothèque largement utilisée qui fournit une collection de fonctions d'analyse technique, y compris la reconnaissance de modèles de chandeliers.

Une fois les bibliothèques importées, nous pouvons charger les données historiques dans un pandas DataFrame. Le DataFrame doit contenir les colonnes nécessaires telles que date, open, high, low, close et volume. Ces colonnes sont couramment utilisées dans l'analyse technique et sont nécessaires pour calculer les indicateurs et les modèles.

Ensuite, nous pouvons définir une fonction pour détecter les modèles de chandeliers. Dans cet exemple, nous allons nous concentrer sur une figure simple, la figure engloutissante haussière. Ce schéma se produit lorsqu'une petite bougie baissière est suivie d'une plus grande bougie haussière qui engloutit complètement la bougie précédente. La fonction itérera sur le DataFrame et identifiera les instances du modèle engloutissant haussier.

Pour améliorer la stratégie, nous pouvons également intégrer des niveaux de support et de résistance. Ces niveaux peuvent être identifiés manuellement en analysant le graphique des prix historiques ou en utilisant des techniques d'analyse technique. Dans cet exemple, nous supposerons que nous avons déjà identifié les niveaux de support et de résistance pertinents et que nous les avons stockés dans un DataFrame séparé.

Une fois que nous avons les modèles de chandeliers et les niveaux de support et de résistance, nous pouvons procéder à l'automatisation de la stratégie. Nous allons parcourir le DataFrame et vérifier si la barre actuelle satisfait aux conditions d'un modèle d'avalement haussier et si le prix actuel est proche d'un niveau de support. Si ces conditions sont remplies, nous générons un signal d'achat.

Inversement, si la barre actuelle remplit les conditions d'un modèle d'avalement baissier et que le prix actuel est proche d'un niveau de résistance, nous générons un signal de vente. Ces signaux seront utilisés pour déclencher des ordres d'achat ou de vente dans un environnement de trading en direct.

Pour visualiser les résultats de notre stratégie, nous pouvons tracer le graphique des prix historiques avec les modèles de chandeliers identifiés et les niveaux de support et de résistance. Cela nous aidera à comprendre l'efficacité de notre stratégie et à identifier les domaines à améliorer.

Enfin, nous pouvons évaluer la performance de notre stratégie en la testant sur les données historiques. Le backtesting consiste à simuler des transactions sur la base de données historiques et à évaluer la rentabilité et le risque de la stratégie. Nous pouvons calculer diverses mesures de performance telles que le rendement total, le rendement annualisé, le prélèvement maximal, etc.

En testant notre stratégie, nous pouvons avoir un aperçu de ses performances et prendre des décisions éclairées quant à son utilisation potentielle dans des scénarios de trading réels. Il est important de noter que le backtesting est une étape cruciale dans le développement de la stratégie, car il nous aide à évaluer la viabilité et la rentabilité de notre approche.

Cette vidéo a présenté une stratégie de trading simple qui combine des modèles de chandeliers et des niveaux de support et de résistance. La stratégie a été automatisée et testée en Python à l'aide de données historiques de l'euro par rapport au dollar américain. En tirant parti de ces techniques d'analyse technique, les traders peuvent potentiellement identifier des opportunités de trading rentables et prendre des décisions éclairées sur les marchés financiers.

Automated Price Action Trading Strategy In Python
Automated Price Action Trading Strategy In Python
  • 2021.09.09
  • www.youtube.com
This video presents a simple trading strategy using candlestick patterns and support and resistance values. The strategy can be automated for price action d...
 

Support automatisé et détection de résistance en PYTHON



Support automatisé et détection de résistance en PYTHON

Bonjour à tous et bienvenue dans cette vidéo. Dans cette vidéo, nous expliquerons en détail comment automatiser la détection des niveaux de support et de résistance à l'aide de Python. Cette idée a été proposée par l'un des commentaires, donc un grand merci pour cela. Comme d'habitude, n'oubliez pas que le programme est disponible en téléchargement à partir du lien dans la description ci-dessous. C'est un fichier Jupyter Notebook que vous pouvez utiliser pour vos propres expériences. Vous voudrez peut-être essayer cela sur différentes devises ou différentes périodes, et vous pouvez également modifier les variables fournies dans le code.

Bien qu'il soit facile d'identifier visuellement les niveaux de support et de résistance en regardant un graphique de mouvement des prix, les définir par programmation peut sembler compliqué. Cependant, avec un algorithme approprié, le processus peut être automatisé. Il est important de noter que l'algorithme que nous présentons dans cette vidéo n'est pas le seul à détecter les niveaux de support et de résistance. Il existe différentes approches, mais nous en avons choisi une qui est relativement simple à implémenter dans le code.

Le chiffre que vous voyez ici a été produit en utilisant le code que nous allons expliquer, et comme vous pouvez le voir, les niveaux de support et de résistance ont été correctement détectés par notre programme. Cette approche fonctionne pour n'importe quelle devise et dans n'importe quelle condition de marché. Cependant, ce n'est pas un algorithme parfait et vous remarquerez peut-être que certains niveaux n'ont pas été détectés. Nous aborderons cela plus tard dans la vidéo.

L'idée de base derrière la définition des niveaux de support et de résistance est de regarder en arrière dans une certaine période de temps, comme un mois ou deux, selon le nombre de niveaux que vous souhaitez inclure dans votre stratégie. Plus vous avez de données, plus vous découvrirez de niveaux. Par exemple, si vous envisagez un graphique journalier comme celui présenté ici et que vous souhaitez procéder à une transaction à une date précise, vous regarderez en arrière dans un certain laps de temps, comme un mois, pour découvrir les niveaux de support et de résistance qui s'est produit pendant cette période. C'est ce que nous allons simuler dans notre programme en considérant une période de temps limitée pour la détection de niveau. Si nous essayions de détecter les niveaux de support et de résistance en utilisant toutes les données disponibles, nous nous retrouverions avec un grand nombre de niveaux, ce qui n'est pas pratique pour une stratégie de trading. Il est donc préférable de se concentrer sur quelques mois précédant la date actuelle.

Plongeons maintenant dans l'algorithme lui-même. Pour les niveaux de support, nous rechercherons un certain nombre de creux décroissants qui précèdent la bougie d'intérêt. La bougie d'intérêt doit avoir une valeur basse inférieure à celle des autres bougies. De plus, nous devons avoir trois bas croissants après la bougie d'intérêt. Lorsque toutes ces conditions sont remplies pour un groupe de bougies, nous pouvons identifier un niveau de support, qui est défini comme le prix le plus bas parmi ces bougies. Le même principe s'applique aux niveaux de résistance. Nous devons avoir des sommets croissants avant la bougie d'intérêt et un sommet plus élevé pour la bougie d'intérêt. Ensuite, nous devrions avoir des sommets décroissants après la bougie d'intérêt. Cela nous permet de trouver le niveau de résistance, qui est le prix le plus élevé parmi ces bougies.

Un paramètre intéressant à ce stade est le nombre de bougies que nous devrions considérer avant et après la bougie d'intérêt. Cela peut être personnalisé en fonction des préférences de l'utilisateur, et il serait bon d'expérimenter différentes valeurs. Dans notre programme, nous les définissons comme deux variables appelées n1 et n2. L'indice de la bougie d'intérêt est représenté par la variable l.

Voyons maintenant comment nous pouvons implémenter cet algorithme en Python. Nous utiliserons un Jupyter Notebook pour cette démonstration. Tout d'abord, nous importons les bibliothèques nécessaires, y compris les pandas pour la manipulation des données. Nous chargeons les données à l'aide de la fonction read_csv, et dans cet exemple, nous utilisons les graphiques quotidiens EUR/USD de 2003 à 2021, soit environ 18 ans de données.

Ensuite, nous utiliserons les niveaux de support et de résistance stockés dans les listes ss et rr pour tracer des lignes sur le graphique en chandeliers. Nous allons parcourir chaque niveau de support en ss et ajouter une ligne horizontale au graphique à ce niveau de prix. De même, nous allons parcourir chaque niveau de résistance dans rr et ajouter une ligne horizontale pour chaque niveau. Cela facilitera la visualisation des niveaux de support et de résistance par rapport au mouvement des prix.

En exécutant le code, vous générerez un graphique en chandeliers avec des niveaux de support affichés sous forme de lignes pointillées violettes et des niveaux de résistance affichés sous forme de lignes pointillées bleues. Le graphique fournira une représentation visuelle des niveaux de support et de résistance détectés, ce qui facilitera l'identification des niveaux de prix clés pour les décisions de trading.

N'oubliez pas que l'algorithme présenté ici est l'une des nombreuses approches permettant de détecter les niveaux de support et de résistance. Vous pouvez expérimenter différentes valeurs de n1 et n2 pour voir comment elles affectent la détection et la fusion des niveaux. De plus, vous pouvez modifier la condition de fusion des niveaux en ajustant la valeur de seuil dans le code.

Gardez à l'esprit que la détection automatisée des niveaux de support et de résistance est un outil utile, mais il doit être utilisé en conjonction avec d'autres techniques d'analyse technique et des informations sur le marché pour prendre des décisions commerciales éclairées.

Automated Support and Resistance Detection in PYTHON
Automated Support and Resistance Detection in PYTHON
  • 2021.08.19
  • www.youtube.com
This video describes an algorithm to detect support and resistance levels in python language. 🍓 If you want to follow structured courses with more details a...
 

Analyse automatisée des modèles d'action des prix en Python


Analyse automatisée des modèles d'action des prix en Python

Cette vidéo explique comment combiner les modèles d'analyse de chandeliers en Python et vérifier le nombre de signaux ainsi que la précision des prévisions d'action des prix. Les méthodes sont compatibles avec le trading automatisé. Une bonne méthode pour rechercher un signal relativement fort à partir des mouvements de l'action des prix, de l'analyse des chandeliers, des modèles d'engloutissement, de l'analyse de l'action des prix.

00:00 Présentation des bougies d'action sur les prix
00:35
Étoile filante, marteau, pendu, motif engloutissant
03:10 Détection d'action de prix Python
12:13 Résultats de l'analyse de l'action des prix
18:45 Tracer des bougies de prix en Python

Automated Price Action Patterns Analysis In Python
Automated Price Action Patterns Analysis In Python
  • 2021.08.05
  • www.youtube.com
This video provides an explanation on how to combine Candlestick Analysis Patterns in Python and check the number of signals as well as the accuracy of the p...
 

Modèles d'action de prix engloutissants automatisés en Python



Modèles d'action de prix engloutissants automatisés en Python

Bonjour à tous et bienvenue dans cette vidéo. Dans la discussion d'aujourd'hui, nous nous concentrerons sur les bougies engloutissantes, en particulier les schémas engloutissants haussiers et baissiers. Pour ceux d'entre vous qui connaissent déjà ces modèles, vous comprenez leur importance en tant qu'indicateurs dans le trading.

Pour analyser la validité de ces modèles, nous utiliserons les données historiques de la paire de devises EUR/USD sur environ 10 ans. Notre objectif est d'appliquer des techniques statistiques simples en Python pour déterminer si ces modèles ont une signification statistique ou s'ils ne sont qu'un mythe. Ces informations sont cruciales, surtout si vous envisagez d'intégrer des modèles de chandeliers dans votre stratégie de trading en tant qu'indicateurs.

Pour votre commodité, vous pouvez trouver le code complet utilisé dans cette analyse en suivant le lien fourni dans la description ci-dessous. Le code est disponible sous forme de fichier Jupyter Notebook, vous permettant de vous détendre et de profiter de cette vidéo tout en explorant simultanément le code.

Les patrons d'engloutissement peuvent être observés sous deux formes différentes. Le modèle haussier se produit lorsque plusieurs bougies de tendance baissière sont suivies d'une seule bougie de tendance haussière. Cette bougie de tendance haussière commence au niveau ou en dessous du prix de clôture de la dernière bougie de tendance baissière et se clôture plus haut que le prix d'ouverture de la bougie précédente. Ce schéma indique généralement une tendance haussière à venir sur le marché.

D'autre part, le modèle d'avalement baissier est l'opposé symétrique du modèle haussier. Cela se produit lorsque les bougies de tendance haussière sont suivies d'une bougie engloutissante baissière. Une bougie engloutissante baissière commence à ou au-dessus du cours de clôture de la bougie précédente et se termine en dessous du prix d'ouverture de la même bougie. Ce modèle signifie un prochain mouvement à la baisse des prix.

Dans cette vidéo, notre objectif est de vérifier si ces affirmations sont vraies. Notre objectif est de déterminer si ces modèles indiquent vraiment des comportements de marché spécifiques. En règle générale, une tendance engloutissante haussière suggère que les acheteurs sont plus forts que les vendeurs sur le marché, tandis qu'une tendance engloutissante baissière suggère le contraire. Pour accomplir cette vérification, nous allons écrire du code Python pour détecter les bougies engloutissantes haussières et baissières. Par la suite, nous analyserons les quelques bougies suivantes (allant d'une à trois bougies ou plus) pour déterminer si le prix évolue dans la direction attendue.

Pour être plus précis, nous considérerons le cours de clôture de la dernière bougie engloutissante. Dans le cas d'un modèle engloutissant haussier, nous considérerons les valeurs élevées des bougies suivantes et calculerons la différence entre les prix haut et de clôture de la bougie engloutissante. Il en résultera trois valeurs distinctes, que nous désignerons par "d". Ensuite, nous testerons si l'une de ces différences dépasse une certaine limite, représentée par une variable que je définirai. Cette limite peut être fixée à 20, 30 ou 40 pips, selon votre préférence. Nous calculerons ensuite le pourcentage de fois que cette différence dépasse la limite de pip.

De même, pour le modèle d'avalement baissier, nous considérerons les valeurs basses des bougies suivantes. Nous comparerons la différence entre le prix de clôture de la bougie engloutissante et ces valeurs basses avec la variable X. Encore une fois, nous recherchons des cas où cette différence dépasse X. Essentiellement, nous évaluons si le prix dépasse un haussier ou un baissier. seuil dans les deux à trois bougies suivant le modèle engloutissant. Nous calculerons le pourcentage d'instances où le prix se comporte comme prévu après l'apparition de ces modèles.

Il est important de noter qu'une seule de ces différences doit dépasser la variable X. Nous n'exigeons pas que les trois différences dépassent simultanément cette limite de pip. Par conséquent, si le prix tombe en dessous de la valeur de clôture de la bougie engloutissante d'un nombre spécifique de pips, la prédiction de ce modèle est considérée comme réussie. Le même principe s'applique au modèle d'avalement haussier, mais dans une direction ascendante.

Passons maintenant à la vérification du code Python et à l'observation de son comportement.

Si je fais cela pour la tendance égale à un, c'est-à-dire pour le modèle d'engloutissement baissier et la prédiction de tendance à la baisse, je peux calculer la précision en additionnant les valeurs dans la colonne des résultats où la tendance est égale à un et en la divisant par le nombre total de signaux pour le modèle engloutissant baissier. De même, je peux calculer la précision du modèle d'avalement haussier et de la prédiction de la tendance haussière.

Maintenant, créons une nouvelle fonction appelée "calculate_precision" qui prend la trame de données comme entrée et calcule la précision pour les deux modèles. Tout d'abord, nous initialisons les variables "bearish_signals" et "bullish_signals" pour compter le nombre total de signaux pour chaque motif. Ensuite, nous parcourons la trame de données et incrémentons le compteur de signal correspondant en fonction de la valeur du signal.

Ensuite, nous calculons la précision du modèle d'engloutissement baissier en additionnant les valeurs dans la colonne des résultats où la tendance est égale à un et en la divisant par le nombre total de signaux baissiers. Nous faisons de même pour le modèle d'avalement haussier et la prédiction de tendance haussière.

Enfin, nous renvoyons les valeurs de précision pour les deux modèles. Maintenant, appelons cette fonction sur notre bloc de données pour calculer la précision.

Après avoir calculé la précision, nous pouvons imprimer les résultats pour voir dans quelle mesure nos prédictions s'alignent sur la tendance réelle. Il est important de noter que ces valeurs de précision sont basées sur les paramètres et conditions spécifiques que nous avons définis dans notre code. Vous pouvez expérimenter différents paramètres et conditions pour optimiser la précision de votre stratégie de trading spécifique.

En conclusion, cette vidéo s'est concentrée sur l'engouffrement des modèles de bougies dans le trading et visait à déterminer si ces modèles ont une signification statistique ou s'ils ne sont qu'un mythe. En analysant les données historiques de la paire de devises EUR/USD à l'aide de Python, nous avons détecté des modèles de bougies engloutissantes baissières et haussières et examiné le comportement de tendance ultérieur dans un nombre spécifié de bougies. Grâce au calcul de la précision, nous avons obtenu des informations sur l'exactitude de nos prédictions. N'oubliez pas de tenir compte des limites de cette analyse et de continuer à affiner votre stratégie de trading en fonction de vos propres préférences et objectifs.

Merci d'avoir regardé, et n'oubliez pas de vérifier le lien dans la description de la vidéo pour télécharger le code complet au format Jupyter Notebook. Profitez de votre voyage commercial et bonne chance dans vos efforts !

Engulfing Price Action Patterns Automated in Python
Engulfing Price Action Patterns Automated in Python
  • 2021.07.08
  • www.youtube.com
This video describes the Engulfing Candlestick Patterns, bullish and bearish engulfing candles and statistics are carried out in python to check if these pat...
 

Stratégie de chandelier automatisé en Python | tester l'étoile filante



Stratégie de chandelier automatisé en Python | tester l'étoile filante

Dans la session d'aujourd'hui, nous plongerons dans le monde fascinant des modèles de chandeliers et apprendrons à les programmer en Python. Notre objectif est de créer un code capable d'identifier des modèles spécifiques et potentiellement de détecter les inversions de tendance des prix. De plus, nous effectuerons des backtests sur une stratégie qui utilise les signaux Candlestick, en utilisant une approche statistique simple pour évaluer les chances de développer un bot automatisé gagnant basé sur les prédictions Candlestick. Si vous êtes intrigué par ce contenu, vous pouvez télécharger le fichier du programme à partir du lien fourni dans la description ci-dessous. Nous espérons que vous apprécierez cette séance d'information.

Avant de continuer, clarifions que cette vidéo suppose que vous avez déjà des connaissances sur les modèles de chandeliers. Nous n'entrerons pas dans les détails en expliquant chaque motif puisque nous nous concentrerons sur les formes les plus connues. Veuillez noter que cette liste n'est pas exhaustive, car il existe de nombreux autres modèles. Pour l'instant, nous nous en tiendrons à l'essentiel. Vous connaissez peut-être déjà le Doji, qui représente un marché indécis. Un autre motif important est l'étoile filante, caractérisée par une longue queue au-dessus du corps du chandelier. Il peut apparaître sous deux formes, mais ce qui importe le plus, c'est la présence de la longue queue. Lorsque vous rencontrez une étoile filante pendant une tendance haussière, cela peut indiquer un renversement de tendance, suggérant un passage à une tendance baissière. De même, nous avons le motif Hammer, qui est similaire à l'étoile filante mais inversé. Cela signifie un point de rejet lors d'une tendance haussière, avec une longue queue inférieure. Ce schéma suggère que la tendance haussière touche à sa fin et qu'un retracement de tendance baissière pourrait suivre.

Passons à autre chose, discutons du modèle Bullish Engulfing. Cela se produit lors d'une tendance baissière, où le dernier chandelier rouge est complètement recouvert par un chandelier ascendant plus grand. Ce modèle d'inversion signale la fin de la tendance baissière et le début d'une tendance haussière. Inversement, nous avons le modèle Bearish Engulfing, qui est l'opposé du modèle Bullish Engulfing. Cela se produit lors d'une tendance à la hausse, où un chandelier à la hausse est suivi d'un chandelier plus grand, couvrant le précédent. Cela indique la fin de la tendance haussière et le début d'une tendance baissière. Gardez à l'esprit qu'il existe plusieurs autres modèles de chandeliers que nous ne couvrirons pas en détail ici, tels que les trois corbeaux, entre autres. Cependant, dans cette vidéo, nous nous concentrerons spécifiquement sur les modèles Shooting Star et Hammer, en particulier lorsqu'une tendance baissière s'inverse en tendance haussière.

Les modèles Shooting Star et Hammer sont mes favoris personnels en raison de leur indication claire de la réaction du marché à une tendance haussière. Il est évident que les vendeurs sont entrés sur le marché, rejetant un niveau de prix spécifique. C'est pourquoi j'ai tendance à faire plus confiance à ces modèles qu'à d'autres. Bien sûr, les préférences individuelles peuvent varier, selon la façon dont vous utilisez et combinez ces modèles avec d'autres indicateurs ou stratégies. Pour les besoins de cette vidéo, considérons l'étoile filante comme un exemple convaincant de rejet des prix et de la forte réaction des vendeurs, ce qui donne à ce chandelier sa forme distincte. Nous nous concentrerons sur le codage de ce modèle en Python et apprendrons à notre bot à reconnaître ces modèles. Bien que vous puissiez étendre les concepts dont nous discuterons à d'autres modèles qui vous intéressent, nous nous concentrerons principalement sur l'étoile filante et le marteau.

Il est important de noter qu'il ne suffit pas de se fier uniquement aux modèles de chandelier pour générer des signaux d'achat ou de vente précis. Ces modèles doivent être combinés avec vos indicateurs préférés. Dans notre cas, nous les combinerons avec le Relative Strength Index (RSI). Vous pouvez choisir d'incorporer différents indicateurs techniques ou même une analyse fondamentale aux côtés des modèles de chandelier. L'utilisation de chandeliers seuls n'est pas exhaustive.

Pour évaluer le taux de réussite de notre approche de prédiction, nous devons la combiner avec le RSI en combinaison avec le modèle Chandelier pour ajouter une confirmation supplémentaire au signal. Une valeur RSI plus élevée indique une pression d'achat plus forte, ce qui correspond à l'inversion de tendance potentielle suggérée par le modèle d'étoile filante.

Si toutes les conditions sont remplies, nous pouvons générer un signal d'achat. Nous attribuons une valeur de 1 à la colonne de signal pour la ligne correspondante dans la trame de données. Sinon, nous attribuons une valeur de 0, indiquant l'absence de signal. Ce processus est répété pour chaque ligne de la trame de données, balayant efficacement l'ensemble de données pour identifier les signaux d'achat potentiels.

Ensuite, nous passons à la définition des niveaux de stop loss et de take profit pour les signaux d'achat identifiés. Nous calculons la valeur du stop loss en soustrayant la plage réelle moyenne (ATR) du prix d'achat. L'ATR fournit une mesure de la volatilité et aide à déterminer une distance appropriée pour le stop loss. Un ATR plus large indique un marché plus volatil, nécessitant un stop loss plus important, tandis qu'un ATR plus petit suggère un marché moins volatil, permettant un stop loss plus serré.

Pour le niveau de profit, nous multiplions le ratio take profit-stop loss (que nous avons fixé à 2) par l'ATR et l'ajoutons au prix d'achat. Cela garantit que le niveau de profit est deux fois plus éloigné du prix d'achat que le niveau de stop loss. Le niveau de profit représente l'objectif de profit potentiel pour le commerce.

Maintenant que nous avons les signaux d'achat et les niveaux de stop loss et de take profit correspondants, nous pouvons procéder au backtesting de la stratégie. Nous parcourons chaque ligne du bloc de données et simulons les transactions en fonction des signaux générés.

Si le prix atteint le niveau stop loss en premier, nous considérons qu'il s'agit d'une transaction perdante. Inversement, si le prix atteint le niveau de profit en premier, nous le considérons comme un trade gagnant. Nous gardons une trace du nombre de transactions gagnantes et perdantes.

Pour évaluer les performances de la stratégie, nous calculons le taux de gain comme le pourcentage de trades gagnants sur le total des trades. Dans ce cas, puisque nous avons fixé le ratio take profit-stop loss à 2, chaque transaction gagnante compense deux transactions perdantes. Par conséquent, pour avoir un système gagnant, nous devons avoir raison au moins 34 % du temps.

Il est important de noter que cette évaluation ne tient pas compte des frais de négociation, tels que les frais et les valeurs de swap au jour le jour. De plus, il s'agit d'un exemple simplifié, et dans le commerce réel, il est essentiel de prendre en compte d'autres facteurs, tels que les conditions du marché, la gestion des risques et l'analyse globale du marché.

En combinant les modèles de chandeliers, le RSI et une approche systématique de la gestion des transactions, nous visons à développer une stratégie de négociation susceptible de générer des transactions rentables. Cependant, il est crucial de tester et de valider minutieusement la stratégie à l'aide de données historiques et d'envisager une analyse de marché continue pour s'adapter aux conditions changeantes du marché.

En conclusion, ce didacticiel vidéo fournit une introduction à la programmation de modèles de chandeliers en Python, montre comment reconnaître des modèles spécifiques et décrit une approche de backtesting pour évaluer les performances d'une stratégie basée sur ces modèles. C'est l'occasion d'explorer le potentiel des modèles de chandeliers en tant qu'outil de prédiction des inversions de tendance des prix et de développer des bots de trading automatisés.

Automated Candlestick Strategy in Python | testing the shooting star
Automated Candlestick Strategy in Python | testing the shooting star
  • 2021.04.21
  • www.youtube.com
This video is a walkthrough coding the candlestick patterns in Python language. After a general introduction we focus mainly on the shooting star rejection p...
 

Évitez les erreurs courantes dans le trading algorithmique et l'apprentissage automatique



Évitez les erreurs courantes dans le trading algorithmique et l'apprentissage automatique

Vous êtes-vous déjà demandé à quoi cela ressemblerait d'avoir un bot de trading gagnant qui exécute des transactions rentables en votre nom pendant que vous dormez ou que vous profitez de votre temps libre ? Peut-être avez-vous passé des heures, des mois, voire des années à essayer de déchiffrer le code et de trouver ce programme insaisissable qui pourrait révolutionner votre style de vie.

En ce qui concerne l'apprentissage automatique, de nombreuses personnes pensent qu'il a le pouvoir de faire des merveilles dans divers domaines tels que le marketing et les ventes. Cependant, il existe encore deux domaines dans lesquels l'apprentissage automatique rencontre des difficultés : la prévision des données météorologiques et la prévision du marché des prix. La nature hautement aléatoire des chiffres dans ces domaines rend difficile la prévision précise des prix en utilisant uniquement l'apprentissage automatique.

Mais voici le hic : il est possible de prédire les prix en utilisant l'apprentissage automatique, mais seulement s'il est couplé à une stratégie de trading appropriée. Cela signifie que le type de prédiction que vous faites doit s'aligner sur la stratégie de trading que vous employez.

Voyons maintenant quelques erreurs courantes qui peuvent entraver le succès de votre modèle de trading et ce que vous pouvez faire pour les éviter.

Erreur n° 1 : insérer des valeurs de prix dans un modèle d'apprentissage automatique en tant que régresseur. Essayer de prédire la prochaine valeur marchande en saisissant directement les valeurs de prix dans un régresseur d'apprentissage automatique est une erreur courante pour les débutants. Bien que cette approche puisse bien fonctionner pour des valeurs corrélées telles que la prévision des prix des logements en fonction de la surface, elle ne s'applique pas aux marchés boursiers ou monétaires. Ces marchés ne présentent pas de corrélation claire avec la seule variable temporelle, ce qui rend la régression directe inefficace.

Erreur #2 : Utiliser des valeurs absolues comme entrée du modèle. L'utilisation de prix bruts ou de valeurs d'indicateurs techniques comme données d'entrée est un autre écueil. Le simple fait de fournir des prix d'ouverture, de clôture, hauts et bas, ainsi que des moyennes mobiles et d'autres indicateurs, ne garantit pas des prévisions de prix futures précises. Notre cerveau traite les informations différemment, en se concentrant sur l'image globale et les pentes des mouvements de prix plutôt que sur les valeurs individuelles. De même, votre modèle doit tenir compte des tendances et des modèles généraux plutôt que des points de données individuels.

Erreur #3 : Échantillonner les données à l'aide d'un fractionnement aléatoire des données de train-test. Bien que le fractionnement aléatoire des trains et des tests soit une pratique courante dans l'apprentissage automatique, il peut être problématique lorsque vous travaillez avec une analyse de séries chronologiques, en particulier sur les marchés des prix. Le fractionnement aléatoire de vos données pour l'entraînement et les tests peut conduire à une situation dans laquelle l'ensemble de test ressemble étroitement à l'ensemble d'entraînement. Cette similitude peut donner l'impression que le modèle est précis lors du backtesting, mais ne fonctionne pas bien avec de nouvelles données en direct.

Erreur #4 : Se fier uniquement à l'analyse technique. Bien que les indicateurs techniques jouent un rôle important dans les modèles d'apprentissage automatique, il ne suffit pas de s'appuyer uniquement sur eux pour réussir à long terme. Il est crucial de prendre en compte les facteurs externes, tels que les calendriers économiques et les événements majeurs, qui peuvent avoir un impact significatif sur le comportement du marché. Ignorer ces facteurs peut conduire à de mauvais résultats et discréditer un modèle par ailleurs solide.

Erreur #5 : Ne pas considérer une stratégie qui correspond à la précision du modèle. La précision du modèle ne détermine pas à elle seule sa rentabilité. Combiner la précision du modèle avec une stratégie de trading optimisée, telle qu'un ratio take-profit/stop-loss favorable, peut transformer un modèle apparemment perdant en un modèle rentable. Une précision supérieure à 33% peut être suffisante si elle est associée à la bonne stratégie.

Erreur #6 : sauter une stratégie d'entrée et se fier uniquement aux prédictions du modèle. Même si votre modèle fournit des prévisions précises, il est crucial de savoir quand entrer sur le marché et exécuter des transactions. Définir une stratégie d'entrée sur le marché qui complète les prédictions du modèle est essentiel pour maximiser les profits. Une prévision de tendance correcte ne suffit pas si vous entrez sur le marché au mauvais moment et que vous vous arrêtez avant d'atteindre votre objectif.

Erreur #7 : Ne pas tenir compte des frais de négociation et des commissions. Ne pas tenir compte des frais et commissions peut avoir un impact significatif sur la rentabilité de votre stratégie de trading. Bien qu'une stratégie gagnante puisse avoir un léger avantage, les frais de négociation peuvent éroder ces gains. Il est important de tenir compte des frais lors de la conception de votre stratégie, comme la clôture de transactions dans la même journée pour éviter les frais de nuit ou de week-end.

Ensuite, il est crucial de backtester votre modèle sur une période prolongée. Tester votre modèle dans différentes conditions de marché est essentiel pour garantir son efficacité. Ne vous fiez pas uniquement aux performances à court terme, car elles peuvent ne pas refléter la viabilité à long terme du modèle. Essayez de tester votre modèle sur au moins six mois et évaluez s'il produit régulièrement des gains positifs.

Enfin, évitez de vous impatienter et d'interférer avec les transactions. Un modèle de haute précision a tendance à attendre des signaux forts avant d'exécuter des transactions. Bien que cela puisse vous faire manquer certaines opportunités, il est important de ne pas interférer avec les décisions du modèle. Évitez d'ouvrir de nouveaux métiers ou de fermer ceux qui existent déjà par impatience. Parfois, avoir zéro trade vaut mieux que de faire un trade perdant.

En conclusion, ces informations devraient vous aider à améliorer votre expérience de trading. N'oubliez pas que si votre algorithme n'est pas encore prêt pour le marché, il est préférable de ne pas trop vous concentrer dessus. Faites une pause, commandez une bonne tranche de pizza chaude et n'oubliez pas de vous amuser.

 

Comment calculer les indicateurs techniques pour le trading à l'aide de pandas



Comment calculer les indicateurs techniques pour le trading à l'aide de pandas

Bonjour à tous et bienvenue dans cette vidéo. Aujourd'hui, nous allons nous plonger dans l'analyse des prix du marché des changes à l'aide de Python et explorer si les statistiques peuvent révéler des corrélations entre les indicateurs techniques et la direction future des prix. Vous n'avez pas besoin d'être un expert en trading ou en programmation pour suivre, mais une certaine familiarité avec les indicateurs techniques de base comme les moyennes mobiles et l'indicateur de force relative (RSI) serait utile. Si vous êtes ici pour une introduction rapide aux applications d'apprentissage automatique dans le trading, vous êtes également au bon endroit car nous garderons les choses simples.

Dans cette vidéo, nous aborderons les sujets suivants :

  1. Téléchargement des données de change : nous visiterons le site Web cascope.com et sélectionnerons le flux de données historiques, en particulier pour la paire de devises USD/CHF (dollar américain contre franc suisse). Nous choisirons la période horaire du chandelier pour nos données.

  2. Chargement de données dans Python à l'aide de pandas : nous utiliserons la fonction read_csv de la bibliothèque pandas pour charger le fichier téléchargé dans un pandas DataFrame. Nous vérifierons également si les données sont chargées correctement en inspectant les cinq dernières lignes du DataFrame.

  3. Nettoyage des données et analyse initiale : comprendre les données est crucial, nous allons donc nettoyer les données en supprimant les lignes avec un volume nul et en vérifiant les valeurs manquantes. De plus, nous effectuerons une courte analyse statistique pour identifier des modèles ou des corrélations dans les données.

  4. Ajout d'indicateurs techniques : nous importerons les bibliothèques nécessaires, notamment numpy et pandas_ta (analyse technique des pandas), qui fournit divers indicateurs d'analyse technique. Nous ajouterons plusieurs indicateurs à notre DataFrame, tels que la plage moyenne vraie (ATR), le RSI, les moyennes mobiles et calculerons leurs pentes.

  5. Définir la cible : Pour faire des prévisions basées sur des indicateurs techniques, nous devons définir notre cible. Au lieu de prédire le prix moyen futur, ce qui peut être difficile, nous classerons les tendances en trois catégories : à la hausse, à la baisse et sans tendance claire.

  6. Tracer des histogrammes : nous allons visualiser les distributions de diverses caractéristiques à l'aide d'histogrammes. Cela inclut le volume, l'ATR, le RSI, les prix moyens, les moyennes mobiles, les pentes et les catégories cibles. Les histogrammes fourniront un aperçu rapide des données et aideront à identifier les valeurs aberrantes.

  7. Analyser le RSI : nous nous concentrerons sur le RSI en tant qu'indicateur de tendance et créerons des DataFrames distincts pour les trois catégories cibles : tendances à la hausse, à la baisse et peu claires. Nous allons tracer des histogrammes pour les valeurs RSI dans chaque catégorie pour voir s'il existe des différences notables.

Cependant, gardez à l'esprit que se fier uniquement au RSI peut ne pas être suffisant pour prédire avec précision les tendances des prix. Il est recommandé d'explorer d'autres indicateurs techniques ou combinaisons d'indicateurs pour obtenir un avantage dans la prévision des tendances des prix.

Cela conclut le contenu de cette vidéo. J'espère que vous trouverez les informations utiles. Si vous avez des questions spécifiques ou avez besoin de plus de précisions, n'hésitez pas à demander dans la section des commentaires. Bon codage !

How To Calculate Technical Indicators For Trading Using Pandas
How To Calculate Technical Indicators For Trading Using Pandas
  • 2021.02.22
  • www.youtube.com
If you're a beginner looking to learn how to calculate technical indicators and download price history, then you don't want to miss this video! These indicat...
 

Backtesting.py - Cours complet en python



Backtesting.py - Cours complet en python

Au cours du didacticiel, l'instructeur discute des avantages et des inconvénients de l'utilisation de backtesting.py comme bibliothèque pour les stratégies de trading de backtesting. La bibliothèque est conçue pour se concentrer uniquement sur l'essentiel du backtesting, en omettant des fonctionnalités telles qu'une bibliothèque d'indicateurs ou l'intégration avec des courtiers ou d'autres plates-formes. Cette simplicité permet à la bibliothèque d'être légère et simple à utiliser. La documentation fournie est claire et facile à comprendre, permettant aux utilisateurs de saisir rapidement les concepts et les fonctionnalités de la bibliothèque.

Un avantage significatif de backtesting.py est sa rapidité, en particulier lors du test de stratégies uniques. La bibliothèque est optimisée pour les performances, permettant aux utilisateurs d'exécuter des backtests efficacement et d'obtenir des résultats en temps opportun. Cette vitesse est bénéfique lors de l'itération de plusieurs stratégies ou combinaisons de paramètres pour trouver les paramètres optimaux.

Cependant, il y a quelques limitations à prendre en compte lors de l'utilisation de backtesting.py. Premièrement, la bibliothèque ne prend pas en charge le commerce avec plusieurs actifs. Il est principalement conçu pour tester des stratégies sur un seul actif ou titre. De plus, backtesting.py ne prend pas en charge les partages fractionnaires, ce qui peut être un inconvénient pour les utilisateurs intéressés par le trading avec des tailles de position plus petites.

Malgré ces limitations, backtesting.py reste un excellent choix pour ceux qui souhaitent se concentrer exclusivement sur le backtesting de leurs stratégies de trading. Sa simplicité et sa légèreté le rendent facile à comprendre et à intégrer dans les flux de travail existants.

Dans le didacticiel, l'instructeur montre l'utilisation de backtesting.py en parcourant les étapes pour créer un environnement virtuel et installer les dépendances nécessaires. En important les composants requis, tels que les données de test pour les cours des actions Google de 2006 à 2013, l'instructeur prépare le terrain pour effectuer un backtest.

L'instructeur procède ensuite à la création d'une classe de stratégie où les deux fonctions essentielles, __init__ et next, sont définies. Dans la fonction __init__, l'instructeur calcule la valeur de l'indicateur de l'indice de force relative (RSI). La fonction suivante est utilisée pour évaluer les critères d'achat en fonction des valeurs RSI.

Ensuite, l'instructeur explique comment mettre en œuvre une stratégie de croisement simple en utilisant des valeurs précalculées introduites dans la fonction suivante. La bibliothèque croisée de backtesting.py est importée pour comparer le RSI avec les valeurs limites supérieures et inférieures. Lorsque le RSI dépasse une certaine valeur, un signal de vente est généré, et lorsqu'il tombe en dessous d'une autre valeur, un signal d'achat est déclenché. L'instructeur définit les valeurs limites supérieure et inférieure et les affecte à la classe pour l'accès à la fonction suivante.

Pour tester la stratégie, l'instructeur met en place un backtest en fournissant les données, en sélectionnant le montant initial d'argent et en imprimant les statistiques. L'instructeur met l'accent sur la facilité de traçage des résultats de backtesting à l'aide de backtesting.py et met en évidence la façon dont les cases rouges et vertes à l'écran indiquent les mois.

L'instructeur fournit ensuite un aperçu du tableau de bord backtesting.py, qui offre une vue complète des informations commerciales, des profits et des pertes, de la valeur du portefeuille et des indicateurs, entre autres mesures utiles. L'instructeur montre comment l'optimisation de la stratégie peut être obtenue à l'aide de backtesting.py en définissant différentes plages pour les limites supérieure et inférieure de la fenêtre RSI. L'optimiseur génère des statistiques telles que le ratio de Sharpe et simule diverses combinaisons pour trouver la fonction la plus intéressante. L'instructeur insiste sur le fait que les utilisateurs peuvent définir des métriques personnalisées et appliquer des contraintes pour améliorer les résultats de l'optimisation.

De plus, l'instructeur explique comment appliquer des contraintes pour sélectionner un sous-ensemble de valeurs à l'aide de fonctions lambda qui renvoient vrai ou faux en fonction de paramètres spécifiques. La vidéo montre comment optimiser la stratégie à l'aide de la fonction d'optimisation pour maximiser le ratio de Sharpe et comment définir la fonction d'optimisation comme une fonction Python standard. L'instructeur discute également de la création d'une métrique pour maximiser les profits tout en minimisant le temps passé sur le marché.

Dans le didacticiel, l'instructeur ajoute un nombre minimum de filtres de métiers à la fonction d'optimisation pour éviter le surajustement. En incluant ce filtre, la fonction de backtesting est obligée de regarder au-delà d'une seule période de swing, augmentant les chances de découvrir des combinaisons de paramètres plus rentables. De plus, l'instructeur montre comment créer des fichiers HTML des résultats du backtest, ce qui peut être utile lors de l'exécution de plusieurs backtests et doit suivre les différentes combinaisons de paramètres. L'instructeur fournit également des conseils sur la dénomination et l'organisation des fichiers générés pour éviter d'encombrer le répertoire de travail.

Le didacticiel explore plus en détail l'utilisation de la fonction d'optimisation dans backtesting.py pour optimiser efficacement une stratégie sans avoir à tester toutes les combinaisons possibles. En fixant un nombre maximum d'essais, le programme effectue une recherche aléatoire sur grille des combinaisons, réduisant ainsi le temps consacré aux backtests et le risque de surajustement. L'instructeur montre comment générer des cartes thermiques pour visualiser les effets de différentes valeurs sur la stratégie en faisant varier les limites supérieure et inférieure. Une instruction group by pandas est utilisée pour regrouper les colonnes par les limites supérieure et inférieure, et la moyenne est calculée pour obtenir des valeurs moyennes pour chaque combinaison.

L'orateur explique comment la fonction dans backtesting.py trouve toutes les combinaisons uniques des colonnes spécifiées, telles que les limites supérieure et inférieure. Ces combinaisons sont ensuite regroupées et une fonction d'agrégation, telle que la moyenne, est appliquée. La sortie résultante est une carte thermique qui peut être tracée à l'aide du module Seaborn. L'instructeur montre comment optimiser le ratio de Sharpe et changer la palette de couleurs pour la carte thermique. De plus, l'instructeur montre comment utiliser la fonction intégrée plot_heat_maps pour tracer plusieurs cartes thermiques pour plus de deux paramètres.

L'instructeur montre comment utiliser les cartes thermiques pour l'optimisation des paramètres et la mise en œuvre de stratégies sur plusieurs périodes à l'aide de la fonction d'application de rééchantillonnage de la bibliothèque backtesting.py. Les cartes thermiques fournissent une représentation visuelle de la façon dont les variations de différents paramètres affectent les stratégies de trading. En combinant différentes périodes à l'aide de la fonction d'application de rééchantillonnage, les traders peuvent élaborer des stratégies plus complexes qui tiennent compte de différentes conditions de marché.

L'instructeur explique comment différentes périodes peuvent être utilisées dans une stratégie de trading à l'aide de la bibliothèque backtesting.py. En sous-échantillonnant et en appliquant des fonctions, la bibliothèque peut effectuer un remplissage vers l'avant et réindexer vers la plus petite période, ce qui facilite l'analyse de différentes périodes. Dans l'exemple fourni, la stratégie consiste à utiliser le RSI quotidien et hebdomadaire pour déclencher des transactions uniquement lorsqu'un croisement se produit et que le RSI est supérieur ou inférieur à un certain seuil. L'instructeur mentionne que la stratégie peut être optimisée en ajustant les paramètres et que la bibliothèque prend en charge l'expérimentation de différents types d'ordres, tels que stop loss et take profit.

Le présentateur montre comment initier une position courte lorsque le RSI passe en dessous de la limite inférieure et fermer toute position courte lors de l'achat. De même, le présentateur démontre que lorsque le RSI dépasse la limite supérieure, il vend toutes les positions longues et initie une position courte. Cependant, le présentateur note qu'il n'y a pas de code pour empêcher le programme de prendre plusieurs positions, ce qui conduit le programme à perdre 80% du capital investi. Le présentateur explique comment résoudre ce problème en ajoutant une clause pour n'initier une nouvelle transaction que s'il n'y a pas de position actuelle ou s'il existe une position longue/courte dans le portefeuille.

L'instructeur montre comment utiliser les ordres stop-loss et take-profit dans backtesting.py. En fixant un stop-loss à un pourcentage spécifique en dessous du prix actuel, la stratégie peut limiter les pertes sur chaque transaction, tandis que la définition d'un niveau de profit permet de sortir des transactions à un certain niveau de profit. L'instructeur montre également comment ajuster le paramètre de taille dans le processus d'achat pour allouer un pourcentage spécifique des fonds disponibles à chaque transaction. Bien qu'il y ait quelques problèmes avec les tactiques de vente dans l'exemple, la vidéo fournit des informations utiles sur l'utilisation de backtesting.py pour créer et tester des stratégies de trading.

La vidéo présente différentes manières d'implémenter le dimensionnement de position dans le backtesting. Une approche consiste à acheter et à vendre une action à la fois plutôt qu'un pourcentage des liquidités disponibles. Cette approche peut être utile pour les stratégies impliquant l'échelonnement dans une position ou la moyenne des coûts en dollars. La vidéo montre comment modifier une stratégie de croisement en une stratégie basée sur l'indicateur RSI. Dans cette stratégie modifiée, les transactions sont exécutées lorsque la dernière valeur RSI est inférieure à la limite inférieure. La vidéo souligne également que les transactions peuvent être extraites du backtest en tant que dataframe pandas, y compris les dates d'entrée et de sortie et d'autres mesures importantes. Ces données commerciales peuvent être exportées vers d'autres outils de visualisation, tels qu'Excel ou d'autres scripts Python, pour une analyse et un examen plus approfondis.

Le créateur de backtesting.py introduit la fonction "bars since", qui est un outil puissant pour optimiser les stratégies et éviter d'avoir à écrire de nombreuses instructions if pour comparer les données des jours précédents. La fonction permet aux utilisateurs de déterminer le nombre de barres depuis qu'une condition de trading particulière a été remplie pour la dernière fois. Cette fonctionnalité offre un moyen pratique d'optimiser les stratégies en fonction de conditions temporelles spécifiques. De plus, le créateur met l'accent sur la nature open source de backtesting.py, encourageant les utilisateurs à personnaliser la bibliothèque en fonction de leurs besoins et préférences spécifiques.

En conclusion, le didacticiel sur backtesting.py se termine avec l'instructeur encourageant les téléspectateurs à poser des questions ou des préoccupations. L'instructeur leur souhaite bonne chance dans leurs efforts de backtesting et leur rappelle de s'amuser tout en explorant les possibilités de backtesting et d'optimisation des stratégies de trading à l'aide de backtesting.py. L'instructeur insiste sur l'importance de se référer à la documentation backtesting.py pour plus de détails et pour découvrir des fonctionnalités supplémentaires disponibles pour la construction et l'optimisation de l'infrastructure de backtesting.

Dans l'ensemble, le didacticiel fournit un aperçu complet de backtesting.py, de ses avantages, de ses limites et de ses diverses fonctionnalités. Il guide les utilisateurs tout au long du processus de création d'un environnement de backtest, de mise en œuvre de stratégies, d'optimisation des paramètres, d'utilisation de cartes thermiques pour l'analyse, d'incorporation de plusieurs délais et d'application de techniques de dimensionnement de position. En suivant le didacticiel, les téléspectateurs acquièrent des informations précieuses et des connaissances pratiques qui peuvent les aider à tester et à affiner efficacement leurs stratégies de trading à l'aide de backtesting.py.

  • 00:00:00 L'instructeur discute des points positifs et négatifs de backtesting.py. La bibliothèque se concentre uniquement sur l'essentiel du backtesting et n'inclut pas de bibliothèque d'indicateurs ni d'intégration avec des courtiers ou d'autres plates-formes. La documentation est simple et facile à comprendre. De plus, il est très rapide, en particulier lors du test de stratégies uniques. En revanche, il ne permet pas de négocier avec plusieurs actifs ou fractions d'actions. Dans l'ensemble, la bibliothèque est légère et simple, ce qui en fait un excellent choix pour ceux qui cherchent à se concentrer uniquement sur le backtesting. L'instructeur parcourt également les étapes de création d'un environnement virtuel et d'installation des dépendances nécessaires pour le didacticiel.

  • 00: 05: 00 Nous voyons l'auteur de la bibliothèque backtesting.py importer les composants nécessaires à l'exécution d'un backtest, tels que les données de test des cours de l'action Google de 2006 à 2013, et la création d'une classe de stratégie où les deux fonctions , init et next sont définis. Dans init, nous calculons la valeur de l'indicateur du RSI, et la fonction suivante est utilisée pour évaluer les critères d'achat, sur la base du calcul des valeurs du RSI.

  • 00: 10: 00 L'instructeur explique comment mettre en œuvre une stratégie de croisement simple à l'aide de valeurs précalculées qui seront introduites l'année prochaine. Ils importent la bibliothèque croisée de backtesting.py pour comparer le RSI avec les valeurs limites supérieure et inférieure. Lorsque le RSI dépasse une certaine valeur, il vend, et lorsqu'il descend en dessous, il achète. Ils définissent également des valeurs limites supérieures et inférieures et les affectent à la classe pour y accéder dans la fonction. L'instructeur définit ensuite un backtest pour la stratégie et fournit les données, sélectionne le montant d'argent et imprime les statistiques. Ils expliquent comment le backtesting peut être facilement tracé et comment les cases rouges et vertes à l'écran indiquent les mois.

  • 00: 15: 00 L'orateur donne un aperçu du tableau de bord qui peut être utilisé pour visualiser les résultats des backtesting à l'aide de backtesting.py. Le tableau de bord fournit des informations sur les transactions, les profits et les pertes, la valeur du portefeuille et les indicateurs, entre autres. L'orateur montre également comment l'optimisation de la stratégie peut être obtenue à l'aide de backtesting.py en définissant différentes plages de valeurs pour les limites supérieure et inférieure et la fenêtre RSI. L'optimiseur génère des statistiques telles que le ratio de Sharpe et simule diverses combinaisons pour trouver la fonction ayant la valeur la plus élevée. L'orateur note que les utilisateurs peuvent définir des métriques personnalisées pour optimiser et appliquer des contraintes pour générer de meilleurs résultats d'optimisation.

  • 00:20:00 L'instructeur explique comment appliquer des contraintes pour sélectionner un sous-ensemble de valeurs et créer des fonctions lambda qui renvoient vrai ou faux en fonction de n'importe quel paramètre. La vidéo montre comment optimiser la stratégie, comment utiliser la fonction d'optimisation pour maximiser le rapport de netteté et comment définir la fonction d'optimisation comme une fonction Python normale. L'instructeur explique également comment créer une métrique qui détermine comment gagner le plus d'argent tout en restant sur le marché le moins de temps possible.

  • 00: 25: 00 L'instructeur explique comment ajouter un nombre minimum de filtres de métiers à la fonction d'optimisation pour éviter le surajustement. En ajoutant ce filtre, la fonction de backtesting est obligée de regarder au-delà d'une seule période de swing, augmentant les chances de découvrir des combinaisons de paramètres plus rentables. L'instructeur montre également comment créer des fichiers HTML des résultats du backtest, ce qui peut être utile lors de l'exécution de plusieurs backtests et doit suivre les différentes combinaisons de paramètres utilisées. Enfin, l'instructeur explique comment nommer et organiser les fichiers générés pour éviter d'encombrer le répertoire de travail.

  • 00:30:00 L'instructeur explique comment utiliser la fonction d'optimisation dans backtesting.py pour optimiser rapidement une stratégie sans avoir à effectuer toutes les combinaisons possibles. En fixant un nombre maximum d'essais, le programme effectue une recherche aléatoire sur grille des combinaisons, réduisant ainsi le temps consacré au backtesting et le risque de surajustement. L'instructeur montre également comment générer des cartes thermiques pour visualiser les différentes valeurs et leurs effets sur la stratégie lors de la variation des limites supérieure et inférieure. Une instruction group by pandas est utilisée pour regrouper les colonnes par les limites supérieure et inférieure, et la moyenne est prise pour calculer les valeurs moyennes pour chaque combinaison.

  • 00:35:00 L'orateur explique comment la fonction trouve toutes les combinaisons uniques des colonnes mentionnées, telles que les limites supérieure et inférieure. La fonction regroupe ensuite ces combinaisons et applique une fonction d'agrégation, en l'occurrence la moyenne. La sortie résultante est une carte thermique qui peut être tracée à l'aide du module Seaborn. L'orateur montre comment optimiser le ratio Sharpe et modifier la palette de couleurs pour la carte thermique. Enfin, le conférencier montre comment utiliser une fonction intégrée, plot_heat_maps, pour tracer plusieurs cartes thermiques pour plus de deux paramètres.

  • 00: 40: 00 L'instructeur montre comment utiliser les cartes thermiques pour l'optimisation des paramètres et comment mettre en œuvre des stratégies multi-périodes à l'aide de la fonction d'application de rééchantillonnage de la bibliothèque de backtesting. En utilisant des cartes thermiques, les utilisateurs peuvent visualiser comment les variations de différents paramètres affectent leurs stratégies de trading. La fonction d'application de rééchantillonnage permet aux utilisateurs de rééchantillonner les données sur différentes périodes, telles qu'hebdomadaire et quotidienne, afin de les utiliser ensemble dans une stratégie à plusieurs périodes. En combinant différentes périodes, les traders peuvent élaborer des stratégies plus complexes qui tiennent compte de différentes conditions de marché.

  • 00:45:00 L'instructeur explique comment utiliser différentes périodes dans une stratégie de trading à l'aide de la bibliothèque backtesting.py. En sous-échantillonnant et en appliquant des fonctions, la bibliothèque peut effectuer un remplissage vers l'avant et réindexer vers la plus petite période, ce qui facilite l'analyse de différentes périodes. La stratégie dans cet exemple consiste à utiliser le RSI quotidien et hebdomadaire pour déclencher des transactions uniquement lorsqu'un croisement se produit et que le RSI est supérieur ou inférieur à un certain seuil. La stratégie pourrait être optimisée en ajustant les paramètres, et la bibliothèque pourrait être utilisée pour expérimenter différents types d'ordres tels que le stop loss et le take profit.

  • 00: 50: 00 Le présentateur montre comment initier une position courte lorsque le RSI passe en dessous de la limite inférieure, puis ferme toutes les positions courtes lors de l'achat. De même, il démontre que lorsque le RSI dépasse la limite supérieure et vend des positions longues, le programme initie également une position courte. Cependant, il n'y a pas de code pour empêcher le programme de prendre plusieurs positions, ce qui conduit le programme à perdre 80 % des capitaux investis. Le présentateur explique comment résoudre ce problème en ajoutant une clause pour n'initier une nouvelle transaction que s'il n'y a pas de position actuelle ou s'il existe une position longue/courte dans le portefeuille.

  • 00:55:00 L'instructeur montre comment utiliser les ordres stop-loss et take-profit dans backtesting.py. En fixant le stop-loss à un pourcentage spécifique en dessous du prix actuel, la stratégie peut éviter de perdre plus d'un certain montant sur chaque transaction, tandis que la définition du profit permet de sortir des transactions à un certain niveau de profit. L'instructeur montre également comment ajuster le paramètre de taille dans le processus d'achat pour allouer un pourcentage spécifique des fonds disponibles à chaque transaction. Bien qu'il y ait quelques problèmes avec les tactiques de vente dans cet exemple, la vidéo fournit des informations utiles sur l'utilisation de backtesting.py pour créer et tester des stratégies de trading.

  • 01:00:00 La vidéo présente différentes manières d'implémenter le dimensionnement des positions dans les backtestings. Une façon consiste à acheter et à vendre une action à la fois plutôt qu'un pourcentage des liquidités disponibles, ce qui peut être utile pour passer à une position ou à une moyenne du coût en dollars. La vidéo montre comment modifier une stratégie de croisement en une stratégie basée sur l'indicateur RSI, qui achète lorsque la dernière valeur RSI est inférieure à la bande inférieure. La vidéo montre également que les transactions peuvent être extraites du backtest sous forme de dataframe pandas, y compris les dates d'entrée et de sortie et d'autres mesures importantes. Les échanges peuvent être exportés vers d'autres outils de visualisation, tels qu'Excel ou d'autres scripts Python.

  • 01:05:00 Le créateur introduit la fonction "bars depuis" dans backtesting.py, qui peut être utilisée pour déterminer le nombre de barres depuis qu'une condition de trading particulière a été remplie pour la dernière fois. Cette fonction peut être un excellent outil pour optimiser les stratégies et éviter d'avoir à écrire de nombreuses instructions if pour comparer les données des jours précédents. Le créateur utilise l'exemple de la vente uniquement lorsque le rsi quotidien est supérieur à la limite supérieure pendant trois jours consécutifs. En outre, il explique comment extraire des données commerciales brutes pour une analyse plus approfondie et comment la nature open source de backtesting.py permet aux utilisateurs de personnaliser facilement la bibliothèque en fonction de leurs besoins spécifiques. La conclusion du tutoriel invite les apprenants à explorer la documentation backtesting.py pour découvrir plus de détails et de fonctionnalités disponibles pour construire et optimiser leur infrastructure de backtesting.

  • 01:10:00 L'orateur conclut le cours sur backtesting.py en encourageant les téléspectateurs à le contacter pour toute question ou préoccupation. Il leur souhaite également bonne chance dans leurs efforts de backtesting et leur rappelle de s'amuser.
Backtesting.py - Full course in python
Backtesting.py - Full course in python
  • 2022.04.26
  • www.youtube.com
A full course covering all you need to know about the backtesting.py python library. Backtesting.py is a lightweight backtesting framework in the style of Ba...