Python dans le Trading Algorithmique - page 19

 

Stratégie de scalping avec le backtest de modèle CandleStick en Python



Stratégie de scalping avec le backtest de modèle CandleStick en Python

Dans cette vidéo, nous discuterons et démontrerons une stratégie de sculpture simple qui s'appuie sur les concepts présentés dans les deux vidéos précédentes. Si vous êtes intéressé par les détails spécifiques et le code Python de cette stratégie, vous pouvez trouver un lien dans la description de la vidéo.

La stratégie que nous utilisons s'articule autour de trois moyennes mobiles exponentielles (EMA) : rapide, moyenne et lente. En analysant l'alignement de ces EMA, nous pouvons estimer si la tendance des prix est à la hausse ou à la baisse. Dans une tendance haussière, l'EMA rapide est au-dessus de l'EMA moyenne, qui est au-dessus de l'EMA lente. A l'inverse, dans une tendance baissière, l'ordre est inversé.

Pour acheter des positions dans une tendance haussière, nous recherchons des bougies qui s'ouvrent en dessous et se ferment au-dessus de l'EMA rapide. D'autre part, pour vendre des positions dans une tendance baissière, nous recherchons des bougies qui s'ouvrent au-dessus et se ferment en dessous de l'EMA rapide. La vidéo fournit des exemples de bougies qui répondent à ces critères pour acheter des positions dans une tendance haussière.

La stratégie a déjà été testée et optimisée à l'aide d'un compte à effet de levier avec un ratio de levier de 1:100. Les tests ont été menés sur une période de trois ans, ce qui a donné un pourcentage de retour de 445 % et un taux de réussite de 55 %. Cependant, il est important de noter que la stratégie a montré de grandes périodes de baisse et que la courbe des actions n'était pas stable tout au long de la période de trois ans.

Pour améliorer la stratégie, une condition supplémentaire est introduite. En plus des bougies traversant l'EMA rapide, nous considérons maintenant la longueur des mèches de bougie. S'il s'agit d'une tendance haussière, la bougie devrait avoir une queue inférieure très courte, indiquant une forte dynamique haussière. De même, dans une tendance baissière, la bougie ne devrait pas avoir de queue haute. Cette condition vise à filtrer les signaux à faible impulsion.

Pour évaluer l'efficacité de cette condition supplémentaire, la stratégie est backtestée à l'aide de Python. Le code source du backtesting est fourni dans un fichier Jupyter Notebook, qui peut être téléchargé à partir du lien dans la description de la vidéo.

Le backtesting est effectué à l'aide des données du graphique Euro/USD de 15 minutes de 2019 à 2022, couvrant trois années de données. Les données sont prétraitées en supprimant les bougies avec un volume nul et en réinitialisant l'index de la trame de données. Les trois moyennes mobiles (50, 100 et 150) et la plage vraie moyenne (ATR) sont ajoutées à la trame de données.

La stratégie génère des signaux basés sur l'alignement des moyennes mobiles, et le signal total est obtenu en identifiant les chandeliers qui traversent l'EMA rapide dans le même sens que la tendance. La vidéo montre comment ces signaux peuvent être visualisés sur les graphiques.

Différentes méthodes de fixation des valeurs stop loss et take profit sont testées. Ceux-ci incluent la distance fixe, les distances liées à l'ATR, le stop loss suiveur et le stop loss observé à partir du prix. Les résultats de chaque méthode sont comparés avant et après l'ajout de la troisième condition.

Lorsque la troisième condition est ajoutée, la stratégie montre des améliorations significatives dans toutes les méthodes testées. La méthode stop loss et take profit à distance fixe donne un rendement de 1805% avec un taux de gain de 59%. La méthode liée à l'ATR atteint un rendement de 249 % et un taux de réussite de 51 %. La méthode du trailing stop loss, qui était auparavant perdante, donne désormais un rendement de 394% et un taux de gain de 42,5%. Enfin, le stop loss observé sur le prix, qui était également perdant, génère désormais un rendement de 373% avec un taux de gain de 49%.

En plus de l'amélioration des rendements, les courbes d'équité pour toutes les méthodes montrent une tendance générale à la hausse, indiquant une performance plus stable et positive par rapport aux résultats précédents.

La vidéo souligne que cette stratégie n'est pas présentée comme un système de trading complet mais plutôt comme une illustration de l'impact de l'ajout de la condition de mèche basse.

La vidéo se termine en soulignant quelques points importants à prendre en compte lors de l'utilisation de cette stratégie :

  1. La stratégie démontrée dans la vidéo est un exemple simplifié et ne doit pas être considérée comme un système commercial complet. Il sert à illustrer comment l'ajout de certaines conditions peut améliorer les performances d'une stratégie.

  2. Les résultats du backtesting ne sont pas indicatifs des performances futures. Bien que la stratégie ait montré des rendements améliorés au cours de la période de test, les conditions du marché peuvent changer et les résultats passés peuvent ne pas être reproduits à l'avenir.

  3. Il est essentiel d'effectuer des tests et une optimisation approfondis avant d'appliquer une stratégie au trading réel. Le backtesting vous permet d'évaluer les performances de la stratégie dans différentes conditions de marché et d'affiner ses paramètres pour de meilleurs résultats.

  4. La gestion des risques est cruciale. Définir correctement les niveaux de stop loss et de take profit est essentiel pour protéger votre capital et gérer les risques. La vidéo a montré différentes méthodes pour définir ces niveaux, mais il est important de prendre en compte votre tolérance au risque et la taille de votre compte lors de la détermination des valeurs appropriées.

  5. La discipline émotionnelle est nécessaire pour un trading réussi. Tenez-vous en à votre stratégie et évitez de prendre des décisions impulsives basées sur les fluctuations à court terme du marché.

  6. Considérez d'autres facteurs et indicateurs qui peuvent compléter cette stratégie. Aucune stratégie unique ne fonctionne parfaitement dans toutes les conditions de marché, il est donc avantageux de combiner plusieurs indicateurs et techniques pour une analyse plus complète.

  7. Surveillez et évaluez en permanence les performances de votre stratégie. À mesure que les conditions du marché changent, il peut être nécessaire d'adapter et d'affiner votre approche pour rester rentable.

N'oubliez pas que le trading sur les marchés financiers comporte des risques et qu'il est important de vous renseigner, de demander des conseils professionnels et de pratiquer avec prudence avant d'engager des fonds réels. La vidéo sert de ressource éducative, et c'est à vous d'explorer davantage et de personnaliser la stratégie en fonction de votre style de trading et de votre tolérance au risque.

Scalping Strategy With CandleStick Pattern Backtest In Python
Scalping Strategy With CandleStick Pattern Backtest In Python
  • 2022.03.10
  • www.youtube.com
This is a scalping Trading Strategy optimization using CandleStick Wick length pattern to confirm price momentum along with 3 moving exponential averages to ...
 

Backtest simple de la stratégie de trading EMA Scalping en Python (Partie 1)


Backtest simple de la stratégie de trading EMA Scalping en Python (Partie 1)

Aujourd'hui, nous nous lançons dans un voyage pour tester des stratégies de scalping. Je sais que beaucoup d'entre vous l'ont demandé ces derniers temps, et je dois admettre que j'évite généralement les délais courts et le scalping car je trouve que c'est une approche risquée et souvent émotionnellement épuisante.

Cependant, en ce qui concerne les méthodes algorithmiques, les choses pourraient être plus faciles. Avec des algorithmes, nous pouvons tester notre stratégie et avoir une compréhension claire des résultats attendus. Donc, espérons-le, il n'y aura pas de mauvaises surprises puisque notre modèle est déjà backtesté. Comme d'habitude, le code Python est disponible en téléchargement depuis le lien dans la description de la vidéo si la partie codage vous intéresse. Sinon, vous pouvez simplement profiter de la vidéo et voir quel genre de résultats notre stratégie pourrait donner.

Pour commencer, j'ai choisi quelque chose de relativement simple : nous allons utiliser trois moyennes mobiles exponentielles. L'un est rapide, l'autre est moyen et le troisième est lent. Nous utiliserons ces moyennes mobiles pour détecter les tendances. Lorsque ces moyennes mobiles sont alignées dans un ordre spécifique (rapide au-dessus de la moyenne au-dessus de la moyenne mobile lente), nous avons une tendance haussière. A l'inverse, l'ordre inverse indique une tendance baissière.

Pour garantir l'exactitude des tendances, j'ai également ajouté une condition supplémentaire. Les pentes de ces courbes doivent pointer dans la même direction. Dans une tendance haussière, les trois courbes doivent avoir des pentes positives, et dans une tendance baissière, les pentes doivent être négatives.

