Python dans le Trading Algorithmique - page 18

 

Cet indicateur de crypto-scalping fonctionne-t-il réellement ?



Cet indicateur de crypto-scalping fonctionne-t-il réellement ?

Aujourd'hui, nous allons explorer une stratégie de sculpture utilisant le prix moyen pondéré en volume (VWAP) en backtesting sur le marché du Bitcoin. Nous allons écrire un algorithme Python pour implémenter cette stratégie et analyser les résultats.

Tout d'abord, plaçons le contexte. Le VWAP est un outil puissant pour le trading algorithmique car il fournit des valeurs de support et de résistance dynamiques. Il reste indépendant du laps de temps utilisé, ce qui le rend avantageux pour le trading algorithmique puisqu'il réduit le nombre de paramètres à optimiser.

Dans cette stratégie, nous utiliserons une période de 15 minutes pour les prix de trading Bitcoin-US Dollar. Nous allons considérer deux indicateurs : la moyenne mobile à 100 jours (DMA) et le VWAP. En analysant les mouvements de prix par rapport à ces indicateurs, nous pouvons déterminer la tendance du marché. Lorsqu'un certain nombre de bougies se négocient en dessous ou au-dessus du 100 DMA, cela indique respectivement une tendance à la baisse ou à la hausse. De même, si les bougies se négocient en dessous ou au-dessus de la courbe VWAP, cela confirme la direction de la tendance.

Dans une tendance haussière, nous ne chercherons que des positions acheteuses, tandis que dans une tendance baissière, nous nous concentrerons sur des positions vendeuses. Le point d'entrée de nos positions sera déclenché lorsque le prix se situera à une certaine distance fixe de la courbe VWAP.

Pour implémenter cette stratégie en Python, nous allons utiliser le package pandas_ta pour calculer le VWAP et les 100 DMA. Nous allons ensuite créer deux nouvelles colonnes dans notre data frame : le signal EMA et le signal VWAP. Le signal EMA comptera le nombre de bougies arrière qui tombent en dessous ou au-dessus de la courbe EMA pour confirmer une tendance à la baisse ou à la hausse. De même, le signal VWAP comptera le nombre de bougies arrière qui sont en dessous ou au-dessus de la courbe VWAP.

Nous fusionnerons ces signaux dans une colonne de signal total dans notre trame de données, qui servira de déclencheur pour nos positions d'achat et de vente. Pour les positions d'achat, nous vérifierons si le signal total est égal à 2 et s'il n'y a pas de transactions ouvertes. Nous vérifierons également si le prix est suffisamment proche de la courbe VWAP. De même, pour les positions de vente, nous considérerons un signal total de 1 et vérifierons la distance du prix à la courbe VWAP.

Nous pouvons visualiser les signaux sur un graphique, en traçant les bougies avec les signaux d'achat (violet) et de vente (vert).

Pour tester la stratégie, nous calculerons l'Average True Range (ATR) comme mesure de la volatilité. La distance de stop loss sera fixée à 0,8 fois l'ATR actuel, et la distance de profit sera le double de la distance de stop loss. Avec ces paramètres, nous pouvons déclencher des positions d'achat et de vente, en tenant compte des valeurs de stop loss et de take profit. Nous commencerons avec un montant en espèces de 100 000 $ et un effet de levier de 5.

En exécutant le backtest, nous pouvons observer les résultats de notre système de trading. L'algorithme montre un pourcentage de rendement élevé, avec une valeur nette finale d'environ 10 millions de dollars après trois ans. En comparaison, la stratégie d'achat et de conservation n'a atteint qu'un rendement de 248 %. Cependant, il est important de noter que les performances de l'algorithme fluctuent et qu'il peut avoir des difficultés pendant certaines périodes. Cela met en évidence la nécessité d'une adaptation dynamique aux conditions changeantes du marché.

Pour évaluer la stabilité des fonds propres, nous pouvons tracer la courbe des fonds propres au fil des ans. L'algorithme a fonctionné exceptionnellement bien pendant deux ans, mais a rencontré des difficultés l'année dernière. Cela souligne la nature passive de l'algorithme, qui repose sur des paramètres fixes et peut nécessiter des ajustements pour s'adapter aux évolutions du marché.

La stratégie basée sur VWAP présentée ici est un bon investissement d'attention et de temps. Il a démontré des rendements significatifs sur une longue période, bien qu'avec certaines limites. D'autres optimisations et l'inclusion de filtres et d'indicateurs supplémentaires peuvent être explorées pour améliorer.

Does this Crypto Scalping Indicator Actually Work!
Does this Crypto Scalping Indicator Actually Work!
  • 2022.06.02
  • www.youtube.com
This video describes a trading strategy using VWAP for Crypto such as the Bitcoin. The strategy algorithm is tested in Python and the code details are explai...
 

Comment backtester une stratégie boursière en utilisant Python sur le S&P 500


Comment backtester une stratégie boursière en utilisant Python sur le S&P 500

Bonjour à tous, aujourd'hui, nous allons effectuer un test détaillé d'une stratégie de sculpture simple en utilisant des données historiques du S&P 500. Nous allons expliquer les bases de la stratégie et écrire le code en Python à des fins de backtesting. Nous disposons de trois années de données, ce qui devrait nous fournir suffisamment d'informations pour évaluer la performance et les résultats de la stratégie.

Comme d'habitude, le code de cette stratégie est disponible en téléchargement via le lien dans la description ci-dessous. Nous utiliserons un délai de 15 minutes pour ce test, bien que vous puissiez expérimenter différents délais si vous le souhaitez. Des délais plus courts peuvent être plus difficiles à contrôler en raison de l'augmentation du bruit et des fluctuations.

La stratégie consiste à identifier des modèles engloutissants, qui peuvent être des signaux baissiers ou haussiers. Nous ajouterons deux conditions pour affiner les signaux. La première condition est la hauteur d'avalement minimale, qui est la différence entre le prix de clôture de la bougie précédente et le prix d'ouverture de la bougie d'avalement. Nous fixerons une exigence de distance minimale pour le prix d'ouverture de la bougie engloutissante afin de valider le signal. En d'autres termes, le prix d'ouverture doit être supérieur à la hauteur d'engloutissement minimale.

La deuxième condition est la longueur maximale de la queue de la bougie, qui fait référence à la longueur de la queue ou de la mèche de la bougie. Nous fixerons une limite pour la longueur maximale de la queue et veillerons à ce qu'elle soit inférieure au paramètre spécifié. Cette condition permet de filtrer certains modèles.

Pour augmenter le nombre de signaux tout au long de notre période de négociation, nous allons introduire une variante du modèle d'engloutissement normal. Au lieu d'exiger strictement qu'une bougie engloutisse la précédente, nous autoriserons deux bougies consécutives ou plus à réaliser l'engloutissement tant qu'elles sont dans la direction opposée et remplissent les conditions d'engloutissement. Le nombre de bougies autorisées à atteindre l'engloutissement sera une variable dans le code, permettant flexibilité et expérimentation.

À ce stade, nous pouvons commencer à écrire le programme et tester les résultats par le biais de backtesting. Nous utiliserons un fichier Jupyter Notebook pour cette démonstration. Tout d'abord, nous chargeons les données historiques dans un DataFrame appelé df_spy à l'aide de la fonction read_csv. Nous spécifions le délai de 15 minutes et la plage de dates de 2019 à 2022. L'index du DataFrame est défini sur la colonne d'heure GMT.

