Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Indicateur de rupture de canal en Python
Indicateur de rupture de canal en Python
Salut! Aujourd'hui, nous allons nous plonger dans les exemples de répartition des canaux de prix générés par un algorithme. Plus tard, je vous montrerai le code, que vous pouvez télécharger gratuitement à partir du lien dans la description ci-dessous. Commençons par comprendre ce qu'est l'évasion du canal des prix.
La cassure du canal de prix est un outil d'analyse technique utilisé par les commerçants pour identifier les cassures potentielles de prix. Cela fonctionne en traçant un canal autour de l'action des prix, représentant les points hauts et bas du prix sur une période spécifique. Lorsque le prix sort de ce canal, cela peut indiquer un changement de tendance potentiel ou une opportunité de marché.
La partie intéressante est que nous pouvons automatiser le processus d'identification des canaux et des cassures potentielles à l'aide de Python. Dans cette vidéo, je vais vous guider à travers les étapes de l'algorithme et vous fournir le code, vous permettant de le modifier et de l'affiner en fonction de vos préférences de trading et de l'actif sur lequel vous l'utiliserez.
Analysons les exemples présentés sur le graphique. Les étoiles noires représentent les éruptions détectées par l'algorithme. Les étoiles sous les bougies signalent une future tendance haussière, tandis que les étoiles au-dessus des bougies indiquent une future tendance baissière. Ces cassures sont basées sur des canaux identifiés par l'algorithme.
Pour expliquer l'algorithme, considérons le premier exemple. Nous avons une tendance baissière, suivie d'une cassure sous un certain canal. L'étoile sous la bougie indique une future tendance baissière. Il est important de noter que ce canal particulier est différent de celui indiqué sur le graphique. L'algorithme détecte les canaux en fonction des bougies précédentes.
Un autre exemple est une cassure au-dessus d'un canal, signalant une future tendance haussière. Nous pouvons observer ces cassures et leur relation avec les canaux détectés par l'algorithme. L'algorithme utilise trois points de détection : les points pivots, la détection de canal et la détection d'évasion.
Premièrement, il détecte les points pivots, qui sont des bougies avec des valeurs élevées par rapport aux bougies voisines ou des valeurs faibles par rapport aux bougies voisines. L'algorithme recherche deux bougies de chaque côté en tant que hauts ou bas de pivot. Ces points de pivot servent de points de référence pour les lignes d'ajustement afin de définir les canaux.
Ensuite, l'algorithme ajuste les lignes aux hauts et aux bas du pivot, créant ainsi le canal. Cette étape identifie les limites supérieure et inférieure du canal. Le canal représente la gamme potentielle de mouvement des prix.
La troisième phase est la détection d'évasion. L'algorithme détermine si une cassure s'est produite en comparant la bougie actuelle avec le canal. La condition de cassure est définie en fonction de la position des cours d'ouverture et de clôture par rapport au canal. Dans cette vidéo, nous considérons les cassures au-dessus et au-dessous du canal.
En Python, vous avez la possibilité de modifier les conditions d'évasion et de définir vos propres modèles en fonction de vos préférences de trading et de l'actif que vous négociez. Le code fourni dans le lien servira de point de départ pour votre expérimentation.
L'algorithme semble bien fonctionner sur la base des exemples présentés en utilisant la période quotidienne et les prix en dollars américains/euro. Cependant, d'autres tests et analyses sont nécessaires. Maintenant, plongeons dans le code.
Dans le fichier Jupyter Notebook, nous importons les bibliothèques nécessaires : pandas, numpy, plotly et scipy.stats. Nous importons également un fichier de données CSV contenant les prix quotidiens des chandeliers euro/dollar américain de 2003 à 2023.
Le code commence par définir une fonction pour détecter si une bougie est un point pivot. Il prend deux arguments : l'indice de bougie à tester et le paramètre de fenêtre, qui détermine le nombre de bougies voisines à considérer. La fonction vérifie si le haut et le bas de la bougie actuelle sont supérieurs ou inférieurs aux hauts et bas des bougies voisines. Il attribue des étiquettes (0, 1, 2 ou 3) en fonction du type de pivot (élevé, faible ou les deux).
Pour détecter les cassures des canaux de prix dans un graphique en chandeliers, vous pouvez suivre ces étapes :
L'idée générale est d'identifier les lignes de tendance qui englobent les mouvements de prix dans le nombre spécifié de bougies arrière. En détectant les cassures de ces canaux, vous pouvez potentiellement identifier des mouvements de prix importants et prendre des décisions commerciales éclairées.
Il est important de noter que le code fourni précédemment est un exemple simplifié et, en fonction de vos besoins commerciaux spécifiques, vous devrez peut-être modifier et affiner le code en fonction de vos besoins. De plus, envisagez d'incorporer des stratégies de gestion des risques, d'autres indicateurs et des facteurs pertinents pour votre approche de trading lorsque vous utilisez des techniques de cassure de canal à des fins de trading réelles.
Défi de stratégie de trading ChatGPT
Défi de stratégie de trading ChatGPT
Bonjour et bienvenue dans notre dernière expérience. Dans cette vidéo, je vais montrer la puissance de l'IA en la confrontant à l'expérience d'un vrai trader humain. Nous allons nous plonger dans la stratégie d'évasion du canal des prix et mettre à l'épreuve notre modèle d'IA, ChatGPT, pour voir comment il fonctionne. Si nous découvrons quelque chose d'intéressant, j'écrirai mon propre algorithme dans la prochaine vidéo et comparerai les résultats de performance. Plus tard, je partagerai également le code Python que j'utiliserai dans cette vidéo. Vous pouvez le télécharger à partir du lien dans la description ci-dessous si vous êtes curieux et désireux d'expérimenter et d'étendre notre stratégie. Alors, asseyez-vous, détendez-vous et profitons-en.
Lorsque nous parlons d'indicateurs de cassure de canal, nous considérons généralement les modèles de graphiques en chandeliers et les points fractals. La cassure se produit généralement lorsque le prix se déplace au-delà d'un canal, et après la cassure, nous nous attendons à ce que la tendance se poursuive dans la même direction, au moins pendant un certain temps. Aujourd'hui, nous allons essayer de faire en sorte que ChatGPT génère le code pour nous, en particulier pour la stratégie d'évasion du canal de prix.
Avant de plonger dans notre expérience avec ChatGPT, je vais programmer la même stratégie, la cassure du canal de prix, à ma manière dans la vidéo suivante. Cela nous permettra de comparer les résultats et de mettre en évidence le contrôle que nous avons sur chaque détail de notre programme. Alors, restez à l'écoute et commençons.
Maintenant, commençons par définir la stratégie de cassure des prix. Cette approche de trading consiste à identifier les niveaux clés de support et de résistance à l'aide d'outils d'analyse technique tels que les lignes de tendance et les modèles de graphique. Portez une attention particulière aux niveaux qui ont été testés à plusieurs reprises dans le passé et observez l'évolution des prix à ces niveaux. Une fois que nous avons identifié les niveaux clés, nous pouvons mettre en place des règles d'entrée et de sortie.
La mise en place de règles d'entrée et de sortie est la partie la plus difficile de la stratégie. Cela implique de décider à quel niveau de prix vous entrerez dans une transaction et quand vous en sortirez pour prendre des bénéfices ou limiter les pertes potentielles. Le suivi des mouvements de prix de l'actif est crucial une fois que nous ouvrons une position. Nous devrions utiliser des ordres stop loss pour limiter les pertes potentielles au cas où la transaction se retournerait contre nous.
Après avoir défini les règles d'entrée et géré la transaction, nous devons surveiller les transactions ouvertes. Si le prix continue d'évoluer dans la direction attendue, nous pouvons envisager d'ajuster notre stratégie de sortie pour capturer des bénéfices supplémentaires. Cela nécessite une surveillance et une adaptation continues en fonction de l'évolution des conditions du marché.
Voici une ventilation de la stratégie :
Identifiez les niveaux clés de support et de résistance : utilisez des outils d'analyse technique tels que les lignes de tendance et les modèles de graphique pour identifier les niveaux qui ont été testés plusieurs fois dans le passé. Ces niveaux agissent comme support ou résistance et forment les canaux.
Définir le niveau de répartition : une fois que vous avez identifié les canaux, déterminez le niveau de répartition. Il s'agit du niveau de prix auquel le prix se déplace au-delà des limites du canal. Il indique une poursuite potentielle de la tendance.
Définissez des règles d'entrée et de sortie : déterminez les critères d'entrée dans une transaction lorsqu'une cassure se produit. Cela peut se produire lorsque le prix clôture au-dessus de la limite supérieure du canal pour une cassure haussière ou en dessous de la limite inférieure du canal pour une cassure baissière. En outre, définissez des critères pour quitter la transaction, tels que la prise de bénéfices à un certain niveau cible ou l'utilisation d'un stop loss suiveur pour vous protéger contre les mouvements de prix défavorables.
Surveiller les transactions ouvertes : Une fois qu'une transaction est saisie, surveillez de près le mouvement des prix. Ajustez la stratégie de sortie si le prix continue d'évoluer favorablement. Cela pourrait impliquer de suivre le stop loss pour protéger les bénéfices ou de fixer un nouveau niveau cible pour capturer des gains supplémentaires.
Gérer les risques : Mettre en œuvre des techniques de gestion des risques pour limiter les pertes potentielles. Cela peut inclure la définition d'un ordre stop loss à un niveau prédéterminé pour quitter la transaction si le prix évolue à l'encontre de la tendance attendue.
Adaptation continue : Adaptez la stratégie en fonction de l'évolution des conditions du marché. La stratégie d'évasion du canal de prix nécessite une surveillance et un ajustement continus pour saisir les meilleures opportunités de trading.
En suivant ces étapes et en les appliquant au marché et à la période spécifiques que vous négociez, vous pouvez mettre en œuvre la stratégie de cassure du canal de prix. N'oubliez pas que l'efficacité de la stratégie peut varier en fonction de divers facteurs et qu'il est important de tester et de valider la stratégie avant de l'appliquer au trading en temps réel.
Maîtrisez le trading FOREX Grid avec une stratégie de couverture automatisée à l'aide de Python
Maîtrisez le trading FOREX Grid avec une stratégie de couverture automatisée à l'aide de Python
Dans la vidéo précédente, nous avons testé le système de trading en grille sur le marché Forex et avons constaté qu'il donnait de bons résultats avec des rendements élevés et un ratio exceptionnel. Cependant, sur la base de vos commentaires, nous nous sommes rendu compte que certains détails devaient être corrigés pour effectuer un backtest plus précis. En conséquence, nous avons apporté les modifications proposées à notre algorithme.
Si vous n'avez pas regardé la vidéo précédente où nous avons détaillé la stratégie de la grille, je vous recommande de la vérifier d'abord car elle permet de mieux comprendre la stratégie. Vous trouverez le lien vers cette vidéo dans la description ci-dessous. De plus, vous pouvez télécharger la version mise à jour du code Python à partir du lien fourni.
Après la mise en œuvre des modifications de code, nous avons toujours un système potentiellement préférable, en fonction de l'ensemble des paramètres utilisés. Veuillez noter que je n'ai pas passé beaucoup de temps à optimiser les paramètres, vous pouvez donc télécharger le code et expérimenter en les adaptant à votre goût. Cela vous permettra d'ajuster le niveau de risque en fonction de vos préférences. Vous pouvez soit inclure plus de risque au détriment de la diminution du ratio aigu, soit diminuer le risque et les rendements tout en augmentant le ratio aigu.
Voyons maintenant les modifications spécifiques apportées à la version précédente du code. Dans un premier temps, nous avons supprimé un des paramètres liés au ratio take profit/stop loss. Nous avons réalisé que ce ratio devait être modifié dans la stratégie elle-même, il n'a donc pas besoin d'être fixé à ce stade. Les fonctions utilisées dans la version précédente restent les mêmes.
La première modification importante concernait la taille du lot. Dans la version précédente, la taille du lot était définie sur une valeur inférieure à un, indiquant un pourcentage de l'équité actuelle. Cependant, cela violait les règles de la stratégie de grille car nous négociions dans les deux sens avec des tailles de lot différentes. Pour corriger cela, nous définissons la taille du lot comme une valeur fixe (50 dans cet exemple).
La deuxième modification importante est liée à la fonction de backtest. Auparavant, lorsque nous ouvrions un trade et essayions ensuite d'ouvrir un trade opposé ou un trade dans la direction opposée, la fonction de backtesting fermait le trade précédent. Cela signifiait que si nous vendions d'abord, puis achetions le même montant, la fonction de backtesting fermerait notre position de vente. Pour permettre au backtesting d'ouvrir deux transactions indépendamment dans des directions opposées, nous avons utilisé le paramètre de couverture défini sur true. Cela permet des positions dans la direction opposée sur le même actif en même temps. De plus, nous définissons le paramètre commandes exclusives sur faux, ce qui signifie qu'une commande n'annulera pas la commande précédente.
Pour les valeurs de stop loss, nous les avons fixées à 1,5 fois la distance de la grille et le take profit est fixé à 0,5 fois la distance de la grille. Le ratio take profit/stop loss est fixé à 0,5. Veuillez noter que ce sont des paramètres aléatoires utilisés pour l'exemple. Dans un système réel, il est important de s'assurer que le stop loss est plus loin que le take profit, car la stratégie repose sur l'instabilité du marché pour générer des profits.
En utilisant ces paramètres, un compte de trésorerie de 500 $ et une marge de 1 à 10, nous avons obtenu les résultats suivants sur deux mois de données : un pourcentage de retour de 13,49, un ratio pointu de 3,8 et un taux de réussite de 72 %. La courbe des fonds propres montre une pente croissante avec quelques zones de drawdown.
Pour diminuer le risque et augmenter le ratio pointu, vous pouvez envisager de commencer avec des liquidités supplémentaires ou d'ajuster la marge. Par exemple, en commençant avec 1 000 $ et en maintenant une marge de 1 à 10, le rendement a diminué à 1,7 % sur deux mois, mais le ratio pointu a augmenté à 4,9. Cela indique que le risque a diminué avec ce changement de paramètre.
Gardez à l'esprit qu'il existe de nombreux paramètres avec lesquels travailler dans ce système et qu'il est crucial de trouver le bon équilibre. Vous pouvez également expérimenter en modifiant les ratios stop loss et take profit.
Il est important de noter que tous les courtiers n'autorisent pas les transactions de couverture, ce qui signifie qu'ils peuvent ne pas vous permettre d'ouvrir des positions opposées en même temps sur le même actif. Cela peut dépendre du courtier et de votre emplacement. Certains téléspectateurs des États-Unis ont mentionné dans les commentaires que cela n'est pas autorisé dans leur région. Par conséquent, il est conseillé de discuter avec votre courtier avant de mettre en œuvre cette stratégie pour vous assurer qu'elle est conforme à ses politiques.
Enfin, rappelez-vous que le backtesting est la première étape dans l'étude d'un système, mais ce n'est pas suffisant. Il est crucial de tester la stratégie en direct sur le marché à l'aide d'un compte papier, car cela inclura la propagation de la devise négociée et peut avoir un impact sur les résultats attendus.
Stratégie de couverture pour le trading en Python
Stratégie de couverture pour le trading en Python
Bonjour à tous, aujourd'hui nous allons tester la stratégie de trading en grille. Cette stratégie est connue pour sa simplicité et ne nécessite aucun indicateur technique pour déterminer la tendance. Cela signifie que nous n'avons pas besoin de deviner la tendance à l'avance. Le trading en grille implique de négocier simultanément dans les directions longues et courtes, ce qui le rend adapté au trading algorithmique.
Pour évaluer cette stratégie, nous réaliserons un backtest en utilisant le langage Python. Nous utiliserons des données historiques couvrant deux mois, avec une période de cinq minutes. Les résultats du backtest montrent une augmentation constante des fonds propres au cours de la période de test, et la stratégie donne des ratios de performance impressionnants. Le ratio de Sharpe, qui mesure les rendements ajustés au risque, s'élève à environ 5,7.
Si vous êtes intéressé par la partie codage, vous pouvez télécharger le fichier Jupyter Notebook à partir du lien fourni dans la description ci-dessous. La stratégie a une signification personnelle pour l'auteur, car ils se souviennent d'avoir transformé un petit compte en une somme considérable en utilisant ce système lorsqu'ils ont commencé à trader comme passe-temps.
Le concept derrière la stratégie de trading de grille est de créer une grille de niveaux de prix sur le graphique. Chaque fois que le prix croise ces lignes de grille, nous ouvrons des positions longues et courtes. Le niveau de profit est fixé à la ligne de grille suivante pour chaque position. Comme le montre un exemple de graphique, la stratégie consiste à ouvrir les positions longues et courtes initiales, puis à fermer la position gagnante au niveau de grille suivant. Ensuite, deux positions supplémentaires sont ouvertes, une longue et une courte, chaque fois qu'une ligne de la grille est franchie.
L'un des défis de cette stratégie est de gérer les transactions perdantes qui restent ouvertes sur les bords de la grille. Certaines positions peuvent ne jamais atteindre leurs valeurs de profit, créant une difficulté dans le système. Diverses approches peuvent être employées pour gérer cette situation. Certains commerçants peuvent choisir de fermer les transactions restantes à la fin de la journée de négociation, tandis que d'autres peuvent calculer s'ils sont dans une situation de profit global toutes les quelques heures et fermer tout pour recommencer avec une nouvelle grille. La solution dépendra de paramètres supplémentaires, tels que le délai, le nombre maximal autorisé de transactions parallèles et la distance du réseau.
Dans la partie codage, l'auteur applique une valeur stop loss pour chaque transaction en utilisant l'Average True Range (ATR). Cette valeur de stop loss est initialement calculée en fonction de la distance du réseau, mais ensuite l'ATR est utilisé pour l'affiner. L'ATR tient compte de la volatilité du marché au moment du placement des transactions. L'auteur mentionne que ce n'est peut-être pas la meilleure approche et encourage l'expérimentation avec différents paramètres pour trouver le scénario optimal pour la stratégie.
La raison pour laquelle ce système pourrait fonctionner dans de nombreux cas est qu'il tire parti du bruit du marché. Tant que le marché oscille autour de la grille, la stratégie profite des fluctuations de prix et ouvre des positions dans les directions longues et courtes. On s'attend à ce que le système fonctionne mieux sur des périodes plus courtes, où il y a plus d'oscillation des prix et, par conséquent, des bénéfices potentiellement plus élevés.
La stratégie offre deux avantages. Tout d'abord, il élimine le besoin de deviner la tendance, car il ne suit aucune tendance spécifique. Deuxièmement, il simplifie le processus de négociation en se concentrant sur la gestion des transactions perdantes ouvertes. Il n'y a qu'un seul paramètre ajustable dans cette stratégie, qui est la distance de grille. Cependant, il est crucial de choisir la période et la distance de grille appropriées pour l'actif spécifique échangé.
Le fichier Jupyter Notebook fourni illustre l'implémentation de la stratégie en Python. Le code importe diverses bibliothèques, notamment yfinance pour la récupération de données, pandas et numpy pour la manipulation de données, et pandas_ta pour les fonctions d'analyse technique telles que le calcul de l'ATR. Les données de la paire EUR/USD sont téléchargées en utilisant un délai spécifique.
La distance du réseau, le ratio take profit/stop loss et le prix moyen du réseau sont définis comme des variables. Le prix moyen sert de prix moyen autour duquel le réseau est construit. La fonction generate_grid() est définie pour générer les niveaux de grille en fonction du prix moyen et de la distance de grille. La fonction calcule les niveaux supérieur et inférieur de la grille à l'aide d'une boucle.
Ensuite, la logique de la stratégie est mise en œuvre. Le backtest commence par initialiser des variables telles que le solde initial, la taille de la position et le niveau de stop loss. Une boucle for est utilisée pour parcourir chaque barre dans les données historiques.
À l'intérieur de la boucle, le prix actuel est vérifié pour déterminer s'il traverse l'un des niveaux de la grille. Si un croisement se produit, de nouvelles positions sont ouvertes dans les directions longues et courtes. Les niveaux de prise de profit et de stop loss sont définis en fonction des niveaux de grille et de la distance de stop loss.
La boucle vérifie également si des positions ouvertes atteignent leurs niveaux de profit ou d'arrêt de perte. Si une position atteint l'un ou l'autre niveau, elle est clôturée et le profit ou la perte correspondant est enregistré.
À la fin du backtest, la courbe des fonds propres est tracée, montrant la croissance du solde du compte au fil du temps. Les mesures de performance, y compris le bénéfice total, le nombre de transactions, le taux de gain et le ratio de Sharpe, sont calculées et affichées.
Il est important de noter que même si la stratégie de trading en grille peut avoir montré des résultats prometteurs dans le backtest, il est essentiel d'évaluer et de valider en profondeur toute stratégie de trading avant de la déployer dans le trading réel. Le backtesting permet d'évaluer la performance historique, mais il ne garantit pas la rentabilité future.
Pour bien comprendre les détails de l'implémentation et explorer le code, je vous encourage à télécharger le fichier Jupyter Notebook fourni dans la description. Le bloc-notes contient le code complet avec des commentaires détaillés pour vous guider tout au long du processus.
N'oubliez pas que le trading comporte des risques et qu'il est toujours recommandé de consulter un conseiller financier professionnel avant de prendre toute décision d'investissement.
Comment construire un bot de trading en Python
Comment construire un bot de trading en Python
Bonjour, dans cette vidéo, je vais vous montrer comment vous pouvez automatiser votre stratégie de trading en utilisant Python. En d'autres termes, je vais vous guider tout au long du processus de création de votre propre bot de trading gratuit qui peut exécuter automatiquement des transactions en votre nom, en suivant une stratégie spécifique. Le code que j'utiliserai est disponible en téléchargement à partir du lien dans la description ci-dessous, vous pouvez donc suivre la vidéo, puis télécharger le fichier pour l'utiliser comme vous le souhaitez.
Ce que je vais démontrer dans cette vidéo peut fonctionner pour n'importe quelle stratégie de trading qui peut être implémentée en tant que fonction Python. Cela peut être un excellent moyen de tester votre stratégie sur des données de marché en direct au lieu de simplement la tester sur des données passées. Si vous souhaitez tester votre stratégie sur des données futures ou en direct, vous pouvez utiliser les techniques présentées dans cette vidéo.
Commençons par ouvrir notre fichier Jupyter Notebook. Tout d'abord, je vais télécharger des données historiques à des fins de test. Il est important de noter que nous n'utiliserons pas ces données pour le trading en direct ; c'est principalement pour tester nos fonctions de signal. Pour télécharger les données, j'utilise le module YFinance et je récupère les données d'échange entre l'euro et le dollar américain entre deux dates spécifiques, avec un délai de 15 minutes.
Une chose à garder à l'esprit est que lors du téléchargement de données pour des délais courts comme l'intervalle de 15 minutes, Yahoo Finance n'autorise que les 60 derniers jours de données à télécharger. Ainsi, nous ne pouvons pas télécharger plus de 60 jours à la fois, et ceux-ci doivent être les 60 derniers jours à compter de la date actuelle. Si vous rencontrez des problèmes avec le fichier téléchargé, veuillez revérifier les dates de début et de fin spécifiées.
Une fois que nous avons téléchargé les données, nous pouvons les tester en vérifiant les lignes téléchargées. En supprimant le "-1" dans le code, nous pouvons afficher l'ensemble du bloc de données, qui se compose d'environ 3973 lignes. Le bloc de données comprend des colonnes pour la date, l'heure, les prix d'ouverture, les prix les plus élevés, les plus bas, les cours de clôture et les prix de clôture ajustés. Dans cette vidéo, nous n'utiliserons pas de données de volume, mais n'hésitez pas à les intégrer à votre stratégie si nécessaire.
L'étape suivante consiste à définir notre générateur de signaux, qui est une fonction chargée de générer des signaux de trading. Cette fonction prend une trame de données en entrée car lorsque nous diffusons des données en direct pour notre bot de trading, nous allons acquérir une trame de données et l'alimenter dans cette fonction. La fonction déterminera alors s'il y a un signal présent, tel qu'un signal d'achat, un signal de vente ou aucun schéma clair. Dans cet exemple, nous nous concentrerons sur la détection des modèles de chandeliers engloutissants, mais veuillez noter qu'il ne s'agit pas d'une stratégie de trading complète. Cela sert l'objectif de cette vidéo et vous pouvez insérer votre propre stratégie de générateur de signaux dans cette fonction.
La fonction de générateur de signal lit les prix d'ouverture et de clôture de la bougie actuelle et de la bougie précédente en utilisant respectivement les indices -1 et -2. En fonction des conditions définies dans la fonction, telles que la détection d'un modèle d'avalement baissier ou d'un modèle d'avalement haussier, elle renvoie une valeur de signal de 1 pour la vente, 2 pour l'achat ou 0 pour l'absence de signal. Pour vérifier que la fonction fonctionne correctement, nous pouvons la tester à l'aide de quelques lignes de code. En bouclant sur les lignes de la trame de données et en vérifiant chaque ligne pour les modèles engloutissants à l'aide de la fonction de générateur de signaux, nous pouvons stocker les signaux générés dans une liste. Nous pouvons ensuite ajouter cette liste en tant que colonne supplémentaire dans la trame de données de test. L'impression de la trame de données montre la colonne ajoutée, et en effectuant un comptage de valeur, nous pouvons voir le nombre de chaque type de signal présent dans l'ensemble de données.
Veuillez noter qu'il s'agit d'un exemple simplifié pour les besoins de cette vidéo, et qu'il est essentiel de développer une stratégie de trading complète basée sur vos besoins spécifiques.
Maintenant que notre fonction de générateur de signaux est en place, la prochaine étape consiste à définir le bot de trading. Le bot de trading est responsable de l'exécution des transactions en fonction des signaux générés. Dans cet exemple, nous allons créer un robot de trading simple qui achète lorsqu'il reçoit une valeur de signal de 2 (indiquant un signal d'achat) et vend lorsqu'il reçoit une valeur de signal de 1 (indiquant un signal de vente). Encore une fois, ce n'est qu'un exemple de base, et vous pouvez modifier le bot de trading en fonction de votre stratégie de trading spécifique.
La fonction de bot de trading prend la trame de données et les signaux générés en entrée. Il initialise le solde du portefeuille et contient un indicateur de position pour savoir si nous avons actuellement une position ouverte ou non. Ensuite, il boucle sur chaque ligne de la trame de données, vérifie la valeur du signal et effectue l'action d'achat ou de vente correspondante.
Lorsqu'un signal d'achat est reçu et que nous n'avons pas de position ouverte, le robot de trading achète le montant spécifié de l'actif et déduit le coût du solde du portefeuille. Il définit également le drapeau de position pour indiquer que nous avons maintenant une position ouverte. Lorsqu'un signal de vente est reçu et que nous avons une position ouverte, le robot de trading vend la position entière et ajoute le montant de vente au solde du portefeuille. Il réinitialise ensuite le drapeau de position pour indiquer que nous n'avons pas de positions ouvertes.
Pour tester le bot de trading, nous pouvons appeler la fonction avec la trame de données de test et les signaux générés. Nous pouvons également spécifier un solde de portefeuille initial et le montant de l'actif à acheter ou à vendre. Après avoir exécuté la fonction de trading bot, nous pouvons imprimer le solde final du portefeuille pour voir le résultat.
Dans cet exemple, nous ne prenons pas en compte les coûts de transaction, le glissement ou d'autres facteurs susceptibles d'affecter les scénarios de trading réels. Il est important de prendre ces facteurs en compte lors du développement de votre propre bot et stratégie de trading.
Enfin, discutons de la manière dont vous pouvez implémenter ce code pour le trading en direct. Le code que nous avons développé jusqu'à présent est adapté au backtesting et au test de votre stratégie sur des données historiques. Pour l'implémenter pour le trading en direct, vous devez le connecter à un flux de données en temps réel et à une API de trading fournie par votre courtier ou échange. Cela implique de gérer le flux de données et de passer des ordres de trading en temps réel sur la base des signaux générés par le bot de trading.
Il existe diverses bibliothèques et packages Python disponibles qui peuvent vous aider à vous connecter à des flux de données en temps réel et à des API de trading, telles que Alpaca, Binance ou l'API Interactive Brokers. Vous devrez rechercher et choisir celui qui correspond le mieux à vos besoins et s'intègre bien à la bourse ou au courtier que vous avez choisi.
N'oubliez pas que le trading en direct implique de l'argent réel, il est donc crucial de tester soigneusement votre code et votre stratégie dans un environnement simulé avant de le déployer pour le trading en direct. Commencez par de petites positions et augmentez progressivement votre exposition à mesure que vous gagnez en confiance dans les performances de votre bot de trading.
C'est tout pour cette vidéo ! J'espère que vous l'avez trouvé utile pour comprendre comment automatiser votre stratégie de trading à l'aide de Python. N'oubliez pas de télécharger le code à partir du lien dans la description et de le modifier en fonction de vos besoins et de votre stratégie spécifiques. Si vous avez des questions, n'hésitez pas à les laisser dans les commentaires ci-dessous. Merci d'avoir regardé et bon trading !
Python Backtest : stratégie de scalping rentable avec VWAP, bandes de Bollinger et indicateurs RSI
Python Backtest : stratégie de scalping rentable avec VWAP, bandes de Bollinger et indicateurs RSI
Bonjour à tous! Aujourd'hui, je suis ravi d'annoncer que nous avons un gagnant. Dans cette vidéo, je vais partager une stratégie de scalping utilisant les bandes de Bollinger V-WAP (prix moyen pondéré en volume) et le RSI (indice de force relative) pour confirmation. Avant de partager cette stratégie, je l'ai soigneusement backtestée pour m'assurer de son efficacité.
Tout d'abord, je tiens à mentionner qu'il s'agit de la première stratégie de scalping que nous présentons sur cette chaîne. Le scalping peut être difficile pour les algorithmes en raison des données bruyantes sur des périodes plus courtes. Cependant, je crois que cette stratégie surmonte ces défis.
Si vous êtes nouveau sur cette chaîne, vous pouvez télécharger le code Python à partir du lien dans la description. N'oubliez pas de nous soutenir en vous abonnant et en laissant un commentaire avec vos idées à partager. Vos commentaires sont précieux.
Après trois ans de backtesting, le rendement total de cette stratégie est d'environ 300 %. Ce que j'aime particulièrement dans cette stratégie, c'est sa durée moyenne de transaction, qui est d'environ 51 minutes. Cela en fait la stratégie de clôture commerciale la plus rapide que nous ayons démontrée jusqu'à présent. L'avantage d'une fermeture rapide des transactions est une réduction des frais de nuit et moins de stress, car vous pouvez voir immédiatement les résultats de vos transactions exécutées.
Dans la section des commentaires, quelqu'un a posé des questions sur le ratio de Sharpe. Je l'ai inclus dans cette stratégie, et il est d'environ 1,65. Cependant, veuillez noter que cette valeur peut changer avec des modifications des paramètres dans le code Python. Vous pouvez optimiser le ratio de Sharpe en expérimentant différentes valeurs de paramètre.
Plongeons dans les détails de la stratégie. J'utilise le délai de 5 minutes et la courbe V-WAP. Pour déterminer la tendance, je recherche que 15 bougies soient constamment au-dessus ou en dessous de la courbe V-WAP, représentée par la ligne bleue. Si 15 bougies sont au-dessus de la courbe V-WAP, cela indique une tendance haussière. Si nous sommes en dessous de la courbe V-WAP, je considère que c'est une tendance à la baisse.
Pour les positions d'entrée, j'utilise des bandes de Bollinger d'une longueur de 14 et d'un écart type de 2. Dans une tendance haussière au-dessus de la courbe V-WAP, je recherche des positions d'achat lorsqu'une bougie se ferme en dessous de la bande de Bollinger inférieure. Dans une tendance baissière, sous la courbe V-WAP, j'attends qu'une bougie se ferme au-dessus de la bande de Bollinger supérieure comme signal de vente.
Pour confirmer les signaux, j'utilise le RSI. Si le RSI est inférieur à 45, cela confirme un signal d'achat. Si le RSI est supérieur à 55, cela confirme un signal de vente.
Pour définir les niveaux de profit et de stop loss, j'utilise l'ATR (Average True Range). Je regarde les sept dernières bougies, calcule la valeur ATR et la multiplie par un coefficient pour déterminer la distance de stop loss. Le take profit est calculé en multipliant la distance stop loss par le ratio take profit-stop loss, qui représente le rapport risque-récompense.
Comme vous pouvez le voir, plusieurs paramètres peuvent être réglés dans le code Python. Vous pouvez modifier la longueur ATR, le coefficient, le ratio take profit-stop loss et d'autres paramètres indicateurs pour voir comment ils affectent les performances de la stratégie sur la période de backtesting de trois ans. N'hésitez pas à télécharger le code et à expérimenter par vous-même.
Dans le code Python, j'ai fourni toutes les étapes nécessaires pour le chargement des données, le nettoyage, l'ajout d'indicateurs techniques (V-WAP, RSI, Bandes de Bollinger), le calcul du signal total et la visualisation des signaux sur le graphique des prix. Le code comprend également la partie de backtesting, où je calcule l'ATR, fixe les niveaux de stop loss et de take profit, et exécute les transactions.
Dans les résultats du backtesting, j'ai obtenu un rendement de 197% et une valeur nette maximale de 313 $. Partant d'un capital initial de 10 000 $, la stratégie a généré un profit de 19 700 $, atteignant un capital final de 29 700 $.
Voyons maintenant les mesures de performance clés de cette stratégie. Le taux de réussite, qui représente le pourcentage de transactions rentables, est d'environ 56 %. Cela signifie que sur toutes les transactions exécutées, 56% ont généré un profit. Le profit moyen par transaction est d'environ 33,10 $, tandis que la perte moyenne par transaction est d'environ 23,45 $.
Pour évaluer le risque associé à cette stratégie, nous pouvons examiner le maximum drawdown, qui mesure la plus forte baisse des actions du pic au creux pendant la période de backtesting. Le drawdown maximum pour cette stratégie est d'environ 9%, indiquant un niveau de risque modéré.
Il est important de noter que ces mesures de performance sont basées sur des données historiques et que les performances passées ne garantissent pas les résultats futurs. Les conditions du marché peuvent changer, et il est crucial de surveiller et d'adapter en permanence la stratégie à la dynamique actuelle du marché.
En résumé, cette stratégie de scalping utilisant le V-WAP, les bandes de Bollinger et le RSI a donné des résultats prometteurs pendant la période de backtesting, avec un rendement total de 300 % et une durée moyenne de transaction de 51 minutes. Cependant, il est essentiel de tester et de valider minutieusement toute stratégie avant de l'appliquer au trading réel, et de tenir compte de facteurs tels que les coûts de transaction, le glissement et les conditions du marché.
N'oubliez pas que le trading comporte des risques inhérents et qu'il est toujours recommandé de vous renseigner, de pratiquer la gestion des risques et d'envisager de demander des conseils professionnels avant de vous lancer dans le trading en direct. J'espère que vous trouverez cette stratégie perspicace et n'hésitez pas à télécharger le code Python fourni dans la description pour l'explorer davantage et la personnaliser à votre guise.
Si vous avez des questions ou avez besoin de plus de précisions, n'hésitez pas à demander. Bonne négociation !
Bougies Heiken Ashi en Python pour les systèmes de trading
Bougies Heiken Ashi en Python pour les systèmes de trading
Aujourd'hui, nous allons nous plonger dans le processus d'ajout de bougies Hiken Ashi en Python et explorer deux stratégies associées utilisant ces bougies. Les bougies Hiken Ashi sont dérivées des chandeliers normaux généralement utilisés dans le commerce. Chaque bougie Hiken Ashi est calculée à l'aide de formules spécifiques. Le cours de clôture Heiken Ashi est obtenu en faisant la moyenne du cours d'ouverture, du cours supérieur, du cours inférieur et du cours de clôture de la bougie actuelle. Le prix d'ouverture Heiken Ashi est obtenu à partir de la valeur de clôture de la bougie Heiken Ashi précédemment calculée. La valeur haute Heiken Ashi est le maximum parmi le haut du chandelier normal, l'ouverture de la bougie Heiken Ashi ou la valeur de clôture de la bougie Heiken Ashi. De même, la valeur basse Heiken Ashi est le minimum parmi le prix le plus bas de la bougie actuelle, le prix d'ouverture de la bougie Heiken Ashi actuelle ou le prix de clôture de la bougie Heiken Ashi actuelle.
En résumé, outre les valeurs hautes et basses, la bougie Heiken Ashi est composée de valeurs moyennes, ce qui donne au graphique Hiken Ashi une apparence plus lisse par rapport aux bougies normales, que certains commerçants peuvent trouver moins bruyantes. Cependant, il est important de noter que les bougies Heiken Ashi ne sont pas les valeurs réelles du marché et ne doivent pas être utilisées pour des stratégies de trading ou de backtesting basées sur les valeurs réelles du marché.
Le but de ce tutoriel n'est pas de présenter un système Heiken Ashi gagnant mais plutôt de montrer comment construire ces bougies en Python et développer une stratégie algorithmique pour backtester les résultats. Nous allons explorer deux stratégies en utilisant les bougies Heiken Ashi.
La première stratégie utilise deux moyennes mobiles : une moyenne mobile rapide et une moyenne mobile lente. La tendance est déterminée en fonction des positions relatives de ces moyennes mobiles. Si la moyenne mobile rapide est supérieure à la moyenne mobile lente, cela indique une tendance haussière, et si la moyenne mobile rapide est inférieure à la moyenne mobile lente, cela suggère une tendance baissière. La stratégie génère un signal de trading lorsque la bougie Heiken Ashi croise la moyenne mobile rapide dans le sens de la tendance. Par exemple, si la moyenne mobile rapide est inférieure à la moyenne mobile lente et qu'une bougie Heiken Ashi passe du haut vers le bas de la moyenne mobile rapide, cela déclenche un signal de vente. Inversement, dans une tendance haussière, une bougie verte Heiken Ashi traversant de bas en haut la moyenne mobile rapide déclenche un signal d'achat.
La deuxième variante de cette stratégie ajoute une condition supplémentaire. Il recherche une bougie doji suivie d'une bougie à queue courte dans le sens de la tendance. Par exemple, dans une tendance baissière, si une bougie doji est suivie d'une bougie à queue courte s'ouvrant au-dessus de la moyenne mobile rapide et se fermant en dessous, un signal de vente est déclenché. L'absence de longues mèches ou queues dans ces bougies indique une forte dynamique à la baisse ou à la hausse, selon la tendance analysée.
Les deux stratégies ont leurs propres défis, tels que la détermination du délai optimal, la définition des positions stop-loss appropriées et la conception de stratégies de sortie efficaces. Ces aspects peuvent avoir un impact significatif sur la rentabilité et le succès des stratégies.
Pour implémenter ces stratégies en Python, nous utiliserons Jupyter Notebook. Nous commençons par importer les bibliothèques nécessaires et télécharger les données boursières pour l'indice Russell 1000 de 2012 à 2022. Après avoir supprimé les colonnes inutiles, nous calculons les cours de clôture et d'ouverture de Hiken Ashi, ainsi que les valeurs hautes et basses de Heiken Ashi, sur la base de les formules décrites précédemment. Nous ajoutons ces colonnes à notre bloc de données.
Ensuite, nous pouvons ajouter des indicateurs techniques supplémentaires, tels que les moyennes mobiles et l'indice de force relative (RSI), en utilisant le package d'analyse technique pandas. Cela nous permet de visualiser les bougies Heiken Ashi et les indicateurs associés sur un graphique. Maintenant que nos signaux de trading et nos niveaux de stop loss sont définis, nous pouvons poursuivre le processus de backtesting. L'étape suivante consiste à calculer les rendements de chaque transaction en fonction des points d'entrée et de sortie.
Pour calculer les rendements, nous devons d'abord déterminer les prix d'entrée et de sortie pour chaque transaction. Pour une position acheteuse, le prix d'entrée est le cours de clôture de la bougie lorsque le signal d'achat est déclenché. Le prix de sortie est le prix le plus bas entre la bougie actuelle et les deux bougies précédentes, tel que déterminé par le niveau de stop loss.
De même, pour une position vendeuse, le prix d'entrée est le prix de clôture de la bougie lorsque le signal de vente est déclenché, et le prix de sortie est le prix le plus élevé entre la bougie actuelle et les deux bougies précédentes.
Une fois que nous avons les prix d'entrée et de sortie, nous pouvons calculer les rendements en utilisant la formule :
Rendement = (Prix de sortie - Prix d'entrée) / Prix d'entrée
Nous stockerons les retours dans une liste appelée "trade_returns" pour une analyse plus approfondie. Ensuite, nous devons calculer les rendements cumulés pour suivre la performance globale de la stratégie au fil du temps. Cela se fait en multipliant le rendement de chaque transaction avec le rendement cumulatif précédent et en ajoutant 1. La formule de calcul du rendement cumulatif est :
Rendement cumulé = Rendement cumulé * (1 + Rendement)
Nous stockerons les rendements cumulés dans une liste appelée "cumulative_returns". Enfin, nous pouvons tracer les rendements cumulés pour visualiser les performances de la stratégie sur la période de backtesting.
Après avoir effectué le processus de backtesting et calculé les retours commerciaux et les retours cumulés, nous pouvons analyser les résultats pour évaluer les performances de la stratégie de trading. Une mesure importante à prendre en compte est la rentabilité globale de la stratégie. Vous pouvez calculer le rendement total en soustrayant 1 de la valeur finale du rendement cumulé. Par exemple, si le rendement cumulé est de 1,2, cela signifie un rendement de 20 % sur l'investissement initial.
De plus, vous pouvez calculer d'autres mesures de performance telles que le rendement moyen par transaction, le nombre de transactions gagnantes, le nombre de transactions perdantes, le pourcentage de transactions gagnantes et le drawdown maximum. Le rendement moyen par transaction peut être obtenu en divisant la somme de tous les retours commerciaux par le nombre total de transactions. Cette métrique donne une indication de la rentabilité moyenne de chaque transaction.
Pour calculer le nombre de trades gagnants et perdants, vous pouvez compter le nombre de retours commerciaux supérieurs ou égaux à 0 (trades gagnantes) et le nombre de retours commerciaux inférieurs à 0 (trades perdantes). Le pourcentage de transactions gagnantes peut être calculé en divisant le nombre de transactions gagnantes par le nombre total de transactions et en multipliant par 100.
La baisse maximale mesure la plus forte baisse du pic au creux des rendements cumulés au cours de la période de backtesting. Il donne un aperçu du risque potentiel et de la volatilité à la baisse de la stratégie. En analysant ces mesures de performance, vous pouvez obtenir des informations précieuses sur l'efficacité de la stratégie de trading et prendre des décisions éclairées concernant son utilisation future ou ses modifications potentielles.
Rappelez-vous que le backtesting est une simulation historique et ne garantit pas les résultats futurs. Il est essentiel de prendre en compte divers facteurs et de mener une analyse approfondie avant d'appliquer une stratégie de trading dans des scénarios réels.
Révolutionnez votre stratégie de trading d'actions avec le trading automatisé en Python
Révolutionnez votre stratégie de trading d'actions avec le trading automatisé en Python
Aujourd'hui, nous allons explorer une stratégie de trading spécialement conçue pour les positions longues en utilisant l'indice de force relative (RSI) et l'indice directionnel moyen (ADX). Malgré sa simplicité, cette stratégie a montré des résultats prometteurs. L'idée a été proposée par quelqu'un dans la section des commentaires, et les paramètres semblaient à la fois familiers et convaincants. J'ai donc décidé de le mettre à l'épreuve et de partager les résultats, ce qui s'est avéré assez satisfaisant.
La courbe d'équité générée par le backtest a montré une augmentation presque constante tout au long de la période de test, atteignant un rendement maximal de 360. Si vous êtes nouveau sur cette chaîne, vous pouvez trouver le code disponible en téléchargement dans la description. N'oubliez pas de nous soutenir en vous abonnant et en laissant un commentaire. Nous apprécions d'entendre de nouvelles idées, tout comme celle dont parle cette vidéo.
Maintenant, plongeons dans la stratégie elle-même. Nous utiliserons la période quotidienne et entrerons dans une position longue lorsque deux conditions sont remplies : premièrement, lorsque le RSI sur deux jours est inférieur à 25, indiquant une condition de survente, et deuxièmement, lorsque l'ADX (14) est supérieur à 20, suggérant un marché en vogue. Nous quittons la position longue lorsque le RSI passe au-dessus de 75.
Pour éviter les faux signaux et empêcher les trades de rester ouverts trop longtemps lorsque le RSI se débat sous le seuil de 75, j'ai ajouté deux conditions supplémentaires. La première condition consiste à vérifier si les bougies se négocient au-dessus d'une simple courbe moyenne mobile, indiquant une tendance haussière. Ce n'est que dans ce cas que nous sommes autorisés à prendre des positions longues. La deuxième condition consiste à définir une valeur stop-loss, qui est considérée comme le prix le plus bas parmi les deux dernières bougies moins un certain pourcentage. Dans ce backtest, j'ai fixé le pourcentage de stop-loss à deux pour cent. Vous pouvez ajuster cette valeur en fonction de vos préférences ou lors de tests avec différentes données.
Pour implémenter ces conditions en Python, j'ai écrit le code nécessaire et effectué un backtest. Dans le code, nous chargeons les données, les nettoyons en supprimant les jours sans mouvement et imprimons la trame de données pour vérifier son contenu. Ensuite, nous calculons la moyenne mobile exponentielle (EMA) avec une longueur de 200 pour la détection de tendance, ainsi que le RSI avec une longueur de 2 et l'ADX avec une longueur de 14. Nous nettoyons à nouveau la trame de données et imprimons une tranche à vérifiez les colonnes que nous allons utiliser.
Ensuite, j'ai implémenté une fonction appelée add_ema_signal, qui détermine la tendance en fonction du nombre de bougies échangées au-dessus ou en dessous de la courbe de moyenne mobile. J'ai mis ce nombre à six, car cela a bien fonctionné dans les vidéos précédentes. Ensuite, j'ai créé une fonction appelée total_signal, où nous calculons le signal pour entrer une position longue. Nous parcourons chaque ligne de la trame de données et vérifions si le RSI est inférieur ou égal à 25, l'ADX est supérieur à 20 et le signal EMA est égal à deux (indiquant une tendance à la hausse). Lorsque ces conditions sont remplies, nous stockons une valeur de signal de deux dans la trame de données.
En imprimant la trame de données, nous pouvons visualiser les signaux sur le graphique à barres. Les points violets représentent les signaux d'achat. Bien que je n'entre pas dans les détails de chaque ligne du code, vous pouvez trouver des explications complètes dans les vidéos précédentes sur cette chaîne, en particulier dans la playlist Python for Algorithmic Trading.
Passant à la partie backtesting, j'ai utilisé le package backtesting.py. Sans entrer dans les détails, j'ai fixé le pourcentage de stop-loss à 2 % et inclus des conditions supplémentaires pour fermer les transactions ouvertes depuis un certain nombre de jours ou si le RSI dépasse 75. Il convient de noter que le code contient toujours des lignes liées aux positions courtes, même si cette stratégie se concentre uniquement sur les positions longues. Ces lignes peuvent être modifiées ou supprimées si vous décidez d'étendre la stratégie pour inclure des positions courtes.
Si le signal est égal à deux et qu'il n'y a pas de transactions ouvertes, nous entrons sur le marché avec une position longue en utilisant la valeur stop-loss. La taille de la transaction est fixée à 99 % de l'équité actuelle. Le backtest commence avec 1 000 $ en espèces et un effet de levier de 1:5 (marge de 1/5). Aucune commission n'a été considérée à des fins de comparaison avec les stratégies précédentes.
Les résultats du backtest indiquent un rendement de 200 $ et un pic de capital de 3 595 $. Le taux de réussite est de 73 % et un total de 102 transactions ont été exécutées au cours de la période de test de dix ans. Cela se traduit par une moyenne de 10 transactions par an sur la période quotidienne. Le tracé de la courbe des fonds propres montre une augmentation constante de la valeur, avec des baisses mineures au cours de certaines périodes.
Il est important de noter que je n'ai modifié aucun des paramètres suggérés dans la section des commentaires. La longueur RSI reste à 2, la longueur ADX à 14 et la longueur EMA à 200. Cependant, vous pouvez toujours affiner ces valeurs et expérimenter avec différents stocks ou marchés pour potentiellement améliorer les résultats et trouver une configuration plus satisfaisante.
Cette stratégie offre une approche simple mais efficace pour les positions longues. Je vous encourage à télécharger le code à partir du lien dans la description et à l'expérimenter. Le code est relativement court et adapté aux débutants. Amusez-vous à explorer cette stratégie et restez à l'écoute pour notre prochaine vidéo. Négociez en toute sécurité et à la prochaine !
Stratégie automatisée des bandes de Bollinger Rayner Teo optimisée pour un rendement élevé
Stratégie automatisée des bandes de Bollinger Rayner Teo optimisée pour un rendement élevé
Bonjour à tous! Dans cette vidéo, nous sommes ravis de présenter une approche d'optimisation extrême qui démontre les effets de certains paramètres sur notre système de trading. Nous pensons qu'il s'agit de la meilleure optimisation que nous ayons réalisée jusqu'à présent. Comme vous pouvez le voir, nous avons réalisé un rendement impressionnant d'environ trois mille pour cent, avec une courbe de capital en augmentation constante. Les détails des transactions sont également affichés sur le graphique, et nous les expliquerons dans cette vidéo. Nous avons tracé toutes les transactions sur les graphiques de prix et nous les parcourrons également. Alors restez à l'écoute!
Avant de poursuivre, nous tenons à souligner que la façon dont nous avons obtenu un rendement de 30 000 % avec cette stratégie n'est pas l'approche la plus sûre pour le trading réel. Nous ne recommandons pas d'utiliser ces paramètres dans un scénario de trading réel. Cependant, nous pensons que la stratégie elle-même est solide et a un grand potentiel. Si vous êtes nouveau ici, la stratégie s'appuie sur la stratégie Rhino Theo Bollinger Band pour les marchés en tendance. Nous l'avons déjà testé dans une vidéo avec d'excellents résultats et un risque minimal. Si vous ne l'avez pas vu, vous pouvez trouver le lien vers la première vidéo de backtest dans la description, ainsi que le code Python si nécessaire.
Dans cette vidéo, nous tenterons d'appliquer des paramètres extrêmes pour générer des rendements relativement importants. Nous faisons cela principalement pour le plaisir de tester et de jouer avec le code Python. De plus, nous espérons obtenir des informations précieuses au cours du processus et éventuellement découvrir une configuration qui pourrait conduire à des rendements élevés réalistes.
Maintenant, sautons dans le code et voyons comment tout se déroule. La première cellule de notre fichier de bloc-notes Jupyter est dédiée au chargement des données. Nous utilisons le module "yfinance", qui est un moyen pratique de charger des données historiques quotidiennes à partir de bases de données. Avec une seule ligne de code, nous pouvons charger les données d'une action spécifique, comme l'indice Russell 1000 entre 2011 et 2021, par exemple. Nous nettoyons les données en supprimant les jours sans mouvement de prix, tels que les week-ends et les jours fériés. Ensuite, nous réinitialisons l'index et imprimons l'en-tête de la trame de données pour vérifier que les données sont correctement formatées.
Ensuite, nous utilisons le module "pandas_ta" (analyse technique des pandas) pour calculer divers indicateurs techniques. Dans ce cas, nous calculons deux moyennes mobiles : la moyenne mobile exponentielle sur 200 jours (EMA) et la moyenne mobile simple sur 150 jours (SMA). En comparant la moyenne mobile rapide (EMA2) avec la moyenne mobile plus lente (EMA), nous pouvons déterminer si le marché est dans une tendance haussière ou baissière. Nous calculons également l'indice de force relative (RSI) sur 12 jours en utilisant le même module. De plus, nous modifions les paramètres des bandes de Bollinger en fixant la longueur à 14 (au lieu de 20) et l'écart type à 2,0 (au lieu de 2,5). Ces modifications visent à rendre le système moins sélectif, ce qui se traduit par des signaux de trading plus fréquents et un plus grand nombre de trades lors du backtest.
Au lieu d'utiliser le signal RDMI ou le signal de moyenne mobile exponentielle discuté dans les vidéos précédentes, nous utilisons les deux signaux EMA. Cela signifie que nous considérons deux moyennes mobiles, une plus rapide et une plus lente. Si la moyenne mobile rapide est supérieure à la moyenne mobile lente, nous identifions une tendance haussière. Inversement, si la moyenne mobile rapide est inférieure à la moyenne mobile lente, nous reconnaissons une tendance baissière. Nous ajoutons ce signal, appelé signal EMA, en tant que nouvelle colonne dans notre bloc de données.
La fonction de génération des signaux de trading est similaire aux vidéos précédentes. Nous vérifions si le cours de clôture est inférieur à la bande de Bollinger inférieure et si le signal EMA indique une tendance haussière (égale à 2), ce qui déclenche un signal d'achat.
Dans cette vidéo, le présentateur démontre une approche d'optimisation extrême pour mettre en valeur les effets de divers paramètres sur un système de trading. L'objectif est d'obtenir des rendements élevés en appliquant des paramètres extrêmes, bien qu'il soit important de noter que ces paramètres ne sont pas recommandés pour le trading réel en raison des risques associés. Cependant, le présentateur estime que la stratégie elle-même a un grand potentiel si elle est utilisée avec prudence.
La stratégie employée est basée sur la stratégie Rhino Theo Bollinger Band pour les marchés en tendance. Le présentateur fait référence à une vidéo précédente où ils ont testé cette stratégie avec d'excellents résultats et un risque relativement faible. La première étape du processus d'optimisation consiste à charger les données nécessaires à l'aide du module Y Finance. Le présentateur charge les données de l'indice Russell 1000 de 2011 à 2021, couvrant une période de 10 ans.
Une fois les données chargées, le présentateur les nettoie en supprimant les jours sans mouvement de prix, tels que les week-ends et les jours fériés. Les données sont ensuite préparées en calculant des indicateurs techniques à l'aide du module pandas_ta (analyse technique des pandas). Deux moyennes mobiles sont calculées : une moyenne mobile exponentielle sur 200 jours (EMA) et une moyenne mobile simple sur 150 jours (SMA). Ces moyennes mobiles aident à déterminer la tendance : si l'EMA la plus rapide est supérieure à la SMA la plus lente, cela indique une tendance à la hausse, et vice versa.
Le présentateur calcule également l'indice de force relative (RSI) sur 12 jours à l'aide du module pandas_ta. De plus, les paramètres de longueur et d'écart type des bandes de Bollinger sont modifiés. Au lieu d'utiliser une longueur de 20 et un écart type de 2,5 comme dans les vidéos précédentes, le présentateur utilise une longueur de 14 et un écart type de 2,0. Cette modification vise à rendre le système moins sélectif, ce qui se traduit par des signaux de trading plus fréquents.
Au lieu d'utiliser les signaux RSI ou EMA comme dans les vidéos précédentes, le présentateur introduit un nouveau signal appelé signal EMA. Il est basé sur la relation entre les deux moyennes mobiles : si l'EMA la plus rapide est supérieure à la SMA la plus lente, le signal EMA est réglé sur 2, indiquant une tendance haussière. Si l'EMA le plus rapide est inférieur au SMA le plus lent, le signal EMA est défini sur 1, indiquant une tendance à la baisse.
La stratégie d'entrée est similaire aux vidéos précédentes. Le présentateur vérifie si le cours de clôture est inférieur à la bande de Bollinger inférieure et si le signal EMA indique une tendance haussière (signal EMA = 2). Dans ce cas, un signal d'achat est généré au cours de clôture de la bougie actuelle. Si le cours de clôture est supérieur à la bande de Bollinger supérieure et que le signal EMA indique une tendance baissière (signal EMA = 1), un signal de vente est généré au cours de clôture de la bougie actuelle.
Pour sortir des métiers, le présentateur introduit des critères supplémentaires. Une transaction est fermée si elle est ouverte depuis plus de 10 jours, car les transactions à plus long terme ne sont pas souhaitées. De plus, une transaction est fermée s'il s'agit d'une transaction longue et que le RSI dépasse 75, ou s'il s'agit d'une transaction courte et que le RSI passe en dessous de 25. Si la condition RSI seule n'est pas suffisante pour déclencher une sortie, un stop-loss mécanisme est mis en place.
Le stop-loss est calculé comme la valeur minimale entre le bas actuel de la bougie et le bas de la bougie précédente, multipliée par (1 - un certain pourcentage). Le pourcentage est déterminé par l'utilisateur et représente la perte admissible avant de déclencher le stop-loss. Par exemple, un pourcentage de 2 signifie que le stop-loss est fixé à 2 % en dessous du point le plus bas entre les deux dernières bougies. De plus, un niveau de prise de profit est fixé à deux fois la distance du stop-loss.
Le présentateur évalue la stratégie en exécutant un backtest en utilisant les paramètres optimisés. Ils tracent les transactions sur le graphique des prix et fournissent des explications détaillées pour chaque transaction. Les résultats du backtest montrent un rendement impressionnant d'environ trois mille pour cent, avec une courbe d'équité en constante augmentation.
Enfin, le présentateur souligne que si cette approche d'optimisation extrême donne des rendements élevés dans le backtest, elle n'est pas recommandée pour le trading réel en raison des risques associés. Le but de cet exercice est d'explorer les effets de différents paramètres et de mieux comprendre le comportement de la stratégie.
Optimiser la stratégie des bandes de Bollinger de Rayner Teo pour de meilleurs résultats
Optimiser la stratégie des bandes de Bollinger de Rayner Teo pour de meilleurs résultats
Aujourd'hui, nous nous plongeons dans l'optimisation de la stratégie du Reiner Theo Bollinger Band qui a déjà été testée dans une vidéo. Si vous n'avez pas regardé la vidéo précédente, il est recommandé de le faire avant de passer à cette partie d'optimisation. La vidéo fournit un lien dans la description pour un accès facile. De plus, pour ceux qui s'intéressent à l'aspect codage, le code Python est également disponible en téléchargement via un lien dans la description.
La stratégie en cours d'optimisation a montré un potentiel prometteur avec un taux de réussite de 91 % et une courbe d'équité en augmentation constante sur un backtest de 10 ans. Cependant, l'une des motivations derrière cette optimisation est le faible nombre de trades observés lors du backtest. Au cours de 10 ans, seulement 23 transactions ont été exécutées, soit en moyenne environ deux transactions par an. Pour y remédier, deux solutions potentielles sont présentées. La première consiste à exécuter le programme sur plusieurs actions simultanément, en visant environ 20 transactions par an. Cependant, cette approche soulève des inquiétudes concernant les marchés corrélés et d'autres questions connexes. La deuxième solution consiste à réduire le délai pour augmenter le nombre de transactions.
La stratégie intègre plusieurs indicateurs techniques pour générer des signaux d'entrée et de sortie. Il utilise un indicateur de moyenne mobile (appelé EMA, moyenne mobile exponentielle, dans le code) et des bandes de Bollinger pour les signaux d'entrée, tandis que l'indice de force relative (RSI) est utilisé pour les signaux de sortie. La vidéo fournit des détails supplémentaires sur le processus d'exécution, qui ne sont pas réitérés ici.
Passant au programme lui-même, les données sont chargées dans la première cellule, en se concentrant sur la période de quatre heures pour l'analyse. Deux stocks différents sont utilisés pour l'optimisation. Les données sont nettoyées en supprimant les chandeliers sans mouvement, où les prix hauts et bas sont égaux. Des indicateurs techniques tels que la moyenne mobile (exponentielle ou simple) et le RSI sont ajoutés, et leurs longueurs peuvent être modifiées. Dans ce cas particulier, la longueur moyenne mobile est fixée à 900 bougies et la longueur RSI est fixée à 12. Pour les graphiques journaliers, une EMA de 200 jours et un RSI de 2 jours sont utilisés pour les signaux de sortie. Les paramètres des bandes de Bollinger restent les mêmes que les graphiques journaliers, avec une longueur de 20 et un écart type de 2,5.
Le programme comprend également une vérification pour savoir si les bougies se négocient au-dessus ou en dessous de la moyenne mobile. Dans ce cas, le nombre est fixé à six, représentant six bougies consécutives au-dessus ou en dessous de la courbe de moyenne mobile. Puisque nous travaillons avec un laps de temps de quatre heures, six fois quatre égalent 24 heures. Par conséquent, si le prix s'est négocié au-dessus ou au-dessous de la moyenne mobile pendant 24 heures d'affilée, une tendance haussière ou baissière peut être conclue. Le paramètre de la position en pourcentage de l'ordre sur le marché est défini sur zéro pour cent pour augmenter le nombre de transactions exécutées.
La partie visualisation du programme affiche les bandes de Bollinger, la courbe moyenne mobile et la direction de la tendance, qui est déterminée comme une tendance haussière. Les signaux d'entrée sont représentés par des points violets sur le graphique, indiquant des signaux d'achat. La vidéo présente certains de ces points d'entrée, soulignant leur efficacité sur les marchés à la mode. En sélectionnant différentes positions aléatoires dans le graphique, divers points d'entrée peuvent être examinés, permettant une analyse de leur viabilité.
Le présentateur souligne que les paramètres de la bande de Bollinger liés aux signaux d'entrée fonctionnent bien, il n'y a donc pas besoin de modification à ce stade. L'objectif d'optimisation réside dans d'autres parties de l'algorithme. Bien que la vidéo n'entre pas dans tous les détails du processus de backtesting, certains paramètres méritent d'être notés.
Dans ce processus d'optimisation, le seuil RSI de sortie est fixé à 45. Cette valeur de seuil inférieure vise à capturer des transactions plus courtes et plus fréquentes en permettant des sorties plus rapides. Le présentateur mentionne que le choix du seuil RSI est subjectif et peut être ajusté en fonction des préférences individuelles et de la tolérance au risque.
Pour évaluer les performances de la stratégie, le programme calcule diverses mesures, notamment le nombre total de transactions, le taux de gain, la durée moyenne des transactions et la courbe d'équité. Ces mesures donnent un aperçu de l'efficacité et de la rentabilité de la stratégie.
Le processus d'optimisation consiste à ajuster les paramètres de la stratégie pour trouver la combinaison optimale qui maximise le nombre de transactions tout en maintenant un taux de gain élevé. Les paramètres optimisés incluent la longueur moyenne mobile, la longueur RSI et le seuil de sortie RSI.
La vidéo montre comment utiliser une boucle imbriquée pour parcourir différentes combinaisons de paramètres et évaluer les performances de la stratégie pour chaque combinaison. Le programme garde une trace de la combinaison de paramètres la plus performante et affiche les métriques et la courbe d'équité correspondantes.
En exécutant le processus d'optimisation, le présentateur constate que l'utilisation d'une longueur moyenne mobile de 700, d'une longueur RSI de 4 et d'un seuil de sortie RSI de 45 donne les meilleurs résultats. Ces valeurs de paramètres augmentent le nombre de transactions tout en maintenant un taux de gain élevé. La vidéo présente la courbe d'équité générée par la stratégie optimisée, qui présente une trajectoire ascendante plus fluide avec des transactions plus fréquentes par rapport à la version originale.
Le présentateur conclut en soulignant l'importance de l'optimisation dans l'amélioration des performances des stratégies de trading. Grâce à des tests systématiques et à l'ajustement des paramètres, il est possible d'améliorer la rentabilité et l'efficacité d'une stratégie. Cependant, il est crucial de faire preuve de prudence et de tenir compte des limites et des risques associés à l'optimisation, tels que le surajustement aux données historiques.
Il est important de noter que les détails fournis ici sont un résumé de la vidéo, et pour une compréhension plus complète, il est recommandé de regarder la vidéo originale, qui comprend des démonstrations visuelles et des explications supplémentaires sur le processus d'optimisation.