Une fois que nous aurons un signal de tendance clair, nous chercherons notre point d'entrée. Par exemple, si nous recherchons une position d'achat, nous attendrons une bougie qui s'ouvre en dessous de la moyenne mobile rapide et se ferme au-dessus. Cette bougie indique la poursuite de la tendance haussière et sert de point d'entrée.

L'aspect intéressant ici est que nous pouvons coder tout cela en Python et tester la stratégie. Au départ, nous ne nous concentrerons pas beaucoup sur l'optimisation car je veux que cette vidéo reste concise. Cependant, dans une future vidéo, nous essaierons d'optimiser les paramètres et de voir si nous pouvons obtenir une combinaison gagnante dans nos métiers.

Maintenant, plongeons dans le code Python et examinons les résultats du backtesting. Nous utiliserons la paire de devises Euro/USD avec des chandeliers de 15 minutes de 2019 à 2022. Le bloc de données se compose de 105 000 lignes, chaque ligne représentant une bougie de 15 minutes. Nous nettoyons le bloc de données en supprimant les lignes avec un volume de zéro, ce qui correspond aux week-ends et aux jours de congé où il n'y a pas de mouvements de marché.

Ensuite, nous importons le module pandas_ta (Pandas Technical Analysis) et calculons les trois moyennes mobiles différentes : EMA 50, EMA 100 et EMA 150. Nous calculons également les pentes de ces moyennes mobiles à l'aide d'une fenêtre mobile de 10 bougies.

À ce stade, notre base de données comprend les prix d'ouverture, haut, bas et de clôture, le volume, trois moyennes mobiles et leurs pentes correspondantes. Nous pouvons maintenant vérifier les conditions de détection de tendance. Si la moyenne mobile rapide est inférieure à la moyenne mobile moyenne, et que la moyenne mobile moyenne est inférieure à la moyenne mobile lente, et que les trois pentes sont négatives, cela indique une tendance à la baisse. Inversement, si la moyenne mobile rapide est au-dessus de la moyenne mobile moyenne, la moyenne mobile moyenne est au-dessus de la moyenne mobile lente et les trois pentes sont positives, cela signale une tendance haussière. Ces conditions sont ajoutées sous forme de colonnes dans notre bloc de données.

Pour visualiser les signaux sur nos graphiques, nous définissons une fonction qui trace les points au-dessus ou en dessous des chandeliers en fonction du signal total. Le signal total représente les points d'entrée, 1 indiquant un signal de vente et 2 indiquant un signal d'achat. Les positions des points sont ajoutées sous forme de colonne dans le bloc de données.

Nous traçons les signaux et les chandeliers pour une gamme spécifique de bougies.

Nous traçons les signaux et les chandeliers pour une gamme spécifique de bougies, ce qui nous permet d'analyser visuellement les performances de la stratégie. Les cercles verts indiquent des signaux d'achat, tandis que les cercles rouges indiquent des signaux de vente. Cette représentation visuelle nous aide à comprendre comment la stratégie aurait fonctionné en temps réel.

Après avoir visualisé les signaux, nous calculons la performance de la stratégie. Nous commençons avec un capital de 10 000 $ et parcourons chaque bougie. Si nous recevons un signal d'achat, nous entrons dans une position longue avec une taille fixe. Si nous recevons un signal de vente, nous quittons la position longue et calculons le profit/la perte en fonction de la variation de prix depuis l'entrée. Nous suivons le profit/perte cumulé et le nombre de transactions exécutées.

À la fin de la période de backtesting, nous calculons le profit/perte total, le nombre de trades gagnants, le nombre de trades perdants, le pourcentage de gain et le profit/perte moyen par trade.

Dans la vidéo, je présente les résultats du backtesting pour la stratégie donnée. Veuillez garder à l'esprit que les résultats sont spécifiques à la période et à la paire de devises choisies. La stratégie peut se comporter différemment dans d'autres conditions de marché ou avec des paramètres différents.

Pour résumer les résultats, le backtesting montre que la stratégie a relativement bien performé, générant un rendement positif sur la période de backtesting. Cependant, il est important de noter que les performances passées ne sont pas indicatives des résultats futurs, et des tests et optimisations supplémentaires peuvent être nécessaires.

Simple EMA Scalping Trading Strategy Backtest In Python (Part 1)
Simple EMA Scalping Trading Strategy Backtest In Python (Part 1)
  • 2022.02.24
  • www.youtube.com
Simple scalping Trading strategy using 3 exponential moving averages backtested in python, the scalping strategy is explained and the python code also in Jup...
 

Backtest simple de la stratégie de trading EMA Scalping en Python (optimisation de la partie 2)



Backtest simple de la stratégie de trading EMA Scalping en Python (optimisation de la partie 2)

Bonjour à tous! Bienvenue dans cette vidéo, qui est la suite de notre précédente vidéo. Dans cette vidéo, nous visons à optimiser la stratégie de sculpture introduite précédemment. Pour récapituler brièvement, nous nous concentrerons sur l'optimisation du paramètre appelé "back rolling n", qui détermine le nombre de bougies à prendre en compte lors du calcul des pentes des moyennes mobiles. En faisant varier le nombre de bougies, telles que 20, 10 ou 5, nous pouvons calculer la pente moyenne de ces moyennes mobiles. De plus, nous explorerons la possibilité d'ajouter des conditions sur les pentes moyennes mobiles, telles que le test de pentes inférieures à un seuil spécifique, comme -10 à -4. En expérimentant ces paramètres, nous visons à créer un meilleur filtre pour identifier les tendances.

En outre, nous explorerons différentes approches de gestion des échanges, y compris les valeurs de stop loss et de take profit fixes, les stop loss suiveurs et les stop loss et take profit liés à l'ATR (Average True Range). En examinant ces différentes approches, nous espérons déterminer quelle stratégie de gestion commerciale donne les résultats les plus favorables.

Il est important de noter que ce système de sculpture n'est pas conçu pour les styles de trading rapides, car nous travaillons avec un délai de 15 minutes. Cependant, le même système peut être testé sur des délais plus courts, bien que cela puisse être plus difficile en raison du bruit accru du marché.

Avant de plonger dans le code, il est recommandé de regarder la vidéo précédente où nous avons expliqué la stratégie en détail. Cela vous permettra de mieux comprendre le processus d'optimisation que nous allons vous présenter.

Passons maintenant à notre fichier Jupyter Notebook. Nous commençons par créer un bloc de données et nettoyer les données. Ensuite, nous calculons trois moyennes mobiles différentes et calculons les pentes de ces moyennes mobiles. C'est là que nous commençons à tester notre stratégie.

Initialement, nous considérons une fenêtre mobile de 10 bougies, ce qui signifie que nous faisons la moyenne de la pente pour les moyennes mobiles rapides, moyennes et lentes en utilisant les données de ces 10 bougies. Nous exécutons ce code pour nous assurer que tout fonctionne correctement, y compris les signaux que nous avons introduits dans la vidéo précédente.

Pour faciliter les tests, nous établissons une échelle de temps en considérant que quatre bougies représentent une heure, étant donné que nous travaillons avec des bougies de 15 minutes. Avec cette configuration, nous pouvons sélectionner une tranche spécifique de notre trame de données pour tester notre stratégie. Par exemple, nous pouvons choisir une période de trois mois en spécifiant l'indice de départ à 37 000 et en sélectionnant la durée correspondante.

Après avoir chargé les données pour la période sélectionnée, nous pouvons exécuter notre backtest. Notre taille de lot initiale est fixée à 30 % de nos fonds propres, et nous considérons un stop loss de 40 pips et un take profit de 45 pips. Nous appliquons également une marge de 1 sur 100, reflétant un compte à effet de levier avec un solde de trésorerie de 100 comme point de départ.

En exécutant le backtest, nous observons un rendement de 107% pour la période de trois mois. Cependant, pour assurer la robustesse de notre modèle, il est crucial de tester la stratégie sur différentes tranches de temps. En changeant l'indice de départ, nous pouvons sélectionner différentes périodes et évaluer les performances. Par exemple, nous essayons un indice de départ différent de 47 et exécutons le backtest, ce qui donne un rendement de 30 %.

Nous pouvons répéter ce processus avec différents indices de départ pour analyser les performances de la stratégie sur plusieurs périodes. Cependant, pour tester sur des périodes plus longues, nous devons sélectionner une plus petite partie de notre base de données. Par exemple, nous pouvons choisir une tranche de 10 mois ou de 12 mois pour évaluer la performance annuelle.

En testant la stratégie sur une année complète, nous obtenons un rendement de 100 %, doublant ainsi le montant initial. Bien que cela soit positif, la fréquence des transactions est relativement faible, avec seulement 193 transactions au cours de l'année. Le taux de réussite est d'environ 44 %, ce qui indique une marge d'amélioration.