Ensuite, nous définissons une fonction appelée is_engulfing qui prend deux paramètres : le DataFrame et l'index de la bougie actuelle. Cette fonction teste si la bougie atteint un motif engloutissant. Nous définissons des paramètres pour le nombre maximum de bougies autorisées pour atteindre le modèle d'engloutissement, la différence d'engloutissement et la longueur maximale de la queue de bougie. La fonction vérifie diverses conditions pour les modèles engloutissants baissiers et haussiers et renvoie un signal de 1 pour les signaux baissiers et 2 pour les signaux haussiers.

Nous créons une copie du DataFrame, en filtrant les bougies sans mouvement (où le haut est égal au bas). Cette étape supprime les week-ends et les jours fériés. Nous stockons les données filtrées dans un DataFrame appelé df. Nous définissons également une nouvelle liste appelée signal pour stocker les signaux pour chaque ligne/bougie.

Pour chaque ligne du DataFrame df, nous calculons le signal à l'aide de la fonction is_engulfing avec l'index correspondant et le DataFrame comme paramètres. Nous stockons les signaux dans la liste des signaux. Enfin, nous ajoutons la liste des signaux en tant que nouvelle colonne dans le DataFrame.

Pour visualiser les signaux, nous utilisons une fonction de traçage qui trace le graphique en chandeliers avec des points en dessous ou au-dessus des bougies pour représenter les signaux haussiers ou baissiers. Nous pouvons sélectionner une gamme spécifique de bougies pour tracer et observer les signaux.

Pour faciliter la visualisation, nous réinitialisons l'index du DataFrame à un index entier et supprimons l'index date/heure GMT. Ensuite, nous sélectionnons une gamme de bougies pour tracer et observer les signaux.

Voici un résumé des étapes impliquées dans le backtesting d'une stratégie de trading à l'aide de graphiques en chandeliers :

  1. Préparation des données : Obtenez des données historiques sur les prix de l'instrument financier souhaité (par exemple, actions, crypto-monnaies) qui incluent les prix d'ouverture, hauts, bas et de clôture pour chaque période (par exemple, minute, heure, jour). Assurez-vous que les données sont dans un format qui peut être facilement analysé.

  2. Définition de la stratégie : Définissez la stratégie de trading basée sur des modèles de chandeliers. Par exemple, vous pouvez rechercher des modèles haussiers comme un modèle engloutissant haussier ou des modèles baissiers comme une étoile filante. Déterminez les règles d'entrée et de sortie des transactions en fonction de ces modèles.

  3. Génération de signaux : analysez les données de prix historiques et générez des signaux en fonction de la stratégie définie. Identifiez l'occurrence de modèles de chandeliers spécifiques qui répondent aux critères d'entrée ou de sortie.

  4. Simulation de portefeuille : Simulez la stratégie de trading en suivant un portefeuille hypothétique. Commencez avec un montant fixe de capital et simulez des transactions en fonction des signaux générés. Gardez une trace de la valeur et de la performance du portefeuille tout au long de la période de backtesting.

  5. Évaluation des performances : Évaluez les performances de la stratégie de trading à l'aide de divers paramètres tels que la rentabilité, les rendements ajustés au risque, les prélèvements et d'autres mesures pertinentes. Comparez la performance de la stratégie à un indice de référence ou à des stratégies alternatives pour évaluer son efficacité.

  6. Visualisation : Visualisez les résultats backtestés à l'aide de graphiques en chandeliers. Tracez les données de prix historiques et indiquez les signaux générés (points d'entrée et de sortie) sur le graphique. Cette visualisation peut aider à comprendre les performances de la stratégie et à identifier les domaines à améliorer.

En suivant ces étapes, vous pouvez tester une stratégie de trading à l'aide de graphiques en chandeliers. Il est important de noter que le backtesting fournit des performances historiques et ne garantit pas les résultats futurs. De plus, il est crucial de prendre en compte d'autres facteurs tels que les coûts de transaction, le glissement et les conditions du marché lors de l'élaboration et de la mise en œuvre d'une stratégie de trading.

How to Backtest A Stock Market Strategy Using Python On The S&P 500
How to Backtest A Stock Market Strategy Using Python On The S&P 500
  • 2022.05.26
  • www.youtube.com
This is a high profit trading strategy coded and tested in python. The strategy is easy to use and suitable for beginners, it was tested on SP500 stock marke...
 

Stratégie d'action des prix pour le trading algorithmique en Python



Stratégie d'action des prix pour le trading algorithmique en Python

Bonjour à tous! Bienvenue dans la troisième vidéo sur la barre de retracement d'inventaire de Huffman. Cette stratégie a remporté plusieurs concours de trading, j'ai donc pensé à essayer de créer une version automatisée qui peut fournir des rendements positifs sur quelques mois, voire sur une période plus longue. Pour que cette vidéo reste concise, je vous recommande de regarder les deux vidéos précédentes où nous expliquons la stratégie en détail. Vous trouverez le lien vers ces vidéos dans la description.

En bref, la stratégie consiste à identifier les barres de retracement et à maintenir une pente spécifique pour la définition de la tendance. Dans une tendance haussière, nous recherchons une forme particulière pour les barres, et dans une tendance baissière, nous recherchons la forme inversée de la barre de retracement. Cependant, dans cette vidéo, nous ajouterons une condition supplémentaire. Nous exigeons que la barre de retracement soit plus haute (dans une tendance haussière) ou plus basse (dans une tendance baissière) que les barres précédentes et futures. Essentiellement, nous recherchons une barre de retracement qui agit comme un point pivot, indiquant une forte réaction des vendeurs ou des acheteurs essayant d'inverser la tendance.

La mise en œuvre de cette condition supplémentaire dans une stratégie de trading algorithmique est plus difficile que d'expliquer le concept. Dans l'exemple illustré, nous avons une tendance haussière et identifions une barre de retracement Huffman qui agit comme un point pivot haut. De plus, nous observons une cassure au-dessus du plus haut de cette barre Huffman, indiquant une poursuite probable de la tendance à la hausse. Nous allons intégrer toutes ces conditions dans notre algorithme Python et évaluer si elles améliorent les résultats obtenus dans les vidéos précédentes.

Pour donner un bref aperçu, nous chargeons les données historiques de la paire de devises EUR/USD sur une période d'une heure de 2003 à 2022. Nous calculons la moyenne mobile exponentielle (EMA) et la plage vraie moyenne (ATR), qui pourrait être utile pour définir les valeurs stop-loss et take-profit. Nous calculons la pente de l'EMA car c'est l'une des conditions de la stratégie de Huffman. De plus, nous introduisons deux nouveaux paramètres : le signal total des bougies de retour (gauche et droite), qui déterminent le nombre de bougies à comparer avec le haut ou le bas de la bougie Huffman.

