Article original : How to Get Started with Algorithmic Trading in Python

Lorsque je travaillais en tant qu'ingénieur en développement de systèmes dans une société de gestion d'investissements, j'ai appris que pour réussir en finance quantitative, il faut être bon en mathématiques, en programmation et en analyse de données.

Le trading algorithmique ou quantitatif peut être défini comme le processus de conception et de développement de stratégies de trading statistiques et mathématiques. C'est un domaine extrêmement sophistiqué de la finance.

Alors, la question est : comment commencer avec le trading algorithmique ?

Je vais vous guider à travers cinq sujets essentiels que vous devriez étudier afin de vous frayez un chemin dans ce monde fascinant du trading.

Je préfère personnellement Python car il offre le bon degré de personnalisation, de facilité et de rapidité de développement, de frameworks de test, et de vitesse d'exécution. Pour cette raison, tous ces sujets sont axés sur Python pour le Trading.

1. Apprendre la Programmation Python

Afin d'avoir une carrière florissante en science des données en général, vous avez besoin de solides fondamentaux. Quel que soit le langage que vous choisissez, vous devez comprendre en profondeur certains sujets dans ce langage.

Voici ce que vous devriez chercher à maîtriser dans l'écosystème Python pour la science des données :

  • Configuration de l'environnement — cela inclut la création d'un environnement virtuel, l'installation des packages requis, et le travail avec les notebooks Jupyter ou Google Colabs.

  • Structures de données — certaines des structures de données pythoniques les plus importantes sont les listes, les dictionnaires, les tableaux NumPy, les tuples et les ensembles. J'ai rassemblé quelques exemples dans l'article lié pour que vous appreniez ceux-ci.

  • Programmation Orientée Objet — En tant qu'analyste quantitatif, vous devez vous assurer que vous êtes bon pour écrire du code bien structuré avec des classes correctement définies. Vous devez apprendre à utiliser des objets et leurs méthodes tout en utilisant des packages externes comme Pandas, NumPy, SciPy, et ainsi de suite.

Le programme de freeCodeCamp propose également une certification en Analyse de Données avec Python pour vous aider à commencer avec les bases.

Apprendre à analyser des données financières

L'analyse de données est une partie cruciale de la finance. En plus d'apprendre à manipuler des dataframes avec Pandas, il y a quelques sujets spécifiques auxquels vous devriez prêter attention lors de la manipulation de données de trading.

Comment explorer les données en utilisant Pandas

L'un des packages les plus importants de la stack Python pour la science des données est sans aucun doute Pandas. Vous pouvez accomplir presque toutes les tâches majeures en utilisant les fonctions définies dans le package.

Concentrez-vous sur la création de dataframes, le filtrage (loc, iloc, query), les statistiques descriptives (résumé), les jointures/merges, le regroupement et la sous-sélection.

Comment traiter les données de séries temporelles

Les données de trading concernent toutes l'analyse des séries temporelles. Vous devez apprendre à rééchantillonner ou réindexer les données pour changer la fréquence des données, de minutes en heures ou des données OHLC de fin de journée en données de fin de semaine.

Par exemple, vous pouvez convertir des séries temporelles de 1 minute en données de séries temporelles de 3 minutes en utilisant la fonction resample :

df_3min = df_1min.resample('3Min', label='left').agg({'OPEN': 'first', 'HIGH': 'max', 'LOW': 'min', 'CLOSE': 'last'})

3. Comment écrire des algorithmes de trading fondamentaux

Une carrière en finance quantitative nécessite une solide compréhension des tests d'hypothèses statistiques et des mathématiques. Une bonne maîtrise des concepts tels que le calcul multivarié, l'algèbre linéaire, la théorie des probabilités vous aidera à poser de bonnes bases pour la conception et l'écriture d'algorithmes.

Vous pouvez commencer par calculer des moyennes mobiles sur les données de prix des actions, écrire des stratégies algorithmiques simples comme le croisement de moyennes mobiles ou la stratégie de retour à la moyenne, et apprendre le trading basé sur la force relative.

Après avoir fait ce petit mais significatif saut de pratique et de compréhension du fonctionnement des algorithmes statistiques de base, vous pouvez vous pencher sur les domaines plus sophistiqués des techniques d'apprentissage automatique. Ceux-ci nécessitent une compréhension plus approfondie des statistiques et des mathématiques.