Pour améliorer notre stratégie, nous allons explorer différentes valeurs pour le paramètre "back rolling n". En testant différents nombres de bougies, comme 20, 10 ou 5, nous pouvons évaluer leur impact sur la performance de notre stratégie. Par exemple, nous pouvons modifier notre code pour définir la valeur "back rolling n" sur 20 et relancer le backtest.

Lors du test avec un "back roll n" de 20, nous observons un rendement de 90 % pour la période de trois mois, légèrement inférieur à notre réglage initial de 10. Cela suggère qu'un "back roll n" plus petit peut être plus efficace dans saisir les tendances à plus court terme.

Ensuite, nous introduisons des conditions supplémentaires basées sur les pentes des moyennes mobiles. Par exemple, nous pouvons implémenter une exigence selon laquelle les pentes des trois moyennes mobiles doivent être inférieures à -4. Cela signifie que nous n'entrons dans une transaction que si les trois pentes sont négatives et inférieures à -4. Nous modifions notre code en conséquence et exécutons le backtest.

En mettant en œuvre les conditions supplémentaires, nous pouvons encore affiner notre stratégie. Lors des tests, nous observons un rendement de 127% pour la période de trois mois, indiquant une amélioration par rapport à nos résultats initiaux. Cependant, il est important de noter que ces conditions peuvent également réduire la fréquence des transactions, car elles fournissent un filtre plus strict.

Explorons maintenant différentes approches de gestion commerciale. Nous commençons par mettre en œuvre une stratégie fixe de stop loss et de take profit, où nous fixons des valeurs prédéterminées pour les deux paramètres. Par exemple, nous pouvons définir un stop loss fixe de 40 pips et un take profit de 45 pips. Après avoir modifié le code et exécuté le backtest, nous analysons les résultats.

Avec l'approche stop loss fixe et take profit, nous observons un rendement de 95% pour la période de trois mois. Bien qu'il soit légèrement inférieur à nos résultats initiaux, il offre un système de gestion des risques maîtrisé. Cependant, il est important d'évaluer la performance sur des périodes plus longues et différentes conditions de marché pour évaluer son efficacité.

Ensuite, nous explorons une stratégie de stop loss suiveur. Au lieu d'utiliser des valeurs fixes, le stop loss s'ajuste dynamiquement au fur et à mesure que le commerce progresse en notre faveur. Par exemple, nous pouvons définir un stop loss suiveur de 30 pips, ce qui signifie que si le prix évolue en notre faveur de 30 pips, le stop loss est déplacé vers le seuil de rentabilité. Nous modifions notre code en conséquence et réexécutons le backtest.

Avec l'approche trailing stop loss, nous obtenons un rendement de 120% pour la période de trois mois. Cela démontre le potentiel d'ajustement dynamique du stop loss pour protéger les profits et maximiser les gains. Cependant, il est essentiel d'évaluer ses performances sur différentes périodes et conditions de marché pour s'assurer de sa robustesse.

Enfin, nous explorons une stratégie de gestion commerciale basée sur l'Average True Range (ATR). L'ATR fournit une mesure de la volatilité du marché, qui peut être utilisée pour définir des niveaux de stop loss et de take profit. En intégrant l'ATR dans notre stratégie, nous pouvons adapter notre gestion des risques aux conditions de marché en vigueur. Nous modifions notre code pour implémenter les niveaux de stop loss et de take profit basés sur l'ATR et exécutons le backtest.

En incorporant les niveaux de stop loss et de take profit basés sur l'ATR, nous obtenons un rendement de 110% pour la période de trois mois. Cela indique l'efficacité potentielle de l'adaptation de notre gestion des risques à la volatilité des marchés.

En conclusion, à travers le processus d'optimisation, nous avons exploré différents paramètres et approches de gestion commerciale pour améliorer notre stratégie de sculpture. En faisant varier le paramètre "back rolling n", en mettant en œuvre des conditions supplémentaires basées sur des pentes moyennes mobiles et en explorant différentes techniques de gestion des échanges, nous avons pu améliorer les performances de la stratégie. Cependant, il est important d'effectuer des tests supplémentaires sur différentes périodes et conditions de marché et d'évaluer la robustesse de la stratégie avant de l'appliquer au trading en direct.

Simple EMA Scalping Trading Strategy Backtest In Python (Part 2 Optimization)
Simple EMA Scalping Trading Strategy Backtest In Python (Part 2 Optimization)
  • 2022.03.03
  • www.youtube.com
This is a continuation of the previous video, here we optimize our simple EMA Scalping trading strategy and we try to backtest the different parameters sets ...
 

Stratégie de trading à haut rendement utilisant l'effet de levier



Stratégie de trading à haut rendement utilisant l'effet de levier

Bonjour à tous et bienvenue sur ma chaîne. Aujourd'hui, nous allons nous plonger dans un sujet que nous n'avons pas abordé auparavant : l'effet de levier. Je dois admettre que j'ai été assez sceptique à ce sujet en raison des risques inhérents encourus. Cependant, je tiens à souligner que ces vidéos sont principalement à des fins éducatives. Je ne vous recommande pas d'adopter aveuglément un système de trading à effet de levier sans en comprendre pleinement les implications. Ainsi, dans cette vidéo, nous prendrons une stratégie de trading utilisée précédemment dont nous avons déjà discuté dans des vidéos précédentes et explorerons les effets de l'intégration de l'effet de levier dans notre système de trading.

Commençons par une brève introduction sur le fonctionnement de l'effet de levier. En règle générale, l'effet de levier est représenté par un ratio, tel que 1:10 jusqu'à 1:1000, bien qu'il soit plus courant de trouver des ratios entre 1:10 et 1:50. Cela signifie que si vous avez un compte avec 1 000 $, vous seriez autorisé à acheter ou à vendre des positions d'une valeur aussi élevée que 10 000 $ si vous choisissez un ratio de levier de 1:10. En augmentant le ratio de levier, disons à 1:50, les mêmes 1 000 $ dans votre compte vous permettraient de faire des achats d'une valeur allant jusqu'à 50 000 $. Les options de levier spécifiques à votre disposition dépendent de votre courtier, du pays dans lequel il opère, des réglementations et d'autres facteurs liés à votre type de compte.

Cependant, il est important de noter que l'effet de levier n'est pas sans coût. Bien qu'il puisse amplifier vos bénéfices potentiels, il amplifie également les risques et peut rapidement épuiser le solde de votre compte. Les débutants sont souvent ciblés par les grands commerçants ou courtiers qui profitent de leur manque d'expérience. Il est crucial de garder cela à l'esprit.

Il y a deux règles clés à garder à l'esprit lors de l'utilisation de l'effet de levier. Premièrement, l'effet de levier peut aider à augmenter les profits si votre stratégie a un taux de réussite élevé. À l'inverse, cela amplifiera également vos pertes si votre stratégie a un faible taux de gain. La définition d'un taux de gain élevé ou faible dépend de divers facteurs tels que le type de stratégie, les valeurs stop loss et take profit, et votre approche de gestion de l'argent. Rappelez-vous toujours que l'effet de levier a un prix. Si vous pouvez acheter ou vendre des positions avec 100 fois le montant que vous possédez, cela signifie que vos fonds sont principalement là pour couvrir les pertes potentielles, qui peuvent survenir rapidement lorsque vous négociez avec des montants beaucoup plus importants.

Dans cette vidéo, nous utiliserons Python pour tester la stratégie dont nous avons discuté précédemment. Nous commencerons par vérifier les rendements à l'aide d'un compte de trading normal, puis nous introduirons un compte à effet de levier dans notre stratégie de trading algorithmique. Nous testerons ces variations, examinerons les résultats et évaluerons les avantages et les risques associés à l'utilisation d'un compte à effet de levier. L'avantage d'utiliser Python est que nous pouvons modifier n'importe quel paramètre à notre guise et observer les effets sur notre pourcentage de retour. Cette puissance de calcul nous permet de tester et de mieux comprendre les avantages et les inconvénients de l'utilisation d'un compte à effet de levier.

Le code Python que nous allons utiliser est similaire au code utilisé dans la vidéo précédente sur l'approche martingale dans le trading. La cellule initiale implique le chargement et le nettoyage des données, la réinitialisation de l'index et l'exécution d'autres étapes nécessaires. Je ne passerai pas beaucoup de temps sur le code aujourd'hui, car nous l'avons couvert dans les vidéos précédentes. Nous utiliserons les fonctions de support et de résistance, ainsi que la reconnaissance des modèles de chandeliers, pour détecter les inversions de tendance et générer des signaux de trading. Pour cette stratégie, nous nous concentrerons sur les modèles de chandeliers de rejet se produisant près des niveaux de support ou de résistance en tant que signaux potentiels d'inversion de tendance.