L'algorithme définit les conditions d'identification d'une barre de Huffman dans une tendance haussière ou baissière. Dans cette vidéo, nous ajoutons une condition supplémentaire pour vérifier si la barre Huffman agit également comme un point de pivot. Nous comparons le bas (dans une tendance baissière) ou le haut (dans une tendance haussière) de la barre Huffman avec les bougies précédentes et futures dans la plage spécifiée. Si la condition est remplie, nous attribuons une valeur de 1 pour une tendance baissière ou 2 pour une tendance haussière et stockons les signaux dans une nouvelle colonne appelée "tot signal" dans la trame de données.

Pour s'assurer que l'algorithme fonctionne correctement, nous traçons les signaux sur un graphique, en visualisant les points violets représentant les barres de Huffman. Nous pouvons confirmer que l'algorithme identifie correctement les barres en fonction de leurs caractéristiques.

Ensuite, nous incorporons le signal EMA comme signal de confirmation de la direction de la tendance. Nous implémentons également la fonction de signal de rupture Huffman, qui détecte les ruptures au-dessus ou en dessous des barres Huffman et attribue les signaux en conséquence.

Pour tester la stratégie, nous fixons les valeurs stop-loss et take-profit, qui peuvent varier en fonction des conditions spécifiques et des indicateurs utilisés. Dans ce cas, nous utilisons l'ATR pour définir le stop-loss et un ratio take-profit/stop-loss de 1,5. Nous effectuons le backtest avec un dépôt de départ de 10 000 $, une marge de 1:50 et une transaction à la fois.

Au départ, les résultats ne sont pas satisfaisants, avec un rendement de -70% et un important drawdown. Cependant, cela ne signifie pas nécessairement que la stratégie ou l'indicateur est intrinsèquement mauvais. Il souligne l'importance de prendre en compte d'autres facteurs, tels que la gestion de l'argent et la sélection des valeurs stop-loss et take-profit, qui peuvent influencer de manière significative la performance de la stratégie.

Pour améliorer les performances de la stratégie, nous pouvons optimiser les paramètres et ajuster les règles de gestion de l'argent. Dans cet exemple, nous allons optimiser le paramètre total des bougies de retour de signal, qui détermine le nombre de bougies à comparer avec le haut ou le bas de la barre de Huffman. Nous allons tester différentes valeurs allant de 2 à 10 et évaluer les résultats.

Après optimisation du paramètre, on obtient de meilleures performances avec un rendement de 187% et un drawdown réduit. Cela démontre l'importance de l'optimisation des paramètres dans les stratégies de trading algorithmique.

Pour améliorer encore la stratégie, nous pouvons envisager d'incorporer des filtres ou des conditions supplémentaires. Par exemple, nous pouvons implémenter un filtre de tendance en utilisant une période plus longue, comme le graphique quotidien ou hebdomadaire. Cela peut aider à garantir que les transactions ne sont prises que dans le sens de la tendance générale.

Nous pouvons également explorer différentes stratégies de sortie, telles que les arrêts suiveurs ou les niveaux de prise de profit dynamiques basés sur l'évolution des prix ou la volatilité. Ces composants supplémentaires peuvent être testés et intégrés dans l'algorithme pour potentiellement améliorer ses performances.

Il est important de noter que les performances passées ne garantissent pas les résultats futurs. La stratégie doit être minutieusement testée et validée à l'aide de données historiques et de méthodes de backtesting robustes. Il est également crucial de prendre en compte les coûts de transaction, le glissement et d'autres aspects pratiques du trading lors de la mise en œuvre de la stratégie dans un environnement de trading en temps réel.

En conclusion, la stratégie de barre de retracement des stocks de Huffman peut être un outil utile pour identifier les points de pivot potentiels et les inversions de tendance sur le marché. En incorporant des conditions supplémentaires et en optimisant les paramètres, nous pouvons améliorer les performances de la stratégie. Cependant, il est essentiel d'effectuer des tests approfondis et de prendre en compte d'autres facteurs tels que la gestion de l'argent et les stratégies de sortie pour développer un système de trading complet et efficace.

Cela conclut notre vidéo sur la mise en œuvre de la stratégie de barre de retracement d'inventaire de Huffman en Python. J'espère que vous avez trouvé cette série informative et utile dans vos efforts commerciaux. Si vous avez des questions ou des commentaires, n'hésitez pas à les laisser ci-dessous. Merci d'avoir regardé et bon trading !

Price Action Strategy For Algorithmic Trading In Python
Price Action Strategy For Algorithmic Trading In Python
  • 2022.05.12
  • www.youtube.com
This is a continuation of the previous videos, on price action trading strategy, about the Hoffman Inventory Retracement Bar indicator, and the previously in...
 

Comment coder la stratégie de trading de barres de retracement en Python



Comment coder la stratégie de trading de barre de retracement en Python

Bonjour à tous et bienvenue dans cette suite de la méthode Hoffman's Inventory Bar Retracement. Dans la vidéo précédente, nous avons présenté cette méthode et expliqué le code pour détecter des formes de bougies spécifiques et des tendances de prix. Si vous êtes intéressé par le code, vous pouvez télécharger le fichier Jupyter Notebook à partir du lien fourni dans la description ci-dessous.

Dans cette vidéo, nous allons utiliser les barres de Hoffman que nous avons identifiées plus tôt dans une stratégie de trading, tester le système et évaluer les résultats. La stratégie se concentre sur l'identification de formes de bougies spécifiques dans une tendance haussière ou baissière et sur la recherche de cassures au-dessus du haut ou en dessous du bas de ces bougies.

Prenons un exemple où nous avons une tendance haussière. Nous détectons une barre de retracement de Hoffman où la queue supérieure représente au moins 45 % du volume de la bougie entière. Cela indique que les vendeurs tentent de contrer le mouvement haussier. Cependant, dans la bougie suivante, nous observons que le cours de clôture est supérieur au plus haut de la bougie Hoffman précédente. Cela suggère que les acheteurs sont toujours plus forts sur le marché et continueront probablement à faire monter les prix.

Pour mettre en œuvre cette stratégie en Python, nous allons parcourir le cours de clôture de chaque bougie et vérifier parmi ses bougies voisines précédentes si l'une d'entre elles forme une barre de retracement de Hoffman. Nous allons définir un paramètre appelé "back_candles", qui détermine le nombre de bougies à prendre en compte lors de la recherche de la barre de Hoffman. Ce paramètre peut être ajusté pour tester différentes valeurs.

Si une cassure se produit au-dessus du haut ou en dessous du bas de la bougie de Hoffman, nous placerons une position d'achat ou de vente, respectivement, en fonction de la tendance actuelle des prix. Nous pouvons également définir des valeurs stop-loss et take-profit, qui peuvent être basées sur la plage réelle moyenne (ATR) ou sur les valeurs les plus élevées / les plus basses des bougies précédentes, en fonction de la tendance des prix.

Écrivons maintenant la stratégie en Python et testons-la en utilisant quelques mois de données historiques pour évaluer les résultats. Le fichier Jupyter Notebook contient le code, qui commence par charger 59 jours de données à l'aide du module yfinance dans un délai de 15 minutes. Nous calculons la moyenne mobile exponentielle (EMA), l'ATR et la pente de la moyenne mobile.

Ensuite, nous identifions les barres de Hoffman en fonction de la pente de la moyenne mobile et de la forme des bougies. Nous visualisons les signaux sur un graphique, puis définissons une nouvelle fonction appelée "hofmann_break_signal" qui prend deux paramètres : l'indice de la bougie actuelle et le nombre de bougies arrière à prendre en compte lors de la recherche du modèle de bougie de Hoffman.