Voici deux livres avec lesquels vous pouvez commencer :

Et voici quelques cours qui vous aideront à commencer avec Python pour le Trading et qui couvrent la plupart des sujets que j'ai abordés ici :

Vous pouvez obtenir 10 % de réduction sur le cours Quantra en utilisant mon code HARSHIT10.

4. Apprendre le Backtesting

Une fois que vous avez terminé de coder votre stratégie de trading, vous ne pouvez pas simplement la tester sur le marché en direct avec un capital réel, n'est-ce pas ?

L'étape suivante consiste à exposer cette stratégie à un flux de données de trading historiques, ce qui générerait des signaux de trading. Les transactions effectuées accumuleraient alors un profit ou une perte (P&L) associé, et l'accumulation de toutes les transactions vous donnerait le P&L total. Cela s'appelle le backtesting.

Le backtesting nécessite que vous soyez bien versé dans de nombreux domaines, comme les mathématiques, les statistiques, l'ingénierie logicielle et la microstructure du marché. Voici quelques concepts que vous devriez apprendre pour avoir une compréhension décente du backtesting :

  • Vous pouvez commencer par comprendre les indicateurs techniques. Explorez le package Python appelé TA_Lib pour utiliser ces indicateurs.

  • Employez des indicateurs de momentum comme le SAR parabolique, et essayez de calculer le coût de transaction et le glissement.

  • Apprenez à tracer les rendements cumulés de la stratégie et étudiez la performance globale de la stratégie.

  • Un concept très important qui affecte la performance du backtest est le biais. Vous devriez apprendre sur le biais d'optimisation, le biais de prévision, la tolérance psychologique et le biais de survivance.

5. Métriques de performance — Comment évaluer les stratégies de trading

Il est important pour vous de pouvoir expliquer votre stratégie de manière concise. Si vous ne comprenez pas votre stratégie, il y a des chances que, lors de toute modification externe de la réglementation ou de changement de régime, votre stratégie commence à se comporter anormalement.

Une fois que vous comprenez la stratégie avec confiance, les métriques de performance suivantes peuvent vous aider à apprendre à quel point la stratégie est bonne ou mauvaise :

  • Ratio de Sharpe — caractérise de manière heuristique le ratio risque/récompense de la stratégie. Il quantifie le rendement que vous pouvez accumuler pour le niveau de volatilité subi par la courbe de capital.

  • Volatilité — quantifie le « risque » lié à la stratégie. Le ratio de Sharpe incarne également cette caractéristique. Une volatilité plus élevée d'un actif sous-jacent conduit souvent à un risque plus élevé dans la courbe de capital et cela se traduit par des ratios de Sharpe plus petits.

  • Drawdown Maximum — la plus grande baisse en pourcentage globale de pic à creux sur la courbe de capital de la stratégie. Les drawdowns maximum sont souvent étudiés en conjonction avec les stratégies de momentum car elles en souffrent. Apprenez à le calculer en utilisant la bibliothèque numpy.

  • Capacité/Liquidité — détermine la scalabilité de la stratégie pour un capital supplémentaire. De nombreux fonds et sociétés de gestion d'investissements souffrent de ces problèmes de capacité lorsque les stratégies augmentent en allocation de capital.

  • TCAC — mesure le taux de croissance moyen d'une stratégie sur une période de temps. Il est calculé par la formule : (rendements cumulés de la stratégie)^(252/nombre de jours de trading) — 1

Ressources supplémentaires

Cet article a servi de programme suggéré pour vous aider à commencer avec le trading algorithmique. C'est une bonne liste de concepts à maîtriser.

Maintenant, la question est : quelles ressources peuvent vous aider à vous mettre à niveau avec ces sujets ?

Voici quelques livres classiques et cours utiles avec des devoirs et des exercices que j'ai trouvés utiles :

Data Science avec Harshit

Avec cette chaîne, je prévois de lancer quelques séries couvrant tout l'espace de la science des données. Voici pourquoi vous devriez vous abonner à la chaîne :

Si ce tutoriel vous a été utile, vous devriez consulter mes cours de science des données et d'apprentissage automatique sur Wiplane Academy. Ils sont complets mais compacts et vous aident à construire une solide fondation de travail à présenter.