High Return Trading Strategy Using Leverage Effect
High Return Trading Strategy Using Leverage Effect
  • 2022.02.17
  • www.youtube.com
Here we Backtest an Algorithmic Trading Strategy using Python on a Leverage Account. The leverage can be a variable depending on the strategy you are intend...
 

Martingale Swing Trading Stratégie Backtest Algorithmique En Python



Martingale Swing Trading Stratégie Backtest Algorithmique En Python

Aujourd'hui, nous allons nous plonger dans le sujet fascinant de l'approche martingale lorsqu'elle est combinée à une stratégie de trading gagnante. Si vous n'avez pas déjà regardé notre vidéo précédente sur la méthode martingale ou d'autres vidéos sur cette chaîne qui décrivent la stratégie que nous allons utiliser, je vous recommande fortement de les consulter en premier. Ces vidéos couvrent les niveaux de support et de résistance, les modèles de bougies et fournissent une base solide pour comprendre notre approche dans cette vidéo. Je vais inclure quelques liens dans la description de la vidéo pour votre commodité.

De plus, pour ceux qui sont intéressés, vous pouvez télécharger le code Python que j'utilise pour tester cette stratégie à partir du lien fourni dans la description. Ce code vous permettra de suivre et d'explorer les résultats par vous-même.

Maintenant, faisons un bref récapitulatif pour ceux qui sont nouveaux sur notre chaîne ou qui viennent de nous rejoindre. La méthode martingale consiste à doubler la taille de notre position chaque fois que nous clôturons une transaction perdante. L'idée derrière cette approche est de récupérer les pertes précédentes avec une seule grosse victoire. Dans une vidéo précédente, nous avons expliqué et appliqué la méthode de la martingale à une stratégie de trading complètement aléatoire qui choisit au hasard entre des positions d'achat et de vente.

Dans cette vidéo, nous adoptons une approche différente. Nous appliquerons la méthode martingale à une stratégie de trading gagnante. Notre stratégie consiste à identifier les niveaux de support et de résistance, ainsi que des modèles de bougies spécifiques qui indiquent des inversions de tendance potentielles. Lorsque nous détectons un modèle de bougie près d'un niveau de support ou de résistance, nous exécutons notre transaction en conséquence. Les valeurs stop-loss et take-profit sont déterminées sur la base d'un ratio appelé ratio take-profit/stop-loss.

Maintenant, il est important de noter que les résultats de cette stratégie ont déjà été testés dans des vidéos précédentes et ont montré des rendements positifs. L'objectif ici est de voir si nous pouvons encore augmenter les bénéfices en ajoutant l'approche martingale à cette stratégie.

Bon, plongeons dans le code Python. Tout d'abord, nous chargeons et nettoyons les données quotidiennes EUR/USD de 2003 à 2021 pour cette vidéo. Nous vérifions ensuite si le bloc de données est chargé correctement en imprimant la fin du bloc de données.

Ensuite, nous avons les fonctions de détection des niveaux de support et de résistance, que nous utiliserons dans notre programme. Si vous avez besoin d'une explication détaillée de ces fonctions, veuillez vous référer à nos vidéos précédentes.

Nous avons également d'autres fonctions appelées niveaux "is_engulfing", "is_star" et "close_to_resistance" ou "close_to_support". Ces fonctions nous aident à identifier des modèles de chandeliers spécifiques et à déterminer s'ils sont proches des niveaux de support ou de résistance. Ces modèles seront utilisés pour générer nos signaux de trading.

Dans la cellule de génération de signaux, nous générons nos signaux en fonction des modèles de bougies que nous détectons. Si nous trouvons un modèle d'engloutissement baissier ou tout autre signal de vente proche d'un niveau de résistance, nous le considérons comme un signal de vente et attribuons une valeur de 1 à la colonne de signal dans notre bloc de données. De même, si nous trouvons un modèle d'avalement haussier ou tout autre signal d'achat proche d'un niveau de support, nous le considérons comme un signal d'achat et attribuons une valeur de 2 à la colonne de signal. Dans tous les autres cas, la valeur du signal est 0, indiquant l'absence de signal.

Maintenant, nous pouvons inclure le package backtesting.py pour tester notre stratégie. Nous définissons une fonction appelée "signal" qui renvoie les valeurs de signal pour chaque ligne de notre trame de données. Cette fonction est utilisée dans notre classe personnalisée appelée "CandleStrategy", qui hérite de la classe de stratégie du module backtesting.py.

Dans notre classe CandleStrategy, nous initialisons la taille de notre position de trading à 0,05, ce qui représente 5% des fonds propres que nous détenons. Nous négocions avec cette taille de position chaque fois que nous recevons un signal.

Si la valeur du signal est 1 (signal de vente), nous vérifions si nous avons des positions ouvertes. Si nous le faisons, nous fermons la position existante et définissons la taille de la position sur zéro. Ensuite, nous entrons dans une nouvelle position courte avec la taille de position définie précédemment.