À l'intérieur de la fonction, nous parcourons chaque bougie et vérifions si les conditions d'une barre et d'une cassure de Hoffman sont remplies. Si c'est le cas, nous renvoyons un signal d'achat pour une tendance haussière ou un signal de vente pour une tendance baissière.

Nous appliquons cette fonction à chaque ligne du bloc de données et stockons les résultats dans une série. Enfin, nous visualisons les signaux et vérifions si les bougies de Hoffman sont correctement détectées.

Après avoir vérifié la détection de la bougie, nous procédons au backtest de la stratégie. Nous fixons le stop-loss en fonction du prix minimum parmi les bougies précédentes et prenons des bénéfices en utilisant un ratio relatif au stop-loss. Dans cet exemple, nous utilisons une approche basée sur l'ATR avec un ratio stop-loss de 1,5.

Nous testons la stratégie sur les trois mois de données et calculons le rendement, le pourcentage de transactions gagnantes et la courbe d'équité. Dans ce premier test, le rendement est positif à 51%, mais la courbe des actions ne montre pas une augmentation stable.

Nous explorons également une méthode différente pour fixer les niveaux de stop-loss et de take-profit, en considérant le plus haut ou le plus bas des bougies précédentes. Cependant, dans ce cas, le rendement est négatif à -4,8 %, ce qui indique que cette stratégie de gestion de l'argent n'a pas bien fonctionné.

Veuillez noter que cette stratégie n'a pas été optimisée dans cette vidéo. Il a été développé rapidement pour démontrer l'implémentation de Python. Si vous trouvez cette stratégie intéressante, n'hésitez pas à copier le code et à le personnaliser davantage en ajoutant des indicateurs techniques supplémentaires.

Merci d'avoir regardé cette vidéo. Restez à l'écoute pour le prochain, échangez en toute sécurité et à la prochaine fois !

How to Code Retracement Bar Trading Strategy In Python
How to Code Retracement Bar Trading Strategy In Python
  • 2022.05.05
  • www.youtube.com
This video is a continuation of the previous one on the Hoffman Inventory Retracement Bar Automated In Python. This algorithmic trading strategy enabled Hoff...
 

Retracement Bar Coded En Python Pour Le Trading Algorithmique


Retracement Bar Coded En Python Pour Le Trading Algorithmique

Bonjour, dans cette vidéo, nous allons présenter la barre de retracement d'inventaire de Huffman et montrer comment automatiser sa détection en Python. Si le code vous intéresse, vous pouvez télécharger le fichier Jupyter Notebook à partir du lien fourni dans la description.

La première règle de cette stratégie consiste à détecter la tendance du prix en vérifiant si la pente de la moyenne mobile (MA) sur 20 jours forme un angle de 45 degrés avec la ligne horizontale. Notez que la MA de 20 jours est utilisée à titre d'exemple et que vous pouvez expérimenter différentes périodes pour la moyenne mobile. Si vous suivez une tendance baissière, la pente négative doit également former un angle d'au moins 45 degrés avec la ligne horizontale. Cependant, il est important de mentionner que se fier uniquement à cet angle de 45 degrés comme signal n'a aucun sens mathématique, car il est impossible de définir avec précision cet angle sur un graphique de trading. Le trading algorithmique fournit une solution à ce problème, que nous explorerons plus tard dans la vidéo.

La deuxième règle de cette stratégie consiste à identifier les bougies dont la queue représente au moins 45 % de la longueur totale de la bougie. Par exemple, dans une tendance haussière, nous recherchons des bougies avec une queue supérieure supérieure à 45 % du mouvement total de la bougie. De même, dans une tendance baissière, nous recherchons des bougies avec une queue inférieure supérieure à 45 % du volume de la bougie. Ce modèle de bougie signifie des moments où les vendeurs ou les acheteurs tentent de résister ou d'inverser la tendance. En comprenant la dynamique du marché à travers les modèles de bougies, nous pouvons définir notre stratégie personnalisée.

Dans l'exemple, nous identifions ces bougies spécifiques et attendons que le marché dépasse les valeurs élevées. Lorsqu'une bougie se clôture au-dessus du sommet d'une bougie de Huffman, cela indique que les vendeurs n'ont pas pu résister à la tendance d'achat et que les acheteurs ont toujours le dessus. Cela suggère que la tendance à la hausse devrait se poursuivre et nous pouvons entrer dans une position longue avec les acheteurs. En analysant les résultats de ces hypothèses, nous observons que dans la plupart des cas, le prix suit nos attentes.

Cependant, pour déterminer le résultat à long terme de cet indicateur, nous devons effectuer un backtest en utilisant notre code Python. Dans cette vidéo, nous nous concentrons sur l'explication de la détection des bougies de Huffman et de la génération d'un signal lorsqu'elles se produisent. Dans une vidéo séparée, nous utiliserons cet indicateur dans une stratégie de trading complète et effectuerons un backtest approprié.

Pour commencer, nous téléchargeons les données à l'aide du module yfinance. L'exemple télécharge les données Euro/USD pour une période de 59 jours avec un délai de 15 minutes. Si vous avez besoin de plus de données, vous pouvez les télécharger par lots et concaténer les trames de données. Après avoir téléchargé les données, nous calculons la moyenne mobile exponentielle (EMA) avec une longueur de 20 et calculons la pente de la moyenne mobile. Les valeurs de pente sont stockées dans une nouvelle colonne appelée slope_ema dans le bloc de données.

Ensuite, nous calculons le signal en itérant sur chaque ligne. Si la pente de la bougie actuelle est négative et dépasse la limite de pente, indiquant une tendance à la baisse, nous vérifions si la queue inférieure de la bougie divisée par la plage haut-bas est supérieure à la limite en pourcentage. Cela signifie une bougie de Huffman dans une tendance baissière et le signal total est défini sur 1. De même, si la pente est positive et dépasse la limite de pente, indiquant une tendance haussière, et la queue supérieure de la bougie divisée par la plage haut-bas est supérieure à la limite de pourcentage, nous avons une bougie de Huffman dans une tendance haussière, et le signal total est fixé à 2.

Une fois que nous avons calculé le signal et stocké les résultats dans une liste appelée signal, nous l'ajoutons en tant que nouvelle colonne appelée tot_signal à la trame de données. Nous pouvons ensuite visualiser les signaux sur un graphique en utilisant Plotly.

