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
Dernières fonctionnalités de backtesting d'IBridgePy Par le Dr Hui Liu - 9 août 2019
Dernières fonctionnalités de backtesting d'IBridgePy Par le Dr Hui Liu - 9 août 2019
Le Dr Hui Liu, le créateur d'iBridgePy, fournit un aperçu détaillé des dernières caractéristiques et fonctionnalités de backtesting offertes par iBridgePy. Il commence par discuter des fonctions fondamentales d'iBridgePy et explique les étapes fondamentales impliquées dans la construction de stratégies de trading algorithmique.
Le Dr Liu se concentre sur le système de backtesting d'iBridgePy et présente deux exemples de codes pour démontrer son utilisation. Le premier exemple de code utilise des données historiques d'Interactive Brokers, tandis que le deuxième exemple de code illustre comment les utilisateurs peuvent améliorer leur expérience de backtesting en fournissant leurs propres données historiques. Il souligne l'importance d'analyser les performances du backtesting pour identifier les domaines d'améliorations futures.
Au cours de la présentation, le Dr Liu présente la fonction Hybrid Pie, qui permet aux utilisateurs de négocier divers titres ou matières premières proposés par des courtiers conseillers et de gérer plusieurs comptes simultanément. Il met en évidence les avantages pour les conseillers en investissement, tels que l'exécution de plusieurs stratégies de trading et l'exécution d'algorithmes de conseil lors des backtestings.
Pour se connecter avec les courtiers et récupérer des données en temps réel, le Dr Liu montre comment basculer entre différents fichiers dans iBridgePy, tels que "Exemple Afficher les positions", "Exemple de prix en temps réel" et "Obtenir des données historiques". Les utilisateurs peuvent personnaliser les codes de compte, les noms de fichiers et accéder aux soldes des comptes et aux commandes en attente. La fonction d'initialisation dans iBridgePy déclare des variables globales, et les utilisateurs peuvent utiliser des boîtes de code et demander l'aide de l'équipe iBridgePy en signalant les versions de pack hybride. Le Dr Liu fournit également des conseils sur la fermeture d'IBGateway et l'ouverture de TWS Trade Workstation.
L'orateur couvre les fonctions clés d'iBridgePy, en commençant par la fonction d'initialisation qui s'exécute au début du code. La fonction de gestion des données, qui prend les décisions de trading, peut être programmée pour s'exécuter toutes les minutes ou à un intervalle configurable. Les utilisateurs peuvent utiliser la fonction de planification pour la planification d'événements au lieu de gérer les données. Les prix en temps réel de titres spécifiques sont accessibles à l'aide de la fonction show_real_time_price, tandis que les données historiques peuvent être récupérées avec la fonction request_historical_data. Pour acheter ou vendre des titres, la fonction place_order est utilisée. Le Dr Liu inclut une démonstration en direct de la fonction de filtrage des actions, présentant ses fonctionnalités.
Le Dr Liu discute de la fonction de filtrage des actions dans iBridgePy, qui permet aux utilisateurs de rechercher des actions en fonction du sentiment et du prix des médias sociaux. Les utilisateurs peuvent définir leurs paramètres de recherche, tels que le type d'instrument, le code d'emplacement et le code de balayage. Un exemple est donné en utilisant social sentiment net comme code de balayage pour une recherche des principales actions américaines avec des prix supérieurs à 100 $. L'orateur fait la démonstration de l'analyseur d'actions en action, en présentant une liste des actions les plus actives et en soulignant comment le sentiment des médias sociaux peut donner un aperçu de la popularité des actions. Il conclut en soulignant l'importance de sélectionner des contrats et de définir des directives de gestion des risques lors de l'élaboration de stratégies de trading algorithmique.
Les étapes de base pour créer des stratégies de trading algorithmique à l'aide d'iBridgePy sont expliquées par le Dr Liu. Il discute de la sélection d'une action, de la détermination de l'intervalle de temps pour prendre des décisions commerciales, du calcul des indicateurs techniques à l'aide de données historiques, de la sélection des types d'ordres et de la gestion des exceptions. À titre d'exemple, il présente une stratégie de réversion simple basée sur la saisie manuelle du contrat SPY et la prise de décisions de négociation en utilisant les cours de clôture quotidiens. L'exemple de code comprend des fonctions planifiées et une fonction quotidienne pour prendre des décisions commerciales.
Le Dr Liu se penche sur les fonctionnalités de backtesting d'iBridgePy, en mettant l'accent sur la capacité de récupérer des données historiques et d'utiliser une base de données pandas pour analyser les cours de clôture des titres. Il présente un exemple de code pour une stratégie de tendance utilisant un croisement de moyenne mobile et explique les principes fondamentaux du backtesting. Le backtesting implique la mise en œuvre d'une stratégie de pratique basée sur des données historiques pour éclairer les décisions de trading et tester ses performances par rapport aux données historiques. Il met également en évidence l'utilisation alternative de la fonction de gestion des données pour contrôler le moment de l'exécution de la fonction, offrant une option à la fonction planifiée en fonction des heures d'ouverture et de fermeture du marché américain.
Le Dr Liu donne un aperçu du système de backtesting iBridgePy et du processus impliqué. Il explique qu'en mode backtesting utilisant iBridgePy, la capsule temporelle ou les chandeliers utilisés sont très similaires au trading en direct. Chaque chandelier contient des informations telles que l'heure de début, le prix d'ouverture, le prix haut, le prix bas, le prix de clôture et le volume. Cependant, la capsule temporelle n'inclut pas le prix vendeur ou acheteur, car l'écart ne peut pas être modélisé avec précision dans le backtesting.
Le Dr Liu mentionne que le mode de backtesting prend en charge les ordres au marché, les ordres limités et les ordres stop, mais les ordres de suivi ne sont actuellement pas pris en charge car ils peuvent ne pas fournir de résultats significatifs. Les détails de la transaction pendant le backtesting sont stockés dans le dossier de sortie, avec le nom du fichier contenant l'heure à laquelle le backtesting a été lancé.
Ensuite, le Dr Liu explique le processus de base de mise en place d'une période de backtesting dans iBridgePy. Les utilisateurs peuvent définir la période de récupération des données historiques pour des actions spécifiques et spécifier la fréquence des points temporels sur une minute, une heure ou un jour. Les données historiques des contrats plus anciens peuvent être récupérées à l'aide de tickers comme SPY ou AAPL. Le code doit être exécuté spécifiquement au dernier moment ponctuel, en veillant à ce que les données dans le laps de temps souhaité soient disponibles. Par défaut, l'argent commence à partir de 10 000 $. Le Dr Liu poursuit en démontrant comment afficher le solde et la position du compte à l'aide d'une démo.
Dans sa présentation, le Dr Liu montre comment utiliser les fonctionnalités de backtesting d'iBridgePy pour simuler un code de démonstration pour la réversion des prix à la clôture. Il montre comment utiliser les prix en temps réel basés sur des données historiques et comment exécuter la cible pour observer ses performances. Il montre également comment l'intervalle peut être modifié pour exécuter le code toutes les heures au lieu de toutes les minutes. Dans l'ensemble, la vidéo fournit une démonstration utile de la façon d'utiliser les fonctionnalités de backtesting d'iBridgePy pour les stratégies d'investissement.
Le Dr Liu poursuit en discutant de l'importance d'apporter des améliorations au processus de backtesting à l'aide d'iBridgePy. Il suggère d'éviter d'exécuter le même code à plusieurs reprises pour récupérer exactement les mêmes données, car cela gaspille des ressources et enfreint les règles d'espacement IB. Au lieu de cela, il recommande de récupérer les données historiques à l'aide d'un plan défini avec le même nom de fichier, ce qui réduit la quantité de code à exécuter. Une autre suggestion consiste à utiliser les données historiques fournies par l'utilisateur au lieu de récupérer les données d'Interactive Brokers, ce qui peut rendre le processus de backtesting plus efficace.
En outre, le Dr Liu introduit la fonctionnalité de fourniture de données locales pour le backtesting dans iBridgePy. Les utilisateurs peuvent fournir un fichier CSV avec toutes les colonnes nécessaires, telles que le prix d'ouverture, le prix élevé, le prix de clôture, le volume, etc. iBridgePy ingérera les données du fichier local et simulera le backtesting en conséquence. Si le volume n'est pas disponible, les utilisateurs peuvent entrer '-1' comme valeur. Cette fonctionnalité garantit des résultats précis pour les stratégies personnelles des utilisateurs et améliore l'efficacité des simulations.
Le Dr Liu met également en évidence les fonctionnalités de backtesting supplémentaires dans iBridgePy, telles que les générateurs de temps personnalisés et la possibilité d'utiliser des nombres aléatoires pour tester le code. Il montre comment créer une série chronologique à l'aide d'un package Python et d'une liste personnalisée et comment tester le code en utilisant des nombres aléatoires au lieu de prix en temps réel. Il discute en outre de l'importance de l'analyse des performances et introduit l'utilisation d'un fichier journal pour suivre et analyser les performances du backtesting. Ces nouvelles fonctionnalités offrent des moyens plus rapides et plus efficaces de tester et d'analyser le code dans iBridgePy.
En outre, le Dr Liu discute d'autres fonctionnalités du backtesting d'iBridgePy, y compris le journal des soldes, qui fournit plus de détails sur la valeur du portefeuille et la trésorerie, ainsi que le journal des transactions. Il montre comment visualiser et analyser les résultats de backtesting à l'aide de métriques telles que le ratio de Sharpe et le package matplotlib pour créer des graphiques. Le Dr Liu note qu'une fois que les utilisateurs sont satisfaits de leurs résultats sur un compte papier, ils peuvent passer à un compte réel pour du trading réel.
Au cours de la session de questions-réponses du webinaire, le Dr Liu répond à diverses questions des participants concernant les dernières fonctionnalités d'iBridgePy. Une question concerne la gestion des comptes de placement d'autres personnes avec iBridgePy. Le Dr Liu explique que les particuliers peuvent devenir un conseiller en valeurs et créer un compte de gestion avec Interactive Brokers pour gérer les comptes de placement d'autres personnes à l'aide d'iBridgePy.
Une autre question soulevée concerne le téléchargement d'un exemple de code pour une stratégie particulière. Le Dr Liu suggère aux participants d'obtenir l'exemple de code nécessaire sur le site Web iBridgePy ou en contactant le forum de la communauté iBridgePy. De plus, il conseille les participants sur la façon d'obtenir des prix d'options historiques et des données grecques pour le backtesting. Le Dr Liu mentionne que les particuliers peuvent obtenir des prix d'options historiques auprès d'Interactive Brokers et écrire du code Python pour utiliser les données grecques s'ils y ont accès.
Un participant demande si iBridgePy prend en charge une API pour récupérer une liste de surveillance. Le Dr Liu précise qu'actuellement, iBridgePy ne fournit pas d'API spécifique pour obtenir une liste de surveillance. Cependant, il suggère aux utilisateurs de créer manuellement une liste de surveillance sur la plateforme d'Interactive Brokers.
En conclusion, le Dr Liu conclut le webinaire en encourageant les participants à poster toute autre question qu'ils ont sur le forum de la communauté iBridgePy ou à lui envoyer un e-mail. Il assure aux participants qu'un enregistrement de la présentation sera disponible sur demande. Le Dr Liu rappelle également aux utilisateurs de visiter le site Web iBridgePy pour télécharger le logiciel et accéder à la documentation de l'API. Il exprime sa gratitude aux participants pour leur présence et leur attention tout au long du webinaire.
Trading programmatique sur les marchés indiens avec Python | API Kite Connect | Algo Trading Zerodha
Trading programmatique sur les marchés indiens avec Python | API Kite Connect | Algo Trading Zerodha
L'orateur présente Kite Connect, une plate-forme qui permet aux utilisateurs d'accéder à leurs comptes de trading par programmation à l'aide de Python. Ils expliquent que la motivation derrière Kite Connect était de relever le défi d'augmenter la participation au marché en Inde. Ils ont introduit le concept de courtage en tant que service, permettant aux startups d'utiliser les API de Kite Connect pour créer des expériences de trading personnalisées pour leurs clients. Ceci, à son tour, vise à attirer les prochains 10 à 20 millions d'Indiens à investir sur les marchés. L'orateur souligne également Zerodha en tant que société de courtage de premier plan en Inde, avec plus de 175 000 clients et une contribution significative au chiffre d'affaires du marché boursier indien.
L'orateur donne un aperçu des origines de Kite Connect, qui a été développé pour fournir une plateforme de trading en ligne simple et abordable à des milliers de clients en Inde. Reconnaissant le grand nombre d'ingénieurs en logiciel en Inde qui manquent souvent d'opportunités pour utiliser leurs compétences, Kite Connect a mis ses API à la disposition des ingénieurs en logiciel pour tester les stratégies et gérer les postes. Bien que la plate-forme facture des frais pour l'utilisation de l'API, elle offre également un code de réduction pour les nouveaux développeurs qui s'inscrivent. L'orateur présente ensuite un collègue qui démontre à quel point il est facile de créer une plateforme de trading personnalisée à l'aide de Kite Connect. La démonstration se concentre sur la passation d'ordres, la récupération des positions détenues et, éventuellement, le développement d'une stratégie de trading.
L'orateur propose un guide étape par étape sur l'obtention d'une clé API pour l'API Kite Connect, qui est cruciale pour le commerce programmatique sur le marché indien en utilisant Python. Ils expliquent également le concept d'URL de publication, qui est utilisée pour informer les utilisateurs de l'état de leurs commandes et des confirmations commerciales. De plus, l'orateur souligne l'importance d'installer la bibliothèque Kite Connect Python, qui simplifie l'utilisation de l'API avec seulement quelques lignes de code. Ils discutent des fonctionnalités essentielles d'une application de trading, de l'importance des réponses aux demandes et de la gestion des exceptions pendant le processus de développement de l'application, ainsi que de l'importance de l'authentification sécurisée pour toute application de trading.
Ensuite, l'orateur explique comment Python peut être utilisé pour le commerce programmatique sur les marchés indiens à l'aide de l'API Kite Connect de Zerodha. Le processus commence par l'utilisation de la clé API pour rediriger vers la plateforme Kite et se connecter au compte de l'utilisateur. Une fois connecté, un jeton de demande est renvoyé, qui est ensuite utilisé pour authentifier l'utilisateur et obtenir un jeton d'accès. L'orateur fournit une démonstration pratique de l'utilisation de l'API Kite Connect, couvrant des étapes telles que l'importation de la bibliothèque, le stockage de la clé API et l'obtention d'un jeton de demande. Enfin, le jeton de requête est haché avec le secret de l'API pour obtenir un jeton d'accès.
La vidéo se poursuit en expliquant comment utiliser Python et l'API Kite Connect pour le trading programmatique sur les marchés indiens. Il décrit le processus de configuration de l'accès et des jetons publics, qui sont ensuite utilisés pour établir une connexion avec l'API Kite Connect pour diffuser des informations sur le marché. La vidéo explique comment passer une commande, notamment en spécifiant le symbole commercial, la quantité, le type de transaction, le type de commande et le produit. Il explique également comment récupérer les détails de la commande, les avoirs et les positions. L'orateur souligne qu'il existe de nombreux appels d'API supplémentaires au-delà de ce qui est couvert dans la vidéo, mais ils sont tous bien documentés sur le site Web de Kite Connect.
L'orateur se penche sur l'importance des instruments lors de l'utilisation de l'API Kite Connect pour le commerce programmatique sur les marchés indiens. Les instruments sont utilisés pour gérer divers symboles boursiers et contrats, et ils nécessitent un identifiant d'instrument unique pour s'abonner ou se désabonner aux données en continu. L'orateur explique que l'ID de l'instrument peut être obtenu à partir d'un fichier CSV complet et est également utilisé pour accéder aux données historiques. Le streaming WebSocket est discuté, y compris différents modes de réception de données tels que le mode LTP, le mode code et le mode texte intégral. Le conférencier donne un exemple du fonctionnement des données en continu via WebSocket et de la manière dont les rappels peuvent être utilisés pour recevoir des données. De plus, l'orateur explique l'utilisation de la publication et l'exigence d'une URL publique pour sa mise en œuvre.
Le conférencier aborde la mise en place d'une stratégie de trading à partir de données historiques et insiste sur la facilité de passer un ordre à l'aide de l'API Kite Connect. Ils expliquent comment une startup peut avoir un point de terminaison pour recevoir des publications du serveur Kite, permettant des notifications pour les commandes réussies ou échouées, entre autres. Le processus d'obtention de données historiques à l'aide de l'API est démontré, en mettant l'accent sur l'abonnement à la fonction de données historiques de Kite avant de demander les données. Enfin, une stratégie de moyenne mobile de base est présentée pour illustrer la simplicité de passer des commandes avec l'API Kite.
L'orateur partage sa propre stratégie de trading programmatique sur les marchés indiens en utilisant Python et l'API Kite Connect. La stratégie consiste à calculer la moyenne mobile et à placer une transaction chaque fois qu'il y a un croisement. Ils présentent la fonction permettant de passer des commandes, soulignant qu'une seule ligne de code est nécessaire pour le trading réel. Tout en reconnaissant que leur stratégie n'est peut-être pas la meilleure, ils soulignent sa facilité de mise en œuvre et de modification pour différents symboles de trading et types de transactions. L'orateur mentionne que l'API Kite Connect est open source, permettant la personnalisation et l'utilisation dans la création de plateformes de trading. Ils mentionnent également la documentation complète et le forum actif disponibles sur le site Web de Kite Connect pour aider les utilisateurs en cas de questions ou de problèmes.
Le PDG de Quant Institute (QuantInsti) présente sa société, qui est activement impliquée dans le trading algorithmique et quantitatif depuis 2010. Ils proposent des programmes de formation et des événements à des milliers d'étudiants dans le monde. Le PDG exprime son alignement avec l'utilisation programmatique de Python dans les stratégies de trading discutées dans le webinaire et s'excuse de ne pas pouvoir répondre à toutes les questions, mais assure au public que son équipe enquête avec diligence et répond à toutes les demandes.
L'orateur discute de l'impact du programme EPAT de QuantInsti, un cours en ligne complet de six mois axé sur le trading quantitatif et algorithmique. Le programme couvre un large éventail de sujets, notamment les statistiques, l'économétrie, l'informatique financière, Python, MATLAB, les outils de backtesting et divers paradigmes de stratégie commerciale. Ils soulignent que le cours est enseigné par un groupe diversifié de praticiens expérimentés du monde entier. Les diplômés du programme sont bien préparés pour entrer sur le marché du travail, et QuantInsti offre des services de carrière et des conseils aux personnes intéressées à créer leurs propres pupitres de négociation. La portée mondiale du programme est soulignée, avec des anciens dans plus de 30 pays sur six continents.
L'orateur invite les téléspectateurs à se joindre à une prochaine session d'information sur le trading algorithmique prévue pour le 3 novembre 2016 à 18h30 IST. Ils encouragent le public à suivre l'entreprise sur les plateformes de médias sociaux telles que Facebook, Twitter, LinkedIn et YouTube, où ils peuvent trouver des ressources pédagogiques et participer à des discussions. Ils proposent d'envoyer des liens aux participants intéressés et les invitent à soumettre toute question via le formulaire fourni sur borninstorms. Enfin, l'orateur conclut en déclarant qu'il va maintenant commencer à répondre aux questions de l'auditoire.
|
Trader avec Interactive Brokers en utilisant Python | Par le Dr Hui Liu
Trader avec Interactive Brokers en utilisant Python | Par le Dr Hui Liu
Bonsoir à tous! Bienvenue au webinaire sur la mise en œuvre de stratégies de trading algorithmique sur le marché en ligne, organisé par Kuantan Ste. Je m'appelle Slow Me et je suis responsable de programme senior ici. Nous sommes ravis que des participants du monde entier se joignent à nous aujourd'hui, y compris ceux d'Hawaï qui ont réussi à nous rejoindre tôt le matin. Votre enthousiasme est vraiment inspirant!
Notre conférencier estimé pour le webinaire d'aujourd'hui est le Dr Hoyle Yu, un auteur renommé et expert en trading. Le Dr Yu possède un parcours impressionnant avec une vaste expérience des actions américaines et du marché des changes. Il a également développé une plate-forme de trading Python populaire qui permet aux traders de mettre facilement en œuvre leurs stratégies. Titulaire d'un doctorat de l'Université de Virginie et ancien élève de l'Université de Shanghai, le Dr Yu apporte une mine de connaissances à ce webinaire. Nous sommes honorés de l'avoir parmi nous.
Avant de commencer, permettez-moi de vous donner un bref aperçu de ce que nous allons couvrir dans le webinaire d'aujourd'hui. Le Dr Yu discutera d'abord des avantages d'utiliser Interactive Brokers comme plateforme de trading. Il approfondira ensuite les avantages de l'utilisation de Python pour le trading et présentera son propre outil, IBPY, qui simplifie le trading avec Interactive Brokers. Le webinaire se concentrera sur les aspects clés du trading en temps réel, y compris l'accès aux données de prix en temps réel, la récupération des données historiques et la passation d'ordres. Le Dr Yu présentera également la stratégie de trading Moving Average Crossover.
Nous sommes ravis d'avoir un conférencier aussi estimé et un public diversifié pour ce webinaire. Sans plus tarder, j'invite le Dr Hoyle Yu à prendre la parole et à partager son expertise sur le trading avec Interactive Brokers utilisant Python et IBPY.
Aujourd'hui, je vais discuter du trading avec Interactive Brokers en utilisant Python, en particulier en utilisant IBPY, un outil que j'ai développé. Avant de plonger dans les détails, commençons par explorer les avantages d'Interactive Brokers en tant que plateforme de trading.
Interactive Brokers est une société de courtage bien établie basée aux États-Unis. Il offre plusieurs avantages clés qui en font un choix populaire parmi les commerçants. Tout d'abord, Interactive Brokers fournit une API robuste pour le trading automatisé, qui sera notre principal objectif aujourd'hui. Cette API permet aux traders d'exécuter leurs stratégies de manière efficace et efficiente. Deuxièmement, Interactive Brokers offre des coûts de négociation compétitifs, ce qui en fait une option rentable pour les commerçants. Vous pouvez facilement comparer leurs coûts de transaction sur leur site Web. D'après mon expérience personnelle, ils offrent des options de trading à faible coût. Troisièmement, Interactive Brokers a une présence mondiale étendue, offrant un accès à plus d'une centaine de centres de marché dans 24 pays. Cette portée mondiale permet aux traders d'accéder à divers marchés internationaux, permettant une diversification et des opportunités commerciales élargies. Enfin, Interactive Brokers prend en charge une large gamme de produits, y compris les actions, les options, les contrats à terme et le forex, répondant aux divers besoins des commerçants. Ces avantages font d'Interactive Brokers un choix privilégié pour de nombreux commerçants.
Explorons maintenant les avantages de l'utilisation de Python pour le trading. Python offre de nombreux avantages, en particulier pour les débutants. Comparé à d'autres langages de programmation comme Java ou C++, Python est relativement facile à apprendre. Avec quelques connaissances d'introduction, on peut rapidement saisir les principes fondamentaux de Python et commencer à mettre en œuvre des stratégies de trading. De plus, Python est un langage open source, donnant accès à une vaste collection de modules et de bibliothèques. Ces ressources peuvent être facilement téléchargées et intégrées dans vos systèmes de trading, offrant de puissants outils d'analyse de données, de visualisation et de trading algorithmique. L'écosystème expansif de Python en fait un langage flexible et polyvalent pour les commerçants.
Maintenant que nous comprenons les avantages d'Interactive Brokers et de Python, explorons les capacités d'IBPY. IBPY simplifie le trading avec Interactive Brokers en fournissant une interface conviviale pour les développeurs Python. Il rationalise les tâches telles que l'accès aux données de prix en temps réel, la récupération des données historiques et la passation de commandes. IBPY comble le fossé entre l'API Interactive Brokers et Python, ce qui permet aux traders de mettre en œuvre plus facilement leurs stratégies sans avoir à gérer de code complexe.
L'une des principales caractéristiques d'IBPY est sa capacité à accéder aux données de prix en temps réel. Les traders peuvent récupérer des données de marché en direct, y compris les cotations boursières, les chaînes d'options et les prix à terme, directement dans leur environnement Python. Ces données en temps réel permettent aux traders de prendre des décisions éclairées sur la base des dernières informations du marché, améliorant ainsi leurs chances de succès.
IBPY permet également aux traders de récupérer des données historiques, ce qui est essentiel pour le backtesting et l'analyse des stratégies de trading. En accédant aux données de prix historiques, les traders peuvent évaluer les performances de leurs stratégies sur différentes conditions de marché et effectuer des ajustements basés sur les données. IBPY fournit une interface pratique pour récupérer des données historiques pour un large éventail d'instruments, de délais et de types de données, permettant une analyse approfondie et un affinement de la stratégie.
Passer des ordres est un autre aspect crucial du trading algorithmique, et IBPY simplifie ce processus. Les traders peuvent utiliser l'API IBPY pour soumettre différents types d'ordres, y compris des ordres au marché, des ordres limités et des ordres stop. Ils peuvent spécifier des paramètres tels que la quantité, le prix et le type de commande, et IBPY gère l'exécution de manière transparente. Cette fonctionnalité permet aux traders d'automatiser leurs stratégies de trading, de gagner du temps et de réduire le risque d'erreurs manuelles.
En plus de ces fonctionnalités, IBPY prend en charge une gamme d'opérations de trading avancées. Les traders peuvent récupérer les informations de compte, gérer les positions et les portefeuilles, surveiller l'activité du compte et recevoir des notifications de transaction en temps réel. Cet ensemble complet de fonctionnalités permet aux traders d'avoir un contrôle total sur leurs activités de trading et de prendre des décisions en temps opportun.
Maintenant, discutons brièvement de la stratégie de trading Moving Average Crossover, que le Dr Yu couvrira en détail plus tard dans le webinaire. Cette stratégie est basée sur le concept des moyennes mobiles, qui sont largement utilisées dans l'analyse technique. La stratégie Moving Average Crossover consiste à surveiller deux moyennes mobiles de périodes différentes, généralement une moyenne mobile à court terme et une moyenne mobile à plus long terme. Lorsque la moyenne mobile à court terme dépasse la moyenne mobile à long terme, elle génère un signal d'achat, indiquant une tendance à la hausse potentielle. Inversement, lorsque la moyenne mobile à court terme passe en dessous de la moyenne mobile à long terme, elle génère un signal de vente, indiquant une tendance à la baisse potentielle. Cette stratégie vise à capter les tendances et à profiter des mouvements de prix.
En conclusion, le webinaire d'aujourd'hui fournira des informations précieuses sur le trading avec Interactive Brokers utilisant Python et IBPY. Le Dr Hoyle Yu, avec ses connaissances et son expertise approfondies, nous guidera à travers les avantages d'Interactive Brokers, les avantages de l'utilisation de Python pour le trading, les capacités d'IBPY et la stratégie de trading Moving Average Crossover. Nous espérons que vous trouverez ce webinaire informatif et engageant. Sans plus tarder, je cède la parole au Dr Yu pour commencer sa présentation. Merci à tous de vous être joints à nous aujourd'hui et profitez du webinaire !
Trading automatisé avec Python | Webinaire par le Dr Yves J. Hilpisch
Trading automatisé avec Python | Webinaire par le Dr Yves J. Hilpisch
Le Dr Yves J. Hilpisch est présenté comme le fondateur et associé directeur de Python Course Group, une société axée sur Python et les technologies open source dans le secteur financier, en particulier dans les domaines de la finance informatique et de la science des données financières. Il est l'auteur de plusieurs livres sur Python et la finance et a développé une plateforme appelée DataPark, qui permet aux data scientists de travailler avec des données structurées directement dans le navigateur. Le Dr Hilpisch mentionne qu'il publiera un nouveau livre plus tard cette année et présente également TPQ, un réseau mondial de quants et d'entreprises Python.
Le webinaire commence par le Dr Hilpisch reconnaissant le nombre croissant de demandes qu'il a reçues sur l'utilisation de Python dans la finance, en particulier de la part de start-ups visant à attirer des développeurs Python pour des projets liés à la finance. Il annonce une nouvelle fonctionnalité qui permet aux utilisateurs de télécharger des données historiques à partir de la plate-forme de trading Comm et décrit les trois principaux sujets qui seront abordés dans le webinaire : le téléchargement de données historiques, le codage et le backtesting d'une stratégie de trading, et l'utilisation de données en streaming pour le trading algorithmique. . Il souligne l'importance des données et du backtesting dans le développement de stratégies de trading sensées.
Le Dr Hilpisch poursuit en démontrant comment récupérer des données historiques à l'aide de Python, en se concentrant sur l'index DAX allemand à titre d'exemple. Il explique que les utilisateurs peuvent choisir parmi plus de 100 instruments différents, y compris des paires de devises et des matières premières comme l'or ou l'argent. En récupérant les données par blocs et en les ajoutant à un objet DataFrame, les utilisateurs peuvent stocker les données sur disque pour une récupération efficace sans avoir besoin de téléchargements répétés. Il souligne le rôle des données dans le backtesting et son importance dans l'évaluation des stratégies de trading.
Ensuite, le Dr Hilpisch montre un exemple de stratégie de trading simple basée sur deux moyennes mobiles : une plus courte (5 minutes) et une plus longue (15 minutes). Il explique que lorsque la tendance la plus courte passe au-dessus de la tendance la plus longue, elle génère un signal d'achat, et lorsque la tendance la plus courte passe en dessous de la tendance la plus longue, elle génère un signal de vente. Il précise qu'il ne s'agit pas de conseils d'investissement, mais montre comment mettre en œuvre la stratégie en Python en utilisant une approche vectorisée, rendant le code efficace et concis.
Le Dr Hilpisch passe ensuite au calcul de la performance d'une stratégie de trading en utilisant les retours de journal précédemment calculés. Il explique comment les traders peuvent déterminer la performance de leur stratégie en multipliant leur position par le rendement réalisé. Il utilise un exemple d'investissement long sur le marché et d'attente d'un jour pour illustrer le calcul. Il souligne l'importance de tester la stratégie de négociation pour éviter les biais dans l'échantillon et prévient qu'une performance positive sur une période ne garantit pas le succès sur d'autres périodes.
La discussion passe ensuite à la comparaison de l'écart type des rendements entre une stratégie d'investissement de marché et une stratégie de signalisation d'investissement basée sur les tendances et basée sur des blocs de minutes. Le Dr Hilpisch démontre que la stratégie basée sur les tendances présente des écarts-types de rendement inférieurs. Il souligne la nécessité de travailler avec des données en continu lors de la mise en œuvre de stratégies de trading automatisées et présente l'API Plotly pour générer des tracés en temps réel.
Le Dr Hilpisch démontre l'utilisation d'une fausse API qui génère des données au format en temps réel. Bien que la démonstration actuelle ne soit pas vraiment diffusée en continu, il mentionne qu'elle peut être diffusée avec un effort supplémentaire en instanciant des objets supplémentaires et en les incorporant dans le Jupyter Notebook. Il fournit un exemple de boucle for qui collecte les données de l'API et les affiche dans une zone de visualisation interactive en temps réel, point par point.
Le trading automatisé utilisant des données en temps réel ou en continu est ensuite discuté. Le Dr Hilpisch présente les fonctions "acheter" et "vendre", qui placent des ordres de marché et nécessitent le nombre d'unités à négocier. Il présente la classe "TrendTrader", qui repose sur des stratégies de suivi de tendance et hérite de la classe streamer de l'API Wonder. Il explique les attributs personnalisés de la classe, tels qu'un bloc de données vide et le nombre de graduations initialement défini sur 0. La classe permet de définir les première et seconde tendances comme paramètres.
Le Dr Hilpisch explique que la méthode "onsuccess" est appelée lorsque de nouvelles données sont reçues de l'API de streaming, même si elles arrivent sporadiquement. Les données sont ajoutées à la trame de données précédemment instanciée et converties dans le fuseau horaire européen. Les tendances à court et à long terme sont calculées sur la base des observations et les actions commerciales appropriées sont prises en conséquence. Il précise que bien que la stratégie présentée puisse ne pas être sensée, son objectif est d'illustrer le processus. Il aborde également la méthode "onerror", qui gère toutes les erreurs pouvant survenir pendant le processus de diffusion en continu et se déconnecte de l'API.
En conclusion, le Dr Hilpisch présente la mise en œuvre d'une stratégie de trading automatisée utilisant Python. Il montre comment un programme Python peut générer automatiquement des ordres d'achat et de vente en se basant sur la comparaison de moyennes mobiles. Il souligne que le succès du trading algorithmique nécessite une combinaison de compétences financières et technologiques, une compréhension approfondie des marchés, une maîtrise des statistiques de données volumineuses et la capacité d'automatiser les processus de trading. Le webinaire sert de ressource éducative pour les personnes intéressées à acquérir les connaissances et les compétences nécessaires pour une carrière dans le trading algorithmique.
Trading algorithmique avec Python - Introduction
Trading algorithmique avec Python - Introduction
Bonjour et bienvenue dans la première vidéo de la toute nouvelle série de vidéos sur le trading. Dans cette vidéo, nous allons explorer le but et le contenu du flux vidéo de ce siècle. L'objectif principal de cette série de vidéos est de vous fournir une compréhension complète du trading algorithmique. Nous couvrirons tout, des bases à la mise en œuvre avancée, aux tests et à l'optimisation des algorithmes de trading.
La série est conçue pour vous aider à apprendre et à utiliser la programmation Python dans le contexte du trading algorithmique. Nous explorerons divers sujets tels que la génération de signaux de trading, la mise en œuvre de stratégies, le backtesting et le déploiement d'algorithmes dans des environnements de trading en direct. Pour faciliter cela, nous vous présenterons une puissante plateforme de trading algorithmique appelée la plateforme de contact.
La plateforme de contact est un environnement de développement intégré qui vous permet de créer, tester et déployer vos algorithmes de trading. Il offre une interface conviviale et prend en charge divers langages de programmation, y compris Python, que nous utiliserons abondamment dans cette série. Vous pouvez accéder à la plateforme en ligne via le site Contact ou télécharger le logiciel pour Windows ou Mac.
Pour accompagner la série de vidéos, nous avons créé une page YouTube dédiée où vous pouvez trouver des ressources supplémentaires et des exemples de code. Ces exemples couvrent une gamme de sujets, y compris les techniques de clustering, la création de scripts pour les actions, les obligations, le forex, les CFD, les options, etc. Que vous soyez un trader débutant ou expérimenté, cette série est le point de départ idéal pour plonger dans le trading algorithmique.
Il est crucial de comprendre l'importance de développer et de tester des algorithmes de trading avant de les déployer dans des scénarios de trading réels. C'est l'un des aspects les plus chronophages du trading algorithmique. Cependant, nous vous avons facilité la tâche en vous permettant d'accéder gratuitement à des données historiques du marché avec des données haute résolution au niveau de la minute pour les options sur actions européennes et d'autres grands marchés internationaux. Ce sera une ressource précieuse pour les développeurs d'algorithmes et les chercheurs.
Tout au long de la série, nous tirerons parti de puissantes bibliothèques et outils pour l'apprentissage automatique, l'analyse des sentiments et le backtesting. Ces bibliothèques, telles que Pandas et NumPy, sont largement utilisées dans la communauté commerciale et seront essentielles pour notre analyse. En utilisant ces bibliothèques et la plateforme de contact, vous aurez la possibilité de créer et de tester diverses stratégies de trading.
Dans les prochaines vidéos, nous adopterons une approche étape par étape pour coder les algorithmes de trading. Vous me suivrez pendant que nous discutons et mettons en œuvre différentes stratégies. De plus, je partagerai du matériel supplémentaire, comme des extraits de code et des vidéos, sur ma chaîne YouTube et dans les articles qui l'accompagnent.
Dans la prochaine vidéo, nous approfondirons le processus de développement et explorerons le fonctionnement des algorithmes de trading. Restez à l'écoute et rejoignez-nous dans ce voyage passionnant dans le monde du trading algorithmique.
Trading algorithmique avec Python #2
Trading algorithmique avec Python #2
Bienvenue dans la deuxième vidéo de notre cours de trading algorithmique. Dans cette vidéo, nous allons nous plonger dans le processus de développement d'algorithmes, en nous concentrant sur le niveau conceptuel. Nous vous guiderons à chaque étape, de la génération d'idées au déploiement en direct, en couvrant des aspects essentiels tels que la recherche, la mise en œuvre, le backtesting et l'optimisation.
Le processus de développement de l'algorithme commence par la génération d'idées. Nous explorerons diverses sources d'idées, notamment des observations de marché, des analyses fondamentales, des indicateurs techniques et des modèles quantitatifs. Comprendre comment générer et affiner des idées de trading est crucial pour développer des algorithmes performants.
Une fois que nous avons une idée prometteuse, nous passons à la phase de recherche. Cela implique la collecte de données pertinentes, la réalisation d'analyses statistiques et la réalisation de backtesting approfondis. Nous discuterons de l'importance de la qualité des données et de son impact sur la fiabilité de nos algorithmes. De plus, nous explorerons différentes mesures de performance et mesures de risque pour évaluer l'efficacité de nos stratégies.
Après avoir effectué des recherches approfondies, nous passons à l'étape de mise en œuvre. Ici, nous traduisons nos idées de trading en code. Nous utiliserons des langages de programmation tels que Python pour écrire des algorithmes capables d'analyser des données, de générer des signaux de trading et d'exécuter des transactions automatiquement. Vous découvrirez les meilleures pratiques de codage et comment structurer votre code pour la maintenabilité et l'évolutivité.
Une fois l'algorithme implémenté, nous passons à la phase de backtesting. Le backtesting consiste à simuler les performances de l'algorithme à l'aide de données historiques. Nous aborderons différentes méthodologies de backtesting, y compris les tests in-sample et out-of-sample, pour valider les performances de l'algorithme et évaluer sa robustesse.
L'optimisation est une autre étape critique dans le développement d'algorithmes. Nous explorerons diverses techniques pour affiner nos algorithmes et optimiser leurs performances. Cela comprend l'optimisation des paramètres, l'analyse de sensibilité et les stratégies de gestion des risques. En optimisant nos algorithmes, nous visons à améliorer leur rentabilité et à réduire les risques.
Enfin, nous aborderons le déploiement en direct de nos algorithmes. Nous discuterons de considérations telles que la connectivité aux données du marché, l'exécution des ordres et la gestion des risques dans un environnement de trading en direct. Comprendre les défis et les considérations du déploiement en direct est essentiel pour un trading algorithmique réussi.
Tout au long de cette vidéo, nous vous fournirons des informations et des conseils pratiques pour vous guider tout au long du processus de développement d'algorithmes. À la fin, vous aurez une compréhension globale de la façon de conceptualiser, de rechercher, de mettre en œuvre, de tester, d'optimiser et de déployer efficacement des algorithmes de trading.
Maintenant, plongeons dans le monde fascinant du trading algorithmique et explorons en détail le processus de développement d'algorithmes.
Comment utiliser les niveaux de résistance de support et le RSI pour un trading de devises rentable
Comment utiliser les niveaux de résistance de support et le RSI pour un trading de devises rentable
Lors de la création de la stratégie de trading RSI, la méthode conventionnelle d'identification des zones de surachat et de survente s'avère inefficace. Au lieu de cela, une approche plus efficace est proposée, qui combine les niveaux de support et de résistance avec le RSI pour améliorer les points d'entrée. Cette méthode alternative contredit ce qui est couramment enseigné dans les tutoriels de trading classiques. Cependant, lorsqu'ils ont été testés avec Python, les résultats étaient plus prometteurs.
Pour mettre en œuvre cette stratégie, la première étape consiste à identifier les niveaux de support et de résistance à l'aide de fractales ou de bougies qui présentent des valeurs extrêmement élevées ou basses par rapport aux bougies voisines. Le nombre de bougies à comparer est une variable dans le code, permettant une flexibilité dans la plage de comparaison. De plus, une condition peut être appliquée pour considérer les bougies avec des mouvements de rejet importants, indiqués par une longueur de mèche dépassant un certain seuil.
Une fois les niveaux de support et de résistance détectés, il peut être nécessaire de les fusionner s'ils sont très proches l'un de l'autre. Cela peut être fait en calculant la différence ou la distance entre les niveaux. Si la distance est inférieure à un seuil spécifié, les niveaux peuvent être fusionnés en les remplaçant par la valeur moyenne ou en éliminant les niveaux en double.
Après avoir obtenu les niveaux clés, les signaux d'inversion peuvent être calculés sur la base de trois hypothèses. Premièrement, une bougie doit avoir une mèche proche d'un niveau de support ou de résistance, avec son corps contenu par le niveau. S'il s'agit d'un support, le corps doit être au-dessus du niveau, et s'il s'agit d'une résistance, le corps doit être en dessous du niveau. Les chandelles précédentes doivent également être contenues par le même niveau de support ou de résistance. Cela garantit que le comportement de la bougie actuelle s'aligne sur la tendance indiquée par les bougies environnantes.
Lors du test des données historiques, les signaux générés peuvent être tracés sur un graphique. Un signal d'inversion haussier est représenté par un point de signal violet sous la bougie, tandis qu'un signal d'inversion baissier est représenté par un point de signal violet au-dessus de la bougie. Cependant, tous les signaux du graphique ne peuvent pas être échangés, car certains peuvent être plus efficaces que d'autres. Pour filtrer les signaux, le RSI est utilisé. Si le RSI est supérieur à une valeur seuil, indiquant un élan de tendance haussière, seuls les signaux haussiers sont pris en compte. A l'inverse, si le RSI est en dessous d'un seuil bas, indiquant une dynamique baissière, seuls les signaux baissiers sont pris en compte. De cette façon, les signaux sont alignés sur la tendance et les signaux qui vont à l'encontre de la tendance sont filtrés.
Pour automatiser les indicateurs en Python et évaluer la stratégie, un fichier Jupyter Notebook peut être utilisé. Les données du chandelier euro/dollar américain pour la période d'une heure entre 2003 et 2023 sont chargées à l'aide de la bibliothèque pandas. Les données sont filtrées pour supprimer les bougies et les week-ends à volume nul, et le RSI est calculé à l'aide de la bibliothèque d'analyse technique pandas. Les niveaux de support et de résistance sont détectés à l'aide de fonctions qui comparent la bougie actuelle aux bougies voisines, et la proximité des niveaux est vérifiée à l'aide de fonctions supplémentaires. Ces fonctions considèrent le corps et la mèche de la bougie par rapport aux niveaux, ainsi que les bougies précédentes.
Une fois que toutes les fonctions nécessaires sont définies, une fonction appelée "check_candle_signal" est créée pour calculer les signaux. Cette fonction prend l'index de la bougie actuelle, le nombre de bougies à gauche et à droite à considérer, le nombre de bougies arrière à vérifier et la trame de données comme entrées. Il utilise les fonctions définies précédemment pour calculer les niveaux de support et de résistance, les fusionner si nécessaire et générer des signaux basés sur les conditions définies et les seuils RSI.
Les signaux sont ensuite comptés et imprimés pour évaluer les performances de la stratégie. Pour visualiser les signaux sur le graphique, les bougies correspondantes sont sélectionnées et tracées, les signaux étant représentés par des points violets. Le tracé permet une évaluation visuelle des signaux et leur alignement avec les niveaux de support et de résistance identifiés.
Après avoir chargé les données du chandelier et effectué les étapes de nettoyage des données nécessaires, telles que la suppression des bougies à volume nul et des week-ends, l'étape suivante consiste à calculer l'indice de force relative (RSI).
Le RSI est un oscillateur de momentum populaire utilisé pour identifier les conditions de surachat et de survente sur un marché. Il mesure l'ampleur des changements de prix récents pour déterminer si un actif est suracheté ou survendu. Les valeurs RSI vont de 0 à 100, où les valeurs supérieures à 70 sont généralement considérées comme surachetées et les valeurs inférieures à 30 sont considérées comme survendues.
Pour calculer le RSI, vous devez définir une taille de fenêtre, qui représente le nombre de bougies précédentes à prendre en compte lors du calcul de l'indicateur. La taille de fenêtre la plus courante est 14, mais vous pouvez l'ajuster en fonction de vos besoins et des caractéristiques de l'actif que vous analysez.
Le calcul du RSI comprend les étapes suivantes :
Calculez le changement de prix pour chaque bougie. Il s'agit de la différence entre le cours de clôture de la bougie actuelle et la bougie précédente.
Divisez les variations de prix en deux séries distinctes : les gains et les pertes. Les gains représentent des variations de prix positives, tandis que les pertes représentent des variations de prix négatives. Si une variation de prix est positive, elle est considérée comme un gain. S'il est négatif, il est considéré comme une perte.
Lissez les séries de gain et de perte en remplaçant les valeurs négatives par des zéros et les valeurs positives par leurs valeurs absolues.
Calculez le gain moyen et la perte moyenne sur la taille de fenêtre définie. Cela se fait généralement en utilisant la méthode de la moyenne mobile simple (SMA).
Calculez la force relative (RS) en divisant le gain moyen par la perte moyenne.
Calculez le RSI en appliquant la formule : RSI = 100 - (100 / (1 + RS))
En traçant les valeurs RSI au fil du temps, vous pouvez analyser visuellement les conditions de surachat et de survente de l'actif. Les traders utilisent souvent le RSI comme signal d'inversions de tendance potentielles ou comme confirmation des points d'entrée et de sortie.
Il est important de noter que le RSI n'est qu'un des nombreux indicateurs techniques utilisés dans l'analyse financière. Son efficacité dépend de divers facteurs tels que les conditions du marché, l'actif analysé et la période considérée.
Moyenne mobile et stratégies de tendance VWAP Backtest en Python
Moyenne mobile et stratégies de tendance VWAP Backtest en Python
Bonjour, aujourd'hui nous allons comparer les indicateurs V-WAP (Volume-Weighted Average Price) et Moving Average pour le trading et le trading algorithmique. Nous utiliserons les deux indicateurs pour créer un bot de trading et le backtester à l'aide des données Bitcoin.
Les rendements des stratégies que nous utiliserons dans cette vidéo peuvent varier d'environ 200 % à 473 % sur trois ans de données. Si vous êtes intéressé par la partie codage, le backtest se fait en utilisant le langage Python, et vous pouvez télécharger le fichier Jupyter Notebook à partir du lien fourni dans la description.
En plus d'être mon indicateur préféré dans le trading, le V-WAP est important car il aide les traders à déterminer si un titre se négocie à sa juste valeur ou non. Cette information est cruciale car si un prix se négocie au-dessus de la courbe V-WAP ou bien au-dessus de la courbe V-WAP, cela pourrait indiquer qu'il est surévalué. Inversement, si le prix actuel se négocie en dessous de la courbe V-WAP, cela pourrait indiquer que le titre est sous-évalué. En un mot, nous nous attendons toujours à ce que le prix converge vers le niveau V-WAP à un moment donné. Cela peut être observé dans un exemple où la différence entre les bougies de prix et la courbe V-WAP jaune a augmenté avant que le prix ne revienne au niveau V-WAP et ne rebondisse à nouveau sur la courbe jaune. Il y a une nette différence entre la courbe moyenne mobile et la courbe jaune V-WAP.
Pour calculer le V-WAP, nous pouvons utiliser l'expression suivante : V-WAP = Prix moyen cumulé * Volume / Volume cumulé. Le prix moyen est le prix moyen entre les cours haut, bas et de clôture. La partie cumulée signifie la somme totale depuis l'ouverture de la séance de trading. La séance de trading peut être réinitialisée quotidiennement, hebdomadairement ou mensuellement, selon la période que nous visons. Le calcul V-WAP est différent d'une simple moyenne mobile car il intègre plus d'informations sur le volume des transactions.
Nous pouvons également utiliser V-WAP pour déterminer les points d'entrée et de sortie optimaux pour les transactions, car il agit comme un niveau de support et de résistance dynamique qui évolue avec le prix. C'est pourquoi nous utiliserons V-WAP dans la stratégie présentée dans cette vidéo.
La stratégie que nous utiliserons est la suivante : premièrement, nous examinerons une série de bougies qui sont soit en dessous soit au-dessus du V-WAP ou de la courbe moyenne mobile, selon l'indicateur que nous utilisons pour la comparaison. Si les bougies sont en dessous de la courbe, nous recherchons un signal court, et le point d'entrée sera déterminé lorsqu'une bougie sera suffisamment proche de la courbe. Si les bougies sont au-dessus de la courbe, nous recherchons un signal long, et le point d'entrée sera déterminé lorsqu'une bougie sera suffisamment proche de la courbe. Nous appliquerons la même stratégie en utilisant à la fois la courbe de moyenne mobile et la courbe V-WAP à des fins de comparaison.
Dans le fichier Jupiter Notebook, nous chargeons les données du chandelier en dollars américains Bitcoin avec un délai de 15 minutes entre 2019 et 2022. Nous nettoyons les formats de données et utilisons le module d'analyse technique pandas pour calculer le V-WAP et l'EMA (moyenne mobile exponentielle). ). Nous calculons ensuite le signal pour l'EMA et le V-WAP en utilisant un certain nombre de bougies arrière. Les valeurs de signal sont stockées dans de nouvelles colonnes dans la trame de données. Nous visualisons les points de signal pour une meilleure compréhension.
Pour le backtesting, nous pouvons utiliser différentes approches de gestion commerciale. Dans ce cas, nous utilisons l'ATR (Average True Range) pour définir les niveaux stop-loss et take-profit. Le niveau de prise de profit est fixé en fonction de la distance stop-loss, avec un ratio de prise de profit sur stop-loss de 2,5. Le stop-loss est calculé comme 0,8 fois l'ATR.
Dans le backtest, nous parcourons chaque bougie du bloc de données et vérifions les conditions d'entrée et de sortie en fonction du signal généré par le V-WAP et des indicateurs de moyenne mobile. Si une transaction est initiée, nous calculons les niveaux stop-loss et take-profit en fonction de l'ATR. Si le prix atteint le niveau stop-loss ou take-profit, nous quittons la transaction et enregistrons le profit ou la perte.
Une fois le backtest terminé, nous calculons les pertes et profits cumulés et générons des mesures de performance telles que le rendement total, le rendement annualisé, le prélèvement maximal et le ratio de Sharpe.
Les résultats du backtest montrent les performances de la stratégie de trading en utilisant à la fois le V-WAP et les indicateurs de moyenne mobile. En comparant les résultats, nous pouvons évaluer quel indicateur est le plus performant en termes de rentabilité et de gestion des risques.
Veuillez noter que les résultats du backtest dépendront de divers facteurs tels que les paramètres spécifiques utilisés, la période sélectionnée et les conditions du marché. Il est important d'analyser minutieusement la stratégie et d'effectuer des tests rigoureux avant de l'appliquer au trading réel.
Master Price Action Trading avec Doji automatisé et modèles engloutissants à l'aide de Python
Master Price Action Trading avec Doji automatisé et modèles engloutissants à l'aide de Python
Aujourd'hui, nous allons comparer deux modèles de bougies : les bougies Doji et les bougies Engloutissantes. Nous utiliserons une stratégie simple combinée aux bandes de Bollinger et testerons ces modèles en utilisant des données historiques de l'année écoulée sur la période d'une heure. Notre objectif est de démontrer comment la combinaison des modèles d'action des prix avec d'autres indicateurs peut être un outil puissant pour le trading purement technique.
Pour mettre en œuvre cette stratégie, nous fournissons le code Python, qui est disponible en téléchargement à partir du lien dans la description de la vidéo. Si vous trouvez le contenu utile, veuillez soutenir notre chaîne en l'aimant et en la suivant. De plus, si vous avez des idées que vous aimeriez explorer, nous pouvons en discuter dans la section des commentaires.
Pour les besoins de cette démonstration, nous allons nous concentrer sur deux ensembles de modèles : une bougie Doji précédée d'une bougie baissière et suivie d'une bougie de tendance haussière ou haussière, indiquant une future tendance haussière. Le deuxième modèle est le modèle Engulfing, où les prix d'ouverture et de clôture d'une bougie sont respectivement supérieurs et inférieurs à ceux de la bougie précédente. Essentiellement, la bougie actuelle engloutit la précédente, déterminant la tendance prévue des prix futurs. Nous examinerons spécifiquement des exemples de configurations haussières pour ces deux modèles. Cela vaut également la peine de considérer les configurations baissières, où un Doji est suivi d'une bougie baissière, ou dans le cas du modèle engloutissant, la bougie engloutissante a une direction baissière. Ces configurations indiqueraient une future tendance à la baisse.
Voyons maintenant comment nous utilisons ces modèles dans notre stratégie. Tout d'abord, nous attendons qu'une bougie de prix se clôture au-dessus ou en dessous des lignes de la bande de Bollinger. Si une configuration haussière se forme sous la ligne inférieure de la bande de Bollinger, nous établissons un signal d'achat. D'autre part, si une configuration de bougie baissière se produit au-dessus de la ligne supérieure de la bande de Bollinger, nous établissons un signal de vente ou de vente. En termes plus simples, si nous observons une tendance haussière sous les bandes de Bollinger, nous nous attendons à ce que le prix augmente. Inversement, si nous repérons une tendance baissière au-dessus des bandes de Bollinger, nous anticipons une baisse du prix. C'est l'aspect que nous allons explorer en utilisant Python.
Le notebook Jupyter fourni illustre le backtesting de cet indicateur. Le code utilise le module Y Finance et les pandas pour la récupération et l'analyse des données, respectivement. Les données sur le taux de change de l'euro par rapport au dollar américain du 1er avril 2021 au 19 mars 2023 sont téléchargées sur une période horaire.
Pour calculer les bandes de Bollinger, nous utilisons le module d'analyse technique pandas, fixant une longueur de 30 et un écart type de 1,5. Ces paramètres peuvent être ajustés pour une expérimentation ultérieure.
Ensuite, nous définissons la fonction "Bollinger Doji Signal", qui prend la trame de données avec les prix d'ouverture, de clôture, hauts et bas, ainsi que les données des bandes de Bollinger. Nous vérifions la première condition, qui implique un signal haussier. Dans ce cas, nous recherchons un cours de clôture de la bougie actuelle en dessous de la ligne inférieure de la bande de Bollinger. Simultanément, le cours de clôture actuel devrait être supérieur au cours d'ouverture, indiquant une bougie verte ou de tendance haussière précédée d'une bougie Doji. De plus, la bougie précédente devrait être baissière, avec un cours de clôture inférieur au cours d'ouverture. Cette combinaison représente un modèle d'inversion. Si ces conditions sont remplies et que la configuration se produit en dessous de la ligne inférieure de la bande de Bollinger, nous établissons un signal d'achat. Inversement, pour un signal baissier, le cours de clôture doit être supérieur à la ligne supérieure de la bande de Bollinger et la bougie actuelle doit être baissière, avec le cours de clôture inférieur au cours d'ouverture. Avant cela, il devrait y avoir une tendance haussière ou une bougie verte avec le cours de clôture supérieur au cours d'ouverture.
Dans ce cas, la combinaison représente une configuration d'inversion baissière, et si ces conditions sont remplies et que la configuration se produit au-dessus de la ligne supérieure de la bande de Bollinger, nous établissons un signal de vente.
La fonction "Bollinger Doji Signal" calcule les signaux en fonction des conditions mentionnées ci-dessus et renvoie une trame de données avec les données d'origine ainsi que la colonne des signaux indiquant s'il faut acheter (1), vendre (-1) ou conserver (0) à chaque bougie.
Nous appliquons ensuite cette fonction à nos données historiques et stockons les résultats dans une nouvelle trame de données appelée "signals_df".
Pour évaluer la performance de notre stratégie, nous calculons les rendements en multipliant les signaux par le pourcentage de variation du cours de clôture et en les additionnant de manière cumulative. Nous calculons également les rendements cumulés d'une stratégie d'achat et de conservation, où nous détenons simplement l'actif pendant toute la période.
Enfin, nous traçons les rendements cumulés des deux stratégies sur un graphique pour visualiser les performances.
En analysant les résultats du backtest, nous pouvons évaluer l'efficacité des modèles de bougies Doji et Engulfing combinés à l'indicateur des bandes de Bollinger pour générer des signaux de trading. Il est important de noter qu'il s'agit d'un exemple simplifié et qu'il ne doit pas être considéré comme un conseil financier. De plus, la stratégie et ses paramètres peuvent être optimisés et personnalisés en fonction des préférences individuelles et de la tolérance au risque.
Pour bien comprendre et répliquer le code, il est recommandé de télécharger et d'exécuter le bloc-notes Jupyter fourni, qui contient le code complet et des explications.
N'oubliez pas que les stratégies de trading doivent être soigneusement testées et validées avant de les mettre en œuvre dans des scénarios de trading réels. Il est toujours recommandé de consulter un conseiller financier ou d'effectuer des recherches approfondies avant de prendre toute décision d'investissement.
Nous espérons que cette explication vous aidera à mieux comprendre la mise en œuvre des modèles de bougies Doji et Engulfing combinés à l'indicateur des bandes de Bollinger dans une stratégie de trading.Stratégie BackTest du canal de prix Break Out en Python
Stratégie BackTest du canal de prix Break Out en Python
Bonjour et bienvenue sur ma chaîne. Dans la vidéo d'aujourd'hui, nous allons nous concentrer sur le développement et le backtesting d'une stratégie basée sur les cassures des canaux de prix. Si vous êtes nouveau ici, je vous recommande de regarder notre épisode précédent où j'ai présenté et expliqué le code de notre indicateur de canal de prix personnalisé basé sur Python. Je vais laisser un lien dans la description ci-dessous. Maintenant, plongeons dans le sujet d'aujourd'hui et effectuons la partie backtesting.
Dans la vidéo précédente, nous avons présenté le code pour détecter les canaux de prix. Pour récapituler, nous détectons les fractales, qui sont les points hauts et bas des bougies. Une fractale est un point sur la bougie qui est supérieur ou inférieur à toutes les bougies voisines en même temps. Nous détectons différentes fractales, hautes et basses, et les adaptons aux pentes à l'aide de la régression. Ces pentes représentent le canal qui définit le canal des prix. Nous essayons ensuite de détecter les cassures lorsque le prix sort de ce canal, en supposant que le prix continuera dans la même direction.
Visuellement, l'indicateur semble bien fonctionner, mais nous sommes curieux de voir comment il se comporte sur une stratégie à long terme. C'est pourquoi nous procédons aujourd'hui au backtesting complet. Nous utiliserons Python pour le backtest, et vous pouvez télécharger le code à partir du lien dans la description.
Pour commencer, nous chargeons nos données, en prenant 10 à 20 ans de données de 2003 à 2023, ce que nous avons également utilisé dans la dernière vidéo. Nous fixons le nombre de bougies arrières à 45, qui est la fenêtre sur laquelle nous détecterons les fractales (hauts et bas) et définirons notre canal.
Nous avons une fonction appelée is_pivot qui détecte si une bougie est un point pivot ou un point fractal. Il prend deux paramètres : l'indice de la bougie et la taille de la fenêtre. Il vérifie si la bougie est supérieure ou inférieure à tous les hauts ou bas des bougies voisines dans la fenêtre spécifiée. Il renvoie une valeur basée sur le type de pivot : 1 pour un pivot haut, 2 pour un pivot bas, 3 pour les deux et 0 pour les autres cas. Nous appliquons cette fonction à chaque bougie de notre bloc de données et enregistrons les résultats dans une nouvelle colonne appelée "is_pivot".
Ensuite, nous devons collecter les canaux ou détecter les canaux. Nous regardons les 45 bougies avant la bougie actuelle et vérifions les fractales hautes et basses. Si nous avons au moins trois hauts et trois bas, nous les ajustons par régression linéaire et renvoyons les paramètres des pentes. Sinon, nous renvoyons des zéros. Nous appliquons cette fonction au bloc de données en utilisant la taille de fenêtre spécifiée, et les résultats sont enregistrés dans une nouvelle colonne appelée "canal".
Nous avons également une fonction appelée is_breakout qui détecte les cassures en dehors du canal des prix. Pour chaque bougie, nous vérifions si le plus haut de la bougie précédente se situe dans le canal et si le cours de clôture de la bougie précédente est inférieur au bas du canal. Si les deux conditions sont remplies et que les prix d'ouverture et de clôture de la bougie actuelle sont également en dehors du canal, nous renvoyons un signal : 1 pour un signal de tendance baissière, 2 pour un signal de tendance haussière et 0 pour les autres cas. Nous exécutons cette fonction sur toutes les bougies et enregistrons les résultats dans une nouvelle colonne appelée "is_breakout".
Maintenant que nous avons les signaux d'évasion, nous pouvons procéder au backtesting. Nous utilisons la bibliothèque de backtesting comme d'habitude, avec une taille de lot initiale de 10 % du capital. Nous définissons un ratio take profit/stop loss et fixons les niveaux stop loss et take profit en fonction du signal. Par exemple, si le signal est 2 (tendance haussière) et qu'aucune transaction n'est ouverte, nous fixons le stop loss au plus bas de la bougie précédente et le take profit à un multiple de la moyenne de la vraie plage (ATR).
Nous parcourons chaque bougie dans la trame de données et vérifions s'il y a un signal d'évasion. S'il y a un signal et qu'aucune transaction n'est actuellement ouverte, nous entrons dans une nouvelle transaction basée sur le signal. Nous calculons la taille de la transaction en fonction de la taille du lot et des fonds propres disponibles.
Une fois qu'une transaction est ouverte, nous suivons sa progression. Nous mettons à jour les niveaux de stop loss et de take profit à mesure que le prix évolue en notre faveur. Si le prix atteint le niveau stop loss ou take profit, nous clôturons la transaction et enregistrons le résultat.
Enfin, nous calculons et imprimons les mesures de performance globales, y compris le nombre total de transactions, le pourcentage de transactions gagnantes, le rendement moyen par transaction et le rendement global des capitaux propres.
Voici une explication étape par étape de la stratégie de cassure du canal de prix sans le code :
Implémenter cette stratégie dans le code vous permettra de la backtester sur des données historiques et d'analyser ses performances. Le code fourni précédemment illustre la mise en œuvre de la stratégie à l'aide de la bibliothèque Backtesting en Python.