En revanche, si la valeur du signal est 2 (signal d'achat), nous suivons un processus similaire. Nous vérifions si nous avons des positions ouvertes, les fermons si nécessaire et entrons dans une nouvelle position longue avec la taille de position prédéfinie.

Maintenant, nous définissons nos niveaux de prise de profit et de stop-loss. Le niveau de take-profit est calculé en multipliant le prix d'entrée par le ratio take-profit/stop-loss. Le niveau stop-loss est calculé en multipliant le prix d'entrée par la valeur négative du ratio take-profit/stop-loss. Ces valeurs garantissent que notre niveau de prise de profit est plus éloigné du prix d'entrée que le niveau de stop-loss.

Enfin, nous exécutons notre backtest en utilisant la classe CandleStrategy et imprimons les résultats. Nous calculons diverses mesures de performance telles que le rendement total, le rendement quotidien moyen, le tirage maximal et le nombre de transactions exécutées.

Maintenant, exécutons le backtest et analysons les résultats.

Après avoir exécuté le backtest, nous pouvons observer les résultats. Le rendement total, le rendement quotidien moyen et le drawdown maximum sont des mesures importantes pour évaluer la performance de notre stratégie.

Dans notre cas, le rendement total est de 256,17 %, ce qui signifie que notre investissement initial a plus que doublé. Le rendement quotidien moyen est de 0,04 %, ce qui indique un rendement positif constant sur la période de backtesting. Le drawdown maximum est de 10,98%, ce qui représente la plus forte baisse de la courbe des actions d'un pic à un point bas ultérieur.

Ces résultats indiquent que notre stratégie de trading gagnante, combinée à l'approche martingale, a été rentable sur la période testée. Cependant, il est important de noter que les performances passées ne sont pas indicatives des résultats futurs, et cette stratégie doit être soigneusement évaluée et validée avant de l'utiliser dans le trading en direct.

En conclusion, l'approche martingale, lorsqu'elle est combinée à une stratégie de trading gagnante, peut potentiellement améliorer la rentabilité globale de la stratégie. Cependant, il est essentiel d'examiner attentivement les risques encourus, tels que le potentiel de prélèvements importants et le besoin de capital suffisant pour soutenir le doublement multiple de la taille des positions.

Merci de m'avoir rejoint dans cette vidéo, et j'espère que vous l'avez trouvée instructive et utile. Si vous avez des questions ou des suggestions, veuillez les laisser dans les commentaires ci-dessous. N'oubliez pas d'aimer et de vous abonner à notre chaîne pour plus de stratégies de trading et de tutoriels. Bonne négociation !

Martingale Swing Trading Strategy Algorithmic Backtest In Python
Martingale Swing Trading Strategy Algorithmic Backtest In Python
  • 2022.02.10
  • www.youtube.com
Python algorithmic strategy used for backtesting the Martingale Swing Trading Strategy, a winning indicator that was presented in previous videos. Martingale...
 

Martingale Trading Stratégie Backtesting Pour Le Trading Algorithmique



Martingale Trading Stratégie Backtesting Pour Le Trading Algorithmique

Aujourd'hui, nous allons discuter de l'approche Martingale, qui peut être intégrée à toute stratégie de trading pour compenser les pertes de trades. Nous allons tester cette méthode en utilisant Python et approfondir les avantages et les risques liés à la mise en œuvre de Martingale.

Imaginons entrer dans un casino avec vingt dollars en poche et décider de jouer à la roulette en ne pariant que sur les couleurs. Nous parierons un dollar sur le rouge ou le noir. Si notre premier pari sur le rouge perd, il nous restera 19 dollars. Au prochain tour, nous doublerons notre pari à deux dollars puisque nous avions un pari perdant auparavant. Si ce pari est également perdant, il nous restera 17 dollars. Nous continuons à doubler notre mise à chaque fois que nous perdons, dans le but de compenser les pertes précédentes. Finalement, nous aurons un pari gagnant qui couvrira les pertes précédentes et ajoutera un petit bénéfice. Dans cet exemple, nous nous retrouvons avec un total de 21 dollars, légèrement plus que notre montant initial. Cette approche, qui consiste à doubler la mise après une perte, est connue sous le nom d'approche Martingale.

Au départ, la méthode Martingale semble prometteuse et peut donner l'impression de profits rapides et conséquents. Cependant, il est essentiel de comprendre les risques associés à cette approche. Pour mieux comprendre cette méthode et ses risques, nous allons backtester la stratégie en utilisant une approche Monte Carlo. Cette approche utilise des nombres aléatoires pour générer des signaux pour les positions d'achat ou de vente, sans tenir compte des indicateurs techniques ou des prédictions personnalisées. Les signaux sont basés uniquement sur une distribution aléatoire uniforme.

Pour implémenter le backtest, nous allons écrire du code Python. Nous commençons par importer les bibliothèques nécessaires, telles que les pandas pour la manipulation des données. Nous chargeons et nettoyons les données, en supprimant les lignes avec des volumes de trading nuls. Après avoir préparé les données, nous générons les signaux aléatoires en utilisant la fonction aléatoire du module numpy. Pour chaque chandelier, nous générons un nombre aléatoire entre 0 et 1. Si le nombre est inférieur à 0,5, nous attribuons un signal de vente (1), et s'il est supérieur à 0,5, nous attribuons un signal d'achat (2).

Ensuite, nous définissons une classe de stratégie appelée "MyStrategy" qui hérite de la classe de stratégie de la bibliothèque de backtesting. La taille de la position initiale est fixée à 10 unités. Nous définissons également une variable, "my_size", pour garder une trace de la taille de la position, qui changera en fonction de l'approche Martingale. Si un signal positif est généré et qu'il n'y a pas de transactions ouvertes, nous ouvrons une nouvelle transaction avec une taille de position égale à "my_size" multiplié par 2, en suivant l'approche Martingale. S'il y a des transactions fermées et que la dernière transaction a été rentable, nous réinitialisons la taille de la position à la taille initiale. Cela garantit qu'après une transaction gagnante, nous revenons à la taille de la position initiale. Si un signal d'achat ou de vente est généré et qu'il n'y a pas de transactions ouvertes, nous fixons les niveaux de stop loss et de take profit par rapport au dernier cours de clôture et exécutons la transaction correspondante.

Une fois la stratégie définie, nous exécutons le backtest en utilisant un capital initial de 10 000 $ et aucune commission. Les statistiques du backtest montrent un rendement de -4,8%, indiquant une perte. Le graphique de l'équité révèle que la stratégie avait initialement quelques gains mais a commencé à décliner à un certain point. Le taux de gain est proche de 50%, comme prévu puisque les signaux sont aléatoires. Le nombre total de transactions est de 100.

Pour approfondir nos recherches, nous modifions le stop loss et prenons les niveaux de profit à 400 pips et réexécutons le backtest. Cependant, cet ajustement ne résout pas le problème. La baisse des fonds propres résulte du manque de fonds suffisants pour continuer à doubler la taille de la position après une série de transactions perdantes. Pour résoudre ce problème, nous réduisons la taille de la position initiale à 5 et fixons les niveaux de stop loss et de take profit à 300 pips. Après avoir fait ces ajustements, nous relançons le backtest. La stratégie mise à jour donne un rendement de -0,7 %, indiquant une perte moindre par rapport à la version précédente. Cependant, le graphique des actions montre toujours une tendance à la baisse, bien qu'à un rythme plus lent. Le taux de réussite reste proche de 50 % et le nombre total de transactions est toujours de 100.

À partir de ces résultats, nous pouvons observer que même avec des ajustements de la taille de la position, du stop loss et des niveaux de profit, l'approche Martingale ne fournit pas de résultat rentable dans ce scénario de signal aléatoire. La baisse des capitaux propres indique le risque potentiel de prélèvements importants et la possibilité d'épuiser le compte de négociation.

Il est important de noter que ce backtest a été réalisé sous l'hypothèse de signaux aléatoires. Dans le trading du monde réel, des stratégies basées sur l'analyse technique ou l'analyse fondamentale sont généralement utilisées pour générer des signaux de trading. Ces stratégies visent à identifier des modèles, des tendances ou des opportunités sur la base des données du marché, plutôt que de s'appuyer sur des signaux aléatoires. Dans de tels cas, l'approche Martingale peut ne pas être appropriée ou efficace.

De plus, l'approche Martingale comporte un niveau de risque élevé. Il suppose que les séquences de défaites seront suivies de séquences de victoires, permettant au trader de récupérer ses pertes. Cependant, en réalité, il n'y a aucune garantie que les transactions gagnantes suivront les transactions perdantes, et il y a toujours une possibilité de pertes consécutives. Doubler la taille de la position après chaque perte peut rapidement entraîner des pertes importantes et l'épuisement du compte, surtout si les conditions du marché sont défavorables ou volatiles.

Bien que l'approche Martingale puisse sembler attrayante en raison de son potentiel de récupération rapide et de bénéfices, il est crucial de prendre en compte les risques associés et d'évaluer soigneusement son adéquation à votre stratégie de trading. La mise en œuvre de techniques de gestion des risques, telles que la définition de niveaux de stop loss stricts, le maintien d'un dimensionnement de position approprié et la diversification de votre approche de trading, peut aider à atténuer les risques encourus.

En résumé, l'approche Martingale peut être une stratégie risquée, en particulier lorsqu'elle est utilisée avec des signaux aléatoires. Il est important de tester et d'évaluer minutieusement toute stratégie de trading, en tenant compte à la fois des gains potentiels et des risques associés.

Martingale Trading Strategy Backtesting For Algorithmic Trading
Martingale Trading Strategy Backtesting For Algorithmic Trading
  • 2022.02.03
  • www.youtube.com
Testing the Martingale trading strategy for algorithmic trading in python, I hope you'll enjoy it.Are you interested in algorithmic trading and looking for a...
 

Backtesting de la stratégie de trading de la moyenne mobile en Python



Backtesting de la stratégie de trading de la moyenne mobile en Python

Il arrive souvent que des stratégies simples soient négligées au profit de modèles plus complexes. Cependant, nous ne devons pas sous-estimer le pouvoir de la simplicité. Aujourd'hui, je vais vous présenter une méthode simple qui peut rivaliser avec des systèmes de trading complexes et générer des rendements positifs. L'avantage des règles simples est qu'elles peuvent être facilement automatisées pour le trading algorithmique à l'aide de Python. Nous pouvons backtester cette stratégie sur différentes devises pour nous assurer de sa rentabilité.

Plongeons dans les détails de cette stratégie simple. Tout d'abord, nous considérerons la courbe moyenne mobile sur 200 jours comme notre indicateur. Si les bougies sont au-dessus de la courbe, cela indique une tendance haussière et suggère une position d'achat. A l'inverse, si les chandeliers sont en dessous de la courbe moyenne mobile, cela signale une tendance baissière et implique une position vendeuse.

Pour déterminer le point d'entrée d'une position d'achat, nous allons examiner les chandelles précédentes. Nous comparerons la valeur la plus basse de la bougie actuelle aux valeurs les plus basses des bougies précédentes. Si la valeur basse de la bougie actuelle est inférieure à toutes ces valeurs précédentes, nous avons identifié le point d'entrée pour une position d'achat. Le même concept s'applique dans le sens inverse pour une position de vente.

Bien que cette stratégie puisse sembler simple, elle comporte son propre ensemble de défis. Le premier paramètre à considérer est la longueur de la moyenne mobile. Devrait-il être 200, 100 ou quelque chose de différent ? Cela peut être affiné grâce à un backtesting sur une paire de devises spécifique afin de maximiser les rendements. Un autre paramètre est le nombre de bougies précédentes à prendre en compte. Doit-on analyser 7, 8, 10 ou 20 bougies ? En expérimentant différentes valeurs, nous pouvons évaluer l'impact sur la performance de la stratégie.

Cette partie indicateur est relativement simple, mais pour rendre la stratégie efficace, nous devons la combiner avec une approche de gestion commerciale. Cela implique de définir les valeurs stop-loss et take-profit. Nous avons deux options pour définir ces valeurs : elles peuvent être liées à la plage réelle moyenne (ATR) du marché, ou nous pouvons utiliser des valeurs fixes pour toutes les transactions. Il est important de choisir l'approche de gestion commerciale appropriée pour assurer des rendements positifs. De plus, un stop loss suiveur peut être utilisé, ce qui ajuste la valeur du stop loss en fonction de l'ATR.

Dans le code, nous pouvons expérimenter différentes combinaisons de ces paramètres pour trouver les paramètres optimaux et évaluer les performances de la stratégie. Bien qu'il s'agisse d'une stratégie simple, il existe un nombre relativement important de paramètres à prendre en compte.

Pour implémenter cette stratégie en Python, nous utilisons un fichier Jupyter Notebook. Nous chargeons les données, appliquons la moyenne mobile exponentielle (EMA) et les calculs ATR à l'aide du module pandas-technical-analysis. Ensuite, nous définissons des fonctions pour générer des signaux EMA et des signaux haut-bas. Nous traçons les données avec la courbe EMA pour vérifier visuellement que tout fonctionne correctement.

Ensuite, nous appliquons les fonctions de signal EMA et de signal haut-bas à notre trame de données, ce qui donne des signaux pour les positions d'achat ou de vente. En examinant les signaux tracés, nous pouvons valider leur exactitude et leur efficacité dans l'identification des tendances et des points d'entrée.

Pour tester la stratégie, nous définissons une fonction qui utilise les signaux pour déterminer les positions d'achat ou de vente et définit les valeurs stop-loss et take-profit en fonction de l'ATR ou de ratios fixes. Le backtesting de cette stratégie sur les graphiques de quatre heures euro-dollar américain entre 2003 et 2021 montre un rendement positif d'environ 29 %.

Cependant, il est crucial d'évaluer la courbe des actions et de comprendre que même si la stratégie peut bien performer sur les marchés en tendance, elle peut éprouver des difficultés pendant les périodes de mouvements de prix horizontaux. En expérimentant différentes configurations stop-loss et take-profit, telles que l'utilisation de valeurs fixes au lieu de valeurs basées sur l'ATR, nous pouvons analyser les performances de la stratégie et nous adapter en conséquence.

En conclusion, même les stratégies les plus simples nécessitent un examen attentif des paramètres et des approches de gestion commerciale pour garantir leur efficacité. Bien que cette stratégie repose sur un indicateur de base comme la moyenne mobile, elle peut toujours générer des signaux de trading rentables lorsqu'elle est combinée avec des techniques de gestion commerciales appropriées.

Une fois que nous avons mis en œuvre la stratégie et effectué des backtestings, il est essentiel d'évaluer ses indicateurs de performance. Certaines mesures clés à prendre en compte sont le nombre total de transactions, le taux de gain (pourcentage de transactions rentables), le bénéfice moyen par transaction, le drawdown maximum (la plus forte baisse du pic au creux) et le rapport risque-récompense.

En analysant ces paramètres, nous pouvons déterminer si la stratégie répond à nos attentes et s'aligne sur notre tolérance au risque. Il est important de se rappeler qu'aucune stratégie n'est infaillible et qu'il y aura toujours des risques impliqués dans le trading. Par conséquent, une bonne gestion des risques et une diversification des investissements sont essentielles pour le succès à long terme.

De plus, il est recommandé d'effectuer des tests de robustesse sur la stratégie. Cela implique d'évaluer sa performance dans différentes conditions de marché, telles que différentes périodes, paires de devises ou classes d'actifs. Ce faisant, nous pouvons mesurer l'adaptabilité de la stratégie et nous assurer que sa rentabilité n'est pas limitée à des scénarios spécifiques.

De plus, il convient de considérer les limites de cette stratégie simple. Il peut ne pas capturer toutes les nuances du marché ou fonctionner de manière optimale pendant les périodes de forte volatilité ou de fluctuations soudaines des prix. Dans de tels cas, des systèmes de négociation plus sophistiqués ou des indicateurs supplémentaires peuvent être nécessaires pour améliorer ses performances.

Enfin, il est essentiel de surveiller et d'adapter en permanence la stratégie à mesure que les conditions du marché évoluent. Examiner régulièrement ses performances, apporter les ajustements nécessaires et se tenir informé des tendances et de l'actualité du marché contribueront à la viabilité à long terme de la stratégie.

N'oubliez pas qu'un trading réussi est le résultat d'une stratégie bien définie, d'une exécution disciplinée et d'un apprentissage et d'une adaptation continus. Bonne chance avec vos efforts commerciaux!

Moving Average Trading Strategy Backtesting In Python
Moving Average Trading Strategy Backtesting In Python
  • 2022.01.20
  • www.youtube.com
Welcome to this video on a beginner-friendly automated trading strategy using Python. In this video, we will be discussing a simple yet effective trading str...
 

Trailing Stop Backtest pour le trading algorithmique en Python



Trailing Stop Backtest pour le trading algorithmique en Python

Bonjour à tous et bienvenue sur cette vidéo. Aujourd'hui, nous allons explorer différentes méthodes de mise en œuvre du stop-loss dans le trading algorithmique. Plus précisément, nous nous concentrerons sur les techniques de stop-loss qui peuvent être facilement intégrées aux bots de trading en les codant dans des programmes numériques.

Il est important de noter que bien qu'il existe différentes façons de déterminer les valeurs stop-loss, certaines méthodes sont plus complexes à inclure dans un programme. Dans cette vidéo, nous allons tester une stratégie utilisant des niveaux de support et de résistance, ainsi que des modèles de chandeliers dont nous avons déjà discuté dans d'autres vidéos. Cependant, nous allons faire varier les valeurs stop-loss en considérant quatre cas différents.

La première méthode consiste à utiliser une distance stop-loss constante, qui est prédéterminée par le trader pour toutes les transactions. Quelle que soit la position d'achat, la distance stop-loss reste la même.

La deuxième méthode est plus dynamique et utilise la plage vraie moyenne (ATR). Ici, la distance stop-loss est directement liée à l'ATR, ce qui signifie qu'elle varie en fonction de la volatilité du marché à une position spécifique.

La troisième méthode est un stop-loss à distance fixe. Il s'agit d'une stratégie de stop loss suiveur couramment utilisée, où la même distance est maintenue pour toutes les positions, agissant comme un stop loss suiveur.

La quatrième et dernière méthode est un stop-loss suiveur qui considère la vraie fourchette moyenne au moment où la position de trading est exécutée. Cela signifie que la distance stop-loss est choisie en fonction de l'ATR, qui reflète la volatilité du marché à ce moment précis.

En résumé, nous testerons la même stratégie en utilisant ces quatre méthodes différentes de définition des valeurs stop-loss. Il convient de noter que le choix des valeurs stop-loss aura également un impact sur nos valeurs de profit. La plupart du temps, les valeurs de prise de profit seront déterminées en fonction du rapport entre la distance de prise de profit et la distance de stop-loss.

Maintenant, plongeons dans le fichier Jupyter Notebook pour voir comment ces méthodes sont implémentées. Le fichier commence par importer les modules nécessaires et charger le fichier CSV contenant les données de prix pour la paire de devises EUR/USD de 2003 à 2021. Nous nettoyons les données, ajoutons la colonne Average True Range (ATR) et définissons les fonctions de support et niveaux de résistance, ainsi que des modèles de chandeliers.

Nous introduisons également des fonctions pour vérifier les modèles engloutissants, ainsi que la proximité des niveaux de support et de résistance. Ces fonctions nous aident à construire la stratégie basée sur des modèles de chandeliers proches des niveaux de support ou de résistance. Nous ajoutons une colonne de signal à notre bloc de données, qui catégorise les signaux comme baissier, haussier ou aucun signal.

Pour tester notre stratégie, nous utilisons le module de backtesting et définissons la première méthode de stop-loss, qui implique une distance fixe de stop-loss et de prise de profit définie manuellement par le trader. Nous commençons avec un montant en espèces de 10 000 $ et obtenons les résultats du backtest, y compris les rendements, le taux de gain, les meilleures et les pires transactions et le prélèvement maximal.

Ensuite, nous implémentons la deuxième méthode, qui utilise l'ATR pour définir les distances stop-loss et take-profit. Nous introduisons des facteurs pour ajuster les distances en fonction des valeurs ATR et testons la stratégie. Nous comparons les résultats avec la méthode précédente et observons les différences de rendements et d'autres mesures de performance.

Ensuite, nous implémentons la troisième méthode, qui est un stop loss suiveur avec une distance fixe. Ici, nous n'avons qu'à spécifier la distance de stop-loss initiale, et le stop-loss suiveur s'ajuste en conséquence. Nous testons la stratégie en utilisant une distance fixe de 500 pips pour la paire EUR/USD.

Enfin, nous analysons les résultats et constatons que la méthode trailing stop-loss avec une distance fixe donne le rendement le plus élevé d'environ 131%. Alors que les autres méthodes offrent également des rendements favorables, la méthode du stop-loss suiveur montre de meilleures performances dans ce cas.

En conclusion, nous avons testé la même stratégie en utilisant quatre méthodes stop-loss différentes, chacune offrant des avantages et des considérations différents. Le choix de la méthode stop-loss dépend en fin de compte des préférences du trader et des conditions spécifiques du marché.

La méthode du stop-loss constant offre simplicité et facilité de mise en œuvre. Il permet une gestion des risques cohérente sur toutes les transactions, quelles que soient les conditions du marché. Cependant, il peut ne pas s'adapter efficacement à l'évolution des niveaux de volatilité, ce qui pourrait entraîner des distances de stop-loss plus larges pendant les périodes de forte volatilité ou des distances de stop-loss plus étroites pendant les périodes de faible volatilité.

La méthode stop-loss basée sur l'ATR répond à la question de l'adaptation à la volatilité du marché. En utilisant l'ATR comme mesure de la volatilité, la distance stop-loss s'ajuste dynamiquement aux conditions actuelles du marché. Cela peut aider à protéger contre des pertes plus importantes en cas de volatilité élevée et à donner plus de marge de manœuvre en cas de faible volatilité. Cependant, cela peut entraîner des distances de stop-loss plus larges pendant les périodes de forte volatilité, conduisant potentiellement à des stop-outs plus fréquents.

La méthode du stop loss suiveur à distance fixe combine les avantages d'un stop loss suiveur avec la simplicité d'une distance fixe. Il permet une maximisation potentielle des bénéfices en suivant le stop-loss derrière le prix lorsqu'il évolue en faveur du commerce. Cette méthode est particulièrement utile sur les marchés en tendance, où elle peut capturer des gains plus importants. Cependant, il peut ne pas protéger efficacement contre les inversions rapides des prix, car la distance fixe peut ne pas fournir suffisamment de tampon dans des situations très volatiles.

La méthode du stop loss suiveur basée sur l'ATR combine les avantages de la méthode basée sur l'ATR et du stop loss suiveur. En considérant l'ATR au moment de l'entrée dans la transaction, il ajuste la distance stop-loss en fonction de la volatilité du marché à ce moment-là. Cela offre une approche plus adaptative et réactive de la gestion des risques. Cela peut aider à capturer des tendances plus larges tout en offrant une protection contre les retournements soudains. Cependant, cela peut entraîner des distances de stop-loss plus larges en cas de forte volatilité, ce qui pourrait conduire à des stop-outs plus fréquents.

Il est important que les traders examinent attentivement leur tolérance au risque, leur style de trading et les conditions du marché lors de la sélection d'une méthode stop-loss. Le backtesting et l'analyse des performances de différentes méthodes peuvent aider à prendre une décision éclairée. En outre, la gestion des risques ne doit pas uniquement reposer sur des ordres stop-loss, mais également prendre en compte la taille des positions, la diversification et la gestion globale du portefeuille.

N'oubliez pas qu'aucune méthode stop-loss n'est infaillible et que des pertes peuvent toujours survenir. Une bonne gestion des risques et une surveillance continue des conditions du marché sont essentielles au succès des transactions.

Trailing Stop Backtest For Algorithmic Trading in Python
Trailing Stop Backtest For Algorithmic Trading in Python
  • 2021.11.27
  • www.youtube.com
This video tests the Stop Loss VS Trailing Stop methods for Algorithmic Trading using python. Backtests are applied to one trading strategy showing the diffe...
 

Divergence RSI automatisée en Python | Commerce algorithmique



Divergence RSI automatisée en Python | Commerce algorithmique

Bonjour à tous et bienvenue sur cette vidéo. Aujourd'hui, nous allons discuter de la divergence RSI et explorer différentes stratégies utilisant cet indicateur dans le trading. Avant de plonger, j'ai fourni un lien de téléchargement dans la description où vous pouvez accéder au fichier Jupyter Notebook utilisé dans cette vidéo.

Pour commencer, nous devons écrire un code capable de détecter les minima et maxima locaux du prix et du RSI. Ces points sont marqués par des points violets sur le graphique. L'algorithme utilisé ici identifie un haut d'une bougie comme un maximum s'il est supérieur aux cinq bougies voisines de chaque côté. De même, une faible valeur d'une bougie est considérée comme un minimum si elle est inférieure aux cinq bougies des côtés gauche et droit. Vous pouvez ajuster ces nombres en fonction de votre préférence pour la détection des points extrêmes.

Ensuite, nous adaptons les minima et maxima détectés du prix et du RSI en pentes linéaires. Cela implique de trouver les droites les mieux ajustées qui passent par ces points. On se retrouve avec deux pentes différentes : une pour le prix (vert) et une pour le RSI (violet). Ces pentes représentent la direction de la tendance des indicateurs respectifs.

Nous pouvons alors comparer les pentes du prix et du RSI pour déterminer s'il y a une divergence. Dans une tendance haussière, les deux pentes devraient être positives, indiquant des bas plus élevés dans le prix et des hauts plus élevés dans le RSI. Inversement, dans une tendance baissière, les deux pentes devraient être négatives. Si les pentes ont des signes différents, comme une pente positive pour le prix et une pente négative pour le RSI, ou vice versa, cela indique une divergence.

Bien qu'il existe différentes approches pour analyser la divergence, nous allons explorer deux méthodes dans cette vidéo. La première méthode consiste à ajuster plusieurs points extrêmes à l'aide de la régression polynomiale, ce qui nous permet de considérer plus de deux points à la fois. La deuxième méthode se concentre sur la comparaison des deux derniers minima et maxima du prix et du RSI. En comparant les différences entre ces points, on peut identifier des divergences.

Bien que les stratégies utilisant la divergence RSI soient souvent discutées dans le trading manuel, elles se concentrent généralement sur la tendance entre deux points consécutifs. Dans cette vidéo, nous introduisons une approche numérique, utilisant l'ajustement de la pente et la régression polynomiale pour permettre l'analyse simultanée de plusieurs points.

Tout au long de la vidéo, nous allons coder ces méthodes de divergence en Python à l'aide de Jupyter Notebook. Le fichier Notebook fourni importe les bibliothèques nécessaires, lit les données de la bougie à partir d'un fichier CSV, calcule le RSI et définit des fonctions pour détecter les points pivots pour le prix et le RSI. Ces fonctions classent chaque bougie comme un pivot haut, un pivot bas, les deux ou aucun.

À la fin de la vidéo, vous aurez une compréhension claire de la divergence RSI et de la manière de mettre en œuvre ces stratégies dans votre trading. Si vous trouvez ce contenu utile, je vous encourage à soutenir la chaîne en aimant la vidéo. Vos commentaires nous sont précieux, alors n'hésitez pas à laisser des commentaires.

Maintenant, plongeons dans le fichier Jupyter Notebook et voyons comment nous pouvons coder ces concepts en Python.

Poursuivant là où nous nous étions arrêtés, nous avons ajouté la colonne "pivot" à notre bloc de données, qui catégorise chaque bougie comme un pivot haut, un pivot bas, les deux ou aucun. Passons maintenant à l'étape suivante de notre code.

Ensuite, nous définissons une fonction appelée "get_slope" qui calcule la pente entre deux points en fonction de leurs coordonnées x et y. Cette fonction sera utilisée pour calculer les pentes des prix et des données RSI.

Après cela, nous définissons une autre fonction appelée "fit_slope" qui prend comme paramètres un bloc de données et une catégorie de pivot (pivot haut ou pivot bas). Cette fonction identifie les points pivots en fonction de la catégorie donnée et adapte une pente linéaire à ces points à l'aide de la fonction "get_slope". Elle renvoie la valeur de la pente de la droite d'ajustement.

Nous pouvons maintenant utiliser ces fonctions pour calculer les pentes des prix et des données RSI. Nous créons deux nouvelles colonnes dans notre bloc de données : "price_slope" et "rsi_slope". Pour la colonne "price_slope", nous appelons la fonction "fit_slope" avec la trame de données et la catégorie pivot comme paramètres. Nous répétons le même processus pour les données RSI, en calculant la pente pour les points de pivot RSI et en stockant le résultat dans la colonne "rsi_slope".

À ce stade, nous avons obtenu les pentes pour les données de prix et RSI. Nous pouvons maintenant comparer ces pentes pour déterminer la direction de la tendance. Nous ajoutons une autre colonne appelée "tendance" à notre bloc de données, qui indiquera si la tendance est à la hausse, à la baisse ou indéfinie.

Pour déterminer la tendance, nous vérifions les signes des colonnes price_slope et rsi_slope. Si les deux pentes sont positives, cela indique une tendance haussière, nous attribuons donc la valeur "Haut" à la colonne de tendance. Si les deux pentes sont négatives, cela indique une tendance à la baisse, nous attribuons donc la valeur "Down" à la colonne de tendance. Dans tous les autres cas, où les signes des pentes sont différents ou l'une des pentes est nulle, nous attribuons la valeur "Indéfini" à la colonne de tendance.

Avec les informations de tendance disponibles, nous pouvons maintenant vérifier les divergences entre les prix et les données RSI. Nous ajoutons une autre colonne appelée "divergence" à notre bloc de données, qui indiquera si une divergence est présente ou non.

Pour vérifier les divergences, nous comparons les signes des colonnes price_slope et rsi_slope. Si les signes sont opposés, cela indique une divergence. Dans de tels cas, nous attribuons la valeur "Divergence" à la colonne de divergence. Si les signes sont identiques ou si l'une des pentes est nulle, il n'y a pas de divergence et nous attribuons la valeur "Pas de divergence" à la colonne de divergence.

Enfin, nous pouvons imprimer le bloc de données résultant pour voir les pentes calculées, les directions de tendance et les divergences pour chaque bougie.

Globalement, le code effectue les étapes suivantes :

  1. Importe les bibliothèques nécessaires et définit les fonctions d'assistance.
  2. Lit les données de la bougie et calcule le RSI.
  3. Ajoute une colonne pivot pour catégoriser chaque bougie comme un pivot haut, un pivot bas, les deux ou aucun.
  4. Calcule les pentes des prix et des données RSI en fonction des points pivots.
  5. Détermine la direction de la tendance en fonction des signes des pentes.
  6. Vérifie les divergences entre le prix et les données RSI en fonction des signes des pentes.
  7. Imprime le bloc de données résultant avec les pentes calculées, les directions de tendance et les divergences.

Ce code fournit un moyen d'analyser les divergences RSI et leur relation avec les tendances des prix, permettant aux traders d'identifier potentiellement des opportunités de trading.

RSI Divergence Automated In Python | Algorithmic Trading
RSI Divergence Automated In Python | Algorithmic Trading
  • 2021.11.12
  • www.youtube.com
The RSI Divergence Detection is programmed in python as an automated indicator for algorithmic trading, the Jupyter notebook file is available from the link:...
 

Canaux de tendance des prix automatisés en Python



Canaux de tendance des prix automatisés en Python

Bonjour à tous, merci de nous rejoindre aujourd'hui pour cette vidéo. Nous sommes ravis de présenter un algorithme en Python qui détecte les canaux de mouvement des prix. Vous pouvez télécharger le code sous forme de fichier Jupyter Notebook à partir du lien dans la description ci-dessous.

Tout d'abord, le mérite revient à M. ou Mme M de la section des commentaires pour avoir proposé cette idée. Nous apprécions votre patience car cela fait plus d'un mois d'attente. Nous espérons que cette vidéo ne vous décevra pas.

Avant de commencer, clarifions le but de ce canal. Notre objectif est de fournir un contenu éducatif, nous ne vous fournirons donc pas simplement des programmes à télécharger et à utiliser comme une boîte noire. Au lieu de cela, nous visons à expliquer le processus de réflexion et comment le programme a été construit. A la fin de cette vidéo, vous devriez être capable de construire votre propre algorithme, inspiré de celui présenté ici, et même d'y ajouter vos propres extensions.

Cependant, il est important de reconnaître les limites des modèles numériques lorsqu'ils sont appliqués à des environnements dynamiques et non linéaires comme le marché. Les tendances et les prévisions des prix sont encore un domaine d'étude ouvert, avec des recherches en cours essayant de trouver les meilleures approches. Le marché est très dynamique et les tendances et leur vitesse d'évolution peuvent varier dans le temps. Veuillez donc accepter les limites et les complexités inhérentes à la prévision des mouvements de prix.

Maintenant, plongeons dans l'algorithme. L'algorithme que nous présentons est basé sur des informations simples recueillies par ce canal et notre imagination. L'approche consiste à se positionner sur une bougie ou une date spécifique et à remonter dans le temps pour un certain nombre de bougies.

Nous divisons ce temps en parties égales ou fenêtres temporelles. Dans chaque fenêtre, nous identifions les niveaux de prix les plus élevés et les plus bas, appelés maxima et minima. Nous répétons ce processus pour toutes les fenêtres temporelles et ajustons les points minima et maxima dans des ajustements polynomiaux du premier degré séparés, qui sont des lignes droites.

Cependant, ces pentes ne s'enroulent pas nécessairement autour du prix car elles passent par les points. Pour résoudre ce problème, nous devons améliorer les valeurs d'interception de ces pentes. Il y a d'autres façons de le faire. Une approche consiste à ajuster les interceptions de sorte que les courbes passent par des points spécifiques, tels que le point minimum le plus proche du milieu de la fenêtre temporelle ou les points les plus élevés et les plus bas trouvés dans la fenêtre.

Un autre aspect à considérer est la longueur de la fenêtre de temps. Selon votre préférence, vous pouvez choisir différentes valeurs pour le nombre de bougies arrière. Par exemple, vous pouvez prendre 30 barres derrière la bougie actuelle plus ou moins 20 barres, permettant au programme de se déplacer dans cette plage. Le programme évaluera alors différentes pentes et renverra le nombre de bougies qui fournissent la situation la plus parallèle entre les deux pentes, indiquant la détection d'un canal.

Nous avons fourni un fichier Jupyter Notebook que vous pouvez télécharger à partir du lien dans la description de la vidéo. Le fichier inclut le code Python pour implémenter l'algorithme. Pour commencer, nous importons la bibliothèque pandas et chargeons les données à partir d'un fichier CSV contenant les données du chandelier euro contre dollar de 2003 à 2021.

Ensuite, nous recherchons les maxima et les minima dans la fenêtre temporelle définie par le nombre de bougies arrière. Nous découpons la fenêtre en fenêtres plus petites et trouvons les points maximum et minimum dans chaque fenêtre. Ces points sont stockés dans des tableaux numpy.

Après avoir obtenu les minima et les maxima, nous utilisons la fonction numpy polyfit pour ajuster les points aux lignes polynomiales du premier degré. Les résultats, qui incluent les pentes et les interceptions, sont stockés dans des variables.

Pour visualiser les pentes, nous traçons le graphique en chandeliers et ajoutons les lignes correspondant aux pentes. À ce stade, les pentes peuvent ne pas parfaitement envelopper le prix, mais elles offrent un ajustement raisonnable.

Pour améliorer l'ajustement, nous pouvons modifier les interceptions des pentes. Une approche consiste à ajuster les interceptions de sorte qu'elles passent par les points les plus élevés et les plus bas dans chaque fenêtre temporelle. Nous calculons les points les plus hauts et les plus bas dans la fenêtre temporelle et mettons à jour les interceptions des pentes en conséquence.

Pour déterminer le canal optimal, nous parcourons différentes valeurs du nombre de bougies arrière et évaluons le parallélisme entre les deux pentes. Nous calculons l'angle entre les deux pentes et vérifions s'il tombe dans un seuil prédéfini. Si tel est le cas, nous le considérons comme un canal valide et stockons le nombre de bougies arrière et l'angle pour une analyse plus approfondie.

Enfin, nous pouvons visualiser les canaux détectés en traçant le graphique en chandeliers et en superposant les lignes correspondant aux canaux. Cela fournit une représentation visuelle des canaux de mouvement de prix identifiés.

Il est important de noter que cet algorithme est une approche simplifiée et peut ne pas capturer tous les types de canaux de mouvement des prix. Le marché est complexe et il peut y avoir divers modèles et dynamiques qui vont au-delà de la portée de cet algorithme. Cependant, cet algorithme sert de point de départ pour détecter les canaux et peut être étendu ou personnalisé en fonction des exigences et des préférences individuelles.

Nous vous encourageons à télécharger le fichier Jupyter Notebook et à explorer le code en détail. Expérimentez avec différents paramètres, testez-le sur différents ensembles de données et voyez comment il fonctionne. N'hésitez pas à modifier et à améliorer l'algorithme en fonction de vos besoins et de vos idées.

Nous espérons que cette vidéo et le code qui l'accompagne vous fourniront des informations et de l'inspiration pour développer votre propre algorithme de détection de canal. N'oubliez pas que la clé est de comprendre les concepts sous-jacents et de les adapter à vos besoins spécifiques et aux conditions du marché.

Merci d'avoir regardé, et nous attendons avec impatience vos commentaires et questions. Bon codage !

Price Trend Channels Automated In Python
Price Trend Channels Automated In Python
  • 2021.10.30
  • www.youtube.com
This video is about detecting price trend and price channels and how to automate this process in Python. The algorithm is presented and explained then the co...