Voici une explication étape par étape de la stratégie Huffman's Inventory Retracement Bar sans le code :

  1. Téléchargez les données de prix : obtenez les données de prix historiques pour l'instrument financier souhaité, comme une action ou une paire de devises. Vous pouvez utiliser des bibliothèques comme yfinance en Python pour récupérer les données.

  2. Calculer la moyenne mobile exponentielle (EMA): Calculez l'EMA des cours de clôture en utilisant une période de temps spécifique. L'EMA est un indicateur couramment utilisé qui aide à identifier les tendances et les inversions potentielles dans les données de prix.

  3. Calculer la pente : Calculez la pente de la ligne EMA à chaque point de données. La pente indique la direction et la force de la tendance. Vous pouvez utiliser des techniques mathématiques comme le gradient ou la régression pour calculer la pente.

  4. Définir les paramètres : définissez les paramètres de détection du signal. Dans la stratégie de barre de retracement d'inventaire de Huffman, vous définissez généralement une limite de pente et une limite de pourcentage de queue. La limite de pente détermine la valeur de pente minimale pour un signal potentiel, tandis que la limite de pourcentage de queue définit le pourcentage minimum de la plage de la bougie que la queue supérieure ou inférieure doit être.

  5. Identifiez les signaux : parcourez les données et comparez les pentes actuelles et précédentes. Si les deux pentes sont inférieures à la limite de pente négative, vérifiez si la queue inférieure de la bougie actuelle est supérieure à la limite de pourcentage de queue. Si c'est le cas, marquez-le comme un signal haussier. De même, si les deux pentes sont supérieures à la limite de pente positive, vérifiez si la queue supérieure de la bougie actuelle est supérieure à la limite de pourcentage de queue. Si c'est le cas, marquez-le comme un signal baissier.

  6. Visualisez les signaux : créez un tableau ou un graphique des données de prix. Tracez les signaux sur le graphique pour visualiser les bougies de Huffman. Vous pouvez utiliser des bibliothèques de traçage telles que Plotly ou Matplotlib pour créer le graphique et marquer les points de signal.

N'oubliez pas que la stratégie ne se limite pas à ces étapes et que vous pouvez la personnaliser et l'affiner en fonction de vos besoins et de vos préférences de trading. De plus, la mise en œuvre de techniques de gestion des risques, telles que la définition d'ordres stop-loss ou le dimensionnement des positions, est essentielle pour un trading réussi.

Retracement Bar Coded In Python For Algorithmic Trading
Retracement Bar Coded In Python For Algorithmic Trading
  • 2022.04.28
  • www.youtube.com
This video details the IRB or the inventory retracement bar as described and used by Hoffman and the algorithm that detects this bar in an automated method i...
 

Comment automatiser les modèles de trading en Python | Motif tête et épaules



Comment automatiser les modèles de trading en Python | Motif tête et épaules

Pour automatiser la détection des modèles de tête et d'épaules en Python, nous pouvons suivre les étapes de l'algorithme décrites dans le texte. Voici une explication détaillée de chaque étape :

  1. Détecter les points pivot :

    • Cette étape consiste à identifier les valeurs hautes et basses dans les données de prix qui sont supérieures ou inférieures aux bougies voisines.
    • Deux types de points pivots sont détectés : les points pivots forts et les points pivots faibles.
    • Les points de pivot forts sont comparés à un large éventail de chandelles voisines, tandis que les points de pivot faibles sont comparés à un plus petit nombre de voisins.
  2. Visualisez les points pivots :

    • Les points de pivot forts et les points de pivot faibles détectés sont tracés sur un graphique en chandeliers.
    • Les points de pivot forts sont représentés par des points violets au-dessus des bougies, tandis que les points de pivot faibles sont représentés par des points rouges sous les bougies.
  3. Détecter le motif de la tête et des épaules :

    • Pour détecter le motif tête et épaules, nous parcourons les ID de bougie dans la plage spécifiée.
    • Pour chaque ID de bougie, nous vérifions s'il s'agit d'un point pivot (ni un pivot fort ni un pivot faible) et continuons.
    • Si un point de pivot fort est trouvé, nous enregistrons les coordonnées des maximas et des minimas dans une fenêtre de bougies des deux côtés du pivot.
    • Nous gardons une trace du nombre de minimas et de maximas avant et après la bougie pivot centrale.
    • Si le nombre de minimas et de maximas est inférieur à un de chaque côté, la formation du motif n'est pas possible et nous passons à la bougie suivante.
    • Si le nombre de minimas et de maximas satisfait la condition, nous ajustons une ligne de régression linéaire aux minimas et calculons sa pente et son interception.
    • Nous trouvons l'indice de la tête dans les maximas à l'aide de la fonction argmax.
    • Enfin, nous vérifions si les conditions pour le motif tête et épaules sont remplies :
      • La différence entre le maximum de l'indice de tête et le maximum avant la tête doit être supérieure à un seuil.
      • La différence entre le maximum de l'indice de tête et le maximum après la tête doit également être supérieure au seuil.
      • La pente absolue des minimas doit être inférieure ou égale à un seuil.
    • Si toutes les conditions sont remplies, nous avons détecté un motif tête et épaules.
L'utilisation de techniques de gestion des risques, telles que la définition d'ordres stop-loss ou le dimensionnement des positions, est essentielle pour un trading réussi.
How to Automate Trading Patterns In Python | Head And Shoulders Pattern
How to Automate Trading Patterns In Python | Head And Shoulders Pattern
  • 2022.04.21
  • www.youtube.com
This video details the head and shoulders candles or candlesticks pattern, and an algorithm is automated in Python language to detect this specific form of c...
 

Détection de modèles de prix triangulaires en Python | Indicateur de trading algorithmique



Détection de modèles de prix triangulaires en Python | Indicateur de trading algorithmique

Dans cette vidéo, nous allons explorer la détection automatisée des motifs triangulaires à l'aide d'algorithmes spécifiques. Nous présenterons une méthode simple pour détecter différentes formes de triangles de mouvement de prix et écrirons un code Python pour le tester sur des données forex. À la fin, nous tracerons les modèles découverts pour visualiser les résultats. Si la partie codage vous intéresse, vous pouvez télécharger le fichier Jupyter Notebook contenant le code Python à partir du lien fourni dans la description de la vidéo.

Les motifs en triangle présentent un intérêt particulier pour les traders lorsqu'ils sont utilisés dans des stratégies de trading. Par exemple, certains commerçants négocient la cassure des triangles. Dans les exemples présentés, le prix suit une tendance future dans le sens de la cassure. Dans un exemple, le prix a éclaté des bords du triangle, suivant une tendance à la baisse. Dans un autre exemple, le prix a éclaté du bord du triangle, suivant une tendance haussière. Dans les deux cas, il y a eu une poursuite de la tendance à la cassure.

Les étapes de la méthode sont les suivantes :

  1. Calculer les points pivots : les points pivots sont des valeurs de prix supérieures à leurs voisins. Pour les bas de pivot, le bas d'une bougie doit être inférieur aux bas d'un nombre spécifié de bougies avant et après celle-ci. Pour les sommets de pivot, le sommet d'une bougie doit être supérieur aux sommets du nombre spécifié de bougies avant et après celle-ci.

  2. Ajuster les maximas et les minimas dans les pentes linéaires : pour les maximas, comparez les valeurs élevées et recherchez une bougie centrale avec une hauteur supérieure au nombre spécifié de bougies avant et après celle-ci. Pour les minimas, comparez les valeurs basses et recherchez une bougie centrale avec un bas inférieur au nombre spécifié de bougies avant et après.

  3. Détecter les formes de triangle : Selon la forme de triangle souhaitée, identifiez les modèles en fonction des pentes des maximas et des minimas. Par exemple, un triangle convergent peut être détecté lorsque la pente des maxima est négative et la pente des minima est positive. Un triangle descendant peut être détecté lorsque la pente des maxima est négative et que la pente des minima est proche de zéro ou d'une ligne horizontale.

Maintenant, écrivons le code en Python pour implémenter cette méthode et voyons comment cela fonctionne. Le fichier Jupyter Notebook contient le code permettant d'importer les données, de les nettoyer, de calculer les points de pivot, de visualiser les bougies de pivot et de détecter les motifs triangulaires. Nous utilisons des bibliothèques telles que Pandas, NumPy et Plotly pour gérer les tâches de manipulation et de visualisation des données.

Après avoir importé les bibliothèques nécessaires et les données, nous définissons une fonction appelée "pivot_id" pour identifier les points de pivot en fonction du nombre spécifié de voisins. Cette fonction ajoute une nouvelle colonne appelée "pivot" au bloc de données, indiquant si une bougie est un pivot bas (1) ou un pivot haut (2).

Nous définissons ensuite une fonction appelée "points_position" pour tracer les bougies et ajouter des points au-dessus et en dessous d'elles en fonction de leur statut de pivot. Cette fonction utilise la colonne "point_position" pour déterminer les coordonnées y des points.

À l'aide de la bibliothèque Plotly, nous traçons les bougies et les points de pivot pour visualiser les résultats. Cela nous permet de vérifier que les points pivots sont correctement identifiés.

Ensuite, nous implémentons le code pour détecter les motifs triangulaires. Nous sélectionnons une bougie spécifique et balayons un nombre spécifié de bougies avant celle-ci pour vérifier si un motif triangulaire est présent dans cette zone. Nous parcourons les bougies et stockons les coordonnées des maximas et des minimas dans des tableaux NumPy séparés. Nous adaptons ensuite ces points à des pentes linéaires à l'aide d'une régression linéaire et calculons les pentes pour les maximas et les minimas.

Nous traçons les bougies, les points de pivot et les pentes des maximas et des minimas pour visualiser le motif en triangle. En vérifiant les conditions définies pour la forme du triangle, telles que les facteurs de corrélation (r_min et r_max), nous pouvons déterminer si un motif triangulaire est présent. Si les conditions sont remplies, nous marquons le motif en triangle sur le tracé.

Enfin, nous parcourons toutes les bougies de l'ensemble de données et répétons le processus de détection des motifs triangulaires. Chaque fois qu'un motif est trouvé, nous stockons les coordonnées du triangle dans des listes séparées pour une visualisation ultérieure.

À la fin du code, nous utilisons Plotly pour tracer les bougies, les points de pivot et les motifs triangulaires détectés. Cela fournit une représentation visuelle des triangles identifiés dans les données de prix.

En exécutant le code et en examinant le tracé, nous pouvons voir les motifs triangulaires détectés et analyser leurs formes. Ces informations peuvent être utiles pour les traders qui souhaitent incorporer des motifs triangulaires dans leurs stratégies de trading.

N'oubliez pas que le code fourni dans le fichier Jupyter Notebook n'est qu'une implémentation possible de la détection des motifs triangulaires. Il existe différentes manières d'aborder ce problème et vous pouvez explorer différents algorithmes ou modifier le code existant en fonction de vos besoins spécifiques.

Triangle Price Pattern Detection In Python | Algorithmic Trading Indicator
Triangle Price Pattern Detection In Python | Algorithmic Trading Indicator
  • 2022.04.14
  • www.youtube.com
This video details the algorithm for triangle price pattern detection in python, this technical indicator can be programmed in python to detect all shapes of...
 

Python AlgoTrading Backtest : Utilisation du RSI et de l'ADX avec une moyenne mobile pour les signaux d'achat/vente



Python AlgoTrading Backtest : Utilisation du RSI et de l'ADX avec une moyenne mobile pour les signaux d'achat/vente

Bonjour à tous! Dans cette vidéo, nous effectuerons un test détaillé d'une stratégie de sculpture basée sur l'indice directionnel moyen (ADX) et l'indicateur de force relative (RSI), ainsi que d'autres indicateurs de confirmation. Cette stratégie est annoncée comme une approche rentable pour le scalping. Nous nous concentrerons sur les points violets situés juste en dessous des flèches rouges sur le graphique des prix, qui sont générés automatiquement par l'algorithme que nous allons décrire.

Dans cet exemple spécifique, les points violets représentent des signaux de vente, et il convient de noter que ces signaux sont suivis d'une baisse de prix. Cela suggère que cette stratégie est prometteuse, car ces signaux ont abouti à des transactions gagnantes. Pour approfondir l'aspect codage, vous pouvez télécharger le code Python, un fichier Jupyter Notebook, à partir du lien fourni dans la description.

Notre objectif est de développer une stratégie de sculpture automatisée en Python qui nous permet de mettre en place des échanges, de laisser le code en cours d'exécution et potentiellement de profiter pendant que nous dormons. Cependant, il est important de reconnaître que réussir n'est peut-être pas aussi simple qu'il y paraît au départ.

Nous commencerons les tests sur la période de cinq minutes, comme recommandé pour cette stratégie particulière. Pour déterminer la tendance des prix, nous utiliserons la moyenne mobile exponentielle 50 (EMA). Si le prix se négocie au-dessus de cette courbe, cela indique une tendance haussière et nous nous concentrerons uniquement sur l'achat de positions. À l'inverse, si le prix se négocie en dessous de la MME 50, cela indique une tendance à la baisse et nous envisagerons exclusivement de vendre des positions.

De plus, nous intégrerons le RSI avec une période de 3 et des niveaux de déclenchement fixés à 20 et 80. Lorsque le RSI tombe en dessous de 20, cela suggère que le marché est survendu, déclenchant un signal d'achat. A l'inverse, lorsque le RSI dépasse 80, cela indique que le marché est en surachat, ce qui se traduit par un signal de vente.

Notre stratégie intègre également l'indice directionnel moyen (ADX) avec une période de cinq. Si l'ADX dépasse 30, cela indique une tendance forte, servant d'indice de confirmation pour les tendances haussières et baissières. Dans les deux cas, nous recherchons des niveaux supérieurs à 30.

Lorsque toutes ces conditions sont remplies, la première partie de notre signal est générée. Pour valider davantage ce signal, nous utiliserons une approche de modèle de bougie, en recherchant spécifiquement une bougie engloutissante alignée sur la tendance. Si la tendance est à la hausse, nous chercherons une bougie engloutissante haussière ; si la tendance est baissière, on cherchera une bougie engloutissante baissière.

Heureusement, tous ces indicateurs peuvent être automatisés en Python et testés sur des données historiques. L'exemple que nous allons utiliser a été sélectionné au hasard dans l'ensemble de données. Les premières observations indiquent des signaux positifs, car les signaux de vente ont tendance à être suivis d'une baisse des prix, tandis que les signaux d'achat sont souvent suivis d'une augmentation des prix.

Pour mettre cette stratégie à l'épreuve ultime, nous utiliserons Python pour effectuer des backtests et permettre aux résultats de déterminer sa viabilité. Nous importerons les données historiques de la paire de devises EUR/USD de 2019 à 2022, en utilisant spécifiquement des chandeliers de cinq minutes. Nous nettoierons également les données en supprimant les périodes sans activité commerciale, telles que les week-ends et les jours fériés.

En utilisant le package Pandas TA (Analyse technique), nous ajouterons quatre colonnes supplémentaires à notre trame de données : 50 EMA, RSI avec une période de 3, ADX avec une période de 5 et Average True Range (ATR). Ce dernier sera utilisé pour calculer la distance stop-loss. Le signal de tendance EMA indiquera si les bougies se négocient en dessous ou au-dessus de la courbe 50 EMA, déterminant si nous sommes respectivement dans une tendance baissière ou haussière.

Si nous sommes dans une tendance baissière, nous vérifierons si le RSI est inférieur à 20, indiquant une condition de survente. Si les conditions de tendance baissière et de survente sont remplies, nous générerons un signal de vente.

De même, si nous sommes dans une tendance haussière, nous vérifierons si le RSI est supérieur à 80, indiquant une condition de surachat. Si les conditions de tendance haussière et de surachat sont remplies, nous générerons un signal d'achat.

Pour valider davantage ces signaux, nous rechercherons des modèles de bougies engloutissants alignés sur la tendance. Pour un signal de vente, nous rechercherons une bougie engloutissante baissière, où le corps de la bougie actuelle engloutit complètement le corps de la bougie précédente dans une direction descendante. Pour un signal d'achat, nous rechercherons une bougie engloutissante haussière, où le corps de la bougie actuelle engloutit complètement le corps de la bougie précédente dans une direction ascendante.

Une fois les signaux générés, nous calculerons la distance stop-loss en utilisant l'Average True Range (ATR). L'ATR fournit une estimation de la fourchette de prix moyenne sur une période spécifiée, ce qui peut nous aider à déterminer un niveau de stop-loss raisonnable.

Dans la phase de backtesting, nous parcourrons les données historiques et appliquerons ces règles pour générer et évaluer les signaux de trading. Pour chaque signal, nous simulerons une transaction, en supposant que nous entrons dans la position au prix d'ouverture de la bougie suivante après la génération du signal. Nous définirons également un niveau de prise de profit fixe basé sur un certain rapport récompense / risque.

Au cours de la simulation, nous suivrons le profit ou la perte de chaque transaction et calculerons les indicateurs de performance clés tels que le bénéfice total, la perte totale, le taux de gain et le rendement moyen par transaction. Cela nous aidera à évaluer l'efficacité de la stratégie et à déterminer sa rentabilité.

Il est important de noter que les résultats du backtesting sur les données historiques ne garantissent pas les performances futures. Les conditions du marché peuvent changer et les stratégies qui ont bien fonctionné dans le passé peuvent ne pas fonctionner aussi efficacement à l'avenir. Par conséquent, il est crucial d'évaluer et d'adapter en permanence les stratégies de trading en fonction des conditions du marché en temps réel.

En conclusion, nous avons décrit une stratégie de sculpture basée sur l'indice directionnel moyen (ADX), l'indicateur de force relative (RSI) et les modèles de bougies engloutissantes. Nous avons discuté du processus d'automatisation de cette stratégie à l'aide de Python et de la réalisation de backtesting sur des données historiques. Les résultats du backtesting donneront un aperçu des performances de la stratégie et aideront à évaluer sa viabilité en tant qu'approche rentable pour le scalping.

Python AlgoTrading Backtest: Using RSI and ADX with Moving Average for Buy/Sell Signals
Python AlgoTrading Backtest: Using RSI and ADX with Moving Average for Buy/Sell Signals
  • 2022.04.07
  • www.youtube.com
This is a backtested strategy using the ADX and the RSI, the algotrading code is built in python and the backtest is conducted using backtesting.py package. ...
 

Comment utiliser l'indicateur de volume pour l'analyse de la stratégie de trading en Python


Comment utiliser l'indicateur de volume pour l'analyse de la stratégie de trading en Python

Aujourd'hui, nous nous lançons dans une aventure passionnante en testant une stratégie de trading en volume. Cette stratégie particulière fonctionne sur le laps de temps quotidien et est connue pour sa sécurité, car elle implique un risque minimal en théorie. Je l'ai nommée à juste titre la "Stratégie de trading de volume" en raison de sa dépendance au volume et à d'autres indicateurs techniques.

Notre objectif est de développer un code capable de tester automatiquement cette stratégie en utilisant des données historiques couvrant jusqu'à 18 ans. Ce faisant, nous pouvons acquérir une compréhension globale de la performance de la stratégie. Pour ceux qui sont intéressés par l'aspect codage, vous pouvez trouver le fichier Jupyter Notebook Python dans la description de la vidéo. Un lien vous permet de télécharger le fichier complet que nous utiliserons pour ce test.

Pour commencer, nous utiliserons la moyenne mobile exponentielle de 200 jours (EMA) comme premier indicateur. Si le prix se négocie en dessous de cette courbe, cela signifie une tendance à la baisse, tandis que le commerce au-dessus de la 200 EMA indique une tendance à la hausse. Notre première règle est simple : lorsque nous identifions une tendance baissière, nous ne considérerons que les positions de vente, et dans le cas d'une tendance haussière, nous nous concentrerons uniquement sur les positions d'achat.

Passons maintenant aux spécificités de notre stratégie. Nous rechercherons quatre bougies consécutives qui vont à l'encontre de la tendance dominante, c'est-à-dire qui ramènent le prix plus près de la moyenne mobile. Il est important de noter que le nombre de bougies peut être ajusté en fonction des préférences de l'utilisateur. Dans notre Jupyter Notebook, nous avons fourni la possibilité de modifier ce paramètre à tout moment. Pour l'instant, nous nous en tiendrons à un minimum de quatre bougies.

Ensuite, nous examinons la bougie suivante, qui devrait s'aligner sur la direction de la tendance. Par exemple, si nous sommes dans une tendance baissière, nous recherchons une bougie baissière. A la fin de la journée de trading, une fois la bougie fermée, nous vérifions son volume. Si le volume dépasse celui de la bougie précédente, il sert de signal de vente dans une tendance baissière. À l'inverse, dans une tendance haussière, nous recherchons au moins quatre bougies baissières consécutives suivies d'une bougie haussière avec un volume plus élevé que la bougie précédente. Cela signifie une position d'achat.

Vient maintenant la partie complexe : déterminer les niveaux de stop loss et de take profit. Dans cette vidéo, nous explorons deux approches différentes et évaluons leurs résultats. La première méthode consiste à utiliser une distance stop-loss liée à l'Average True Range (ATR), comme deux ou trois fois l'ATR de nos positions de vente ou d'achat. La deuxième méthode considère le sommet le plus élevé parmi les quelques bougies précédentes comme notre stop loss pour une tendance baissière et une position de vente. Le nombre de bougies à considérer pour définir le stop loss est une variable de notre programme Python, nous permettant d'expérimenter et de tester différents scénarios. En règle générale, je commence avec quatre bougies, similaires au nombre utilisé pour vérifier nos signaux commerciaux. Pour une tendance haussière et une position d'achat, nous recherchons le plus bas parmi les quelques bougies précédentes.

Maintenant, examinons le code et voyons comment tout cela fonctionne ensemble. Dans notre fichier Jupyter Notebook, nous commençons par importer les bibliothèques nécessaires, y compris Pandas, que nous utiliserons pour lire le fichier de données CSV contenant les taux de change EUR/USD quotidiens de 2003 à 2022. De plus, nous chargeons des données pour d'autres actifs comme les actions d'Amazon, d'eBay et de Volkswagen, car nous avons l'intention de tester également cette stratégie en bourse. Puisque nous travaillons avec des données quotidiennes, l'ensemble de données initial se compose de 6 858 lignes, qui seront encore réduites lors du processus de nettoyage des données. Nous veillons également à ce que les titres des colonnes correspondent à nos exigences, en les renommant « Heure », « Ouvrir », « Élevé », « Bas », « Fermer » et « Volume » pour assurer la cohérence entre les différents fichiers de données.

Après avoir tracé les signaux sur le graphique, nous passons à la définition de nos niveaux de stop loss et de take profit. Dans cet exemple, deux méthodes sont testées. La première méthode consiste à utiliser l'Average True Range (ATR) pour déterminer la distance de stop loss. Le stop loss est fixé à un certain multiple de l'ATR à partir du point d'entrée. La deuxième méthode considère le plus haut le plus élevé pour les positions de vente ou le plus bas le plus bas pour les positions d'achat parmi un nombre spécifié de bougies précédentes pour déterminer le niveau de stop loss.

Une fois les niveaux de stop loss et de take profit définis, nous calculons le profit et la perte (P&L) pour chaque transaction. Nous vérifions si le signal total est un signal d'achat ou de vente et calculons le P&L en conséquence. S'il s'agit d'un signal d'achat, nous calculons le P&L comme la différence entre le prix de clôture de la bougie suivante et le prix d'entrée. S'il s'agit d'un signal de vente, nous calculons le P&L comme la différence entre le prix d'entrée et le cours de clôture de la bougie suivante.

Le P&L cumulé est ensuite calculé en additionnant les P&L individuels des transactions. Nous calculons également le nombre total de transactions et le taux de réussite (pourcentage de transactions gagnantes) sur la base des P&L positifs.

Enfin, nous imprimons les résultats, y compris le P&L total, le nombre de transactions et le taux de réussite.

Le code fourni dans le Jupyter Notebook permet une personnalisation et des tests supplémentaires de la stratégie. Vous pouvez modifier des paramètres tels que le nombre de bougies arrière à prendre en compte pour la détermination de la tendance, le nombre de bougies précédentes pour la génération du signal de prix, le multiple de l'ATR pour le calcul du stop loss et le nombre de bougies précédentes à prendre en compte pour la détermination du niveau de stop loss.

Le code met en œuvre une stratégie de trading de volume basée sur des indicateurs techniques tels que la moyenne mobile exponentielle sur 200 jours (EMA), le volume et les mouvements de prix. Il teste la stratégie sur une période spécifiée de données historiques et calcule les mesures de rentabilité et de performance.

How To Use The Volume Indicator For Trading Strategy Analysis In Python
How To Use The Volume Indicator For Trading Strategy Analysis In Python
  • 2022.03.24
  • www.youtube.com
Welcome to my video on how to use the volume indicator for trading strategy analysis in Python. In this video, I will be sharing a daily timeframe volume tra...
 

Stratégie automatisée de scalping RSI testée en Python



Stratégie automatisée de scalping RSI testée en Python

Aujourd'hui, nous allons tester une stratégie de scalping basée sur le RSI (Relative Strength Index). La stratégie intègre deux indicateurs : la moyenne mobile exponentielle (EMA) et le RSI. Nous effectuerons des backtests à l'aide du code Python, que vous pouvez télécharger à partir du lien fourni dans la description de la vidéo.

Pour le backtest, nous utiliserons trois versions différentes de la stratégie basées sur des délais différents : une pour les bougies d'une minute, une autre pour les bougies de 15 minutes et une troisième pour les bougies d'une heure. L'accent de cette vidéo sera sur le laps de temps de 15 minutes, mais nous couvrirons les trois versions.

La stratégie suit des règles précises. Tout d'abord, nous analysons le prix actuel par rapport au 200 EMA. Si le prix se négocie au-dessus du 200 EMA, nous considérons qu'il s'agit d'une tendance haussière. Inversement, si le prix se négocie en dessous de la 200 EMA, nous considérons qu'il s'agit d'une tendance à la baisse. Dans une tendance haussière, nous ne recherchons que des positions acheteuses, tandis que dans une tendance baissière, nous ne recherchons que des positions vendeuses.

Ensuite, nous examinons les valeurs RSI de deux bougies consécutives. Initialement, nous utilisons un RSI à deux bougies pour la période d'une minute. Cependant, étant donné qu'un backtesting sur plusieurs années avec des bougies d'une minute générerait une quantité massive de données, nous commencerons par la période de 15 minutes. Dans ce cas, nous pouvons ajuster la longueur RSI à trois ou quatre bougies, selon la période. Pour la période d'une minute, nous utiliserons un RSI à deux bougies et des niveaux de test inférieurs à 10 et supérieurs à 90.

Dans une tendance haussière, nous attendons que le RSI descende en dessous de 10 avant d'exécuter une position d'achat. Pour les positions de vente, nous attendons que le RSI dépasse 90. Ces niveaux RSI agissent comme des points d'entrée pour nos transactions. La vidéo fournit des exemples visuels de la façon dont la stratégie identifie les positions d'entrée en fonction des critères de prix et de RSI.

L'étape suivante consiste à déterminer les valeurs stop-loss et take-profit pour les transactions. Diverses méthodes peuvent être utilisées, telles que la perte d'arrêt à distance fixe, la distance d'arrêt liée à l'ATR ou les valeurs d'arrêt de fuite. De même, le take-profit peut être fixé à une distance fixe ou lié à la distance stop-loss avec un certain ratio take-profit/stop-loss.

Pour évaluer l'efficacité de la stratégie, nous écrivons du code Python pour effectuer des backtests sur un à trois ans de données. De plus, nous introduisons une étape pour vérifier la robustesse de la stratégie en la testant sur de nouvelles données qui ont été séparées pour éviter les biais.

La vidéo procède à l'analyse du code dans un Jupyter Notebook. Il commence par charger les données, les nettoyer en supprimant les entrées de volume zéro (indiquant les week-ends ou les jours fériés) et en calculant les 200 valeurs EMA et RSI. L'Average True Range (ATR) est également calculé pour la détermination potentielle de la distance stop-loss.

Une fois les signaux nécessaires calculés, la vidéo montre la visualisation de ces signaux sur un graphique. Les bougies de prix, la courbe 200 EMA et les positions d'entrée (achat et vente) sont tracées pour analyser visuellement le comportement des indicateurs.

Après analyse des signaux, la vidéo explique l'importance de backtester la stratégie sur une longue période pour évaluer sa rentabilité. Initialement, la stratégie a été testée sur des périodes plus courtes, mais les résultats ont varié. Par conséquent, un backtesting sur une période plus longue est crucial pour évaluer l'efficacité globale de la stratégie.

La vidéo souligne la nécessité de backtesting et de vérification des performances de la stratégie sur une période significative. En examinant les résultats finaux du backtest, nous pouvons déterminer si la stratégie est rentable et robuste.

Automated RSI Scalping Strategy Tested In Python
Automated RSI Scalping Strategy Tested In Python
  • 2022.03.17
  • www.youtube.com
An Automated RSI Scalping Strategy is presented and backtested using python algorithmic trading over 3 years of data showing positive returns. The Test deta...