Table des matières
Chapitre 1 Principes de base du trading quantitatif
1.1 Qu’est-ce que le trading quantitatif ?
résumé
Le trading quantitatif, en tant que produit de la combinaison de la science et des machines, change le paysage du marché financier moderne. De nombreux investisseurs se tournent désormais vers ce domaine. Comment minimiser les risques et obtenir les meilleurs rendements possibles ? C’est également le but de cette série de cours. Dans le premier article, nous expliquerons brièvement « Qu'est-ce que le trading quantitatif ».
Aperçu
Lorsque de nombreuses personnes entendent le terme « trading quantitatif », elles pensent qu’il s’agit d’une méthode haut de gamme qui les rendra riches du jour au lendemain. L’ère de l’intelligence artificielle, accompagnée de l’essor des technologies avancées telles que l’apprentissage profond, le big data et le cloud computing, lui a donné une couleur mystérieuse. Il semble que tant que le trading quantitatif est utilisé, une stratégie de trading « parfaite » peut être construite.
En fait, dans une certaine mesure, le trading quantitatif est devenu un mythe. En laissant de côté le trading, la « quantification » est en fait l’utilisation d’ordinateurs, de statistiques, de mathématiques et d’autres méthodes, par le biais d’un système d’investissement scientifique, pour trouver un ensemble de systèmes de signaux de trading attendus. Ce système de signal nous indiquera quand et à quel prix nous devons acheter et vendre.
Le développement du trading quantitatif
Pour revenir à la source, la personne qui a utilisé pour la première fois des méthodes quantitatives pour analyser les changements de données et découvrir les modèles de fluctuations des prix du marché n'était ni le Hollandais, le berceau des actions, ni le Britannique qui a promu la finance moderne, ni l'Américain qui a coexisté avec la finance depuis la fondation du pays, mais un Français.
Dès le XVIIIe siècle, Jules Regnault, un agent de change français, proposa la théorie moderne des variations du prix des actions. Il a ensuite publié le livre « Calcul de probabilité et philosophie du trading boursier », dans lequel il a développé la loi des hauts et des bas du marché (distribution normale) qu'il a découvert : « L'écart de prix est proportionnel à la racine carrée du temps », et a finalement obtenu le succès commercial grâce à des décisions d'investissement rationnelles et quantitatives.
De nos jours, à l’ère d’Internet + big data + cloud computing + intelligence artificielle, le trading quantitatif s’est également développé rapidement. Canary Wharf à Londres, autrefois le cœur financier mondial, est depuis longtemps devenu une plaque tournante pour les entreprises informatiques. Les plus grandes banques d’investissement du monde développent également leurs propres équipes quantitatives, essayant de se joindre à la guerre financière du « celui qui obtient le modèle gagne le monde ». Ces équipes informatiques qui développent des modèles de trading sont également appelées équipes quantitatives. En termes d’échelle, les États-Unis, qui ont commencé plus tôt, disposent déjà d’un grand nombre de fonds spéculatifs quantitatifs solides.
En revanche, en Chine, les capacités de recherche en matière d’équipements matériels et d’investissement en sont encore à leurs débuts. Cependant, de plus en plus d’institutions et d’investisseurs professionnels ont pris conscience des avantages du trading quantitatif et ont participé à ce domaine. D’autant plus que la supervision devient de plus en plus stricte et que l’efficacité du marché s’améliore progressivement, le trading quantitatif dispose d’une marge de croissance plus large.
Caractéristiques du trading quantitatif
Vérification scientifique : Imaginez qu'une fois que vous avez un système de trading, si vous utilisez un système de trading simulé pour tester son efficacité, cela peut prendre énormément de temps. Si vous le testez directement avec un véritable système de trading, vous risquez de perdre de l'argent réel. Cependant, la fonction de backtesting dans le trading quantitatif peut être utilisée pour tester le système de trading de manière scientifique à travers une grande quantité de données historiques. Laissez les données parler de ce qui fonctionne et de ce qui ne fonctionne pas, plutôt que de simplement suivre la foule.
Objectif et précis:Dans le trading, notre véritable ennemi, c'est nous-mêmes. Gérer notre mentalité est plus facile à dire qu’à faire. Les faiblesses humaines telles que la cupidité, la peur et la chance seront amplifiées plusieurs fois sur le marché commercial. Le trading quantitatif peut nous aider à surmonter ces faiblesses et à prendre de meilleures décisions en matière de trading.
Rapide et efficace:Dans le trading subjectif, la vitesse de réaction des gens ne peut pas être plus rapide que celle des ordinateurs, et la force physique et l’énergie des gens ne peuvent pas fonctionner 24 heures sur 24. Sur un marché où les opportunités sont éphémères, le trading quantitatif peut remplacer complètement le trading subjectif, trouver des opportunités de trading et suivre les changements du marché de manière opportune et rapide.
Contrôle des risques:Le trading quantitatif peut non seulement explorer des modèles historiques qui peuvent se répéter à l'avenir à partir de données historiques, mais ces modèles historiques sont également des stratégies avec une probabilité de gain plus élevée. Vous pouvez également créer une variété de portefeuilles d’investissement différents pour réduire les risques systémiques et lisser la courbe de financement.
Quelles sont les stratégies de trading classiques pour le trading quantitatif ?
Stratégie d'ouverture de cassure
La première demi-heure après l’ouverture peut souvent déterminer la tendance de la journée. Cette stratégie utilise le fait que le prix soit une ligne positive ou négative dans la demi-heure suivant l'ouverture comme norme pour juger la tendance de la journée. S'il s'agit d'une ligne positive, ouvrez une position d'achat ; s'il s'agit d'une ligne négative, ouvrez une position de vente et fermez la position quelques minutes avant la clôture. Il s’agit d’une stratégie de trading très simple.
Stratégie du canal de Donchian
Figure 1-1 Diagramme de stratégie du canal de Donchian
La stratégie du canal Donchian peut être considérée comme l’ancêtre du trading intraday. Ses règles sont : acheter si le prix actuel est supérieur au prix le plus élevé des N K-lignes précédentes ; vendre si le prix actuel est inférieur au prix le plus bas des N K-lines précédentes. Les célèbres règles de trading de tortues utilisent une version modifiée de la stratégie du canal Donchian.
Stratégie d'arbitrage inter-périodes
L'arbitrage inter-périodes est le type de transaction d'arbitrage le plus courant. Il est basé sur les prix des contrats avec des mois de livraison différents pour le même produit commercial. S'il existe une grande différence de prix entre les deux prix, des contrats à terme de périodes différentes peuvent être achetés et vendus en même temps pour effectuer un arbitrage inter-périodes. Supposons que la différence de prix entre le contrat principal et le contrat principal secondaire reste autour de -50~50 pendant une longue période. Si le spread atteint 70 un jour donné, nous nous attendons à ce qu’il revienne à 50 à un moment donné dans le futur. Vous pouvez ensuite vendre le contrat principal et acheter le contrat principal secondaire en même temps pour réduire la différence de prix. vice versa.
Résumer
Ci-dessus, nous avons brièvement présenté les concepts pertinents du trading quantitatif sous l'angle de sa définition, de son développement, de ses caractéristiques et de ses stratégies de trading classiques.
Comprendre le trading quantitatif est une étape importante sur la voie pour devenir un Quant. Enfin, je souhaite à chacun de pouvoir s'enrichir dans le marché baissier et réaliser la réalisation de la connaissance le plus tôt possible ! N’oubliez pas, vous n’êtes qu’à un marché haussier de la liberté financière !
Aperçu de la section suivante
Quelles sont les différences entre le trading quantitatif et le trading traditionnel ? Dans le trading réel, devrions-nous choisir le trading traditionnel ou le trading quantitatif ? Dans la section suivante, nous aborderons ces deux questions pour mieux comprendre le trading quantitatif.
Devoirs
- Décrivez brièvement ce qu'est le trading quantitatif en une phrase ?
- Quelles sont les caractéristiques du trading quantitatif ?
1.2 Pourquoi choisir le trading quantitatif
résumé
De nombreuses personnes utilisent la programmation de stratégies complexes comme point de départ lorsqu’elles discutent du trading quantitatif, jetant par inadvertance un voile de mystère sur le trading quantitatif. Dans cette section, nous allons essayer de faire un « croquis » simple du trading quantitatif dans un langage facile à comprendre pour dévoiler son mystère. Je crois que même un novice sans connaissances de base peut facilement le comprendre.
La différence entre le trading quantitatif et le trading subjectif
Le trading subjectif accorde plus d’attention à l’analyse humaine et au sens du marché. Même si des signaux d’achat et de vente apparaissent, les ordres seront placés de manière sélective. Les gens préfèrent rater le marché plutôt que de faire des erreurs. Les sentiments humains sont complexes, changeants et peu fiables. Une fois que la plupart des traders subissent des pertes consécutives, ils ont tendance à passer à une autre méthode. Il est très aléatoire et facilement perturbé par les gains et les pertes, ce qui rend difficile la réalisation de bénéfices stables.
Le trading quantitatif développe des stratégies d’achat et de vente cohérentes grâce à la compréhension des transactions. Dans le trading, traitez toutes les tendances de manière égale et gérez les positions d’ouverture et de fermeture de manière systématique. Il vaut mieux faire des erreurs que rater quelque chose. Il dispose également d'un système d'évaluation complet, qui détermine à quel type de marché et de produits la stratégie est la plus adaptée grâce à des tests rétrospectifs des données historiques, et atteint la rentabilité en combinant plusieurs stratégies et produits.
En bref, le trading subjectif est la base du trading quantitatif, et le trading quantitatif est le raffinement du trading subjectif. Le trading subjectif s’apparente davantage à la pratique des arts martiaux. Votre réussite dépendra en grande partie de votre talent. Certaines personnes ne parviendront peut-être pas à l’illumination après dix ans, tandis que d’autres pourront l’atteindre en un jour. Le trading quantitatif s’apparente davantage à du fitness. Tant que vous travaillez dur, vous pouvez développer vos muscles même si vous n’avez pas de talent.
Le trading quantitatif est-il meilleur que le trading subjectif ?
Un trader subjectif qui réussit est, dans un sens, également un trader quantitatif. Parce qu'un trader subjectif qui réussit doit avoir son propre ensemble de règles et de méthodes, c'est-à-dire un système de trading. Un trading subjectif réussi doit être basé sur une discipline de trading et des règles de trading, et la partie exécution des règles de trading est en fait la partie quantitative du trading subjectif.
Au contraire, un trader quantitatif performant doit également être un excellent trader subjectif, car le développement de stratégies de trading quantitatif est en fait la cristallisation de la philosophie de trading d'une personne. Si la perception et la compréhension du marché sont erronées dès le départ, les stratégies de trading développées auront du mal à générer des bénéfices à long terme.
Par conséquent, du point de vue de la rentabilité, le facteur clé qui détermine si un trader peut finalement réussir est la philosophie de trading, et non le fait qu'il s'agisse de trading subjectif ou de trading quantitatif. Le trading quantitatif peut sembler prétentieux à première vue, mais son essence même, axée sur le profit, n’est pas différente de celle du trading subjectif. Ils sont comme les deux faces d’une même chose, à la fois opposées et unifiées.
Mais il est indéniable que le trading quantitatif présente de nombreux avantages en termes d’outils de trading.
Examen plus rapide:Si vous souhaitez tester une stratégie de trading, vous devez calculer une grande quantité de données historiques. Le trading quantitatif peut calculer les résultats en quelques minutes. Cette vitesse est bien plus rapide que celle du trading subjectif.
Plus scientifiquePour évaluer si une stratégie est bonne, nous nous appuyons sur des données (telles que le ratio de Sharpe, le taux de drawdown maximal, le rendement annualisé), plutôt que sur des charlatans égoïstes.
Plus d'opportunitésIl existe des milliers de produits commerciaux dans le monde. Il est impossible de surveiller le marché en même temps pour le trading subjectif, mais le trading quantitatif peut surveiller l'ensemble du marché en temps réel, ne manquer aucune opportunité de trading et augmenter la rentabilité.
Le trading quantitatif peut-il vraiment rapporter de l’argent ?
Bien sûr que vous pouvez, mais il est difficile de s’y tenir sur le long terme. Que vous gagniez de l’argent ou non ne dépend pas du trading quantitatif lui-même, ce n’est qu’un outil. Le trading quantitatif met simplement en œuvre des idées de trading de manière programmée, régulière et quantifiée. Le programme remplace uniquement l'exécution. La partie difficile est de gagner de l’argent de manière stable à long terme, car le marché est un jeu et évolue de manière dynamique, et les idées de trading doivent également évoluer avec le marché.
Risques du trading quantitatif
Le trading quantitatif comporte également des risques, pourquoi ? Parce que le trading quantitatif consiste à découvrir des modèles dans des données historiques et à élaborer des stratégies de trading. Cependant, le marché financier est un système écologique, et ses lois et la nature humaine sont un processus dynamique interactif. En fin de compte, il s’agit toujours d’un marché humain. Les lois du marché seront affectées par la nature humaine, et la cupidité et la peur de la nature humaine changeront avec les changements du marché. Il existe très peu de lois immuables sur le marché. Quelle que soit la puissance de la stratégie commerciale, il est difficile de faire face à des changements législatifs aussi soudains.
Résumer
D'après l'explication ci-dessus, nous pouvons voir que le trading quantitatif n'est pas une méthode de trading unique, c'est juste un outil de trading pour nous aider à analyser la logique de trading et à améliorer les stratégies de trading. Que vous soyez un investisseur axé sur la valeur ou un investisseur technique, et que vous investissiez dans des actions, des obligations, des matières premières ou des options, tout peut en fait être quantifié. Comparés aux traders qui prennent des décisions basées sur leur expérience personnelle, les armes entre les mains des traders quantitatifs sont les preuves du marché et la rationalité.
Aperçu de la section suivante
La quantification n'est qu'une méthode de trading, la stratégie n'est qu'un vecteur d'idées de trading et le programme exécute chaque processus de trading. La section suivante vous guidera à travers le cycle de vie complet du trading quantitatif, qui comprendra : la conception de la stratégie, la construction du modèle, le backtesting et le réglage, le trading de simulation, le trading réel, le suivi de la stratégie, etc.
Devoirs
- Quelle est la différence la plus importante entre le trading quantitatif et le trading subjectif ?
- Quels sont les avantages du trading quantitatif par rapport au trading subjectif ?
1.3 De quoi avez-vous besoin pour vous préparer au trading quantitatif ?
résumé
Un cycle de vie complet de trading quantitatif ne se limite pas à la stratégie de trading elle-même. Il comprend au moins six maillons, dont : la conception de la stratégie, la construction du modèle, le backtesting et le réglage, le trading de simulation, le trading réel, le suivi de la stratégie, etc.
Réflexion stratégique
Tout d'abord, pour faire du trading quantitatif, vous devez d'abord revenir sur le marché de trading, observer davantage les prix sur le marché, comprendre les lois des fluctuations du marché, essayer de déduire la logique de chaque transaction et enfin résumer la stratégie de trading. Il n’y a pas de raccourci ici. Vous devrez peut-être lire des livres d’investissement classiques ou continuer à trader et à apprendre de vos échecs.
Pour les débutants en trading quantitatif, la meilleure façon de développer des stratégies de trading au début est d'imiter. Utilisez directement les indicateurs d'analyse technique existants pour construire la logique de la stratégie et rédiger les règles d'achat et de vente, afin d'obtenir une stratégie simple. Supposons que votre stratégie de trading soit la suivante : acheter si le prix est supérieur au prix moyen des 10 derniers jours et vendre si le prix est inférieur au prix moyen des 10 derniers jours. Son architecture est alors la suivante (comme indiqué ci-dessous) :

Figure 1-2 Exemple de stratégie de trading
Bien sûr, à mesure que vous accumulez de l’expérience en matière de stratégie et que vous développez vos propres méthodes de trading, vos choix logiques deviendront de plus en plus diversifiés et vous progresserez vers un trading quantitatif plus systématique. Si vous pouvez être un trader avec une pensée quantitative, que ce soit sur le marché boursier ou à terme, c'est une bénédiction, car une telle personne a une rentabilité soutenue et stable quel que soit le marché commercial sur lequel elle se trouve.
Construire le modèle
Deuxièmement, vous devez maîtriser un outil de trading quantitatif pour rédiger des stratégies de trading et réaliser vos idées de trading. N’importe quel logiciel couramment utilisé sur le marché peut être utilisé. Mais si vous voulez devenir un trader quantitatif haut de gamme, vous devez apprendre
Connaître un langage informatique. Je recommande Python car c'est le langage de référence pour le calcul scientifique.
Il fournit également divers packages d'analyse open source, de traitement de fichiers, de mise en réseau, de bases de données, etc.
Si vos capacités de programmation sont faibles, ce qui est considéré comme le point faible de la plupart des débutants, il est recommandé d'utiliser un langage de programmation visuel relativement simple ou un langage Mai, ce qui peut augmenter votre intérêt pour l'apprentissage du trading quantitatif et vous permettre de vous concentrer sur les stratégies et de terminer le développement de la stratégie de manière efficace. Comme indiqué ci-dessous : en utilisant le langage Mai, développez une stratégie de trading comme mentionné ci-dessus. Double-cliquez sur l'image pour voir les commentaires détaillés dans le code de la stratégie.

Figure 1-3 Page de développement de la stratégie de trading
Le code de stratégie dans la figure ci-dessus est démontré en utilisant le langage Mai de l'outil quantitatif de l'inventeur. Il intègre de nombreux modules fonctionnels utilisables directement et prend en charge le backtesting et les fonctions de trading réelles. C'est un bon moyen de démarrer rapidement.
Backtesting et tuning
Ensuite, après avoir écrit le modèle de stratégie, l’étape suivante consiste à tester la stratégie, ainsi qu’à filtrer et optimiser les paramètres. Vous pouvez utiliser différents paramètres pour tester la stratégie et observer le ratio de Sharpe de la stratégie, le drawdown maximum, le rendement annualisé, etc. En déboguant et en modifiant continuellement la stratégie, nous obtiendrons éventuellement une stratégie de trading quantitative complète.
Par exemple, nous prenons les données historiques de 2017 comme données d’échantillon et les données historiques de 2018 comme données hors échantillon. Tout d'abord, nous utilisons les données de 2017 pour optimiser plusieurs ensembles de paramètres avec de bonnes performances, puis nous utilisons ces paramètres pour optimiser les données de 2018.
Backtesting des données. D’une manière générale, les résultats des backtests hors échantillon ne sont pas aussi bons que les résultats des backtests dans l’échantillon. Cependant, si les résultats hors échantillon et dans l’échantillon sont très différents, alors la stratégie est presque inefficace et il est nécessaire d’observer et d’analyser pour déterminer les raisons de l’échec de la stratégie.
Supposons que nous constations que la stratégie échoue en raison de données hors échantillon et que certaines conditions de marché extrêmes entraînent des pertes importantes, nous pouvons alors ajouter une condition de stop loss fixe pour éviter ce risque ; si nous constatons que la stratégie échoue en raison d'un trop grand nombre de transactions, nous pouvons alors resserrer légèrement la logique de trading et réduire la fréquence des transactions.
Il convient de noter que si la logique de trading elle-même est erronée au début, il sera difficile d’obtenir une stratégie rentable, peu importe à quel point vous la modifiez. À ce stade, vous devez réexaminer votre réflexion stratégique. De plus, dans l’optimisation des paramètres, plus il y a de groupes de paramètres disponibles, mieux c’est, ce qui indique que la stratégie a une large applicabilité. Lors du backtesting, les stratégies comportant trop peu de transactions peuvent souffrir d'un biais de survie. Si le résultat du backtest est une courbe de fonds super rentable
Dans de nombreux cas, votre logique est erronée.
Trading simulé
Ensuite, lorsque vous obtenez une stratégie avec une logique de trading correcte et rentable à l’intérieur et à l’extérieur de l’échantillon, ne vous précipitez pas pour trader sur un compte réel. Surtout pour les débutants, il est nécessaire de gérer un compte simulé pendant au moins 3 mois. S'il s'agit d'une stratégie de nuit à fréquence moyenne ou basse, un temps de trading simulé plus long sera nécessaire.
Dans un marché simulé totalement inconnu dans le futur, observez les performances de la stratégie dans le trading simulé, vérifiez soigneusement si le signal de backtest est cohérent avec le signal de trading simulé et s'il existe un écart entre le prix lorsque l'ordre est passé et le prix lorsque la transaction est terminée. Si la performance est conforme aux attentes, cela signifie que la stratégie est efficace.
Travaux sur disque
Enfin, après avoir testé la stratégie pendant une longue période, il est temps de la mettre en pratique dans le trading réel. Bien entendu, nous devons également rester vigilants et nous prémunir contre les conditions extrêmes du marché pendant le processus de négociation quantitative. Dans le trading réel, les attentes d’une stratégie sont généralement réduites, et atteindre 50 % des attentes est considéré comme qualifié.
Suivi des politiques
Enfin, je dois rappeler à tout le monde qu’à mesure que le trading progresse, nous devons également observer l’efficacité de la stratégie. Lorsque nous constatons que la stratégie entraîne des pertes supérieures aux attentes, nous devons réévaluer la stratégie. Étant donné que les caractéristiques du marché vont changer, les stratégies que nous élaborons actuellement visent principalement les caractéristiques passées du marché. Une fois que les caractéristiques du marché changent, le modèle de stratégie doit être ajusté en temps opportun, ou la stratégie doit être temporairement suspendue.
Résumer
Dans cet article, nous expliquons le processus complet du trading quantitatif. En bref, si vous êtes un investisseur avec une expérience du marché, ce qui vous retiendra, ce sont les bases du langage informatique. Vous pouvez commencer avec le langage visuel ou le langage Mai, vous former sur cette plateforme, construire des stratégies, puis vous tourner progressivement vers le trading quantitatif haut de gamme Python.
Si vous êtes un étudiant en sciences et en ingénierie ou un professionnel de l'informatique doté de solides compétences en programmation, ce qui vous gênera sera l'expérience en investissement sur le marché. Ne sous-estimez pas ce point. En tant qu’investisseur quantitatif qualifié, les deux types de connaissances sont indispensables.
Aperçu de la section suivante
Le cœur de l’ensemble du cycle de vie du trading quantitatif reste la stratégie de trading. Dans la section suivante, nous développerons les éléments d’une stratégie de trading complète du point de vue du cadre de la stratégie de trading. Cela vous aidera à élaborer votre stratégie de trading de manière plus complète et à amener le trading quantitatif à un nouveau niveau !
Devoirs
- Essayez d'écrire la stratégie de trading dans cette section en utilisant le langage Mai.
- Quel est l’indicateur de performance le plus important dans le backtesting du trading quantitatif ?
1.4 Quels sont les éléments d’une stratégie complète ?
résumé
Une stratégie complète est en fait une variété de règles que les traders se fixent. Il couvre tous les aspects de la transaction et ne laisse aucune place à l’imagination subjective des traders. La stratégie donnera une réponse à chaque décision d’achat et de vente. Cela comprend au moins la sélection de la stratégie, la sélection des produits, la gestion du capital, le placement des ordres, la réponse aux conditions extrêmes du marché, la mentalité de trading, etc.
Sélection de stratégie
Du point de vue des fonds spéculatifs, les stratégies de trading traditionnelles peuvent être divisées en trading de tendance, trading de paires, trading de panier, trading événementiel, trading haute fréquence, stratégies d'options, etc., comme le montre la figure ci-dessous. Bien entendu, la manière dont les stratégies sont catégorisées n’est pas fixe.

Figure 1-4 Classification des stratégies de trading
Pour les débutants en trading quantitatif, vous n’avez pas à vous soucier de tant de termes et de concepts. Commencez simplement par l’étape la plus simple. Si je ne recommande qu'une seule stratégie de trading quantitatif aux débutants, c'est le trading de tendance, car il est simple et efficace. Je crois que même si vous n’apprenez pas systématiquement les connaissances financières, vous pouvez toujours faire du bon trading. Et cette stratégie existe depuis longtemps, dans les premières stratégies de trading public, et elle est toujours efficace sur de nombreux marchés aujourd’hui, car la nature humaine est difficile à changer.
Quoi acheter et vendre
Quiconque a fait du commerce doit savoir que chaque variété a sa propre personnalité. Certaines variétés ont une personnalité très « chaude », avec une bonne liquidité, de grandes fluctuations et une volatilité élevée ; certaines variétés ont une personnalité très « docile », fluctuant dans une certaine fourchette tout au long de l'année et présentant une faible volatilité.
Par conséquent, lors du choix des produits de trading, vous devez avoir le concept de volatilité. Les produits à forte volatilité peuvent souvent facilement développer une bonne tendance. Pour les contrats à terme sur matières premières, s’il s’agit d’une stratégie de suivi de tendance, essayez de choisir des produits industriels. En termes d’attributs de produits, les produits industriels ont tendance à avoir une plus grande volatilité que les produits agricoles.
Différentes stratégies s'adaptent aux différentes conditions du marché, et le choix des bons produits de trading est un début très critique pour le grand projet de trading à terme. Dans un sens absolu, il n’existe pas de variétés absolument bonnes ou absolument mauvaises. En fonction de votre style d’investissement et de votre tolérance au risque, vous devez apporter les ajustements correspondants à vos propres normes.
Combien acheter et vendre
Il est facile de perdre de l’argent dans le trading, mais difficile d’en gagner. Lorsque les fonds du compte perdent 50 %, un bénéfice de 100 % est requis pour récupérer la perte. Même si vous pouvez réaliser un bénéfice de 100 % plusieurs fois, il vous suffit de perdre 100 % une seule fois pour tout perdre. Par conséquent, une stratégie de trading mature doit inclure la gestion de l’argent.
Pour faciliter la compréhension de tous, la stratégie de moyenne mobile de la section précédente est également utilisée ici. En fait, de nombreuses stratégies de trading construites avec des indicateurs techniques traditionnels ont généralement un taux de drawdown maximal de plus de 50 %, voire plus. Mais une stratégie très risquée et totalement impraticable ?
Évidemment non, le taux de drawdown maximum peut être entièrement contrôlé par la gestion des fonds. Si la position est réduite de moitié, le risque global sera également réduit de moitié et le taux de drawdown maximum deviendra 30 %. Si la position est à nouveau réduite de moitié, le taux de drawdown maximum deviendra 15 %. Au final, on obtient une stratégie avec un taux de drawdown maximum contrôlé autour de 15%. Il s’agit d’une méthode simple et rudimentaire de gestion de l’argent. Beaucoup de gens savent qu’ils ne peuvent pas travailler avec une position complète, mais ils ne savent pas pourquoi ils ne peuvent pas travailler avec une position complète. La réponse est ici.
Quand acheter et vendre
Un bon argument d’achat représente la moitié du succès, car il peut rapidement vous sortir de la zone de coût. Mais personne ne pourra jamais vous dire que partir de ce point est bien et que partir de ce point est mal. L’ouverture d’une position n’est pas le cœur du trading. Le cœur du trading est de savoir comment optimiser la position autant que possible après l’ouverture d’une position.
Qu’il s’agisse d’une stratégie à court ou à long terme, ce qui compte n’est pas de savoir qui détient la position le plus longtemps, mais le rapport risque-rendement. En d’autres termes, le résultat ultime qui affecte la performance de la stratégie est la manière de sortir et le moment de réaliser des bénéfices. Les méthodes de sortie peuvent être divisées en deux types : sortie stop loss et sortie take profit. Ces deux parties sont nécessaires à tout système de trading et constituent également des étapes importantes qui déterminent le succès ou l’échec d’une stratégie de trading.
Comment acheter et vendre
1. Type et mode de passation d'une commande :
Il existe de nombreux types et méthodes de passation d'ordres, tels que : l'utilisation d'ordres à cours limité en file d'attente, le prix de la contrepartie, le dernier prix, le surprix, le prix limite supérieur, le prix limite inférieur, l'achat au premier prix, l'achat au deuxième prix, la vente au premier prix, la vente au deuxième prix, ou l'utilisation du prix de la file d'attente en premier puis du surprix, le placement d'ordres par lots, ou la division des gros ordres en petits ordres, ou simplement le placement de tous les ordres directement.
2. Annulation de commande
Si l'ordre n'est pas exécuté, devez-vous continuer à attendre ou annuler l'ordre ? La condition d'annulation est basée sur le temps. Par exemple, s'il n'y a aucune transaction dans les 10 secondes et que le prix est à 10 sauts du prix lorsque la commande a été passée, devez-vous continuer à attendre, annuler la commande ou suivre la commande.
3. Commandes de suivi
Lorsqu'un ordre n'est pas exécuté, il faut savoir s'il faut donner suite à l'ordre. Si vous poursuivez un ordre, devez-vous le faire en fonction du dernier prix, du prix de la contrepartie ou de la limite de prix ? Si l'ordre poursuivi n'a pas encore été exécuté, devez-vous continuer à poursuivre l'ordre ?
4. Limite de prix
Que dois-je faire lorsque le signal d'ordre apparaît et qu'il s'agit du prix limite supérieur ou inférieur ? S'il faut faire la queue pour l'exécution aux prix limites supérieure et inférieure, et que faire si aucune exécution n'est effectuée.
5. Appel aux enchères
Devez-vous participer à l'enchère d'ouverture et comment y participer.
6. Trading de nuit
Pour certains contrats à terme sur matières premières, la négociation nocturne s'étend de 21h00 à 02h30 le lendemain. Durant cette période, vous pouvez choisir de le faire manuellement ou par ordinateur.
7. Grands festivals
Vous avez besoin de conserver vos positions avant les vacances extra-longues lors des grands festivals ? Comment contrôler les risques en cas de rétention.
Conditions de marché extrêmes
-
De fortes fluctuations de prix sur une courte période
Comment gérer des situations telles que les limites de prix instantanées, les limites de prix continues, les commandes erronées, les ruées vers les prix du marché du cygne noir, etc. -
Risque de liquidité
Si la contrepartie n'a pas le volume d'ordre que vous souhaitez, mais que vous devez terminer la transaction à temps, en particulier lorsque la liquidité des contrats non principaux est très faible, les ordres que vous passez peuvent facilement avoir un impact sur le marché et le glissement est important, comment devez-vous y faire face ? -
Modifications des règles relatives aux variétés
Les produits à terme sur matières premières sont ajoutés au trading de nuit, le ratio de marge est augmenté et les frais de traitement sont augmentés. Les stratégies à court terme, en particulier, seront très sensibles à ces changements. -
Risques liés à l'environnement commercial
Par exemple : comment réagir en cas de pannes de courant soudaines, de pannes d’Internet, de pannes informatiques, de pannes de logiciels, de suspension de transferts bancaires à terme, de catastrophes naturelles, etc.
La probabilité que la situation ci-dessus se produise est très faible, voire presque impossible. Mais si cela peut arriver, cela arrivera. Il est nécessaire de faire ces hypothèses et de prendre des précautions.
Construction psychologique
Les trois principales émotions psychologiques courantes dans le trading sont la cupidité, la peur et la chance. Les investisseurs ont besoin d’un système de psychologie commerciale solide pour contrôler et même utiliser les trois émotions ci-dessus à différentes étapes.
Avant de négocier, vous devez avoir une attente globale pour l’avenir, y compris les attentes du marché et les attentes psychologiques pour le produit. Les attentes du marché font référence à un objectif clair concernant la position et l'orientation future du marché, et les attentes du produit font référence aux opportunités de négociation et au statut de risque du produit à sa position actuelle. Sans la base psychologique ci-dessus, rien ne peut être réalisé.
L’ensemble du processus de trading réel est un processus d’analyse, de correction et d’exécution continus. Il n’y a pas beaucoup de temps consacré au trading, mais plus de temps consacré au suivi et à la patience. Il s’agit d’un processus qui examine de manière exhaustive la mentalité et teste la nature humaine. Toutes les habitudes des traders seront entièrement affichées et amplifiées pendant le processus de trading. Ce n’est qu’en apprenant et en résumant constamment les expériences et les leçons, et en continuant à acquérir de l’expérience, que nous pouvons surmonter les faiblesses de la pensée commune et les faiblesses psychologiques de la nature humaine.
Résumer
Pour résumer, la soi-disant stratégie de trading est en fait comme ceci. Il a son côté parfait et son côté incomplet. Lorsque nous mesurons si une stratégie de trading est raisonnable, nous ne pouvons pas seulement regarder son côté parfait ou son côté incomplet. Nous devrions analyser de manière exhaustive l’intégrité de la stratégie.
Enfin, en fonction des caractéristiques de la stratégie, combinées à votre propre personnalité et à votre situation financière, mesurez si la stratégie vous convient. Si cela vous convient, vous devez évaluer pleinement la probabilité que vous vous y teniez et prévoir à l’avance le pire résultat. Si vous avez pensé au pire scénario, la probabilité qu’il se produise est relativement élevée.
N'oubliez pas que dans le trading, la confiance vient de votre reconnaissance sincère et la confiance vient de la bonne philosophie de trading !
Aperçu de la section suivante
Ceci est le dernier article du premier chapitre. Dans le chapitre suivant, nous expliquerons plus en détail les outils de trading quantitatif, notamment : une introduction générale aux outils quantitatifs, comment configurer un système de trading quantitatif, des explications API courantes et comment écrire des stratégies sur un système quantitatif.
Devoirs
- Les stratégies de trading de tendance doivent-elles choisir des produits à forte volatilité ou à faible volatilité ?
- Quels sont les types d’ordres de trading ?
Chapitre 2 Introduction aux outils quantitatifs
2.1 Introduction générale aux outils quantitatifs
résumé
Dans le chapitre précédent, nous avons appris les concepts pertinents du trading quantitatif et acquis une compréhension de base du trading quantitatif. Alors, quels sont les outils de trading quantitatif sur le marché ? Comment choisir en fonction de nos besoins ?
Logiciels open source et commerciaux
Les outils de trading quantitatif nationaux peuvent généralement être divisés en deux catégories : les logiciels open source et les logiciels commerciaux. Les logiciels dits open source peuvent être compris comme des logiciels dont le code source est ouvert et peut être directement téléchargé pour être utilisé ; Les logiciels commerciaux font généralement référence aux logiciels à source fermée maintenus et exploités par des sociétés commerciales, qui sont généralement rémunérées.
Logiciel quantitatif open source
Tout d’abord, les logiciels open source offrent une grande flexibilité et sont entièrement gratuits. Les utilisateurs peuvent essentiellement utiliser ce logiciel pour mettre en œuvre n'importe quelle fonction, qu'il s'agisse de stratégies de trading à moyenne ou basse fréquence, de stratégies d'arbitrage ou de stratégies d'options, qui peuvent être réalisées grâce à des modules personnalisés. Étant donné que les utilisateurs contrôlent le code source du logiciel et peuvent comprendre chaque recoin du logiciel, il est plus fiable et plus sécurisé.
Bien que les logiciels open source présentent de nombreux avantages, ils ne sont pas très conviviaux pour les débutants en trading quantitatif. Vous devez apprendre systématiquement un langage de programmation standard tel que Python, Java ou C++. Du début à l’abandon, on imagine la difficulté. Parfois, le débogage des bugs peut vous faire douter de votre vie. Et contrairement aux logiciels commerciaux, il existe un service client technique dédié pour répondre instantanément à vos questions. Non seulement vous n’éprouverez pas de sentiment d’accomplissement à ce moment-là, mais cela vous découragera également de continuer à apprendre.
Par conséquent, du point de vue de l'apprentissage, il est recommandé aux débutants en trading quantitatif de commencer étape par étape, en commençant par le logiciel commercial le plus simple. Bien que payant, si la stratégie est rentable, les frais du logiciel ne représentent qu'une fraction du bénéfice. De plus, les logiciels commerciaux sont généralement maintenus par une équipe, et leur maturité est certainement beaucoup plus forte que celle des logiciels open source.
Logiciels quantitatifs d'entreprise
Il existe des dizaines de logiciels commerciaux pour le trading quantitatif en Chine, tels que : Interactive Broker, qui est professionnel, complet et propose de nombreux produits ; APAMA, qui peut gérer des données simultanées massives et convient au trading haute fréquence ; SPT, qui prend en charge l'interface C++ et a une bonne efficacité d'exécution ; Nuggets Quantitative, qui se concentre sur l'exécution des transactions et le contrôle des risques ; et MC, TB et MQ pour les traders individuels. Dans la figure ci-dessous, nous avons effectué une évaluation complète des principales plateformes quantitatives nationales et avons également effectué une certaine classification de la difficulté des outils quantitatifs. Les lecteurs peuvent choisir en fonction de leur situation réelle.

Figure 2-1 Évaluation complète des principales plateformes quantitatives nationales
Bien que les logiciels ci-dessus soient des logiciels commerciaux, ils utilisent également des langages de programmation standard ou des langages de script. Au lieu de faire cela, il est préférable d’utiliser directement un logiciel open source gratuit et sécurisé. Il est recommandé aux débutants d'utiliser directement la plateforme quantitative FMZ Inventor, le site Web est www.fmz.com. Comme tremplin vers l'apprentissage du trading quantitatif.
Rencontrez l'inventeur des outils de trading quantitatif
Les outils quantitatifs de l'inventeur sont conviviaux pour les débutants. Même si vous n’avez aucune connaissance de base, vous pouvez découvrir le charme de l’analyse quantitative grâce aux outils qu’elle contient. Cet outil est conçu pour le trading haute fréquence et a des exigences strictes en matière de performances et de sécurité. Prend en charge les stratégies à haute fréquence, les stratégies d’arbitrage et les stratégies de tendance. Et il intègre le processus complet de développement de stratégie, de test, d'optimisation, de simulation et de trading réel. De plus, il prend en charge à la fois le langage Mai simple et facile à utiliser et les langages de trading quantitatifs avancés tels que Python et C++, ce qui signifie une commutation transparente après un seul apprentissage. Et seul le trading réel est facturé 0,125 yuan/heure, ce qui réduit vos coûts logiciels pendant la phase d'apprentissage. En même temps, vous pouvez effectuer des simulations de trading gratuitement.
Faire le premier pas vers la quantification : utiliser des outils quantitatifs
Les outils quantitatifs sont très faciles à utiliser. Il vous suffit d'entrer sur le site Web et de cliquer dessus pour concevoir votre propre stratégie quantitative. Vous pouvez vous connecter au site Web officiel de l'outil quantitatif Inventor, vous inscrire et vous connecter, puis cliquer sur le centre de contrôle pour l'utiliser (comme indiqué ci-dessous). C'est similaire au TikTok actuellement populaire. Après inscription et connexion, vous pouvez publier vos propres courtes vidéos et, après vous être connecté à l'outil quantitatif, vous pouvez concevoir votre propre stratégie de trading quantitatif.

Figure 2-2 Page principale de la plateforme de trading quantitatif FMZ
Il y aura une zone fonctionnelle centralisée pour la programmation d'outils quantitatifs. La zone fonctionnelle comprend principalement (comme indiqué ci-dessous). Le centre de contrôle dans le coin supérieur gauche est la fonction principale de l'outil quantitatif. Après avoir cliqué dessus, vous pouvez écrire des stratégies de trading et des backtests de stratégie, définir l'échange pour les produits de trading, créer un dépositaire pour gérer les robots de stratégie et créer des robots de trading quantitatifs spécifiques. Quant à l’utilisation spécifique des fonctions, nous les présenterons en détail dans les articles suivants. Pour l’instant, nous ne faisons que des travaux préliminaires.

Figure 2-3 Page de gestion après connexion à la plateforme de trading quantitatif FMZ
Les amis qui débutent dans la recherche quantitative n’ont pas besoin d’être découragés par leur incapacité à comprendre les codes et la programmation. Afin d'abaisser le seuil pour les utilisateurs, la communauté officielle a produit de nombreux tutoriels vidéo pour aider les débutants en trading quantitatif à démarrer rapidement ; Dans le même temps, Strategy Square regroupe des milliers de stratégies de trading officielles et tierces, gratuites et ouvertes, que chacun peut copier et apprendre.
De plus, des exemples de stratégies classiques sont également configurés dans l'interface d'édition de stratégie. Vous pouvez utiliser directement le code de stratégie en cliquant dessus et découvrir facilement le processus de base de l'ensemble du trading quantitatif. Même les utilisateurs novices peuvent l'apprendre immédiatement et le suivre !
Avant de trader en argent réel, le trading simulé est également une étape indispensable. Le trading simulé de cet outil est conforme aux règles de la bourse et est entièrement gratuit. Le temps, le prix, le volume de commande, etc. inclus dans la simulation correspondent au marché réel en temps réel, ce qui est très cohérent avec le trading réel. Améliore considérablement l’efficacité de la vérification de la stratégie.
Résumer
Qu'il s'agisse de logiciels open source ou de logiciels commerciaux, il n'y a pas de distinction entre le bon et le mauvais, et il n'existe pas d'outil de trading quantitatif parfait. Chaque outil a son propre objectif. Le plus important est de choisir l’outil qui vous convient en fonction de vos besoins. Les logiciels commerciaux nécessitent un paiement, sont meilleurs en termes de service, etc. et peuvent être plus adaptés aux débutants qui viennent d'entrer dans ce secteur. Si vous travaillez dans ce secteur depuis longtemps et avez accumulé beaucoup d’expérience, ou si vous devez mettre en œuvre des stratégies de trading plus complexes, les logiciels open source sont un meilleur choix.
Aperçu de la section suivante
Comment utiliser les outils ? Tout comme lorsque nous achetons un nouveau téléphone portable et devons effectuer des réglages de démarrage simples lorsque nous l'allumons pour la première fois, les outils quantitatifs ont également besoin de réglages et de configurations de base. Dans la section suivante, nous vous guiderons étape par étape pour configurer l'outil de trading quantitatif Inventor. Ouvrez la première porte au trading quantitatif, notamment : l'ajout d'échanges, l'ajout de dépositaires, la création de stratégies de trading, la création de robots quantitatifs, etc. Après avoir terminé la configuration de base, vous pouvez officiellement écrire votre première stratégie quantitative.
Devoirs
- Quelles sont les deux principales catégories d’outils de trading quantitatif ?
- Quels sont les langages de programmation quantitatifs couramment utilisés ?
2.2 Comment configurer le système de trading quantitatif Inventor
résumé
Lors du développement de stratégies de trading quantitatives, la première chose à faire est de configurer les outils de trading. Qu'est-ce que la configuration ? En fait, ce ne sont que des paramètres. Dans cette section, nous vous expliquerons comment configurer une bourse, créer une stratégie de trading et créer un robot de trading quantitatif, qui sont tous des prérequis nécessaires au trading quantitatif.
La configuration est divisée en configuration de trading de simulation d'apprentissage d'entrée de gamme et en configuration de trading en temps réel. Dans cette catégorie, nous nous concentrons principalement sur les contrats à terme sur matières premières nationales. D’autres types d’investissement quantitatif ne sont pas recommandés ou introduits en raison de conditions nationales spécifiques, mais le processus de fonctionnement est le même, seul le processus de configuration est différent.
Ajout d'une bourse
L’ajout d’un échange est la première étape de l’ensemble du processus de configuration. Veuillez consulter la figure ci-dessous pour le processus spécifique. Dans cette étape, nous devons souligner que l’ajout d’un échange n’est pas difficile pour ceux qui ne savent pas à quel échange ils appartiennent. Il est recommandé de simuler d’abord l’apprentissage.

Figure 2-4 Enregistrement de la plateforme de trading quantitatif FMZ et ajout des étapes d'échange
Configuration de la bourse des contrats à terme sur matières premières (en direct)
Notre trading quantitatif en temps réel se concentre principalement sur les produits de trading à terme nationaux. Actuellement, les principaux objets de service d'Inventor Quantitative sont également les bourses à terme nationales. Pour les amis qui font du trading de devises, Inventor Quantitative peut être utilisé comme plate-forme d'apprentissage, car le trading quantitatif de devises est déjà apparu sur des plateformes telles que MT5, mais il est plus professionnel.
Les problèmes à noter dans la configuration en temps réel sont les suivants : Étant donné que les outils quantitatifs de l'inventeur prennent en charge plusieurs marchés de négociation, lors de la configuration des contrats à terme sur matières premières, vous devez d'abord sélectionner « contrats à terme traditionnels » à l'étape 1 ; à l'étape 2, vous devez renseigner le compte à terme et le mot de passe qui vous ont été fournis par la société à terme où vous avez ouvert un compte.
L'outil quantitatif de l'inventeur adopte le protocole CTP et prend en charge toutes les sociétés à terme nationales. Lors de la configuration du marché réel, il n'y aura pas d'échec de lien, sauf si le compte et le mot de passe sont erronés. Par conséquent, les débutants doivent veiller à vérifier clairement le compte et le mot de passe.

Figure 2-5 La plateforme de trading quantitatif FMZ ajoute un marché à terme
Configuration de la bourse à terme sur matières premières (simulation)
Pour les amis qui sont nouveaux dans le domaine des contrats à terme sur matières premières, je vous suggère de simuler d'abord le trading pendant un certain temps, car dans le processus de développement de stratégies de trading quantitatives, des tests, un débogage et une optimisation continus sont nécessaires. Tout comme pour la conduite, vous passerez certainement quelques mois à apprendre dans une auto-école au début, puis vous pourrez prendre la route après avoir réussi le test et obtenu votre permis.
Nous vous recommandons ici d'utiliser le trading simulé SimNow. SimNow est une plateforme de trading de simulation financière spécialement créée par Shangqi Technology pour les investisseurs. Ce produit simule les règles de négociation et de règlement de diverses bourses et prend actuellement en charge les activités de contrats à terme sur matières premières de diverses bourses à terme nationales. Pour le processus spécifique, veuillez consulter la figure ci-dessous.

Figure 2-6 Page de gestion de la plateforme de trading quantitatif FMZ après connexion
Rédaction de stratégies
La bibliothèque de stratégies est l'endroit où les codes sont stockés, ce qui équivaut à notre entrepôt de stratégies de trading quantitatif. Il est principalement divisé en deux fonctions : la rédaction de stratégies et le backtesting de simulation. La zone de rédaction de stratégie est notre principal domaine de travail pour développer des stratégies à l'avenir (comme indiqué ci-dessous). De nombreux débutants sont souvent bloqués par divers codes et trouvent cela très difficile. En fait, tant que vous faites un peu attention, vous pouvez apprendre ces codes. Je n'ai aucune charge psychologique. La zone de backtesting de simulation peut être utilisée pour déboguer des stratégies pendant le processus de développement de stratégie, ainsi que pour tester des stratégies une fois le développement de la stratégie terminé. Nous expliquerons cela en détail dans les chapitres suivants.

Figure 2-7 Étapes pour créer une politique
Créer un robot de trading quantitatif
Un robot de trading quantitatif est l'exécuteur d'une stratégie de trading. Une fois la stratégie créée, créez un robot qui peut vous aider automatiquement à exécuter chaque logique de trading dans le code de stratégie, ainsi qu'à ouvrir et fermer des positions, à retirer des ordres et à d'autres opérations d'achat et de vente. Les étapes spécifiques pour créer un robot de trading quantitatif sont les suivantes : Tout d'abord, étape 1 : Sur la page du centre de contrôle, cliquez sur « Robot », cliquez sur « Créer un robot » Étape 2 : Donnez au robot un nom personnalisé. Étape 3 : Cliquez sur le signe « + » pour ajouter une plateforme de trading. Étape 4 : Cliquez sur « Créer un robot »

Figure 2-8 Étapes pour créer un robot
Résumer
Dans le processus ci-dessus, à l'exception de la première étape de sélection du trading réel et de la simulation, les étapes suivantes de rédaction de stratégie et de création de robots de trading sont des étapes unifiées. L'ensemble de l'outil quantitatif a été configuré, le robot de trading est déjà opérationnel et effectuera des opérations d'achat et de vente en fonction des conditions spécifiques de la stratégie. Il y a trois étapes pour configurer le trading quantitatif : ajouter une bourse et renseigner le mot de passe de votre compte à terme ; rédiger une stratégie de trading ; et créer un robot de trading quantitatif en temps réel. N’est-ce pas simple ?
Aperçu de la section suivante
Bien que le trading quantitatif puisse être réalisé en seulement trois étapes simples, vous constaterez peut-être qu'il est facile d'ajouter des échanges et de créer des robots de trading quantitatif. Cependant, mettre en œuvre une stratégie de trading viable n’est pas si simple. Dans la section suivante, nous vous expliquerons les API couramment utilisées dans le trading quantitatif pour vous préparer à la rédaction d'une stratégie de trading réalisable. Car quel que soit le type d'outil de trading quantitatif utilisé, il est indissociable de l'interface API, qui est une fonction importante pour la réalisation de stratégies de trading quantitatif.
Devoirs
- Essayez d’ajouter un échange.
- Essayez d’écrire la stratégie de trading dans cette section.
2.3 Explication de l'API commune
résumé
En matière de programmation, nous ne pouvons pas éviter l’API. Pour de nombreuses personnes non spécialisées dans l’informatique, qu’est-ce qu’une API exactement ? API ≈ Je ne comprends pas. Dans cette section, nous expliquerons en langage clair ce qu'est l'API et présenterons les API couramment utilisées dans les outils quantitatifs.
Qu'est-ce qu'une API ?
Si vous effectuez une recherche en ligne, vous obtiendrez les résultats suivants : API (Application Programming Interface) est un ensemble de fonctions prédéfinies qui vise à fournir aux applications et aux développeurs la possibilité d'accéder à un ensemble de routines basées sur certains logiciels ou matériels sans avoir à accéder au code source ou à comprendre les détails du mécanisme de fonctionnement interne. Alors, pour le dire plus simplement, qu’est-ce qu’une API exactement ?
En fait, dans notre vie quotidienne, nous avons de nombreux scénarios similaires aux API. Par exemple, lorsque vous allez au restaurant pour manger, vous avez juste besoin de regarder le menu et de commander la nourriture, sans avoir à savoir comment elle est préparée. Les noms des plats dans le menu sont les API spécifiques et le menu est la documentation de l'API.
Qu'est-ce que l'API dans le trading quantitatif ?
Si vous avez besoin d’obtenir le prix d’ouverture du produit actuel aujourd’hui, vous n’avez pas besoin de savoir comment l’obtenir. Il vous suffit d'écrire « OPEN » dans l'éditeur de code et de l'utiliser directement. "OPEN" est l'API du prix d'ouverture en langue Mai.
API de langage Mai couramment utilisée
Avant d'expliquer l'API Mai Language, examinons la structure du code commun et ses composants fonctionnels. Cela vous aidera à mieux comprendre l'API. Voir l'exemple ci-dessous :

Figure 2-9 Exemple de langue Mai
Comme indiqué dans le code ci-dessus :
Le AA violet est une variable. Une variable est une quantité qui peut changer, tout comme l’algèbre que nous avons apprise au collège. Si le prix d'ouverture est attribué à AA, alors AA est le prix d'ouverture ; si le prix le plus élevé est attribué à AA, alors AA est le prix le plus élevé. Bien sûr, AA n'est qu'un nom personnalisé, vous pouvez également le définir comme BB.
Le « := » vert signifie affectation, ce qui signifie attribuer la valeur du côté droit du « := » à la variable de gauche.
Le code orange est l'API en langage Mai de l'outil quantitatif Inventor. Notez que OPEN dans la première ligne est l'API permettant d'obtenir le cours de clôture, qui peut être utilisé directement ; MA sur la deuxième ligne est l'API permettant d'obtenir la moyenne mobile, ce qui nécessite la transmission de deux paramètres, c'est-à-dire que vous devez indiquer à l'outil quantitatif Inventor le type de moyenne mobile dont vous avez besoin : si vous souhaitez obtenir une moyenne mobile sur 50 périodes calculée sur la base du prix d'ouverture, vous pouvez l'écrire comme suit : MA(OPEN,50) ; notez qu'il y a une virgule anglaise entre les deux paramètres.
Le « // » jaune est un symbole de commentaire et les caractères chinois bleus derrière lui sont le contenu du commentaire. Ceux-ci sont à lire par vous-même et servent à indiquer ce que signifie la ligne de code. Le programme ne traite pas les commentaires lorsqu'il est en cours d'exécution. Notez qu'avant le caractère de commentaire, chaque ligne de code doit avoir un point-virgule anglais comme fin de ligne.
Avec la compréhension de base de la structure du code, nous vous présenterons ci-dessous quelques langages couramment utilisés, et nous utiliserons également ces langages fréquemment à l'avenir.
OUVERT ——Obtenez le prix d'ouverture de la dernière ligne K
Exemple : AA : =OUVERT ; Obtenez le prix d'ouverture de la dernière ligne K et attribuez le résultat à AA
HAUT——Obtenez le prix le plus élevé de la dernière ligne K
Exemple : AA : =HIGH ; Obtenez le prix le plus élevé de la dernière ligne K et attribuez le résultat à AA
BAS——Obtenez le prix le plus bas de la dernière gamme K
Exemple : AA : =FAIBLE ; Obtenez le prix le plus bas de la dernière ligne K et attribuez le résultat à AA
FERMER——Obtenez le dernier prix de clôture de la ligne K. Lorsque la ligne K intrajournalière n'est pas terminée, obtenez le dernier prix
Exemple : AA : =FERMER ; Obtenez le prix de clôture de la dernière ligne K et attribuez le résultat à AA
VOL——Obtenez le dernier volume de transactions K-line
Exemple : AA : =VOL ; Obtenez le dernier volume de transactions K-line et attribuez le résultat à AA
REF(X,N) - Fait référence à la valeur de X il y a N cycles.
Exemple : REF(FERMER,1); Obtenez le prix d'ouverture de la ligne K précédente
MA(X,N)——Trouver la moyenne mobile simple de X sur N périodes
Exemple : MA(CLOSE,10) ; //Obtenez la moyenne mobile sur 10 périodes de la dernière ligne K
CROSSUP(A,B)——Lorsque A croise B de bas en haut, il renvoie 1 (Oui), sinon il renvoie 0 (Non)
Exemple : CROSSUP(CLOSE,MA(C,10)) // Le cours de clôture croise le cours moyen sur 10 périodes
CROSSDOWN(A,B)——Lorsque A croise B par le haut, il renvoie 1 (Oui), sinon il renvoie 0 (Non)
Exemple : CROSSDOWN(CLOSE,MA(C,10)) // Le cours de clôture passe en dessous du cours moyen sur 10 périodes
BK——Acheter une position d'ouverture
Exemple : FERMER>MA(FERMER,5),BK ; //Le prix de clôture est supérieur à la moyenne mobile sur 5 périodes, position d'achat
SP——Vendre pour clôturer la position
Exemple : CLOSE<MA(CLOSE,5),SP ; // Le prix de clôture est inférieur à la moyenne mobile sur 5 périodes, vendez et clôturez la position
SK——Vendre la position d'ouverture
Exemple : CLOSE<MA(CLOSE,5),SK ; //le cours de clôture est inférieur à la moyenne mobile sur 5 périodes, position de vente
BP — Acheter pour clôturer
Exemple : FERMETURE>MA(FERMETURE,5),BP ; //Le prix de clôture est supérieur à la moyenne mobile sur 5 périodes, achetez et clôturez la position
BPK ——Acheter pour fermer une position et acheter pour ouvrir une position (position longue inversée)
Exemple : CLOSE>MA(CLOSE,5),BPK ; // Le prix de clôture est supérieur à la moyenne mobile sur 5 périodes, fermez la position courte puis achetez pour ouvrir une nouvelle position.
SPK — Vendre pour fermer une position et vendre pour ouvrir une position (vente à découvert)
Exemple : CLOSE<MA(CLOSE,5),SPK ; // Le prix de clôture est inférieur à la moyenne mobile sur 5 périodes, fermez la position longue puis vendez la position ouverte.
CLOSEOUT ——Fermez toutes les positions, recommandé pour une utilisation dans le modèle d'augmentation et de diminution de position. Exemple : CLOSEOUT ; fermer toutes les positions dans toutes les directions.
API de langage JavaScript couramment utilisées
Avant d’expliquer l’API du langage JavaScript, examinons la structure du code commun et ses composants fonctionnels. Cela vous aidera à mieux comprendre l'API. Voir l'exemple ci-dessous :

Figure 2-10 Exemple de code JavaScript
Comme indiqué dans le code ci-dessus :
La création d'une variable dans le langage JavaScript est souvent appelée « déclaration » de la variable. En code rouge, nous utilisons le mot-clé var pour déclarer une variable, et le nom de la variable est en code orange : « aa ».
En JavaScript, le signe égal est utilisé pour attribuer des valeurs, c'est-à-dire que la valeur du côté droit de « = » est attribuée à la variable du côté gauche.
Le code cyan « échange » est l'objet d'échange. L'échange ici fait référence à la société à terme que vous avez définie. Il s'agit d'un format fixe, ce qui signifie que lorsque vous appelez l'API du langage JavaScript, vous devez spécifier l'objet d'échange.
Le code vert est l'API JavaScript. Lorsque nous l'appelons, nous appelons en fait la fonction dans l'objet d'échange. Notez le point après le code bleu, qui est également un format fixe. La fonction ici est la même que celle que nous avons apprise au collège. Si la fonction ne nécessite pas de paramètres, utilisez des parenthèses vides pour l'indiquer ; si la fonction doit passer des paramètres, écrivez les paramètres à l'intérieur des parenthèses.
Après avoir compris la structure de base et les principes du code à travers des exemples, nous vous montrerons plusieurs API de langage JavaScript que vous utiliserez souvent à l'avenir.
SetContractType("Code produit")——Définissez le type de contrat, c'est-à-dire le produit que vous souhaitez échanger
Exemple : exchange.SetContractType("rb1905"); //Définissez le type de transaction sur « Contrat Rebar 1905 »
GetTicker ——Obtenir les données Tick
Exemple : exchange.GetTicker(); //Obtenir les données Tick
GetRecords ——Obtenir les données K-line
Exemple : exchange.GetRecords(); //Obtenir les données de la ligne K
Acheter
Exemple : exchange.Buy(5000, 1); //Achetez un lot à 5000 yuans
Vendre——Acheter
Exemple : exchange.Sell(5000, 1); //Vendez un lot à 5 000 yuans
GetAccount ——Obtenir des informations sur le compte
Exemple : exchange.GetAccount(); //Obtenir des informations sur le compte
GetPosition ——Obtenir des informations de position
Exemple : exchange.GetPosition(); //Obtenir des informations de position
SetDirection ——Définir le type d'ordre long ou court
Par exemple:
échange.SetDirection("acheter"); //Définissez le type d'ordre sur acheter pour ouvrir une position longue
échange.SetDirection("closebuy"); //Définissez le type d'ordre à vendre pour fermer les positions longues
échange.SetDirection("vendre"); //Définissez le type d'ordre sur vendre pour ouvrir une position courte
échange.SetDirection("closesell"); //Définissez le type d'ordre sur acheter pour fermer les positions courtes
Journal - Afficher un message dans le journal
Exemple : Log("bonjour, le monde"); // Afficher « hello world » dans le journal
Sommeil - Mettre le programme en pause pendant un certain temps
Exemple : Sleep(1000) ; //Mettre le programme en pause pendant 1 seconde
Certains d'entre vous peuvent avoir des questions, comment se souvenir de tant d'API ci-dessus ? En fait, vous n’avez pas besoin de tout mémoriser. Le site Web officiel d'Inventor Quant dispose d'un ensemble détaillé de documentation API. Tout comme lorsque vous consultez un dictionnaire, lorsque vous en avez besoin, il vous suffit de le consulter. Ne vous laissez pas intimider par les codes et autres contenus que vous connaissez pour la première fois. Ce que nous voulons, c’est organiser nos propres stratégies à travers ces langages. N’oubliez pas que la technologie n’est jamais le seuil de la quantification. Avoir une bonne stratégie est la clé pour savoir si vous pouvez investir à long terme sur le marché quantitatif.
Résumer
Les API ci-dessus sont les plus couramment utilisées dans le trading quantitatif, qui comprennent essentiellement : l'obtention de données, le calcul de données, le placement d'ordres d'achat et de vente, qui suffisent à gérer une stratégie de trading quantitatif simple. Bien sûr, si vous souhaitez rédiger une stratégie plus complexe, vous devez vous rendre sur le site officiel de l'Inventor Quantitative Tool pour l'obtenir.
Devoirs
- Essayez d'écrire une déclaration en langue mai selon laquelle la moyenne mobile sur 5 périodes croise la moyenne mobile sur 10 périodes.
- Essayez d'utiliser GetAccount en JavaScript pour obtenir les informations de votre compte et imprimez-les dans le journal à l'aide de Log.
Aperçu de la section suivante
La programmation est comme l'assemblage de blocs Lego, les API sont comme les différentes parties des blocs, et le processus de programmation consiste à assembler les différentes pièces Lego pour former un jouet complet. Dans la section suivante, je vous guiderai dans l’utilisation de l’API Mai Language pour assembler une stratégie de trading quantitative complète.
2.4 Comment rédiger des stratégies sur le système quantitatif Inventor
résumé
Après avoir étudié les sections précédentes, vous pouvez enfin commencer à rédiger des stratégies de trading quantitatives. Ce sera l’étape la plus importante pour passer du trading manuel au trading quantitatif. En fait, ce n’est pas si mystérieux. Écrire une stratégie n’est rien d’autre que transformer vos idées en code. Cette section mettra en œuvre une stratégie de trading quantitative à partir de zéro et vous familiarisera avec la manière d'écrire des stratégies sur le système quantitatif Inventor.
Préparer
Tout d'abord, ouvrez le site Web officiel de l'outil quantitatif Inventor et cliquez successivement sur « Bibliothèque de stratégies » et « Nouvelle stratégie ». Il convient de noter qu'avant de commencer à écrire du code, vous devez sélectionner le langage Mai ou le langage JavaScript dans le menu déroulant du langage de programmation. Bien entendu, la plateforme prend également en charge Python, C++ et le langage visuel.
Idées stratégiques
Dans le chapitre précédent, nous avons présenté une stratégie permettant de franchir la moyenne mobile par les prix. C'est-à-dire : si le prix est supérieur au prix moyen des 10 derniers jours, achetez ; si le prix est inférieur au prix moyen des 10 derniers jours, vendez. Cependant, bien que le prix puisse refléter directement l’état du marché, il y aura de nombreux faux signaux de percée ; nous devons donc mettre à jour et améliorer cette stratégie.
Tout d’abord, sélectionnez une moyenne mobile sur une période plus longue pour déterminer la direction de la tendance, qui a au moins filtré près de la moitié des faux signaux de percée. Bien que la moyenne mobile sur une grande période soit lente, elle sera plus stable ; ensuite, afin d'augmenter encore le taux de réussite à l'entrée, ajoutez une autre condition selon laquelle cette moyenne mobile sur une grande période est au moins à la hausse ; enfin, utilisez la relation de position relative du prix, de la moyenne mobile à court terme et de la moyenne mobile à long terme pour former une stratégie de trading complète.
Logique de stratégie
Avec les idées et réflexions stratégiques ci-dessus, nous pouvons essayer de construire la logique de la stratégie. La logique ici n’est pas de vous demander de calculer les lois du mouvement céleste ; ce n'est pas si compliqué. Il ne s’agit de rien d’autre que d’exprimer par des mots des idées stratégiques antérieures.
Ouverture de position longue: S'il n'y a pas de position actuelle et que le prix de clôture est supérieur à la moyenne mobile à court terme, et que le prix de clôture est supérieur à la moyenne mobile à long terme, et que la moyenne mobile à court terme est supérieure à la moyenne mobile à long terme, et que la moyenne mobile à long terme est en hausse.
Ouvrir une position courte: S'il n'y a pas de position actuelle et que le prix de clôture est inférieur à la moyenne mobile à court terme, et que le prix de clôture est inférieur à la moyenne mobile à long terme, et que la moyenne mobile à court terme est inférieure à la moyenne mobile à long terme, et que la moyenne mobile à long terme est en baisse.
Clôture de position longue:Si vous détenez actuellement un ordre long et que le prix de clôture est inférieur à la moyenne mobile à long terme, ou que la moyenne mobile à court terme est inférieure à la moyenne mobile à long terme, ou que la moyenne mobile à long terme est en baisse.
Clôture de position courte:Si vous détenez actuellement un ordre court et que le prix de clôture est supérieur à la moyenne mobile à long terme, ou que la moyenne mobile à court terme est supérieure à la moyenne mobile à long terme, ou que la moyenne mobile à long terme est en hausse.
Ce qui précède est la partie logique de l’ensemble de la stratégie de trading quantitatif. Si nous convertissons la version texte de la logique de stratégie en code, elle comprendra trois étapes : l'obtention des conditions du marché, le calcul des indicateurs et le placement des ordres d'achat et de vente.
Stratégie linguistique
La première étape consiste à obtenir des informations sur le marché. Dans cette stratégie de trading quantitative, nous avons seulement besoin d’obtenir le cours de clôture. En langue Mai, l'API pour obtenir le cours de clôture est : CLOSE. Autrement dit, il suffit d'écrire CLOSE dans le code pour obtenir le cours de clôture de la dernière ligne K.
Viennent ensuite les indicateurs de calcul. Dans cette stratégie de trading quantitative, nous utilisons au total 2 technologies, à savoir : la moyenne mobile à court terme et la moyenne mobile à long terme. Nous supposons que la moyenne mobile à court terme est une moyenne mobile sur 10 périodes et que la moyenne mobile à long terme est une moyenne mobile sur 50 périodes. Alors, comment utilisons-nous le code pour représenter la moyenne mobile sur 10 périodes et la moyenne mobile sur 50 périodes ? Veuillez consulter la figure suivante :

Figure 2-11 Code de stratégie linguistique Mai
Dans le trading manuel, nous pouvons voir en un coup d'œil si la moyenne mobile sur 50 périodes augmente ou diminue, mais comment l'exprimons-nous dans le code ? Réfléchissez-y attentivement, pour juger si la moyenne mobile est en hausse, n'est-ce pas que la valeur moyenne mobile sur 50 périodes de la ligne K actuelle est supérieure à la valeur moyenne mobile sur 50 périodes de la ligne K précédente, et la valeur moyenne mobile sur 50 périodes de la ligne K précédente est supérieure à la valeur moyenne mobile sur 50 périodes de la ligne K précédente ? Le contraire est vrai, ce qui signifie que la moyenne mobile est en baisse. Donc dans le code, cela devrait ressembler à ceci :

Figure 2-12 Code de moyenne mobile du jugement linguistique de Mai
Notez le code rose-rouge « AND » aux lignes 8 et 9 de la figure ci-dessus. Cela signifie « et » en langue Mai. Par exemple, la 9e ligne est traduite en chinois comme suit : Si la moyenne mobile sur 50 périodes de la ligne K actuelle est supérieure à la moyenne mobile sur 50 périodes de la ligne K précédente, et que la moyenne mobile sur 50 périodes de la ligne K précédente est supérieure à la moyenne mobile sur 50 périodes de la ligne K précédente, alors la valeur est calculée comme « oui » ; sinon, la valeur est calculée comme « non » et le résultat est attribué à « MA50_ISUP ».
La dernière étape consiste à passer des ordres d’achat et de vente. Il vous suffit d'appeler l'API de commande de l'outil quantitatif de l'inventeur après le code logique d'achat et de vente pour exécuter les opérations d'achat et de vente. Veuillez consulter la figure suivante :

Figure 2-13 Code de transaction d'achat et de vente en langue mai
Notez le code rose-rouge « OR » aux lignes 13 et 14 de l’image ci-dessus. Cela signifie « ou » en langue Mai. Par exemple, la ligne 13 est traduite en chinois comme suit : Si le prix de clôture de la ligne K actuelle est inférieur à la moyenne mobile sur 50 périodes de la ligne K actuelle, ou si la moyenne mobile sur 10 périodes de la ligne K actuelle est inférieure à la moyenne mobile sur 50 périodes de la ligne K actuelle, la valeur est calculée comme « oui » et un ordre est passé immédiatement ; sinon, c'est calculé comme "non" et rien n'est fait.
Attention : « ET » et « OU » sont des opérateurs logiques dans la langue Mai :
« ET » signifie que lorsque toutes les conditions sont « oui », la condition finale est « oui » ;
« OU » signifie que parmi toutes les conditions, tant que l'une d'entre elles est « oui », la condition finale sera « oui ».
Résumer
Ce qui précède est l'intégralité du processus de rédaction de stratégies de trading en langage Mai sur l'outil quantitatif Inventor. Il n'y a que trois étapes au total : depuis l'idée de stratégie, jusqu'à la conception de la stratégie et la description de la logique en mots, et enfin la mise en œuvre de la stratégie de trading complète avec du code. Bien qu’il s’agisse d’une stratégie simple, le processus de mise en œuvre spécifique est similaire à celui d’une stratégie plus complexe, sauf que l’algorithme et la structure des données de la stratégie sont différents. Par conséquent, tant que vous comprenez et maîtrisez le processus de stratégie quantitative dans cette section, vous pouvez utiliser le langage Mai pour effectuer des recherches de stratégie quantitative et vous entraîner sur les outils quantitatifs de l'inventeur selon vos besoins.
Devoirs
- Essayez de mettre en œuvre vous-même les stratégies de cette section.
- Sur la base de la stratégie de cette section, ajoutez les fonctions stop-profit et stop-loss.
Aperçu de la section suivante
Dans le développement de stratégies de trading quantitatives, les langages de programmation sont comme des armes et des équipements. Un bon langage de programmation peut vous aider à obtenir deux fois plus de résultats avec la moitié des efforts. Par exemple, il existe plus d'une douzaine de langages les plus couramment utilisés dans le secteur du trading quantitatif, notamment Python, C++, Java, C#, EasyLanguage, Mai Language, etc. Quelle arme dois-je choisir pour aller sur le champ de bataille ? Dans la section suivante, nous présenterons ces langages de programmation courants et les caractéristiques de chaque langage de programmation.
Chapitre 3 Langage de programmation simple pour mettre en œuvre des stratégies de trading
3.1 Évaluation horizontale des langages de programmation du trading quantitatif
résumé
Dans les chapitres 1 et 2, nous avons appris les bases du trading quantitatif et comment utiliser les outils quantitatifs de l'inventeur. Dans ce chapitre, nous allons mettre en œuvre la stratégie de trading en détail. Si vous voulez bien faire votre travail, vous devez d’abord affûter vos outils. Pour mettre en œuvre des stratégies de trading, vous devez d’abord maîtriser un langage de programmation. Cette section présente d’abord les principaux langages de programmation du trading quantitatif, ainsi que les caractéristiques de chaque langage de programmation.
Qu'est-ce qu'un langage de programmation
Avant d’apprendre un langage de programmation, vous devez d’abord comprendre le concept de « langage de programmation ». Le langage de programmation est un langage que les humains et les ordinateurs peuvent comprendre. Il s'agit d'un code de communication standardisé. Le but du langage de programmation est d’utiliser le langage humain pour contrôler les ordinateurs et leur dire ce que nous voulons faire. Les ordinateurs peuvent exécuter des instructions selon des langages de programmation, et nous pouvons également écrire des codes pour envoyer des instructions aux ordinateurs.
Tout comme nos parents nous ont appris à parler quand nous étions jeunes, ils nous ont également appris à comprendre ce que les autres disent. Après une longue période d’influence et d’auto-apprentissage, nous avons appris à parler sans nous en rendre compte et avons pu comprendre ce que disaient les autres enfants. Il existe de nombreuses langues, notamment le chinois, l'anglais, le français, etc. Par exemple :
Bonjour le monde
Bonjour tout le monde
Bonjour tout le monde
Si vous utilisez un langage de programmation pour afficher « Hello World » sur un écran d'ordinateur, cela ressemblerait à ceci :
Langage C : puts("Bonjour le monde");
Langage Java : System.out.println("Bonjour le monde");
Langage Python : print("Bonjour le monde")
Nous pouvons voir que les langages informatiques ont leurs propres règles spécifiques, et il existe de nombreux langages. Ces règles de langage sont les classifications des langages de programmation que nous devons vous expliquer aujourd'hui. Dans chaque classification, nous n'avons besoin de nous souvenir que des règles les plus élémentaires et les plus couramment utilisées, et nous pouvons utiliser ces langages de programmation pour communiquer avec les ordinateurs et laisser les ordinateurs exécuter des stratégies correspondantes selon nos instructions.
Classification des langages de programmation
Afin de faciliter votre référence et votre comparaison, et de sélectionner le langage de programmation de trading quantitatif qui vous convient, nous allons classer les six langages de programmation les plus couramment utilisés, à savoir Python, Matlab/R, C++, Java/C#, EasyLanguage et le langage visuel (comme indiqué ci-dessous).

Figure 3-1 Évaluation du langage de programmation
Nous les avons évalués en fonction de leur portée fonctionnelle, de leur vitesse d’exécution, de leur évolutivité et de leur difficulté d’apprentissage. Le score est compris entre 1 et 5. Par exemple, un score de 5 en termes de portée fonctionnelle signifie que la fonction est puissante, et un score de 1 signifie que la fonction l'est moins. (Comme indiqué ci-dessus) Le langage visuel et EasyLanguage sont faciles à apprendre et conviennent parfaitement aux débutants ; Python est puissant et possède de fortes capacités d’extension, ce qui le rend adapté au développement de stratégies de trading plus complexes ; C++ a une vitesse de trading plus rapide et est plus adapté aux traders à haute fréquence.
Cependant, l’évaluation de chaque langage de programmation vise principalement son application dans le domaine du trading quantitatif et contient des éléments subjectifs personnels. Vous êtes également invités à critiquer dans la section commentaires ou à faire part de vos points de vue pour discussion. Ensuite, nous commencerons à présenter ces langages de programmation un par un.
Langage visuel
La programmation visuelle a une longue histoire et n’est pas nouvelle. Ce concept de programmation « ce que vous voyez est ce que vous obtenez », équipé de divers modules de contrôle, peut créer une logique de code et une conception de stratégie de trading complète simplement par glisser-déposer. Le processus est très similaire à celui des blocs de construction.

Figure 3-2 Interface du langage de programmation visuel
Comme indiqué ci-dessus, le même programme peut être réalisé avec seulement quelques lignes de code dans la programmation visuelle de la plateforme de trading quantitatif Inventor. Cela abaisse considérablement le seuil de programmation, ce qui constitue une excellente expérience opérationnelle, en particulier pour les traders qui n'ont aucune connaissance en programmation.
Étant donné que la stratégie d’implémentation sous-jacente de ce langage visuel est convertie en C++, elle a peu d’impact sur la vitesse d’exécution du programme. Cependant, sa fonctionnalité et son évolutivité sont relativement faibles et il n’est pas possible de développer des stratégies de trading trop complexes ou sophistiquées.
EasyLanguage
Le soi-disant EasyLanguage fait référence à un langage de programmation propre à certains logiciels de trading quantitatif commerciaux. Bien que ces langages possèdent également certaines fonctionnalités orientées objet, ils sont principalement scriptés dans leurs applications. En termes de syntaxe, il est également très proche de notre langue naturelle. Pour les débutants en trading quantitatif, utiliser EasyLanguage comme point d'entrée est un meilleur choix. Par exemple : le langage Mai dans la plateforme de trading quantitatif de l'inventeur.
Ce langage de script n'a aucun problème à effectuer des backtests de stratégie et des transactions réelles dans son logiciel spécifique, mais il est souvent limité en termes d'évolutivité. Par exemple, les développeurs de stratégies ne peuvent pas appeler d’API externes. De plus, en termes de vitesse d'exécution, ce langage de script s'exécute sur sa propre machine virtuelle et son optimisation des performances n'est pas aussi bonne que Java/C#, il est donc plus lent.
Python
Sur Stackoverflow, le nombre de visites vers les langages de programmation traditionnels est resté largement inchangé ces dernières années, seul Python affichant une tendance à la hausse. Python peut être utilisé pour le développement de sites Web, l'apprentissage automatique, l'apprentissage en profondeur, l'analyse de données, etc. En raison de sa flexibilité et de son ouverture, il est devenu le langage le plus courant. Il en va de même dans le domaine de l’investissement quantitatif. Actuellement, la plupart des plateformes quantitatives nationales sont basées sur Python.
Les structures de données de base de Python, les listes et les dictionnaires, sont très puissantes et peuvent essentiellement répondre aux besoins de représentation des données. Si vous avez besoin d'une structure de données plus rapide et plus complète, il est recommandé d'utiliser NumPy et SciPy. Ces deux bibliothèques sont essentiellement appelées les bibliothèques standard pour le calcul scientifique Python.
Pour l'ingénierie financière, une bibliothèque plus ciblée est Pandas, qui possède deux structures de données, Series et DataFrame, et est très adaptée au traitement des séries chronologiques.
En termes de vitesse, Python est dans la moyenne, plus lent que C++ et plus rapide qu'EasyLanguage, principalement parce que Python est un langage dynamique et que sa vitesse est moyenne lorsqu'il est exécuté en Python pur. Cependant, vous pouvez utiliser Cython pour optimiser statiquement certaines fonctions afin de se rapprocher de la vitesse de C++.
En tant que langage de liaison, Python est le numéro un incontesté en termes de performances d'extension. En plus de pouvoir se connecter de manière extensible à d'autres langages, l'API d'extension est également conçue pour être très simple à utiliser. En termes de difficulté d'apprentissage, Python a une syntaxe simple, un code très lisible et est facile à démarrer.
Matlab/R
Viennent ensuite Matlab et R. Ces deux langages sont principalement utilisés pour l’analyse de données. Les auteurs de langues ont réalisé de nombreuses conceptions syntaxiques pour les opérations scientifiques. Leur particularité est qu’ils soutiennent naturellement les opérations de trading quantitatif. Cependant, son champ d’application est relativement limité et il est généralement utilisé pour l’analyse de données et le backtesting de stratégie. Pour le développement d'algorithmes de systèmes de trading et de stratégies, sa convivialité et sa stabilité sont relativement médiocres.
De plus, leur vitesse d’exécution et leur évolutivité sont relativement faibles car Matlab et R fonctionnent sur des machines virtuelles à langage unique. En termes de performances, leurs machines virtuelles sont bien pires que Java et C#. Mais comme leur syntaxe est plus proche des expressions mathématiques, elles sont relativement plus faciles à apprendre.
C++
C++ est un langage de programmation à usage général qui prend en charge plusieurs modèles de programmation, tels que la programmation procédurale, l'abstraction de données, la programmation orientée objet, la programmation générique et les modèles de conception. Vous pouvez utiliser C++ pour implémenter toutes les fonctions que vous souhaitez réaliser, mais le plus gros inconvénient d'un langage aussi puissant est qu'il est très difficile à apprendre, comme les modèles, les pointeurs, les fuites de mémoire, etc.
À l’heure actuelle, C++ reste le langage de programmation privilégié pour les transactions à gros volume et à haute fréquence. La raison est simple. Étant donné que les caractéristiques du langage C++ permettent d'aborder plus facilement l'ordinateur sous-jacent, il s'agit de l'outil le plus efficace pour développer des systèmes de backtesting et d'exécution hautes performances qui traitent de grandes quantités de données.
Java/C#
Java/C# sont tous deux des langages statiques qui s'exécutent sur des machines virtuelles. Comparé à C++, il n'y a pas d'erreur de tableau hors limites, pas de coredump, les exceptions levées peuvent localiser avec précision l'emplacement du code d'erreur, il dispose d'un mécanisme de récupération de place intégré, il n'y a pas besoin de s'inquiéter des fuites de mémoire, etc. Par conséquent, en termes de difficulté d'apprentissage de la syntaxe, ils sont également plus faciles que C++. En termes de vitesse d'exécution, étant donné que leurs machines virtuelles ont toutes leur propre fonction JIT pour la compilation d'exécution, leur vitesse est surpassée uniquement par celle de C++.
Cependant, en termes de fonctionnalité, il n'est pas possible d'optimiser le système de trading sous-jacent comme C++. En termes de performances d'extension, il est plus faible que C++ car leur extension doit passer par le pont de C, et ces deux langages eux-mêmes s'exécutent sur des machines virtuelles, donc lors de l'extension de modules fonctionnels, il est nécessaire de traverser une couche supplémentaire de mur pour y parvenir.
Résumer
Mais encore une fois, le langage de programmation quantitatif n’est pas important, ce qui est important c’est l’idée. Il n’y a absolument aucun problème à utiliser le langage quantitatif Mai et le langage de visualisation de l’inventeur comme tremplin vers l’entrée quantitative. Pour vous améliorer après votre entrée, vous devez constamment essayer d'explorer en combinaison avec différentes conditions de marché. On peut dire que les idées déterminent la voie à suivre et que la vision détermine le domaine.
« Concevez votre stratégie, échangez vos idées. » De ce point de vue, le cœur du trading quantitatif reste le trading d’idées. En tant que trader quantitatif, vous devez non seulement maîtriser la syntaxe et les fonctions de base de la plateforme de rédaction de stratégies, mais également expérimenter les concepts de trading en combat réel. La quantification n’est qu’un outil et un support permettant de refléter différents concepts commerciaux.
Devoirs
- Quels sont les avantages du langage Python pour le trading quantitatif ?
- Essayez d’écrire quelques API couramment utilisées en utilisant le langage Mai de l’inventeur ?
Aperçu de la section suivante
Je crois qu'avec l'introduction ci-dessus aux langages de programmation, vous devez savoir comment choisir. Dans les prochains chapitres, nous apprendrons le développement de stratégies de trading quantitatives de manière ciblée selon la classification des langages de programmation.
3.2 Guide de démarrage rapide pour Mai Language
résumé
Qu'est-ce que la langue Mai ? Le langage dit Mai est un ensemble de bibliothèques de fonctions programmées étendues à partir des premiers indicateurs techniques boursiers. Les algorithmes sont encapsulés dans des fonctions et les utilisateurs n'ont qu'à appeler les fonctions ligne par ligne, comme s'ils jouaient avec des blocs de construction, pour mettre en œuvre la logique de la stratégie.
Il adopte le mode de construction « petite syntaxe, grande fonction », ce qui améliore considérablement l'efficacité de l'écriture. Les stratégies qui nécessitent plus de 100 phrases dans d'autres langues peuvent généralement être écrites en seulement une douzaine de phrases en langue mai. En conjonction avec la bibliothèque de fonctions statistiques financières et la structure de données des outils quantitatifs de l'inventeur, il peut également prendre en charge une logique de trading complexe.
Stratégie complète
Afin de vous aider à comprendre rapidement les connaissances clés de cette section, avant de présenter le démarrage rapide du langage micro-ondes quantitatif d'Inventor, vous devez d'abord avoir une compréhension préliminaire des concepts de cette section. Nous utilisons toujours la moyenne mobile à long terme sur 50 jours et la moyenne mobile à court terme sur 10 jours comme cas de base et passons en revue le cas de stratégie complet mentionné dans le chapitre précédent :
Ouverture de position longue: S'il n'y a pas de position actuelle et que le prix de clôture est supérieur à la moyenne mobile à court terme, et que le prix de clôture est supérieur à la moyenne mobile à long terme, et que la moyenne mobile à court terme est supérieure à la moyenne mobile à long terme, et que la moyenne mobile à long terme est en hausse.
Ouvrir une position courte: S'il n'y a pas de position actuelle et que le prix de clôture est inférieur à la moyenne mobile à court terme, et que le prix de clôture est inférieur à la moyenne mobile à long terme, et que la moyenne mobile à court terme est inférieure à la moyenne mobile à long terme, et que la moyenne mobile à long terme est en baisse.
Clôture de position longue:Si vous détenez actuellement un ordre long et que le prix de clôture est inférieur à la moyenne mobile à long terme, ou que la moyenne mobile à court terme est inférieure à la moyenne mobile à long terme, ou que la moyenne mobile à long terme est en baisse.
Clôture de position courte:Si vous détenez actuellement un ordre court et que le prix de clôture est supérieur à la moyenne mobile à long terme, ou que la moyenne mobile à court terme est supérieure à la moyenne mobile à long terme, ou que la moyenne mobile à long terme est en hausse.
Si c'est écrit en code de langue Mai, cela ressemble à ceci :

Figure 3-3 Exemple complet de langue Mai
Pour écrire une stratégie de trading quantitative complète, plusieurs étapes sont généralement nécessaires : acquisition de données, calcul de données, calcul logique, placement d'ordre, etc. Comme le montre la figure ci-dessus, dans l'ensemble du code, une seule API est utilisée pour obtenir les données de base, qui est « CLOSE » dans les première et deuxième lignes ; ensuite les premières à neuvième lignes sont la partie calcul des données ; et enfin les onzième à quatorzième lignes sont la partie calcul logique et passation de commande.
Veuillez noter que le code violet est une variable ; dans les première à neuvième lignes, le « := » vert est un opérateur d'affectation, et les données du côté droit de l'opérateur d'affectation sont affectées à la variable du côté gauche après calcul ; le code orange est l'API, par exemple, dans la première ligne, l'appel de MA (moyenne mobile) nécessite de passer deux paramètres, qui peuvent être compris comme des paramètres, c'est-à-dire que lors de l'appel de MA, vous devez définir le type de MA ; les opérateurs roses « AND » et « OR » sont des opérateurs logiques, qui sont principalement utilisés pour connecter plusieurs calculs logiques, etc. Avec les concepts de connaissances de base ci-dessus, commençons à apprendre les bases détaillées de la langue Mai.
Données de base
Les données de base (prix d'ouverture, prix le plus élevé, prix le plus bas, prix de clôture, volume des transactions) sont un élément indispensable du trading quantitatif. Pour obtenir les dernières données de base de la stratégie, il suffit d'appeler l'API de l'outil quantitatif de l'inventeur. Si vous souhaitez obtenir des données de base historiques, vous pouvez utiliser « REF », par exemple : REF (CLOSE, 1) permet d'obtenir le cours de clôture d'hier.
Les variables
Une variable est un nombre qui peut être modifié. Le nom d’une variable peut être compris comme un code. Sa dénomination prend en charge les caractères chinois, les lettres, les chiffres et les tirets, mais la longueur doit être contrôlée dans les 31 caractères. Les noms de variables ne peuvent pas être répétés entre eux, les noms de paramètres ou les noms de fonctions (API), et chaque instruction doit se terminer par un point-virgule. Si vous souhaitez ajouter vos propres commentaires linguistiques après avoir écrit, utilisez « // » à la fin. Il doit être écrit en mode majuscules avec la méthode de saisie demi-largeur. Comme le montre la figure suivante :

Figure 3-4 Type de données de langue Mai
Affectation de variables
L'affectation de variable consiste à affecter la valeur du côté droit de l'opérateur d'affectation à la variable du côté gauche. Il existe 4 types d'opérateurs d'affectation, qui peuvent contrôler si la valeur est affichée sur le graphique et définir la position d'affichage. Les polices vertes dans la figure ci-dessous sont des opérateurs d'affectation, à savoir « : », « := », « ^^ » et « .. ». Les commentaires de code dans la figure expliquent leur signification en détail.

Figure 3-5 Affectation des variables de langue Mai
Type de données
Dans la langue Mai, il existe de nombreux types de données, parmi lesquels les plus couramment utilisés sont le type numérique, le type chaîne et le type booléen. Les types numériques sont des nombres, y compris les entiers, les décimales, les nombres positifs et négatifs, etc., tels que : 1, 2, 3, 1,1234, 2,23456... ; les types de chaînes peuvent être compris comme du texte, le chinois, l'anglais et les nombres peuvent tous être des chaînes, telles que : « Inventor Quantification », « CLOSEPRICE », « 6000 », et les types de chaînes doivent être entourés de points-virgules anglais ; Le type booléen est le plus simple, il n'a que deux valeurs « oui » et « non », telles que : 1 représente vrai pour « oui », et 0 représente faux pour « non ».
Opérateur relationnel
Les opérateurs relationnels, comme leur nom l'indique, sont des opérateurs utilisés pour comparer la relation entre deux valeurs. Ils sont égaux à, supérieurs à, inférieurs à, supérieurs ou égaux à, inférieurs ou égaux à et différents de, comme indiqué ci-dessous :

Figure 3-6 Opérateurs de langue Mai
Opérateur logique
Les opérations logiques peuvent connecter des instructions booléennes distinctes en un tout. Les plus couramment utilisés sont « ET » et « OU ». Supposons qu'il existe deux valeurs de type booléen, à savoir « le cours de clôture est supérieur au cours d'ouverture » et « le cours de clôture est supérieur à la moyenne mobile », nous pouvons les combiner en une valeur booléenne, telle que : « le cours de clôture est supérieur au cours d'ouverture et (ET) le cours de clôture est supérieur à la moyenne mobile », « le cours de clôture est supérieur au prix d'ouverture ou (OU) le cours de clôture est supérieur à la moyenne mobile ».

Figure 3-7 Fonctionnement logique du langage Mai
Attention à tous :
« ET » signifie que lorsque toutes les conditions sont « oui », la condition finale est « oui » ;
« OU » signifie que parmi toutes les conditions, tant que l'une d'entre elles est « oui », la condition finale sera « oui ».
« ET » peut être écrit « && » et « OU » peut être écrit « || ».
Opérateur arithmétique
Opérateurs arithmétiques couramment utilisés dans la langue Mai ("+", "-",*”, “/”) n’est pas différent des mathématiques apprises à l’école primaire, comme indiqué ci-dessous :

Figure 3-8 Opérations arithmétiques en langue Mai
Les priorités
S'il y a un 100*Pour l'expression (10-1)/(10+5), quelle étape le programme calcule-t-il en premier ? Les mathématiques du collège nous disent : 1. S'il s'agit d'une opération de même niveau, elle est généralement calculée de gauche à droite. 2. S'il y a à la fois une addition et une soustraction ainsi qu'une multiplication et une division, calculez d'abord la multiplication et la division, puis l'addition et la soustraction. ③S'il y a des parenthèses, calculez d'abord le contenu des parenthèses. ④ Si cela est conforme aux lois de fonctionnement, les lois de fonctionnement peuvent être utilisées pour simplifier le calcul. La priorité de la langue Mai est la même que celle indiquée ci-dessous :

Figure 3-9 Priorité des opérations arithmétiques en langage Mai
Mode de réalisation
Dans le langage Mai de l'outil quantitatif de l'inventeur, il existe deux modes d'exécution de la stratégie du programme, à savoir : le mode prix de clôture et le mode prix en temps réel. Le mode de prix de clôture signifie que le signal de ligne K actuel est établi et que la transaction d'ordre est exécutée immédiatement lorsque la ligne K suivante commence. Le mode de prix en temps réel signifie qu'une fois le signal de ligne K actuel établi, la transaction de commande sera exécutée immédiatement.
Stratégies intraday
S'il s'agit d'une stratégie intraday, lorsque vous devez clôturer la position à la fin de la journée de négociation, vous devez utiliser la fonction temporelle « TIME ». Cette fonction s'affiche sous forme de quatre chiffres lorsqu'elle est au-dessus de la deuxième période et en dessous de la période du jour, à savoir : HHMM (1450-14:50). Remarque : lorsque vous utilisez la fonction TIME comme condition de clôture d'une position à la fin de la négociation, il est recommandé que la condition d'ouverture ait également une limite de temps correspondante. Comme indiqué ci-dessous :

Figure 3-10 Fonction de temps de langue du microphone
Classification des modèles

Figure 3-11 Classification du modèle de langage Mai
Il existe deux types de classification de modèles dans le langage Mai, à savoir : le modèle sans filtrage et le modèle avec filtrage. C'est en fait très simple à comprendre : le modèle sans filtrage permet des signaux d'ouverture ou de fermeture continus, qui peuvent réaliser les fonctions d'ajout et de réduction de positions. Le modèle de filtrage ne permet pas de signaux d'ouverture ou de fermeture continus. Autrement dit, lorsqu'un signal d'ouverture apparaît, les signaux d'ouverture suivants seront filtrés jusqu'à ce qu'un signal de fermeture apparaisse. L'ordre des signaux dans le modèle sans filtrage est : ouvert-fermé-ouvert-fermé-ouvert.....
Résumer
Ce qui précède est une brève introduction à la langue Mai. Après l'avoir appris, vous pouvez programmer des stratégies de trading quantitatives. Si vous avez besoin d'écrire des stratégies plus complexes, vous pouvez vous référer à la documentation de l'API Inventor Quantitative Tool Mai Language ou consulter directement le service client officiel pour rédiger des stratégies de trading quantitatives pour vous.
Aperçu de la section suivante
Le day trading est également un modèle de trading. Cette méthode ne conserve pas les positions pendant la nuit, le risque de volatilité du marché est donc plus faible. Une fois que des conditions de marché défavorables surviennent, des ajustements peuvent être effectués à temps. Après avoir appris l'introduction au langage Mai dans cette section, dans la section suivante, nous vous montrerons comment rédiger une stratégie de trading quantitative intraday réalisable.
Devoirs
- Essayez d'utiliser l'outil quantitatif Inventor pour écrire une API dans le langage Mai afin d'obtenir des données de base.
- Quelles sont les manières d’afficher les affectations de variables dans un graphique ?
3.3 Comment mettre en œuvre des stratégies en langue mai
résumé
Dans l'article précédent, nous avons expliqué les conditions préalables à la mise en œuvre de stratégies de trading sous l'angle de l'introduction du langage Mai, de la syntaxe de base, de la méthode d'exécution du modèle, de la classification du modèle, etc. Dans cet article, nous poursuivrons le contenu de l'article précédent et vous aiderons à réaliser une stratégie de trading quantitative intraday réalisable étape par étape à partir des modules de stratégie et des indicateurs techniques couramment utilisés.
Module de politique
Pensez-y, comment construisez-vous un robot en utilisant des pièces Lego ? On ne peut pas tout assembler pièce par pièce, de haut en bas ou de bas en haut. Toute personne dotée d’un peu de bon sens sait que la tête, les bras, les jambes, les ailes, etc. doivent être assemblés séparément, puis combinés pour former un robot complet. C'est la même chose lors de l'écriture de programmes. Écrivez les fonctions requises dans des modules de stratégie, puis combinez les modules de stratégie dans une stratégie de trading quantitative complète. Ci-dessous, je vais lister quelques modules de stratégie couramment utilisés :
Augmentation de phase
L'augmentation de l'étape est calculée en calculant le pourcentage de la différence entre le prix de clôture de la ligne K actuelle et le prix de clôture des N périodes précédentes. Par exemple, pour calculer l'augmentation des 10 dernières périodes de la ligne K, le code peut être écrit comme suit :

Figure 3-12 Croissance du stade de langue de Mai
Nouveaux sommets
Pour établir un nouveau sommet, nous devons calculer si la ligne K actuelle est supérieure au prix le plus élevé sur N périodes. Par exemple, pour calculer si la ligne K actuelle est supérieure au prix le plus élevé parmi les 10 dernières lignes K, le code peut être écrit comme suit :

Figure 3-13 La langue Mai atteint un nouveau sommet
Volume important à la hausse
Une attaque à la hausse de gros volumes peut être comprise comme une hausse des prix et une forte augmentation du volume des transactions. Par exemple : si le prix de clôture d'une ligne K est 1,5 fois le prix de clôture des 10 lignes K précédentes, cela signifie qu'il a augmenté de 50 % en 10 jours ; le volume des échanges dépasse 5 fois la moyenne des 10 dernières lignes K. Cela peut être écrit en code comme :

Figure 3-14 Le volume de Maiyuyu augmente
Finition étroite
La consolidation à fourchette étroite signifie que les prix restent dans une certaine fourchette sur une période récente. Par exemple : si la différence entre le prix le plus élevé sur 10 périodes et le prix le plus bas sur 10 périodes, divisée par le prix de clôture de la ligne K actuelle, est inférieure à environ 0,05. Cela peut être écrit en code comme :

Figure 3-15 Étendue étroite du langage du blé
Arrangement haussier de moyenne mobile
La disposition haussière des moyennes mobiles est divisée en disposition haussière et disposition baissière. La ligne K est disposée vers le haut avec un support sous les moyennes mobiles 5-10-20-30-60, ce qui est une disposition haussière. La configuration haussière signifie que la tendance du marché est une forte tendance à la hausse. Cela peut être écrit en code comme :

Figure 3-16 Arrangement haussier de la moyenne mobile de la langue de Mai
Les sommets précédents et leurs emplacements
Pour obtenir le point haut précédent et l'emplacement de ce point haut, vous pouvez l'obtenir directement via l'API de l'outil quantitatif Inventor. Cela peut être écrit en code :

Figure 3-17 Le point culminant précédent de la langue Mai
Écart
Un écart est une situation dans laquelle les prix les plus élevés et les plus bas de deux lignes K ne sont pas connectés. Il est composé de deux lignes K. L'écart est un prix de référence pour les futurs points de support et de pression. Lorsqu’un écart se produit, on peut supposer qu’une accélération de la tendance dans la direction de l’écart initial a commencé. Cela peut être écrit en code :

Figure 3-18 Mai Écart linguistique
Indicateurs techniques courants
Moyenne mobile

Figure 3-19 Graphique de la moyenne mobile
D'un point de vue statistique, la moyenne mobile est la moyenne arithmétique des prix quotidiens, et c'est une trajectoire de prix avec une tendance. Le système de moyenne mobile est un outil technique couramment utilisé par la plupart des analystes. D'un point de vue technique, c'est un facteur qui affecte le prix psychologique des analystes techniques et le facteur de décision d'achat et de vente. C'est un bon outil de référence pour les analystes techniques. L'outil quantitatif de l'inventeur prend en charge de nombreux types différents de moyennes mobiles, comme le montre la figure suivante :

Figure 3-20 Calcul de divers indicateurs de la langue mai
Chaîne BOLL

Figure 3-21 Diagramme du canal BOLL
BOLL, également connu sous le nom d'indicateur de bande de Bollinger, utilise également des principes statistiques pour calculer d'abord la piste médiane en fonction de la moyenne mobile sur N jours, puis calculer les pistes supérieure et inférieure en fonction de l'écart type. Lorsque le canal BOLL devient plus étroit, cela signifie que le prix revient progressivement à la moyenne. Lorsque le canal BOLL passe d'étroit à large, cela signifie que le marché commence à changer. Si le prix franchit la ligne supérieure, cela indique que le pouvoir d’achat a augmenté. Si le prix franchit la ligne inférieure, cela indique que le pouvoir de vente a augmenté.
Parmi tous les indicateurs techniques, la méthode de calcul du BOLL est l'une des plus compliquées, qui introduit le concept d'écart type dans les statistiques et implique le calcul de la ligne médiane (MB), de la ligne supérieure (UP) et de la ligne inférieure (DN). La méthode de calcul est la suivante :

Figure 3-22 Calcul de la bande de Bollinger en langue Mai
Indicateur MACD
L'indicateur MACD utilise des moyennes mobiles rapides (à court terme) et lentes (à long terme) et leurs signes de convergence et de séparation, et effectue une double opération de lissage. Le MACD, qui est développé sur la base du principe de la moyenne mobile, a éliminé le défaut de la moyenne mobile qui envoie fréquemment de faux signaux, et a conservé l'effet de la moyenne mobile. Par conséquent, l'indicateur MACD présente les caractéristiques de tendance moyenne mobile, de stabilité et de stabilité. Il s’agit d’un indicateur d’analyse technique utilisé pour évaluer le moment d’achat et de vente d’actions et prédire la hausse et la baisse des cours des actions. La méthode de calcul est la suivante :

Figure 3-24 Indicateur MACD de langue Mai
Les modules de stratégie ci-dessus sont les plus couramment utilisés dans le développement de stratégies de trading quantitatives. Bien sûr, il y en a bien plus que cela. Grâce aux exemples de modules ci-dessus, vous pouvez également mettre en œuvre plusieurs des modules de trading les plus couramment utilisés dans votre trading subjectif. Les méthodes sont toutes universelles. Ensuite, nous commencerons à rédiger une stratégie de trading quantitative intraday réalisable.
Rédaction de stratégies
Sur le marché au comptant des changes, il existait autrefois une stratégie de trading révolutionnaire largement diffusée, à savoir la stratégie HANS123. Il utilise ses simples percées de points hauts et bas de N lignes K après l'ouverture comme critère de déclenchement des signaux de trading. Il s’agit également d’un mode de trading à entrée anticipée.
Logique de stratégie
Soyez prêt à entrer sur le marché 30 minutes après l’ouverture du marché ;
Voie supérieure = point haut 30 minutes après ouverture ;
Voie inférieure = 30 minutes plus bas après ouverture ;
Lorsque le prix franchit la piste supérieure, achetez et ouvrez une position ;
Lorsque le prix tombe en dessous de la piste inférieure, ouvrez une position de vente.
Stratégie de trading intraday, clôturer les positions avant la clôture du marché ;
Code de stratégie

Figure 3-25 Code de stratégie linguistique Mai
Résumer
Ci-dessus, nous avons appris le concept de modules de stratégie et, à travers plusieurs cas de modules de stratégie couramment utilisés, nous nous sommes familiarisés avec les méthodes de programmation des outils quantitatifs de l'inventeur. On peut dire qu’apprendre à écrire des modules de stratégie et améliorer la pensée logique de la programmation sont des étapes clés du trading quantitatif avancé. Enfin, nous avons utilisé les outils quantitatifs de l’inventeur pour mettre en œuvre les stratégies de trading couramment utilisées dans le trading au comptant de devises.
Aperçu de la section suivante
Certains amis peuvent se sentir confus et incapables de comprendre les codes denses. Ne vous inquiétez pas, nous avons déjà pensé à tout cela pour vous. Dans l'outil quantitatif Inventor, il existe également un langage de programmation plus adapté aux utilisateurs novices. C'est de la programmation visuelle. Comme son nom l’indique, ce que vous voyez est ce que vous obtenez. Attendons-le ensemble avec impatience !
Devoirs
- Essayez de mettre en œuvre plusieurs modules de trading que vous utilisez le plus fréquemment dans le trading subjectif.
- Essayez d'implémenter l'algorithme de l'indicateur KDJ en utilisant le langage Mai dans l'outil quantitatif de l'inventeur.
3.4 Démarrage rapide de la programmation visuelle
résumé
De nombreux traders subjectifs s’intéressent au trading quantitatif. Ils sont pleins de confiance au début. Cependant, après avoir appris la syntaxe de base, les opérations de données, les structures de données, le contrôle logique, etc. des langages de programmation traditionnels, ils sont souvent découragés ou abandonnent après avoir examiné les codes longs et complexes. À l’heure actuelle, les langages de programmation visuels peuvent être plus adaptés pour vous permettre de démarrer.
Stratégie complète
Afin d'aider tout le monde à comprendre rapidement les connaissances clés de cette section, avant de présenter rapidement le langage de programmation visuelle quantitative Inventor, examinons d'abord à quoi ressemble la stratégie écrite dans le langage visuel ? Et avoir une compréhension préliminaire des concepts de noms dans cette section. Prenons l'exemple le plus simple d'une position longue lorsque le prix de clôture est supérieur à la moyenne mobile sur 50 périodes, et d'une position courte lorsque le prix de clôture est inférieur à la moyenne mobile sur 50 périodes :
Ouverture de position longue:S'il n'y a pas de position actuelle et que le prix de clôture est supérieur à la moyenne mobile sur 50 périodes.
Ouvrir une position courte:S'il n'y a pas de position actuelle et que le prix de clôture est inférieur à la moyenne mobile sur 50 périodes.
Clôture de position longue:Si vous détenez actuellement une position longue et que le prix de clôture est inférieur à la moyenne mobile sur 50 périodes.
Clôture de position courte:Si vous détenez actuellement un ordre court et que le prix de clôture est supérieur à la moyenne mobile sur 50 périodes.
Si la stratégie ci-dessus est écrite dans un langage visuel, elle ressemblerait à ceci (comme indiqué ci-dessous) :

Figure 3-26 Interface de langage visuel
Comme le montre la figure ci-dessus, l'ensemble du processus de conception de la stratégie est le suivant : définir le type de marché, obtenir le tableau K-line, obtenir la moyenne sur 50 périodes de la ligne K précédente, obtenir le prix de clôture de la ligne K précédente, obtenir le tableau de position, déterminer l'état de la position, déterminer si le prix de clôture est supérieur ou inférieur à la moyenne mobile et exécuter l'ouverture ou la fermeture.
Ici, nous devons prêter attention au concept de « tableau ». Le tableau est l’une des structures de données importantes pour chaque langage de programmation. Les tableaux sont comme des conteneurs qui peuvent stocker une série de valeurs. Par exemple, l’appel de l’API pour obtenir le tableau K-line renvoie le résultat suivant :

Figure 3-27 Réseau K-line
Le code dans la figure ci-dessus est un tableau K-ligne. Le tableau contient trois données au total, à savoir les données de la ligne K précédente, les données de la ligne K précédente et les données de la ligne K actuelle. Si nous affectons ce tableau à une variable « arr », si nous voulons obtenir les dernières données de ce tableau (les données de la ligne racine K), nous pouvons l'écrire comme ceci (comme indiqué dans les 4e et 5e lignes de la figure ci-dessous) :

Figure 3-28 Référence du tableau
Nous pouvons simplement utiliser la deuxième façon d'écrire (ligne 5), car en réalité, il existe des centaines ou des milliers de données de lignes K, et les nouvelles lignes K augmentent constamment. Vous pouvez donc d’abord obtenir la longueur du tableau. "arr.length" signifie obtenir la longueur du tableau, puis soustraire "1", qui correspond aux données de la dernière ligne K. Si vous souhaitez obtenir les données de la ligne K précédente, soustrayez « 2 ».
Les personnes prudentes peuvent constater que ces données sont incluses entre « {} ». À partir des noms anglais, vous pouvez savoir approximativement qu'ils correspondent à : l'heure, le prix d'ouverture, le prix le plus élevé, le prix le plus bas, le prix de clôture et le volume des transactions. Si vous souhaitez obtenir le cours de clôture de la ligne K précédente, ajoutez simplement « . » et la valeur requise à la fin, reportez-vous aux lignes 8 à 10 de la figure ci-dessous.

Figure 3-29 Référence du tableau
Pourquoi utiliser un langage de programmation visuel ?
Avec les concepts ci-dessus, utilisons d'abord Java pour écrire un programme qui génère « hello, world » pour expérimenter la programmation traditionnelle, comme indiqué ci-dessous :

Figure 3-30
Un programme qui affiche simplement un « Bonjour le monde ! » La chaîne ne nécessite que 5 lignes de code. Je crois que la plupart des débutants ne connaissent que les mots anglais « hello, world » entre parenthèses et n'ont aucune idée par où commencer avec le reste. Il est donc préférable de commencer par la programmation visuelle plutôt que de se retrouver perdu.
Qu'est-ce que la programmation visuelle ?
La programmation visuelle a une longue histoire et n’est pas nouvelle. Ce concept de programmation « ce que vous voyez est ce que vous obtenez », équipé de divers modules de contrôle, peut créer une logique de code et une conception de stratégie de trading complète simplement par glisser-déposer. Le processus est très similaire à celui des blocs de construction.

Figure 3-31
Comme indiqué ci-dessus, le même programme peut être réalisé avec une seule ligne de code dans la programmation visuelle Blockly. Cela abaisse considérablement le seuil de programmation, ce qui constitue une excellente expérience opérationnelle, en particulier pour les traders qui n'ont aucune connaissance en programmation.
Quelles sont les caractéristiques du langage de programmation visuel
Blockly n'est pas un jouet de programmation, c'est un véritable éditeur, pas un système d'exploitation déguisé en éditeur. Il prend en charge de nombreux éléments de base de la programmation, tels que les variables, les fonctions, les tableaux et les blocs facilement extensibles et personnalisables. Vous pouvez l'utiliser pour effectuer des tâches de programmation complexes. La conception est très cohérente avec la philosophie Unix : faire une seule chose.
L'inventeur de la programmation visuelle quantitative a également été réalisé grâce à l'outil de visualisation blockly publié par Google. La conception est similaire à celle de Scratch lancée par le MIT, avec un seuil véritablement nul (comme indiqué ci-dessous).

Figure 3-32
Dans l'interface de programmation visuelle d'Inventor Quant, des centaines de modules de trading couramment utilisés sont intégrés. D'autres modules de trading seront ajoutés à l'avenir pour prendre en charge les nouvelles idées et les nouvelles applications des traders. Ceux-ci seront développés et maintenus conjointement par les développeurs.
Bien que la syntaxe soit simple, elle ne sacrifie pas les performances. Il peut presque répondre au développement de la plupart des stratégies de trading quantitatives simples. En termes de fonctionnalité et de vitesse, il n'est pas inférieur aux langages de programmation conventionnels tels que Python et JavaScript. À l’avenir, il prendra en charge des applications financières logiquement complexes.
Comment utiliser
Écrire un programme « Bonjour le monde »
Exécutez et imprimez « hello, world »
Résumer
Ci-dessus, nous avons commencé par une stratégie de visualisation complète, puis avons présenté l'introduction et les caractéristiques du langage de visualisation, et enfin présenté comment utiliser le langage de visualisation sur l'outil Inventor Quant, et avons écrit un exemple « hello world ». Cependant, nous devons rappeler à tout le monde qu'en tant qu'introduction au trading quantitatif, la programmation visuelle est un bon tremplin, mais actuellement, seules des interfaces API limitées sont ouvertes sur l'outil quantitatif Inventor. Pour le trading quantitatif, il est préférable de l’utiliser comme un outil auxiliaire pour vous aider à comprendre la logique de la stratégie.
Aperçu de la section suivante
Il n’y a aucune différence entre les bases de la programmation visuelle et les langages de programmation de haut niveau, et certains aspects sont même universels. Une fois que vous aurez appris la programmation visuelle, vous serez un peu plus près de l’apprentissage de la programmation de haut niveau. Dans la section suivante, nous nous plongerons dans l'apprentissage avancé de la programmation visuelle, notamment comment utiliser le langage visuel pour écrire des modules de trading quantitatif couramment utilisés sur l'outil quantitatif Inventor et comment développer une stratégie de trading intraday complète.
Devoirs
- Dans l’interface de programmation visuelle d’Inventor Quant, utilisez l’API et comprenez ce qu’elle signifie.
- Utilisez un langage visuel pour obtenir le dernier prix d'ouverture et le sortir dans le journal.
3.5 Comment mettre en œuvre des stratégies en utilisant le langage visuel
résumé
Dans l'article précédent, nous avons découvert l'introduction et les fonctionnalités du langage de programmation visuel, l'exemple « hello world » et la rédaction de stratégies dans l'outil de trading quantitatif de l'inventeur, et expliqué les conditions préalables à la mise en œuvre de stratégies de trading. Dans cet article, nous continuerons à partir de l'article précédent, en commençant par les modules de stratégie et les indicateurs techniques couramment utilisés, puis par la logique de la stratégie, pour aider chacun à réaliser une stratégie de trading intraday complète étape par étape.
Module de politique
Augmentation de phase
L'augmentation de l'étape est calculée en calculant le pourcentage de la différence entre le prix de clôture de la ligne K actuelle et le prix de clôture des N périodes précédentes. Par exemple, pour calculer l'augmentation des 10 dernières périodes de la ligne K, le code peut être écrit comme suit :

Figure 3-36
À partir du code ci-dessus, nous pouvons voir que la façon dont l’ordinateur s’exécute nécessite une boucle logique complète. Par exemple, pour calculer le taux de croissance des 10 dernières périodes de la ligne K, il faut le diviser selon les étapes suivantes :
Tout d’abord, l’ordinateur doit savoir clairement quel produit vous souhaitez échanger. Par exemple, l'exemple ci-dessus concerne le méthanol, définissez donc le code du contrat sur : « MA888 ». Après avoir défini le code du contrat, vous pouvez obtenir les données de la ligne K du contrat.
Avec les données K-line, vous pouvez obtenir les données détaillées de n'importe quelle ligne K à partir de ces données K-line.
Pour calculer l'augmentation périodique, vous devez d'abord obtenir les cours de clôture de deux lignes K, par exemple : le cours de clôture de la ligne K précédente et le cours de clôture de la 11e ligne K qui la précède.
Enfin, sur la base des cours de clôture de ces deux lignes K, calculez le ratio d'augmentation de l'étape. Chacune des stratégies suivantes présente les caractéristiques de telles boucles logiques et attributs conditionnels. Une fois que vous aurez compris cette logique, la programmation visuelle deviendra beaucoup plus facile.
Volume important à la hausse
Une attaque à la hausse de gros volumes peut être comprise comme une hausse des prix et une forte augmentation du volume des transactions. Par exemple : si le prix de clôture d'une ligne K est 1,5 fois le prix de clôture des 10 lignes K précédentes, cela signifie qu'il a augmenté de 50 % en 10 jours ; le volume des échanges dépasse 5 fois la moyenne des 10 dernières lignes K. Cela peut être écrit en code comme :

Figure 3-37
Écart
Un écart est une situation dans laquelle les prix les plus élevés et les plus bas de deux lignes K ne sont pas connectés. Il est composé de deux lignes K. L'écart est un prix de référence pour les futurs points de support et de pression. Lorsqu’un écart se produit, on peut supposer qu’une accélération de la tendance dans la direction de l’écart initial a commencé. Cela peut être écrit en code :

Figure 3-38
Indicateurs techniques courants
Moyenne mobile EMA
D'un point de vue statistique, la moyenne mobile est la moyenne arithmétique des prix quotidiens, et c'est une trajectoire de prix avec une tendance. Le système de moyenne mobile est un outil technique couramment utilisé par la plupart des analystes. D'un point de vue technique, c'est un facteur qui affecte le prix psychologique des analystes techniques et le facteur de décision d'achat et de vente. C'est un bon outil de référence pour les analystes techniques. L'outil quantitatif de l'inventeur prend en charge de nombreux types différents de moyennes mobiles, comme le montre la figure suivante :

Figure 3-39
Indicateur MACD
L'indicateur MACD utilise des moyennes mobiles rapides (à court terme) et lentes (à long terme) et leurs signes de convergence et de séparation, et effectue une double opération de lissage. Le MACD, qui est développé sur la base du principe de la moyenne mobile, a éliminé le défaut de la moyenne mobile qui envoie fréquemment de faux signaux, et a conservé l'effet de la moyenne mobile. Par conséquent, l'indicateur MACD présente les caractéristiques de tendance moyenne mobile, de stabilité et de stabilité. Il s’agit d’un indicateur d’analyse technique utilisé pour évaluer le moment d’achat et de vente d’actions et prédire la hausse et la baisse des cours des actions. La méthode de calcul est la suivante :

Figure 3-40
Indicateur KDJ
L'indicateur KDJ combine les avantages du concept de momentum, des indicateurs de force et de faiblesse et de la moyenne mobile, et est utilisé pour mesurer le degré de variation des cours des actions par rapport à la fourchette de prix normale. Non seulement le prix de clôture est pris en compte, mais également les prix les plus élevés et les plus bas récents, ce qui évite la faiblesse de ne considérer que le prix de clôture et d'ignorer la véritable volatilité. La méthode de calcul est la suivante :

Figure 3-41
Rédaction de stratégies
Le mentor de Warren Buffett, Benjamin Graham, a un jour mentionné un modèle de trading d'équilibre dynamique entre les actions et les obligations dans son livre « The Intelligent Investor ».
Ce modèle de trading est très simple :
Investissez 50 % de votre argent dans des fonds d’actions et les 50 % restants dans des fonds obligataires. Autrement dit, les actions et les obligations représentent chacune la moitié.
Rééquilibrer les actifs à intervalles fixes ou en fonction des changements du marché pour rétablir le ratio des actifs en actions par rapport aux actifs en obligations au ratio initial de 1:1. C'est toute la logique de la stratégie, y compris quand acheter et vendre, et combien acheter et vendre. C'est assez simple !
Dans cette méthode, la volatilité des fonds obligataires est en réalité très faible, bien inférieure à la volatilité des actions, de sorte que les obligations sont utilisées ici comme « ancre de référence », c'est-à-dire en utilisant les obligations pour mesurer si les actions ont trop augmenté. c'est encore trop peu.
Si le cours de l'action augmente, la valeur marchande de l'action sera supérieure à la valeur marchande de l'obligation. Lorsque le ratio de valeur marchande des deux dépasse le seuil fixé, la position totale sera réajustée, l'action sera vendue et l'obligation sera achetée pour ramener le ratio de valeur marchande des actions par rapport à celui des obligations à son niveau initial de 1:1.
Au contraire, si le cours de l'action baisse, la valeur marchande de l'action sera inférieure à la valeur marchande de l'obligation. Lorsque le ratio de valeur marchande des deux dépasse le seuil fixé, la position totale sera réajustée pour acheter des actions et vendre des obligations pour rétablir le ratio de valeur marchande des actions et des obligations à son niveau initial de 1:1.
C'est ainsi que, dans un équilibre dynamique entre les actions et les obligations, il suffit de profiter des fruits de la croissance des actions et de réduire la volatilité des actifs.
Logique de stratégie
Selon la valeur actuelle du BTC, le solde du compte sera de ¥5 000 en espèces et de 0,1 BTC, c'est-à-dire que le ratio initial entre les espèces et la valeur marchande du BTC est de 1:1.
Si le prix du BTC monte à 6 000 ¥, c'est-à-dire que la valeur marchande du BTC est supérieure au solde du compte et que la différence entre eux dépasse le seuil défini, alors (6 000-5 000)/6 000/2 pièces seront vendues. Cela signifie que le BTC s'est apprécié et que l'argent peut être échangé.
Si le prix du BTC tombe à 4 000 ¥, c'est-à-dire que la valeur marchande du BTC est inférieure au solde du compte et que la différence entre eux dépasse le seuil défini, achetez (5 000-4 000)/4 000/2 pièces. Cela signifie que le BTC s'est déprécié, alors rachetez du BTC.
De cette façon, peu importe que le BTC s'apprécie ou se déprécie, le solde du compte et la valeur marchande du BTC restent toujours égaux. Si le BTC se déprécie, achetez-en, et quand il remonte, vendez-en, comme un solde.
Conditions d'achat:Si la valeur marchande de la position actuelle moins le solde disponible actuel est inférieure à 5 % du solde disponible actuel négatif, ouvrez une position d'achat.
Conditions de vente:Si la valeur marchande de la position actuelle moins le solde actuellement disponible est supérieure à 5 % du solde actuellement disponible, fermez la position et vendez.
Prérequis
- Marché actuel
- Actifs courants
- Valeur marchande totale des pièces
- Différence d'actifs
Stratégie de construction
Stratégie de création visuelle Étape 1
Nous calculons les quatre conditions préalables à la stratégie de trading et les attribuons à leurs variables respectives. Avec la programmation visuelle, les blocs de code ressemblent à ceci. Comme indiqué ci-dessous

Figure 3-42
Il convient de noter que la valeur marchande totale de la monnaie est la valeur marchande totale du nombre actuel de pièces détenues, et sa méthode de calcul consiste à multiplier le nombre total actuel de pièces détenues par le dernier prix actuel. La différence d’actifs correspond à la valeur marchande totale de la devise moins le solde actuellement disponible.
Stratégie de création visuelle Étape 2
Une fois les prérequis et les conditions nécessaires attribués, vous devez écrire la logique de transaction. Ce n’est pas aussi compliqué que vous pourriez le penser. Il ne s’agit de rien d’autre que d’exprimer la logique stratégique ci-dessus sous la forme de blocs de code.
Autrement dit, si la différence d’actifs est inférieure à 5 % du solde négatif disponible, achetez ; si la différence d'actifs est supérieure à 5 % du solde disponible, vendre. Comme indiqué ci-dessous :

Figure 3-43
Toute la stratégie semble avoir été écrite, mais il faut savoir que le programme s'exécute de haut en bas et s'arrête après exécution. Cependant, notre stratégie de trading ne consiste pas à exécuter les conditions de trading une seule fois, mais à les exécuter à plusieurs reprises.
En d’autres termes, le programme doit constamment vérifier si les conditions de la stratégie sont remplies. Si tel est le cas, exécutez l’achat ou la vente ; sinon, continuez à vérifier. À ce stade, vous devez utiliser une autre instruction de boucle, comme indiqué ci-dessous :

Figure 3-44
Backtesting de stratégie
Il n'y a pas de différence essentielle entre les stratégies de visualisation et les stratégies écrites dans d'autres langages de programmation. Elles prennent également en charge les tests de données historiques sur plusieurs périodes et précisions. Bien entendu, elles prennent également en charge le trading en temps réel de contrats à terme sur matières premières nationales et étrangères et de devises numériques. Voici les informations de backtest de la stratégie :

Figure 3-45
À ce stade, une stratégie de trading complète est achevée. Afin de prendre soin de ceux qui veulent profiter de nous, cette stratégie a été partagée dans la Place de la Stratégie et peut être directement copiée et étudiée.
Conclusion
La règle des 10 000 heures existe toujours, mais pour les traders sans connaissances de base, il est impossible de passer 10 000 heures pour réintégrer l'industrie. Vous devez donc disposer d’une échelle, et pour les traders n’ayant aucune base en programmation, la programmation visuelle d’Inventor Quant est une échelle pour une entrée rapide.
Avec la programmation visuelle, vous n'avez pas besoin de mémoriser la syntaxe et les noms des méthodes, vous pouvez simplement parcourir les modules de fonctions et trouver ce que vous voulez. C'est aussi l'intention originale de l'inventeur du quantitatif, qui est d'aider davantage de débutants quantitatifs à abaisser le seuil d'entrée et à accroître leur intérêt pour le trading quantitatif, afin que chacun puisse devenir un trader quantitatif !
Cela dit, la programmation visuelle ne pose absolument aucun problème comme tremplin vers l’apprentissage quantitatif, mais elle présente également ses propres limites, comme l’incapacité de développer des stratégies de trading trop complexes et sophistiquées. Mais cela n’affecte pas votre premier pas dans le trading quantitatif !
Aperçu de la section suivante
Du point de vue du professionnalisme du trading quantitatif, le langage Mai et le langage visuel ne sont que des langages de transition pour entrer dans le monde du trading quantitatif. Leurs caractéristiques linguistiques déterminent leurs limites dans le développement de stratégies de trading quantitatives, et certaines stratégies complexes sont peu susceptibles d’être mises en œuvre. Dans la section suivante, nous vous enseignerons JavaScript, qui est un langage de programmation formel de haut niveau et le seul moyen pour vous de progresser vers le trading quantitatif avancé.
Devoirs
- Essayez d’implémenter l’indicateur de bande de Bollinger en utilisant un langage visuel.
- Essayez d'utiliser le module de trading de cette section pour compléter une stratégie de trading.
Chapitre 4 : Mise en œuvre de stratégies de trading dans les langages de programmation courants
4.1 Démarrage rapide du langage JavaScript
résumé
En tant que future star du trading quantitatif, il vous est impossible d’apprendre simplement un langage simple. Bien que le langage Mai et le langage de visualisation des outils quantitatifs de l'inventeur puissent vous aider à démarrer, ils présentent de nombreuses limites dans le développement de stratégies en raison de leurs caractéristiques linguistiques. Par conséquent, si vous souhaitez prendre pied dans le trading quantitatif, vous devez apprendre un langage de programmation formel.
Pourquoi apprendre JavaScript
Comparé aux langages visuels, JavaScript présente des performances et une efficacité d’exécution supérieures. Et en termes de développement de stratégie, JavaScript est beaucoup plus flexible que les langages visuels. Par exemple, si vous souhaitez développer une stratégie d'arbitrage, vous ne pouvez pas utiliser un langage visuel car il possède des modules limités et ne prend pas en charge les stratégies de type arbitrage, tandis que JavaScript peut facilement faire le travail.
De plus, JavaScript est plus concis et élégant que les langages visuels. Par exemple, 10 lignes de code dans un langage visuel peuvent être écrites en 5 lignes en JavaScript. À certains égards, le langage visuel n’est qu’une version texte de JavaScript, et l’exécution et la logique de son code sont presque les mêmes que celles de JavaScript. Si vous apprenez un langage visuel, apprendre JavaScript sera très facile.
Introduction à JavaScript
JavaScript est un langage de programmation formel de haut niveau. Il convient comme langage d'introduction à l'apprentissage de la programmation et également comme langage de travail pour le développement quotidien. C'est l'un des langages informatiques les plus prometteurs et les plus prometteurs à l'heure actuelle, et il occupe toujours une position dominante inébranlable du côté des navigateurs. Bien qu'il soit célèbre pour le développement de pages Web, il est également utilisé dans de nombreux environnements sans navigateur, tels que les serveurs, les PC, les appareils mobiles, etc. Bien sûr, il peut également faire du trading quantitatif !
Stratégie complète
Afin de vous aider à comprendre rapidement les connaissances clés de cette section, avant de présenter l'introduction rapide au langage JavaScript quantifié de l'inventeur, vous devez d'abord avoir une compréhension préliminaire des concepts de cette section. Prenons comme exemple la stratégie la plus simple de moyenne mobile double :
Ouverture de position longue:S'il n'y a pas de position actuelle et que la moyenne mobile sur 5 périodes est supérieure à la moyenne mobile sur 20 périodes.
Ouvrir une position courte:S'il n'y a pas de position actuelle et que la moyenne mobile sur 5 périodes est inférieure à la moyenne mobile sur 20 périodes.
Clôture de position longue:Si vous détenez actuellement une position longue et que la moyenne mobile sur 5 périodes est inférieure à la moyenne mobile sur 20 périodes.
Clôture de position courte:Si vous détenez actuellement une position courte et que la moyenne mobile sur 5 périodes est supérieure à la moyenne mobile sur 20 périodes.
Si c'était écrit en JavaScript, cela ressemblerait à ceci :

Figure 4-1
Le code de la figure ci-dessus est une stratégie de trading quantitative complète écrite en JavaScript. Il peut fonctionner en temps réel et passer des commandes automatiquement. En termes de quantité de code, ce langage est plus simple que le langage visuel. Le processus de conception de l'ensemble de la stratégie est le suivant : définir les types de marché, obtenir les données de la ligne K, obtenir les informations de position, calculer la logique de transaction et passer des ordres d'achat et de vente.
Identifiant
Tout dans JavaScript (variables, noms de fonctions et opérateurs) est sensible à la casse, ce qui signifie que le nom de variable test et le nom de variable Test sont deux variables différentes. Le premier caractère d'un identifiant (nom d'une variable, fonction, propriété, paramètre de fonction) doit être une lettre, un trait de soulignement (_), le signe dollar ($) et les caractères suivants peuvent également être des nombres, comme illustré dans la figure suivante :

Figure 4-2
Notes de rédaction
Les commentaires incluent des commentaires sur une seule ligne et des commentaires au niveau du bloc. Les commentaires sur une seule ligne commencent par deux barres obliques et les commentaires en bloc commencent par une barre oblique et un astérisque (/) et se termine par un astérisque et une barre oblique (/) comme indiqué ci-dessous :

Figure 4-3
Déclarations
Chaque instruction se termine par un point-virgule ; bien que cela ne soit pas obligatoire, nous vous recommandons de ne jamais l'omettre. L'ajout de points-virgules peut augmenter les performances du code dans certains cas, comme le montre la figure suivante :

Figure 4-4
Les variables
Les variables peuvent stocker n’importe quel type de données. Lors de la création d'une variable, utilisez l'opérateur var suivi du nom de la variable. Lors de la définition d'une variable, vous pouvez également définir sa valeur. Une fois qu'une variable est créée, vous n'avez pas besoin d'utiliser l'opérateur var pour définir à nouveau la valeur de la variable, comme indiqué ci-dessous :

Figure 4-5
données
JavaScript possède un total de 5 types de données, à savoir : Undefined, Null, Boolean, Number et String, comme illustré dans la figure suivante :

Figure 4-6
Undefined n'a qu'une seule valeur, la valeur spéciale « undefined », qui représente une valeur qui n'a pas encore été définie. Par exemple, si nous définissons uniquement une variable et ne lui donnons pas de valeur, la valeur de la variable sera « indéfinie ».
Null n'a qu'une seule valeur, la valeur spéciale « null », qui représente une valeur définie comme vide. Par exemple, si nous créons d'abord une variable, puis définissons la valeur de la variable sur « null », alors la valeur renvoyée par la variable sera « null ».
Le booléen a deux valeurs, « vrai » et « faux ». « vrai » représente vrai et « faux » représente faux. Notez que « vrai » et « faux » sont tous deux en minuscules.
Le nombre est le type de nombre, y compris : les nombres positifs, les nombres négatifs, les entiers, les décimales, etc. De plus, « NaN » est également un nombre spécial qui indique spécifiquement la situation dans laquelle aucune valeur n'est renvoyée, par exemple : 1 divisé par 0 renvoie « NaN ».
Vous pouvez comprendre une chaîne comme du texte, y compris le chinois et l'anglais, et vous pouvez construire une chaîne en utilisant des guillemets simples ou doubles. Par exemple : « fmz » ou « quantification de l'inventeur ».
Objets
Vous pouvez considérer un objet comme un conteneur pour stocker diverses données, dans lequel les attributs et les valeurs correspondent les uns aux autres. Vous pouvez d’abord créer ce conteneur via l’opérateur new. Vous pouvez également ajouter des propriétés et des méthodes à l'objet créé, comme illustré dans la figure suivante :

Figure 4-7
Groupe
Un tableau est également un conteneur permettant de stocker diverses données, mais les éléments du conteneur sont disposés dans l'ordre de gauche à droite. Le premier élément est 0, le deuxième élément est 1, et ainsi de suite. De plus, les tableaux JavaScript peuvent stocker n’importe quel type de données, comme indiqué ci-dessous :

Figure 4-8
fonction
Les fonctions en JavaScript sont essentiellement les mêmes que celles que nous avons apprises au collège. Vous pouvez le considérer comme ce qui est transmis et ce qui est produit via le calcul de la fonction, comme illustré dans la figure suivante :

Figure 4-9
Outil de calcul
JavaScript possède différents opérateurs, à savoir des opérateurs arithmétiques, des opérateurs de comparaison et des opérateurs logiques. Parmi eux, les opérateurs arithmétiques sont des opérations mathématiques d’addition, de soustraction, de multiplication et de division. Les opérateurs de comparaison peuvent comparer si deux valeurs sont inférieures ou inférieures à. Les principaux opérateurs logiques sont : ET logique, OU logique et NON logique. Comme le montre la figure suivante :

Figure 4-10
Il convient de noter que : « && » est un ET logique, ce qui signifie « et ». « || » est un OU logique, qui signifie « ou ». "!" est une négation logique, ce qui signifie « non » :
« && » signifie que lorsque toutes les conditions sont « vraies », la condition finale sera « vraie » ;
« || » signifie que parmi toutes les conditions, tant que l’une d’entre elles est « vraie », la condition finale sera « vraie ».
Les priorités
S'il y a un 100*Pour l'expression (10-1)/(10+5), quelle étape le programme calcule-t-il en premier ? Les mathématiques du collège nous disent : 1. S'il s'agit d'une opération de même niveau, elle est généralement calculée de gauche à droite. 2. S'il y a à la fois une addition et une soustraction ainsi qu'une multiplication et une division, calculez d'abord la multiplication et la division, puis l'addition et la soustraction. ③S'il y a des parenthèses, calculez d'abord le contenu à l'intérieur des parenthèses. ④ Si cela est conforme aux lois de fonctionnement, les lois de fonctionnement peuvent être utilisées pour simplifier le calcul. Il en va de même pour la priorité du langage JavaScript, comme indiqué ci-dessous :

Figure 4-11
Instructions conditionnelles
Souvent, lorsque vous écrivez du code, vous devrez effectuer différentes actions pour différentes décisions. Vous pouvez utiliser des instructions conditionnelles dans votre code pour accomplir cette tâche. En JavaScript, nous pouvons utiliser les instructions conditionnelles suivantes :
instruction if - Utilisez cette instruction pour exécuter du code uniquement si une condition spécifiée est vraie
instruction if...else - exécute du code si une condition est vraie et exécute un autre code si la condition est fausse
Instruction if...else if....else - Utilisez cette instruction pour sélectionner l'un des multiples blocs de code à exécuter
instruction switch - Utilisez cette instruction pour sélectionner l'un des nombreux blocs de code à exécuter
Instruction If
Cette instruction exécute le code uniquement si une condition spécifiée est vraie. Veuillez utiliser des minuscules si. L'utilisation de lettres majuscules (IF) générera une erreur JavaScript ! Comme le montre la figure suivante :

Figure 4-12#
instruction if...else
Lorsque la condition est vraie, le code est exécuté, et lorsque la condition est fausse, un autre code est exécuté, comme illustré dans la figure suivante :

Figure 4-13
boucle for
Parfois, nous devons obtenir les données de la ligne K des derniers jours et nous devons les obtenir à partir du tableau de la ligne K en séquence en fonction de la position des données de la ligne K. Il est alors très pratique d’utiliser une boucle for, comme le montre la figure suivante :

Figure 4-14
Boucle While
Nous savons tous que le marché est en constante évolution. Si vous souhaitez obtenir le dernier tableau K-line, vous devez continuer à exécuter le même code encore et encore. Utilisez ensuite la boucle whilex. Tant que la condition spécifiée est vraie, la boucle peut toujours obtenir le dernier tableau K-line.

Figure 4-15
instruction break et instruction continue
La boucle a une précondition. Ce n'est que lorsque la condition préalable est « vraie » que la boucle commence à faire quelque chose de manière répétée, et la boucle ne se terminera pas tant que la condition préalable ne sera pas « fausse ». Cependant, l'instruction break peut immédiatement sortir de la boucle pendant l'exécution de la boucle ; l'instruction continue peut interrompre une certaine boucle puis continuer la boucle suivante. Comme le montre la figure suivante :

Figure 4-16
instruction de retour
L'instruction return termine l'exécution d'une fonction et renvoie la valeur de la fonction. L'instruction de retour ne peut apparaître que dans le corps d'une fonction. S'il apparaît ailleurs dans le code, cela provoquera une erreur de syntaxe !

Figure 4-17
Cadre stratégique de la CTA
Dans l'outil quantitatif Inventor, il est très pratique d'écrire des stratégies en JavaScript. Le fonctionnaire a intégré un ensemble de cadres stratégiques standard, comme le montre la figure suivante :

Figure 4-18
Comme le montre le code ci-dessus, il s’agit d’un cadre de stratégie standard. À l'exception du « code produit des contrats à terme sur matières premières » qui peut être modifié, tout le reste est dans un format fixe. Le plus grand avantage de l’utilisation du framework pour écrire des stratégies est que vous n’avez besoin d’écrire que la logique de la stratégie. D’autres questions telles que l’acquisition de marché, le traitement des commandes, etc. sont toutes gérées par le cadre. Cela vous permet de vous concentrer sur le développement de la stratégie.
Résumer
Ce qui précède est une introduction rapide au langage JavaScript. Après l'avoir appris, vous pouvez programmer des stratégies de trading quantitatives. Si vous devez écrire des stratégies plus complexes, vous pouvez vous référer à la documentation de l'API du langage JavaScript de l'outil quantitatif Inventor.
Aperçu de la section suivante
Le day trading est également un modèle de trading. Cette méthode ne conserve pas les positions pendant la nuit, le risque de volatilité du marché est donc plus faible. Une fois que des conditions de marché défavorables surviennent, des ajustements peuvent être effectués à temps. Après avoir appris le langage JavaScript dans cette section, dans la section suivante, nous vous montrerons comment écrire une stratégie de trading quantitative intraday réalisable.
Devoirs
- Essayez d'utiliser le langage JavaScript dans l'outil quantitatif Inventor pour obtenir des données historiques de la ligne K.
- Essayez d'écrire le code de stratégie au début de cette section et ajoutez des commentaires.
4.2 Comment mettre en œuvre le trading stratégique en utilisant le langage JavaScript
résumé
Dans l'article précédent, nous avons expliqué les conditions préalables à la mise en œuvre de stratégies de trading sous l'angle de l'introduction au langage JavaScript, de la syntaxe de base, du cadre de stratégie CTA, etc. Dans cet article, nous poursuivrons le contenu de l'article précédent et vous aiderons à mettre en œuvre une stratégie de trading quantitative intraday réalisable étape par étape à partir des modules de stratégie et des indicateurs techniques couramment utilisés.
Introduction à la stratégie
Les bandes de Bollinger sont également appelées canaux de Bollinger, abrégés en BOLL en anglais. C'est l'un des indicateurs techniques les plus couramment utilisés et il a été inventé par John Bollinger dans les années 1980. En théorie, les prix fluctuent toujours dans une certaine fourchette autour de la valeur. Sur la base de cette base théorique, les bandes de Bollinger ont introduit le concept de « canal des prix ».
La méthode de calcul consiste à utiliser des principes statistiques pour calculer d'abord « l'écart type » du prix sur une période donnée, puis à ajouter/moins 2 fois l'écart type de la moyenne mobile pour trouver « l'intervalle de confiance » du prix. Sa forme de base est un canal en bande composé de trois lignes de voies (voie médiane, voie supérieure et voie inférieure). La piste du milieu représente le coût moyen du prix, et les pistes supérieure et inférieure représentent respectivement la ligne de pression et la ligne de support du prix.
En raison de l’adoption du concept d’écart type, la largeur de la bande de Bollinger sera ajustée de manière dynamique en fonction des fluctuations récentes des prix. Lorsque la volatilité est faible, les bandes de Bollinger deviennent plus étroites ; lorsque la volatilité est importante, les bandes de Bollinger s'élargissent. Lorsque le canal BOLL devient plus étroit, cela signifie que le prix revient progressivement à la moyenne. Lorsque le canal BOLL passe d'étroit à large, cela signifie que le marché commence à changer. Si le prix franchit la ligne supérieure, cela indique que le pouvoir d’achat a augmenté. Si le prix franchit la ligne inférieure, cela indique que le pouvoir de vente a augmenté.
Méthode de calcul de l'indicateur des bandes de Bollinger
Parmi tous les indicateurs techniques, la méthode de calcul des bandes de Bollinger est l'une des plus compliquées, qui introduit le concept d'écart type dans les statistiques et implique le calcul de la ligne médiane (MB), de la ligne supérieure (UP) et de la ligne inférieure (DN). La méthode de calcul est la suivante :
Voie intermédiaire = Moyenne mobile simple sur N périodes de temps
Voie supérieure = Piste médiane + K × écart type de N périodes de temps
Rail inférieur = Piste médiane − Écart type de K × N périodes de temps

Figure 4-19
Logique de stratégie
Il existe de nombreuses façons d’utiliser les bandes de Bollinger. Ils peuvent être utilisés seuls ou en combinaison avec d’autres indicateurs. Dans ce tutoriel, nous utiliserons la méthode la plus simple d’utilisation des bandes de Bollinger. C'est-à-dire : lorsque le prix franchit la ligne supérieure de bas en haut, c'est-à-dire franchit la ligne de pression supérieure, nous pensons que la force haussière se renforce, qu'une vague de marché haussier s'est formée et qu'un signal d'ouverture d'achat est généré ; lorsque le prix tombe en dessous de la piste inférieure de haut en bas, c'est-à-dire tombe en dessous de la ligne de support, nous pensons que la force baissière se renforce, une vague de tendance à la baisse s'est formée et un signal d'ouverture de vente est généré.

Figure 4-20
Si après l'ouverture d'une position d'achat, le prix retombe sur la trajectoire médiane des bandes de Bollinger, nous pensons que la force haussière s'affaiblit ou que la force baissière se renforce, et un signal de clôture de vente est généré ; si après l'ouverture d'une position de vente, le prix remonte vers la trajectoire médiane des bandes de Bollinger, nous pensons que la force baissière s'affaiblit ou que la force haussière se renforce, et un signal de clôture d'achat est généré.
Conditions commerciales
Ouverture de position longue:S'il n'y a pas de position et que le prix de clôture est supérieur à la piste supérieure et que l'heure n'est pas 14h45
Ouvrir une position courte:S'il n'y a pas de position et que le prix de clôture est inférieur à celui de la piste inférieure et que l'heure n'est pas 14h45
Clôture de position longue:Si vous détenez un ordre long et que le prix de clôture est inférieur à la piste médiane, ou qu'il est 14h45
Clôture de position courte:Si vous détenez un ordre court et que le prix de clôture est supérieur à la piste médiane, ou qu'il est 14h45
Implémentation du code de stratégie
Pour mettre en œuvre une stratégie, nous devons d’abord déterminer de quelles données nous avons besoin. Par quelle API l'obtenir ? Alors comment calculer la logique de transaction ? Enfin, quelles méthodes sont utilisées pour passer des commandes et trader ? Ensuite, mettons-le en œuvre étape par étape :
Étape 1 : Utiliser le cadre stratégique CTA
Le cadre stratégique dit CTA est un cadre standard officiellement lancé par Inventor Quantitative. Grâce à ce cadre, vous n’avez pas à vous soucier des problèmes triviaux liés au développement de stratégies de trading quantitatives et pouvez vous concentrer directement sur la programmation de la logique de trading. Par exemple, si vous n'utilisez pas ce cadre, lors de la passation d'une commande, vous devez prendre en compte le transfert mensuel, les prix d'achat et de vente de la commande, l'annulation de la commande ou le suivi lorsque la commande n'est pas exécutée, etc.

Figure 4-21
L’image ci-dessus est le cadre de la stratégie CTA utilisant les outils quantitatifs de l’inventeur. Il s'agit d'un format de code fixe et tous les codes logiques de transaction sont écrits à partir de la ligne 3. Pendant l'utilisation, à l'exception du code de variété (jaune clair), aucune autre modification n'est requise.
Il convient de noter que le code produit dans la figure ci-dessus est « rb000/rb888 », ce qui signifie que les données de signal utilisent « rb000 », les données de transaction utilisent « rb888 » et le décalage du mois est automatique. Bien entendu, vous pouvez également spécifier un code produit spécifique, tel que le code produit « rb1910 », ce qui signifie que les données de signal et les données de transaction utilisent « rb1910 ».
FMZ dispose d'une bibliothèque de trading de contrats à terme sur matières premières JavaScript intégrée. Vous pouvez l'utiliser dans votre code en cliquant simplement sur la référence dans l'interface d'édition de stratégie :

Étape 2 : Obtenir diverses données
Réfléchissez-y bien, de quelles données avez-vous besoin ? À partir de notre logique de trading stratégique, nous avons constaté que : nous devons d'abord obtenir l'état actuel de la position, puis comparer la relation entre le prix de clôture et les pistes supérieure, médiane et inférieure de l'indicateur Bollinger Band, et enfin déterminer si le marché est sur le point de fermer. Alors récupérons ces données.
Obtenir des données de ligne K
La première étape consiste à obtenir le tableau K-line et le prix de clôture de la ligne K précédente, car ce n'est qu'avec le tableau K-line que l'indicateur de bande de Bollinger peut être calculé. Voici à quoi cela ressemble dans le code :

Figure 4-22
Comme le montre la figure ci-dessus :
Ligne 4 : obtenez le tableau K-line, qui est un format fixe.
Ligne 5 : Filtrez la longueur de la ligne K, car le paramètre que nous utilisons pour calculer l'indicateur de bande de Bollinger est 20. Lorsque la ligne K est inférieure à 20, l'indicateur de bande de Bollinger ne peut pas être calculé. Nous devons donc filtrer la longueur de la ligne K ici. S'il y a moins de 20 lignes K, nous reviendrons directement et continuerons d'attendre la prochaine ligne K.
Ligne 6 : à partir du tableau K-line obtenu, récupérez d'abord l'objet de la ligne K précédente, puis récupérez le prix de clôture de l'objet. Obtenir l'avant-dernier élément d'un tableau, qui est la longueur du tableau moins 2 (r[r.length - 2]); Les éléments du tableau K-line sont tous des objets qui contiennent le prix d'ouverture, le prix le plus élevé, le prix le plus bas, le prix de clôture, le volume des transactions et l'heure. Pour obtenir le cours de clôture, ajoutez simplement « . » et le nom de l'attribut à la fin (r[r.length - 2].Close)。
Obtenir les données temporelles de la ligne K
Étant donné que nous utilisons une stratégie intrajournalière, nous devons clôturer la position avant la clôture du marché. Nous devons donc déterminer si la ligne K actuelle est proche de la clôture du marché. Si c'est le cas, nous clôturons la position. Si ce n’est pas le cas, nous pouvons ouvrir la position. Le code est le suivant :

Figure 4-23
Comme le montre la figure ci-dessus :
Ligne 8 : récupérez l'attribut d'horodatage de la ligne K actuelle, puis créez un objet horaire (new Date(timestamp)).
Ligne 9 : Calculez les heures et les minutes en fonction de l'objet temps et déterminez si l'heure de la ligne K est 14 h 45.
Obtenir les données de position
Les informations de position sont une condition très importante dans les stratégies de trading quantitatives. Lorsque les conditions de trading sont remplies, il est également nécessaire de déterminer s'il faut passer un ordre en fonction de l'état de la position et du nombre de positions. Par exemple : lorsque les conditions d’ouverture d’une position d’achat sont remplies, si vous avez une position, vous n’avez pas besoin de passer à nouveau un ordre ; si vous n'avez pas de position, vous pouvez passer une commande. Voici à quoi cela ressemble dans le code :

Figure 4-24
Comme le montre la figure ci-dessus :
Ligne 11 : Obtenir l’état de la position actuelle. S'il y a plusieurs commandes, la valeur est 1 ; s'il y a des commandes courtes, la valeur est -1 ; s'il n'y a pas de positions, la valeur est 0.
Obtenir les données des bandes de Bollinger
Ensuite, vous devez calculer les valeurs des pistes supérieure, médiane et inférieure de l'indicateur de bande de Bollinger. Ensuite, vous devez d’abord obtenir le tableau des bandes de Bollinger, puis obtenir les valeurs des bandes supérieure, médiane et inférieure du tableau. Dans l'outil quantitatif Inventor, il est très simple d'obtenir le tableau des bandes de Bollinger. Vous pouvez appeler directement l'API Bollinger Band. La partie difficile est d'obtenir les valeurs des pistes supérieure, médiane et inférieure, car le tableau des bandes de Bollinger est un tableau bidimensionnel.
Le tableau bidimensionnel est en fait très facile à comprendre. C'est un tableau dans un tableau. L'ordre d'acquisition est donc le suivant : d'abord obtenir le tableau spécifié dans le tableau, puis obtenir l'élément spécifié à partir du tableau spécifié, comme indiqué dans la figure suivante :

Figure 4-25
Comme le montre la figure ci-dessous, les lignes 13 à 19 utilisent du code pour obtenir les valeurs des rails supérieur, médian et inférieur des bandes de Bollinger. Parmi eux, la ligne 13 utilise directement l'API de l'outil quantitatif de l'inventeur pour obtenir directement le tableau des bandes de Bollinger ; les lignes 14 à 16 obtiennent d'abord respectivement le tableau de rails supérieur, le tableau de rails intermédiaire et le tableau de rails inférieur dans le tableau bidimensionnel ; les lignes 17 à 19 obtiennent les valeurs du rail supérieur, du rail médian et du rail inférieur de la bande de Bollinger de la ligne K précédente à partir du réseau de rails supérieur, du réseau de rails médian et du réseau de rails inférieurs respectivement.

Figure 4-26
Étape 3 : Passer une commande
Avec les données ci-dessus, vous pouvez écrire la logique de trading et le code pour passer des commandes. Le format est également très simple. L'instruction la plus couramment utilisée est « l'instruction if », qui peut être décrite comme suit : si la condition 1 et la condition 2 sont remplies, passez une commande ; si la condition 3 ou la condition 4 est remplie, passez une commande. Comme le montre la figure suivante :

Figure 4-27
Dans l'image ci-dessus, les lignes 21 à 24 correspondent à la logique de trading et aux codes de placement d'ordre. De haut en bas, ils sont : fermeture longue, fermeture courte, ouverture longue, ouverture courte.
Prenons l'exemple de l'ouverture d'une position longue (ligne 23), il s'agit d'une « instruction if ». Si une seule ligne de code est exécutée dans cette instruction, les accolades « {} » peuvent être omises. Cette déclaration est traduite en texte comme suit : Si la position actuelle est 0, et que le prix de clôture est supérieur à la piste supérieure, et que l'heure de la ligne K n'est pas 14:45, alors « retourner 1 »
Les personnes prudentes pourraient constater qu'il y a « retour 1 » et « retour -1 » dans ces lignes. Il s'agit d'un format fixe, ce qui signifie : s'il s'agit d'un achat, écrivez « retour 1 » ; s'il s'agit d'une vente, écrivez "retour -1". Ouvrir une position longue et fermer une position courte sont tous deux des achats, donc écrivez « retour 1 » ; ouvrir une position courte et fermer une position longue sont tous deux des ventes, donc écrivez « retour -1 ».
Code de stratégie complet
À ce stade, un code de stratégie complet a été écrit. Si le cadre de trading, les données de trading, la logique de trading, le placement des ordres, etc. étaient écrits séparément, ne serait-ce pas très simple ? Voici le code complet de cette stratégie :

Figure 4-28
Il y a deux points à noter : essayez (mais pas nécessairement) d'écrire la logique de la stratégie de sorte que lorsque la condition de la ligne K racine est remplie, l'ordre de la ligne K suivante soit passé, ou lorsque la condition de la ligne K précédente est remplie, l'ordre de la ligne K racine soit passé. De cette façon, les résultats du backtest ne seront pas très différents des résultats réels. Vous n’êtes pas obligé de l’écrire de cette façon, mais vous devez faire attention à savoir si la logique de la stratégie est correcte. D’une manière générale, la logique de fermeture d’une position doit être écrite avant la logique d’ouverture d’une position. Le but de cette démarche est de rendre la logique de la stratégie aussi cohérente que possible avec vos attentes. Par exemple : si la logique de la stratégie parvient à rattraper la position inversée, la règle de la position inversée est de fermer d'abord la position, puis d'ouvrir une nouvelle position. Au lieu d’ouvrir d’abord une nouvelle position, puis de la fermer. Si nous écrivons la logique de fermeture directement avant la logique d'ouverture, ce problème ne se produira pas.
Résumer
Ci-dessus, nous avons appris chaque étape du développement d'une stratégie de trading quantitative intraday complète, y compris : l'introduction de la stratégie, la méthode de calcul de l'indicateur Bollinger Band, la logique de la stratégie, les conditions d'achat et de vente, la mise en œuvre du code de stratégie, etc. Grâce à ce cas de stratégie, vous pouvez non seulement vous familiariser avec la méthode de programmation de l'outil quantitatif de l'inventeur, mais également l'adapter à différentes stratégies basées sur ce modèle.
Les stratégies de trading quantitatives ne sont rien de plus que des résumés d’expériences ou de systèmes de trading subjectifs. Si nous écrivons les expériences ou les systèmes utilisés dans le trading subjectif avant d'écrire les stratégies, puis les traduisons en codes un par un, vous constaterez que l'écriture des stratégies sera beaucoup plus facile. Essayez-le !
Aperçu de la section suivante
Dans le développement de stratégies de trading quantitatives, si vous ne pouvez choisir qu'un seul langage de programmation, alors sans hésitation, vous devez choisir Python. De l'acquisition de données aux backtests stratégiques en passant par le trading, Python couvre toute la chaîne commerciale. Elle occupe une place importante dans le domaine de l’investissement financier quantitatif. Dans le prochain cours, nous apprendrons les connaissances de base du langage Python.
Devoirs
- Essayez d’utiliser les connaissances de cette section pour mettre en œuvre une stratégie de double moyenne mobile.
- Essayez d'implémenter l'algorithme de l'indicateur KDJ à l'aide du langage JavaScript dans l'outil quantitatif Inventor.
4.3 Introduction rapide au langage Python
résumé
Dans le développement de stratégies de trading quantitatives, si vous ne pouvez choisir qu'un seul langage de programmation, alors sans hésitation, vous devez choisir Python. De l'acquisition de données aux backtests stratégiques en passant par le trading, Python couvre toute la chaîne commerciale. Elle occupe une place importante dans le domaine de l’investissement financier quantitatif. Dans ce cours, nous apprendrons les connaissances de base du langage Python.
Pourquoi apprendre autant de langages de programmation ?
En repensant aux cours précédents, nous avons appris au total : le langage Mai, le langage visuel, le langage JavaScript, y compris le langage Python à apprendre dans cette section. Certains amis peuvent avoir des questions. Je suis ici pour apprendre le trading quantitatif, pourquoi dois-je apprendre autant de langages de programmation ?
En fait, chaque langage de programmation a ses propres caractéristiques linguistiques, et il n’y a pas de distinction entre les bons et les mauvais langages. Cela dépend davantage du langage de programmation auquel votre stratégie est la plus adaptée et si ce langage de programmation vous convient. Il existe un dicton selon lequel vous ne pouvez le savoir qu’en l’essayant vous-même. C’est pourquoi nous avons consacré autant d’espace à parler des langages de programmation. Si vous voulez bien faire votre travail, vous devez d’abord affûter vos outils.
Parallèlement, nous nous engageons également à ouvrir la porte à la recherche quantitative pour tous et à populariser la connaissance de divers langages de programmation. La recherche quantitative n’est pas aussi mystérieuse et hors de portée qu’on l’imagine. Je crois que la recherche quantitative deviendra populaire et accessible au grand public à l’avenir.
Pourquoi choisir Python pour le trading quantitatif
Le processus de trading quantitatif n'est rien de plus que l'acquisition de données, l'analyse et le calcul de données, le traitement de données, etc. En termes d'analyse de données, aucun autre langage ne peut être aussi performant en calculs et maintenir ses performances que Python. En particulier dans le traitement des données d'analyse de séries chronologiques (K-line est une série de données chronologiques), Python a l'avantage d'être plus simple et plus pratique. De plus, comparé à d’autres langages de programmation, Python est plus concis et plus facile à apprendre. Lire un bon programme Python, c'est comme lire de l'anglais.
Cinq raisons de choisir Python
1. La quantification est largement utilisée :
Quantopian aux États-Unis et Inventor Quant en Chine peuvent tous deux utiliser le langage Python.
2. Facile à apprendre :
La philosophie de conception de Python est centrée sur l'utilisateur et c'est un langage interprété facile à déboguer.
3. Gratuit et open source :
Aucun coût d’utilisation, partage de code open source et efficacité d’apprentissage et d’utilisation améliorée.
4. Bibliothèque riche :
Traitement de données, calcul de données, visualisation, analyse statistique, analyse technique, apprentissage automatique...
5. Interface de l'application :
Interfaces permettant d'acquérir, de stocker, d'appeler et de passer des ordres en fonction des informations de marché en temps réel provenant des principales plateformes.
Stratégie complète
Afin de vous aider à comprendre rapidement les connaissances clés de cette section, avant de présenter l'introduction rapide au langage JavaScript quantifié de l'inventeur, vous devez d'abord avoir une compréhension préliminaire des concepts de cette section. Prenons comme exemple la stratégie la plus simple de moyenne mobile double :
Ouverture de position longue:S'il n'y a pas de position actuelle et que la moyenne mobile sur 5 périodes est supérieure à la moyenne mobile sur 20 périodes.
Ouvrir une position courte:S'il n'y a pas de position actuelle et que la moyenne mobile sur 5 périodes est inférieure à la moyenne mobile sur 20 périodes.
Clôture de position longue:Si vous détenez actuellement une position longue et que la moyenne mobile sur 5 périodes est inférieure à la moyenne mobile sur 20 périodes.
Clôture de position courte:Si vous détenez actuellement une position courte et que la moyenne mobile sur 5 périodes est supérieure à la moyenne mobile sur 20 périodes.
Si c'était écrit en Python, cela ressemblerait à ceci :

Figure 4-29
Le code de la figure ci-dessus est une stratégie de trading quantitative complète écrite en Python. Il peut fonctionner en temps réel et passer des commandes automatiquement. En termes de quantité de code, Python est plus que JavaScript, car nous n'utilisons pas le framework de trading CTA.
Cependant, le processus de conception de l'ensemble de la stratégie est presque le même : définition des types de marché, obtention des données de la ligne K, obtention des informations de position, calcul de la logique de trading et placement des ordres d'achat et de vente. En d’autres termes, bien que la syntaxe de programmation soit différente, la logique de stratégie écrite est la même, alors apprenons ensuite la syntaxe de base de Python !
Sélection de version
Il existe deux versions de Python, à savoir : Python2 et Python3. Il y avait une fois une blague qui disait que Python était comme un fusil à double canon, mais vous ne pouvez utiliser qu'un seul canon pour tirer des balles à la fois, mais vous ne saurez jamais lequel est le plus précis. Donc, si vous êtes nouveau dans Python, il est recommandé d'apprendre directement Python 3 car c'est le dernier et il a été maintenu par la communauté Python. Nos cours sont également enseignés en Python 3.
Identifiant
L'identifiant est le nom de la variable, tel que test, Test, test10,démo, etc. Tout dans Python (variables, noms de fonctions et opérateurs) est sensible à la casse, ce qui signifie que le nom de variable test et le nom de variable Test sont deux variables différentes. Le premier caractère d'un identifiant (nom d'une variable, fonction, propriété, paramètre de fonction) doit être une lettre, un trait de soulignement (), les caractères qui le suivent peuvent également être des nombres, comme le montre la figure suivante :

Figure 4-30
Notes de rédaction
Un commentaire est une traduction ou une explication d'une ligne de code. Les règles sont très simples et incluent des commentaires sur une seule ligne et des commentaires au niveau du bloc. Un commentaire sur une seule ligne commence par un signe dièse (#), et un commentaire de bloc commence par trois guillemets simples (''') ou trois guillemets doubles (""") et se termine par trois guillemets simples (''') ou trois guillemets doubles ("""), comme illustré dans la figure suivante :

Figure 4-31
Lignes et retraits
La caractéristique la plus distinctive de Python est l'utilisation de l'indentation pour indiquer les blocs de code, sans avoir besoin d'accolades {}. Le nombre d'espaces pour l'indentation est variable, mais les instructions dans le même bloc de code doivent contenir le même nombre d'espaces pour l'indentation. Comme indiqué ci-dessous : Dans ce cas, le programme signalera une erreur. Même si la condition if est vraie, « True » ne sera pas affiché, car Python détectera automatiquement si la syntaxe du code est correcte avant l'exécution du code. Si le format du code est incorrect, le programme ne s'exécutera pas. La raison est que la 5ème ligne de code n’a pas de format d’indentation de code unifié. L'indentation à quatre espaces est un format fixe pour Python, et tout le monde doit le connaître.

Figure 4-32
Les variables
Les variables peuvent stocker n’importe quel type de données. Le simple fait d’écrire le nom de la variable revient à créer la variable. Cependant, lors de la création d'une variable, vous devez définir la valeur de la variable en même temps, sinon le programme signalera une erreur. Le côté gauche de l'opérateur signe égal (=) est un nom de variable et le côté droit de l'opérateur signe égal (=) est la valeur stockée dans la variable. Comme indiqué dans la figure ci-dessous : name2 est le nom de la variable et « quantification de l'inventeur » est la valeur de la variable. Si vous ne définissez pas de nouvelle valeur pour name2, la valeur de name2 sera toujours « quantification de l'inventeur ».

Figure 4-33
données
Python possède six types de données, dont trois sont immuables et trois sont mutables. Comme son nom l’indique, une fois les données immuables créées, leur valeur ne peut pas être modifiée et leur adresse en mémoire est unique ; les données mutables sont une référence à une adresse en mémoire, et si sa valeur change, son adresse mémoire reste inchangée.
Données immuables (3) : Nombre, Chaîne, Tuple ;
Données mutables (3) : Liste, Dictionnaire, Ensemble.

Figure 4-34
Numéros
Les types numériques de Python prennent en charge int (entier), float (virgule flottante), bool (booléen) et complex (nombre complexe). La fonction type() intégrée peut être utilisée pour interroger le type d'objet auquel une variable fait référence. Comme indiqué ci-dessous :

Figure 4-35
Outil de calcul
Comme la plupart des langages, les mathématiques en Python sont simples. Qu'il s'agisse d'opérateurs arithmétiques, d'opérateurs de comparaison ou d'opérateurs logiques, ils sont tous identiques à ce que nous avons appris à l'école. Parmi eux, les opérateurs arithmétiques sont des opérations mathématiques d’addition, de soustraction, de multiplication et de division. Les opérateurs de comparaison peuvent comparer si deux valeurs sont inférieures ou inférieures à. Les principaux opérateurs logiques sont : ET logique, OU logique et NON logique. [Pouvez-vous parler brièvement des chaînes couramment utilisées dans les stratégies de trading ?] Par exemple, dans nos stratégies de trading, la chaîne la plus couramment utilisée est le code produit, tel que : « rb1910 », « MA1910 ».

Figure 4-36
Il convient de noter que « et » est un ET logique, ce qui signifie « et ». « ou » est un OU logique, ce qui signifie « soit ». "!" est une négation logique, ce qui signifie « non » :
« et » signifie que lorsque toutes les conditions sont « vraies », la condition finale est « vraie » ;
« ou » signifie que parmi toutes les conditions, tant que l'une d'entre elles est « vraie », la condition finale sera « vraie ».
Les priorités
S'il y a un 100*Pour l'expression (10-1)/(10+5), quelle étape le programme calcule-t-il en premier ? Les mathématiques du collège nous disent : 1. S'il s'agit d'une opération de même niveau, elle est généralement calculée de gauche à droite. 2. S'il y a à la fois une addition et une soustraction ainsi qu'une multiplication et une division, calculez d'abord la multiplication et la division, puis l'addition et la soustraction. ③S'il y a des parenthèses, calculez d'abord le contenu des parenthèses. ④ Si cela est conforme aux lois de fonctionnement, les lois de fonctionnement peuvent être utilisées pour simplifier le calcul. La priorité de la langue Mai est la même que celle indiquée ci-dessous :

Figure 4-37
Booléen
Le booléen représente vrai ou faux et est généralement utilisé dans les jugements conditionnels et les instructions de boucle. Python définit deux constantes « True » et « False » pour représenter vrai et faux. En fait, tout objet peut être converti en type booléen et peut également être utilisé directement pour un jugement conditionnel, comme le montre la figure suivante :

Figure 4-38
Chaînes de caractères
Les chaînes sont du texte. Les chaînes, telles que « if1905 », sont souvent utilisées lors de la définition des codes produits. En Python, les chaînes de caractères sont entourées de guillemets simples « » ou doubles « ». Le signe plus + est l'opérateur de concaténation de chaînes. Vous pouvez obtenir un caractère d'une chaîne à partir de la valeur d'index, comme illustré ci-dessous :

Figure 4-39
Liste
La liste est le type de données le plus fréquemment utilisé en Python. Vous pouvez considérer une liste comme un conteneur, sauf que les éléments du conteneur sont disposés dans l’ordre de gauche à droite. Le premier élément est 0, le deuxième élément est 1, et ainsi de suite. De plus, les listes Python peuvent stocker n’importe quel type de données, comme indiqué ci-dessous :

Figure 4-40
fonction
Les fonctions en Python sont essentiellement les mêmes que celles que nous avons apprises au collège. Vous pouvez le considérer comme ce qui est transmis et ce qui est produit via le calcul de la fonction, comme illustré dans la figure suivante :

Figure 4-41
Déclaration if
Des phrases apparaissent souvent dans nos vies, par exemple : S'il pleut aujourd'hui, je tiendrai un parapluie. Autrement dit, l’instruction exécutera le code uniquement lorsque la condition spécifiée est vraie. Attention, faites attention au format d'indentation du code, sinon une erreur Python sera générée ! Comme le montre la figure suivante :

Figure 4-42
instruction if...else
Les instructions If...else sont également des instructions couramment utilisées, par exemple : S'il pleut aujourd'hui, je tiendrai un parapluie ; sinon, je ne tiendrai pas de parapluie. L'instruction else est une extension de l'instruction if, c'est-à-dire que le code suivant else ne sera exécuté que lorsque la condition spécifiée est False. Comme le montre la figure suivante :

Figure 4-43
Déclaration d'elif
Étant donné que Python ne prend pas en charge les instructions switch, Python ne peut utiliser que les instructions elif pour implémenter plusieurs jugements conditionnels. Par exemple : s’il s’agit d’une ligne positive, je serai haussier ; sinon, si c'est une ligne négative, je serai baissier ; sinon, j'attendrai et je verrai. Comme le montre la figure suivante :

Figure 4-44
boucle for
Parfois, nous devons obtenir les données de la ligne K des derniers jours et nous devons les obtenir à partir du tableau de la ligne K en séquence en fonction de la position des données de la ligne K. Il est alors très pratique d’utiliser une boucle for, comme le montre la figure suivante :

Figure 4-45
Boucle While
Nous savons tous que le marché est en constante évolution. Si vous souhaitez obtenir le dernier tableau K-line, vous devez continuer à exécuter le même code encore et encore. Utilisez ensuite la boucle whilex. Tant que la condition spécifiée est vraie, la boucle peut toujours obtenir le dernier tableau K-line.

Figure 4-46
instruction break et instruction continue
La boucle a une précondition. Ce n'est que lorsque la condition préalable est « vraie » que la boucle commence à faire quelque chose de manière répétée, et la boucle ne se terminera pas tant que la condition préalable ne sera pas « fausse ». Cependant, l'instruction break peut immédiatement sortir de la boucle pendant l'exécution de la boucle ; l'instruction continue peut interrompre une certaine boucle puis continuer la boucle suivante. Comme le montre la figure suivante :

Figure 4-47
instruction de retour
L'instruction return termine l'exécution d'une fonction et renvoie la valeur de la fonction. L'instruction de retour ne peut apparaître que dans le corps d'une fonction. S'il apparaît ailleurs dans le code, cela provoquera une erreur de syntaxe !

Figure 4-48
Cadre stratégique
Vous pouvez comprendre l’architecture de la stratégie comme un format fixe de la stratégie. L'outil quantitatif de l'inventeur adopte un mode de sondage. Voici une architecture de stratégie classique de contrats à terme sur matières premières.
Les lignes 4 à 7 sont les principales fonctions d'entrée de l'ensemble du programme, c'est-à-dire que l'ordinateur commence à exécuter le code à partir de la ligne 4 ; puis il exécute directement la ligne 5 et entre dans une boucle infinie ; ensuite la fonction logique de stratégie (onTick) et la fonction de veille (Sleep) sont exécutées dans la boucle infinie ; la fonction onTick est le code de la ligne 1, et vous pouvez écrire la logique de la stratégie dans la ligne 2 ; nous savons que dans la boucle, la vitesse d'exécution du programme est très rapide, donc l'utilisation de la fonction veille (Sleep) peut mettre le programme en pause pendant un moment. Le code suivant Sleep(500) signifie qu'il dort pendant 500 millisecondes à chaque fois que la boucle est terminée.

Figure 4-49
Résumer
Ce qui précède est une introduction rapide au langage Python. Bien qu'il s'agisse simplement de connaissances de base simples, il n'y a aucun problème à les utiliser pour rédiger une stratégie de trading quantitative simple. Si vous devez écrire des stratégies plus complexes, vous pouvez vous référer à la documentation de l'API du langage Python de l'outil quantitatif Inventor.
Aperçu de la section suivante
Parmi les stratégies de tendance dans le domaine de l’analyse technique, la moyenne mobile et la percée de canal sont sans aucun doute les deux principales écoles. Bien que l’objectif soit de capturer la tendance des mouvements de prix, les philosophies de trading et les caractéristiques de risque de ces deux stratégies sont complètement différentes. Après avoir appris l'introduction au langage Python dans cette section, dans la section suivante, nous vous montrerons comment écrire une stratégie de trading quantitative pour la percée du canal.
Devoirs
- Essayez d'utiliser le langage Python dans l'outil quantitatif Inventor pour obtenir des données historiques de la ligne K.
- Essayez d'écrire le code de stratégie au début de cette section et ajoutez des commentaires.
4.4 Comment implémenter le trading stratégique en utilisant le langage Python
résumé
Dans l'article précédent, nous avons appris l'introduction, la syntaxe de base, le cadre stratégique, etc. du langage Python. Bien que le contenu soit ennuyeux, c'est une compétence essentielle pour mettre en œuvre votre stratégie de trading et vous devez l'apprendre. Dans cet article, nous allons battre le fer tant qu'il est chaud et continuer avec les connaissances de base de Python dans l'article précédent. Nous commencerons par une stratégie simple, apprendrons tout en l'utilisant et aiderons chacun à réaliser une stratégie de trading quantitative réalisable étape par étape.
Introduction à la stratégie
Parmi les nombreuses stratégies de trading, la stratégie du canal Donchian devrait être l'une des stratégies de rupture les plus classiques. Elle était déjà connue en 1970. À cette époque, une société étrangère a effectué des tests de simulation et des recherches sur les stratégies de trading de programmes classiques. Les résultats ont montré que, parmi tous les tests de stratégie, la stratégie du canal Donchian a été la plus réussie.
Plus tard, la formation de trader « Turtle » la plus célèbre de l'histoire du trading a eu lieu aux États-Unis, ce qui a conduit à un énorme succès. À cette époque, les méthodes de trading des « Tortues » étaient gardées secrètes, mais plus de dix ans plus tard, lorsque les « Règles de trading des tortues » ont été rendues publiques, les gens ont découvert que les « Tortues » utilisaient une version améliorée du canal Donchian. stratégie.
Les stratégies de trading révolutionnaires sont adaptées aux produits de trading présentant des tendances relativement fluides. La méthode de trading révolutionnaire la plus courante consiste à utiliser la relation de position relative entre le prix et le support et la résistance pour déterminer des points d'achat et de vente spécifiques. La stratégie du canal Donchian dans cette section est basée sur ce principe.
Règles de stratégie du canal Donchian
Le canal Donchian est un indicateur de tendance, et son apparence et ses signaux sont quelque peu similaires à l'indicateur de bande de Bollinger. Mais le canal des prix de Donchian est construit sur la base des prix les plus élevés et les plus bas sur une certaine période de temps. Par exemple : calculez la valeur maximale du prix le plus élevé des 50 dernières lignes K pour former la piste supérieure ; calculez la valeur minimale du prix le plus bas des 50 dernières lignes K pour former la piste inférieure.
Cet indicateur est composé de trois courbes de couleurs différentes. La valeur par défaut correspond aux prix les plus élevés et les plus bas sur 20 périodes pour montrer la volatilité des prix du marché. Lorsque le canal est étroit, cela signifie que la volatilité du marché est faible. À l’inverse, un canal large signifie que la volatilité du marché est relativement importante.
Si le prix monte au-dessus de la piste supérieure, c'est un signal d'achat ; à l'inverse, si le prix descend en dessous de la piste inférieure, c'est un signal de vente. Étant donné que les lignes supérieures et inférieures sont calculées à l'aide des prix les plus élevés et les plus bas, dans des circonstances normales, les prix montent et descendent rarement en dessous des lignes supérieures et inférieures des canaux en même temps. Dans la plupart des cas, les prix évoluent unilatéralement le long de la trajectoire supérieure ou inférieure, ou entre les trajectoires supérieure et inférieure.
Méthode de calcul du canal de Donchian
Dans l'outil quantitatif Inventor, la méthode de calcul du canal Donchian est très simple. Vous pouvez l'utiliser directement pour obtenir le prix le plus élevé ou le prix le plus bas dans la période spécifiée, comme indiqué dans la figure ci-dessous : la 5ème ligne sert à obtenir la valeur maximale du prix le plus élevé de 50 périodes, et la 6ème ligne sert à obtenir la valeur minimale du prix le plus bas de 50 périodes.

Figure 4-50
Logique de stratégie
Il existe de nombreuses façons d'utiliser le canal Donchian. Il peut être utilisé seul ou en combinaison avec d'autres indicateurs. Dans ce cours, nous utiliserons la méthode la plus simple. C'est-à-dire que lorsque le prix franchit la ligne supérieure de bas en haut, c'est-à-dire franchit la ligne de pression supérieure, nous pensons que la force haussière se renforce, qu'une vague de marché haussier s'est formée et qu'un signal d'ouverture d'achat est généré ; lorsque le prix chute de haut en bas et franchit la piste inférieure, c'est-à-dire lorsqu'il tombe en dessous de la ligne de support, nous pensons que le côté court se renforce, qu'une tendance à la baisse s'est formée et qu'une ouverture de vente le signal est généré.

Figure 4-51
Si le prix retombe vers la voie médiane du canal Donchian après l'ouverture d'une position longue, nous pensons que les haussiers s'affaiblissent ou que les baissiers se renforcent, et un signal de vente est généré ; si le prix retombe vers la voie médiane piste du canal Donchian après l'ouverture d'une position courte, nous pensons que les haussiers s'affaiblissent ou que les baissiers se renforcent, et un signal de vente est généré ; lorsqu'il remonte vers la piste médiane du canal Donchian, nous pensons que la force des ours s'affaiblit, ou la force des haussiers se renforce, et un signal d'achat-clôture est généré.
Conditions commerciales
Ouverture de position longue: S'il n'y a pas de position et que le prix de clôture est supérieur à la piste supérieure
Ouvrir une position courte: S'il n'y a pas de position et que le prix de clôture est inférieur à la piste inférieure
Clôture de position longue:Si vous détenez un ordre long et que le prix de clôture est inférieur à la piste médiane
Clôture de position courte:Si vous détenez un ordre court et que le prix de clôture est supérieur à la piste médiane
Implémentation du code de stratégie
La première étape pour mettre en œuvre une stratégie consiste à obtenir des données, car les données sont une condition préalable à une stratégie de trading. Imaginez de quelles données avons-nous besoin ? Et comment obtenir ces données ? Nous concevons ensuite la logique de trading en fonction de ces données ; enfin, nous passons des ordres d'achat et de vente conformément à la logique de trading. Les étapes spécifiques sont les suivantes :
Étape 1 : Utiliser la bibliothèque de trading
Vous pouvez considérer la bibliothèque de trading comme un module fonctionnel. L’avantage d’utiliser la bibliothèque de trading est qu’elle vous permet de vous concentrer sur l’écriture de la logique de la stratégie. Par exemple : lorsque nous utilisons la bibliothèque de trading, lors de l'ouverture et de la fermeture de positions, nous pouvons utiliser directement l'API d'ordre dans la bibliothèque de trading ; mais si nous n'utilisons pas la bibliothèque de trading, lors de l'ouverture et de la fermeture des positions, nous devons obtenir le prix du marché, considérer le problème de la passation d'ordres mais de leur non-exécution, considérer le problème de l'annulation d'ordres, etc.

Figure 4-52
L’image ci-dessus est le cadre de la stratégie CTA utilisant les outils quantitatifs de l’inventeur. Il s'agit d'un format de code fixe et tous les codes logiques de transaction sont écrits à partir de la ligne 4. Aucune modification n'est requise ailleurs.
La bibliothèque de modèles JavaScript est intégrée, Python doit copier et enregistrer ce modèle : https://www.fmz.com/strategy/24288. Cliquez ensuite sur Référence sur la page d’édition de la politique. Bien entendu, vous pouvez également compléter la stratégie sans utiliser la bibliothèque de modèles.
Étape 2 : Obtenir diverses données
Réfléchissez-y bien, de quelles données avez-vous besoin ? À partir de notre logique de trading stratégique, nous avons constaté que : nous devons d'abord obtenir l'état actuel de la position, puis comparer la relation entre le prix de clôture et les pistes supérieure, médiane et inférieure de l'indicateur Bollinger Band, et enfin déterminer si le marché est sur le point de fermer. Alors récupérons ces données.
Obtenir des données de ligne K
La première étape consiste à obtenir le tableau K-line et le prix de clôture actuel de la ligne K. Ce n'est qu'avec le tableau K-line que nous pouvons appeler l'API pour obtenir le prix le plus élevé ou le plus bas de N périodes. Voici à quoi cela ressemble dans le code :

Figure 4-53
Comme le montre la figure ci-dessus :
Ligne 4 : obtenez le tableau K-line, qui est un format fixe.
Ligne 5 : Filtrez la longueur de la ligne K. Étant donné que nous calculons le prix le plus élevé ou le plus bas de N périodes, le paramètre utilisé est 50. Lorsque le nombre de lignes K est inférieur à 50, il ne peut pas être calculé. Nous devons donc filtrer la longueur de la ligne K ici. S'il y a moins de 50 lignes K, ignorez cette boucle et continuez à attendre la ligne K suivante.
Ligne 6 : Nous utilisons le code « records[[len(records) - 1]" récupère d'abord les dernières données du tableau K-line, c'est-à-dire les dernières données de K-line. Ces données sont un objet contenant : le cours d'ouverture, le cours le plus élevé, le cours le plus bas, le cours de clôture, le volume de transactions, l'heure et d'autres données. Puisqu'il s'agit d'un objet, nous pouvons utiliser directement « .Close » pour obtenir le dernier cours de clôture de K-line.
Obtenir les données de position
Les informations de position sont une condition très importante dans les stratégies de trading quantitatives. Lorsque les conditions de trading sont remplies, il est également nécessaire de déterminer s'il faut passer un ordre en fonction de l'état de la position et du nombre de positions. Par exemple : lorsque les conditions d’ouverture d’une position d’achat sont remplies, si vous avez une position, vous n’avez pas besoin de passer à nouveau un ordre ; si vous n'avez pas de position, vous pouvez passer une commande. Cette fois, nous encapsulons directement les informations de position dans une fonction, et nous pouvons les utiliser en appelant simplement cette fonction :

Figure 4-54
Comme le montre la figure ci-dessus :
Il s’agit d’une fonction qui obtient des informations de position. S'il s'agit d'une position courte, elle renvoie 0 ; s'il s'agit d'une position longue, elle renvoie 1 ; s'il s'agit d'une position courte, elle renvoie -1. Notez le code ci-dessus :
Ligne 2 : Créez une fonction nommée mp, qui n’a aucun paramètre.
Ligne 3 : obtenez le tableau de positions, qui est un format fixe.
Ligne 4 : Déterminez la longueur du tableau de positions. Si sa longueur est égale à , il doit s'agir d'une position vide, donc renvoyer 0
Ligne 6 : utilisez une boucle for pour commencer à parcourir le tableau. La logique suivante est très simple. Si vous détenez une position longue, elle rapporte 1 ; si vous détenez une position courte, elle renvoie -1.
Ligne 18 : appelez la fonction mp que nous venons d’écrire pour obtenir les informations de position.
Obtenez les prix les plus élevés et les plus bas des 50 000 dernières lignes
Dans l'outil quantitatif Inventor, vous pouvez l'obtenir directement en utilisant les fonctions « TA.Highest » et « TA.Lowest » sans avoir à écrire vous-même les calculs logiques. Et les résultats renvoyés par les fonctions « TA.Highest » et « TA.Lowest » sont des valeurs spécifiques plutôt que des tableaux. C'est très pratique. De plus, l'officiel dispose de centaines de fonctions d'indicateur intégrées.

Figure 4-55
Comme le montre la figure ci-dessus :
Ligne 19 : Appelez la fonction « TA.Highest » pour obtenir la valeur maximale du prix le plus élevé sur 50 périodes
Ligne 20 : Appelez la fonction « TA.Lowest » pour obtenir la valeur minimale du prix le plus bas sur 50 périodes
Ligne 21 : Calculez la valeur moyenne en fonction de la valeur maximale du prix le plus élevé sur 50 périodes et de la valeur minimale du prix le plus bas sur 50 périodes
Étape 3 : Passer une commande
Avec les données ci-dessus, vous pouvez écrire la logique de trading et le code pour passer des commandes. Le format est également très simple. L'instruction la plus couramment utilisée est « l'instruction if », qui peut être décrite comme suit : si la condition 1 et la condition 2 sont remplies, passez une commande ; si la condition 3 ou la condition 4 est remplie, passez une commande.

Figure 4-56
Comme le montre la figure ci-dessus :
Ligne 22 : utilisez la bibliothèque de transactions, qui est un format fixe
Lignes 23 et 24 : Il s'agit d'une instruction permettant de clôturer une position longue, qui utilise les « opérateurs de comparaison » et les « opérateurs logiques » que nous avons appris précédemment. Cela signifie que si vous détenez actuellement une position longue et que le prix de clôture est inférieur au cours médian, toutes les positions seront fermées.
Lignes 25 et 26 : Il s'agit d'une instruction permettant de clôturer un ordre court, qui utilise les « opérateurs de comparaison » et les « opérateurs logiques » que nous avons appris précédemment. Cela signifie que si vous détenez actuellement un ordre court et que le prix de clôture est supérieur au cours médian, toutes les positions seront fermées.
Ligne 27 : Déterminer l’état actuel de la position. Si la position est courte, passez à l’étape suivante.
Lignes 28 et 29 : Déterminez si le cours de clôture est supérieur à la piste supérieure. Si le prix de clôture dépasse la piste supérieure, achetez pour ouvrir une position.
Lignes 30 et 31 : Déterminez si le cours de clôture est inférieur à la piste inférieure. Si le prix de clôture tombe en dessous de la piste inférieure, vendez et ouvrez une position.
Résumer
Ci-dessus, nous avons appris chaque étape du développement d'une stratégie de trading quantitative complète à l'aide de Python, y compris : l'introduction de la stratégie, la méthode de calcul du canal de Donchian, la logique de la stratégie, les conditions d'achat et de vente, la mise en œuvre du code de stratégie, etc. Cette section n'est qu'une stratégie simple, comme point de départ. Il existe plus d’une méthode. Vous pouvez superposer différentes méthodes de trading en fonction de votre propre système de trading pour former votre propre stratégie de trading quantitative.
Aperçu de la section suivante
Dans le développement de stratégies de trading quantitatives, du point de vue de la vitesse d'exécution du langage de programmation, si nous demandons quel langage est le plus rapide, il ne peut s'agir que de C++. En particulier dans le domaine des produits dérivés et du trading haute fréquence, le C++ présente une spécificité de langage unique et des avantages dans les calculs numériques. Sa vitesse peut être augmentée de plusieurs ordres de grandeur par rapport à JavaScript et Python. Si vous souhaitez évoluer dans le domaine des produits dérivés et du trading haute fréquence à l'avenir, ce sera un cours à ne pas manquer.
Devoirs
- Commencez par copier et mettre en œuvre les stratégies de cette section.
- Essayez d'ajouter un indicateur de moyenne mobile à la stratégie dans cette section pour réduire la fréquence des transactions.
Chapitre 5 Backtesting, débogage et amélioration de la stratégie
5.1 L'importance et les pièges du backtesting
résumé
Le backtesting est la plus grande différence entre le trading quantitatif et le trading traditionnel. Basé sur des données de marché réelles survenues dans l'histoire, il simule rapidement le déclenchement de signaux de stratégie et la mise en correspondance des transactions pour obtenir des rapports de performance et d'autres données sur une période donnée. Il s’agit de l’un des éléments les plus importants du développement de stratégies pour les actions nationales et étrangères, les contrats à terme sur matières premières, les changes et d’autres marchés.
L'importance du backtesting
Dans les chapitres précédents, nous avons appris les bases des langages de programmation courants et vous avons appris à utiliser ces bases de programmation pour écrire des stratégies de trading simples. On peut dire que nous avons déjà parcouru plus de la moitié du chemin de la longue marche. Cependant, une fois qu’une stratégie est écrite, elle ne peut pas être mise en pratique directement. Cela nécessite toujours des backtestings - débogages - backtestings - débogages - et ainsi de suite, jusqu'à ce que la stratégie puisse implémenter pleinement le contenu du modèle et fonctionner correctement.
Du point de vue de la logique de trading quantitative, les stratégies sont en fait basées sur une série de connaissances et d’hypothèses sur le marché. Le backtesting peut déterminer efficacement si ces hypothèses sont valides et stables. Quelles pertes pourraient survenir pendant les périodes historiquement instables et comment contribuer à la prise de décisions pour prévenir ces pertes.
De plus, du point de vue des opérations de trading quantitatif, le backtesting peut aider à détecter les bugs dans la logique de la stratégie, tels que les fonctions futures, le vol de prix, le multi-ajustement, etc. Fournir des preuves fiables que la stratégie peut être utilisée dans le trading réel.
- Vérifiez l'exactitude des signaux de trading.
- Vérifiez la logique de la transaction et si vos idées sont réalisables.
- Découvrez les failles de votre système de trading et améliorez votre stratégie d’origine.
Par conséquent, l’importance du backtesting est de restaurer le processus de trading réel de la manière la plus réaliste possible grâce aux données historiques, de vérifier l’efficacité de la stratégie, d’éviter de payer un prix élevé pour des stratégies erronées et de nous aider à filtrer, améliorer et optimiser les stratégies de trading.
Pièges du backtesting
Signal de piège de backtesting clignotant :
Les stratégies de trading sont testées rétrospectivement sur la base de données historiques statiques. Les données de transaction réelles sont dynamiques. Par exemple : si le prix le plus élevé est supérieur au prix de clôture d'hier, achetez pour ouvrir une position. Dans le trading réel, si la ligne K n'est pas encore terminée, le prix le plus élevé sera dynamique et le signal de trading peut clignoter dans les deux sens. Lors du backtesting, le moteur de backtesting peut simuler des transactions correspondantes en fonction de données historiques statiques.
Piège du backtesting d'une future fonction :
La fonction future utilise les prix futurs, ce qui signifie que les conditions actuelles peuvent être modifiées à l'avenir. La fonction future peut également provoquer un clignotement du signal. Ainsi, toute fonction possède les caractéristiques d’une fonction future, comme la « fonction zigzag ».
Comme le montre la figure ci-dessous : la fonction ZigZag indique les points de retournement des pics et des creux. Il peut ajuster sa valeur en fonction du dernier prix en temps réel. Cependant, si le prix actuel change, le résultat calculé par la fonction ZigZag changera également. Si une fonction avec une fonction future est utilisée, le signal de commande actuel peut être établi et la commande peut être passée, mais le signal peut ne pas être établi après un certain temps.

Figure 5-1
Piège du backtesting : vol de prix
Le vol de prix consiste à utiliser les prix passés pour faire du commerce. Par exemple : si le prix le plus élevé est supérieur à un prix fixe, achetez au prix d’ouverture. Cette condition est un vol de prix, car sur le marché réel, lorsque le prix le plus élevé est supérieur à un certain prix, le prix est déjà à une certaine distance supérieur au prix d'ouverture, et à ce moment-là, il ne peut pas être acheté au prix d'ouverture. Mais dans le backtest, il y a un signal d'achat et la transaction peut être finalisée.
Il y a une autre situation. Si le prix augmente et ouvre plus haut que le prix fixe fixé par la stratégie, la transaction peut être finalisée au prix fixe lors du backtesting, mais ce prix fixe n'est évidemment pas disponible sur le marché réel.
Piège du backtesting : prix de transaction impossibles
Il existe plusieurs situations dans lesquelles les prix ne peuvent pas être négociés :
La première : dans le trading réel, vous ne pouvez généralement pas acheter lorsque le prix atteint la limite supérieure, et vice versa. Il est toutefois possible de trader dans le backtest.
Le deuxième type : Le mécanisme de correspondance des échanges est : la priorité au prix et la priorité au temps. Certaines variétés ont souvent des commandes énormes au prix du marché. Si vous passez un ordre d'achat ou de vente pendant une négociation réelle, vous devez attendre que le prix du marché s'épaississe avant que la transaction puisse être terminée, voire ne puisse pas être terminée. Cependant, lors du backtesting, les ordres d'achat et de vente en attente peuvent être exécutés.
Le troisième type : s'il s'agit d'une stratégie d'arbitrage, alors le profit du backtesting est très élevé, car à chaque fois lors du backtesting, on suppose que ces différences de prix ont été récupérées. En réalité, de nombreux écarts de prix ne peuvent pas être saisis, ou seulement une jambe l’est. En règle générale, la jambe qui n'est pas favorable à votre direction sera exécutée en premier, vous devez donc remplir l'autre jambe immédiatement. À ce moment-là, le glissement n'est plus de 1 ou 2 points, et la stratégie d'arbitrage elle-même gagne la différence de prix de ces quelques points. Cette situation ne peut pas être simulée dans le backtesting. Le bénéfice réel n’est pas aussi bon que le backtest.
Le quatrième type : l’événement cygne noir. Comme le montre le cercle rouge dans la figure ci-dessous, dans l'événement du cygne noir du marché des changes du franc suisse, bien qu'il y ait des prix d'ouverture, des prix les plus élevés, des prix les plus bas et des prix de clôture en surface, en fait, dans les conditions extrêmes du marché de la journée, le prix au milieu est vide, un grand nombre d'ordres stop-loss ont provoqué des bousculades, la liquidité était nulle et les transactions étaient très difficiles, mais les stop-loss pouvaient être atteints lors du backtesting.

Figure 5-2
Piège du backtesting : surapprentissage
Chaque fois que je vois l'image ci-dessous, je pense : Hahahaha... D'après l'image ci-dessous, vous pouvez voir qu'un modèle absurde, à condition qu'il soit suffisamment complexe, peut parfaitement s'adapter aux données.

Figure 5-3
Pour le trading quantitatif, le backtesting est basé sur des données historiques, mais les échantillons de données historiques sont limités. Si la stratégie de trading comporte trop de paramètres ou si la logique de trading est trop compliquée, la stratégie de trading sera trop adaptée aux données historiques.
Le processus de modélisation des stratégies quantitatives est essentiellement un processus de recherche de données locales non aléatoires à partir d’une grande quantité de données apparemment aléatoires. Sans l’aide de connaissances statistiques, il est facile de tomber dans le piège du surapprentissage.
Alors, ne vous faites pas d’illusions. Si vous constatez que les données hors échantillon ne fonctionnent pas bien et que vous pensez qu'il est dommage de jeter le modèle ou que vous n'êtes pas disposé à admettre que votre modèle n'est pas bon et que vous continuez à optimiser le modèle sur les données hors échantillon jusqu'à ce qu'il fonctionne aussi bien sur les données hors échantillon, alors au final, c'est votre argent durement gagné qui sera affecté.
Piège du backtesting : biais du survivant
Il existe une blague populaire à Wall Street : supposons qu’il y ait 1 000 singes participant à des investissements sur le marché. Au cours de la première année, 500 singes perdants sur le marché seront éliminés. Au cours de la deuxième année, la moitié des singes ont été éliminés à nouveau, laissant 250 singes. À la fin de la troisième année, il restait 125 singes.

Figure 5-4
À la neuvième année, il ne restait plus qu'un seul singe. Ensuite, vous le regardez, à gauche et à droite, et cela semble familier. Finalement, quand j'ai vu la couverture d'un magazine financier, je me suis soudainement souvenu : « Oh, n'est-ce pas Buffett ? »
Bien sûr, ce n'est qu'une blague, mais avez-vous déjà pensé que s'il y a 1 000 gestionnaires de fonds, après 10 ans, environ 10 gestionnaires de fonds surperformeront le marché pendant 10 années consécutives. Mais cela peut être déterminé par le hasard et la chance, et n’a rien à voir avec les compétences des gestionnaires de fonds.
Tout comme les performances du backtest sur le côté gauche de l’image ci-dessous, je pense que la plupart des investisseurs seront étonnés. Cette stratégie d’investissement a enregistré des performances très solides, sans pratiquement aucune baisse significative.

Figure 5-5
Attendez une minute, comme le montre l'image de droite, la vraie situation est à l'intérieur. Il s’avère que la courbe de backtest sur la gauche est simplement la plus performante parmi de nombreux backtests. C'est-à-dire que dans le backtest de gauche, il y a de nombreuses situations avec des performances encore pires.
Piège du backtesting : impact et coût
Dans un environnement commercial réel, les prix fluctuent constamment. Lorsque vous voyez une opportunité de trading et passez une commande, le prix peut avoir changé. Par conséquent, le problème de glissement est inévitable, que ce soit dans le trading subjectif ou dans le trading quantitatif.
Cependant, le backtesting est basé sur des données statiques et il est difficile de simuler un environnement de trading réel. Par exemple : le prix de l'ordre est d'acheter à 1050, mais le prix réel de la transaction peut être de 1051. Il existe de nombreuses raisons à ce phénomène, telles que : le vide de liquidité dans des conditions de marché extrêmes, les retards du réseau, les systèmes logiciels et matériels, la réponse du serveur, etc.
Backtesting sans glissement
Comme le montre la figure ci-dessus, il s’agit d’un backtest sans glissement. La courbe de capital semble meilleure, mais il existe une différence entre le prix de transaction réel dans le trading réel et le prix de transaction idéal du backtest de stratégie. Par conséquent, afin de réduire cette erreur, lors du backtesting de la stratégie, vous pouvez définir 2 points de glissement pour augmenter le prix d'achat ou diminuer le prix de vente.
Backtesting avec glissement
Comme le montre la figure ci-dessus, pour la même stratégie, si le résultat du backtest est significativement différent du résultat du backtest sans glissement après l'ajout d'un glissement de 2 sauts, cela signifie que cette stratégie doit être améliorée ou remplacée par une nouvelle. En particulier pour les stratégies avec une fréquence de trading relativement élevée, l'ajout d'un glissement de 1 à 2 sauts pendant le backtesting peut rapprocher le backtest de l'environnement de trading réel.
Résumer
Certains amis pourraient se demander, étant donné qu’il peut y avoir tant de problèmes dans le trading quantitatif, comment puis-je prouver que ma stratégie est bonne ? En fait, la réponse est très simple. Avant de mettre en œuvre la stratégie dans la pratique, vous devez d’abord simuler la transaction pendant un certain temps. Si le prix de transaction de la transaction simulée est presque le même que le prix de transaction lors du backtest, cela prouve qu'il n'y a pas de problème avec la stratégie, du moins qu'il n'y a pas de problème avec la logique de la stratégie.
Dans tous les cas, le backtesting est indispensable pour un développeur de système de trading expérimenté. Parce qu’il peut vous indiquer si une idée de stratégie peut être vérifiée comme étant efficace dans des transactions historiques. Mais bien souvent, le backtesting ne garantit pas une rentabilité future. Parce qu’il y a trop d’écueils dans le backtesting, vous ne le comprendrez pas à moins de dépenser de l’argent pour en tirer quelques leçons. Et ces leçons s’apprennent avec de l’argent réel. Je pense que la lecture de cet article peut au moins vous aider à éviter de nombreux détours et pièges quantitatifs.
Devoirs
- Qu'est-ce que le surapprentissage et comment l'éviter ?
- Quels sont quelques exemples de biais de survivant dans la vie réelle ?
5.2 Comment réaliser un backtesting de trading quantitatif
résumé
L’importance et la signification du backtesting ne font aucun doute. Lors de la réalisation de backtests quantitatifs, il convient d’essayer de maintenir la stratégie dans l’environnement historique réel autant que possible. Si les détails de l’environnement historique sont ignorés, l’ensemble du backtest quantitatif peut être invalide. Cet article vous expliquera comment effectuer un backtesting de trading quantitatif.
Le backtesting est équivalent à la lecture de données. Il rejoue les données historiques de la ligne K et simule les règles de trading réelles pour acheter et vendre, et résume enfin le ratio de Sharpe, le taux de tirage maximal, le taux de rendement annualisé, la courbe de capital et d'autres données sur une période donnée. Actuellement, il existe de nombreux logiciels capables d'effectuer des backtesting, comme Wenhua Finance, qui propose une gamme complète de produits, VNPY, qui peut être personnalisé de manière flexible, etc.
En tant que logiciel de trading quantitatif commercial, Inventor Quant est livré avec un moteur de backtesting haute performance et adopte un cadre de backtesting en boucle for (sondage) pour les calculs vectorisés, ce qui est plus rapide. Il unifie également les codes pour le backtesting et le trading réel, résolvant en partie le dilemme du « backtesting facile, trading réel difficile ».
Introduction à l'interface de backtesting
Prenons comme exemple la stratégie Mai Language d’Inventor Quantitative et ouvrons le site Web officiel de l’outil de trading quantitatif d’Inventor (www.fmz.com). Cliquez sur Centre de contrôle, Bibliothèque de stratégies, Sélectionner une stratégie, Simuler le backtest et accédez à la page suivante :

Figure 5-8
Dans l'interface de configuration du backtest, vous pouvez le personnaliser en fonction de vos besoins réels. Par exemple : définissez l'heure du backtest, la période de la ligne K, le type de données (données de niveau de simulation ou données de niveau en temps réel). En comparaison, le backtesting des données de niveau de simulation est plus rapide, tandis que le backtesting des données de niveau en temps réel est plus précis). De plus, vous pouvez également définir les frais de backtesting et les fonds initiaux du compte, etc.
Cliquez sur la bibliothèque de trading en langue Mai, le premier est l'onglet Paramètres de trading. La stratégie Mai Language dans l'outil de trading quantitatif Inventor dispose de deux méthodes d'exécution de backtest, à savoir : le modèle de prix de clôture et le modèle de prix en temps réel. Le modèle de prix de clôture signifie que le modèle est exécuté uniquement après la fin de la ligne K actuelle et que la transaction est exécutée lorsque la ligne K suivante commence. Le modèle de prix en temps réel signifie que le modèle est exécuté une fois à chaque fois que le prix change et que la transaction est immédiatement exécutée lorsque le signal de trading est établi. Comme indiqué ci-dessous :

Figure 5-9
La taille du lot d'ouverture par défaut fait référence au nombre de positions ouvertes et fermées pendant le backtesting, et la taille maximale de l'ordre de transaction unique est le nombre maximal de positions d'ouverture et de fermeture confiées au moteur de backtesting dans une seule transaction. Il existe un écart entre le prix de transaction réel et le prix de transaction prédéfini. Cet écart évolue généralement dans une direction défavorable au trader, entraînant des pertes supplémentaires dans la transaction, il est donc nécessaire d'ajouter un glissement. Les contrats à terme sur matières premières nationales ajoutent généralement 1 à 2 sauts, voire plus, pour simuler un environnement commercial réel.
Renseignez le type de contrat à tester dans l'option à terme, tel que rb000 ou rb888. L'option de trading réel est principalement utilisée pour le trading réel, et les paramètres par défaut peuvent être conservés dans le backtest. Si la progression de la récupération automatique est définie sur vrai, lorsque la stratégie arrête le robot pendant le fonctionnement en temps réel, le redémarrage du robot restaurera automatiquement la position du signal précédente sans recalculer le signal. Le nombre par défaut de tentatives de commande est de 20. Si une commande échoue, le système essaiera de passer à nouveau la commande. L'intervalle d'interrogation du réseau est l'intervalle de temps auquel le robot exécute le code de stratégie.

Figure 5-10
L'option de trading au comptant est principalement destinée au trading de devises numériques et vous pouvez conserver les paramètres par défaut dans le backtest. Vous pouvez spécifier le volume de transaction unique, le volume de transaction minimum, la précision de la devise de tarification, la précision du produit de transaction, les frais de traitement, le temps de synchronisation du compte, l'intervalle des statistiques de profits et pertes, etc. De plus, pour les échanges de devises numériques individuels, vous pouvez également définir l'effet de levier multiple et d'autres paramètres associés.

Figure 5-11
Backtesting de stratégie
Avant de procéder à un backtesting, déterminez d’abord votre stratégie de trading. Nous prenons ici comme exemple la stratégie du thermostat. Cette stratégie adoptera une stratégie de tendance dans un marché en tendance et une stratégie volatile dans un marché volatil en fonction des conditions du marché. Le code source est le suivant (vous pouvez également le télécharger directement depuis le site officiel de Strategy Square of the Inventor Quantitative) :

Figure 5-12
Dans l'interface de backtesting de simulation, après avoir configuré les paramètres de backtesting, cliquez simplement sur le bouton Démarrer le backtesting et les résultats du backtesting s'afficheront immédiatement après quelques dizaines de secondes. Dans le journal de backtest, le nombre de secondes que le backtest a pris, le nombre total de journaux et le nombre de transactions sont enregistrés. Les informations du compte impriment les résultats de performance finaux du backtesting de la stratégie : profit et perte moyens, profit et perte de position, marge, frais de traitement et rendements estimés, etc.

Figure 5-13
La colonne d'informations sur l'état enregistre le type de transaction, le volume de la position, le prix de la position, le dernier prix, le dernier type de signal, les prix les plus élevés et les plus bas après le maintien de la position, le numéro et l'heure de mise à jour et les informations sur le capital. De plus, l'étiquette de profit et de perte flottante montre la courbe de capital détaillée du compte, ainsi que les indicateurs de performance couramment utilisés : rendement, rendement annualisé, ratio de Sharpe, volatilité annualisée et taux de tirage maximal, qui peuvent essentiellement répondre aux besoins de la plupart des utilisateurs.
Parmi eux, l’indicateur de performance le plus important est le ratio de Sharpe. Il s’agit d’un indicateur complet qui prend en compte à la fois le rendement et le risque. Il s’agit également d’un indicateur de référence important pour mesurer un produit de fonds. En termes simples, cela signifie le niveau de risque que vous prenez pour chaque dollar que vous gagnez. Par conséquent, plus le ratio de Sharpe est élevé, mieux c'est.
Comme son nom l’indique, la volatilité annualisée est la volatilité quotidienne multipliée par le nombre de jours de négociation par an. Il mesure le risque d’un fonds, mais il ne représente certainement pas le risque total. Par exemple, la stratégie A présente une volatilité plus élevée, mais elle fluctue à la hausse avec un bon taux de rendement, tandis que la stratégie B présente une volatilité plus faible, mais elle reste stable. Peut-on dire que la stratégie B est meilleure que la stratégie A ? Comme le montre la figure suivante, stratégie A :

Figure 5-14
Enfin, dans la colonne d'informations du journal, l'état de correspondance de chaque transaction pendant le backtest est enregistré en détail, y compris l'heure spécifique de la transaction, l'échange, l'achat et la vente, les types d'ouverture et de clôture, le prix de la transaction mis en correspondance par le moteur de backtest, la quantité de transaction et les informations imprimées, etc.

Figure 5-15
Après le backtesting
Souvent, même dans la plupart des cas, les résultats des backtests seront loin de vos attentes. Après tout, une stratégie qui génère des profits à long terme, durables et stables n’est pas facile à obtenir. Cela nécessite votre capacité à comprendre le marché.
Si votre backtest de stratégie aboutit à une perte, ne vous découragez pas, c'est tout à fait normal. Tout d’abord, vérifiez si la logique de la stratégie est mal écrite, si des paramètres extrêmes sont utilisés, s’il y a trop de conditions d’ouverture et de fermeture, etc. Si nécessaire, vous pouvez également réexaminer votre stratégie de trading et votre philosophie de trading sous un autre angle.
Si les résultats du backtest de votre stratégie sont très bons, la courbe de capital est parfaite et le ratio de Sharpe dépasse 1 ou même plus. Ne soyez pas trop heureux pour le moment. Lorsque vous rencontrez ce genre de situation, la plupart du temps, c'est à cause de l'utilisation de fonctions futures, du vol de prix, du surajustement ou de l'échec de définition du glissement, etc. Vous pouvez utiliser des données hors échantillon et des transactions réelles simulées pour éliminer ces problèmes.
Résumer
Ce qui précède est une introduction à l'ensemble du processus de backtesting de l'ensemble de la stratégie de trading, dont on peut dire qu'elle a été spécifiée dans les moindres détails. Il convient de noter que le backtesting des données historiques constitue, après tout, un environnement idéal où tous les risques sont connus. Par conséquent, le meilleur moment pour tester la stratégie est de traverser un marché haussier ou baissier, et le nombre de transactions efficaces ne doit pas être inférieur à 100 fois, afin d'éviter un biais de survie partiel.
Le marché est en constante évolution. Une stratégie qui fonctionne bien dans le backtesting historique ne fonctionne pas nécessairement bien dans le futur. La stratégie ne peut pas seulement faire face aux risques connus dans l’environnement de backtesting, mais doit également faire face aux risques inconnus à l’avenir. Il est donc indispensable d’accroître la résistance au risque et l’universalité de la stratégie.
Devoirs
- Essayez de copier la stratégie de cette section et de tester le rapport de performance.
- En vous basant sur votre propre expérience de trading, essayez d'améliorer et d'optimiser les stratégies de cette section
5.3 Comment comprendre le rapport de performance du backtesting stratégique
résumé
Une fois notre backtest de stratégie terminé, l'outil de trading quantitatif Inventor affichera divers indicateurs de performance et graphiques de courbe de profit sur la page Web. Cependant, peut-être parce que nous ne connaissons pas l’interprétation et le contenu de ces indicateurs, nous ne sommes pas en mesure de juger avec précision si une stratégie est bonne ou mauvaise. Cet article commencera par les principaux concepts d'indicateurs pour aider chacun à comprendre le rapport de performance du backtesting de stratégie et à distinguer les avantages et les inconvénients de la stratégie. Bien sûr, la plupart des outils de trading quantitatif disposent de ce type de rapport de performance de backtest, et le contenu est similaire. Une fois que vous aurez appris le contenu de cette section, il sera également applicable même si vous passez à un autre outil de trading.
Évaluation objective et complète
Qu'il s'agisse de l'enregistrement de données de trading réelles ou du rapport de back-testing utilisant des données historiques, la qualité du modèle est évaluée à travers des statistiques sur les conditions de trading.
La question clé est : quelles données statistiques sont nécessaires à la comparaison ? Prenons un exemple : comme le montre la figure ci-dessous, en supposant que les deux ensembles de données suivants sont obtenus lors du test au cours de la même période, pouvons-nous déterminer quel modèle est le plus performant ?

Figure 5-16
La réponse est non. Le caractère unilatéral du système d’évaluation conduira le système de trading quantitatif à une impasse.
Le système de trading doit être capable de passer des tests rétrospectifs historiques avant de pouvoir être mis en service. Un système de trading qui ne peut pas passer le backtesting historique a peu de chances de générer des bénéfices dans le trading réel à long terme. Le backtesting historique est une condition préalable nécessaire pour mettre un système de trading en pratique.
Un système de trading capable de passer le backtesting historique n'est pas nécessairement un bon système de trading, mais s'il ne peut pas passer le backtesting historique, ce n'est certainement pas un bon système de trading. D’une manière générale, nous devons analyser les rapports de performance du point de vue de la stabilité, de la durabilité et de leur degré de satisfaction aux attentes.

Figure 5-17
Comme le montre l’image ci-dessus, toute personne ayant été exposée au trading quantitatif a peut-être vu ces termes de données de performance de backtest longs et obscurs. Parmi ces données de performance, beaucoup sont même contradictoires. De nombreux débutants en analyse quantitative ne savent pas sur quelles données se concentrer.
Les termes des indicateurs de performance dans l'image ci-dessus peuvent généralement être divisés en plusieurs catégories : ratios de performance, analyse du cycle, courbes diverses, analyse de trading extrême, etc. Même du point de vue des produits de fonds, la plupart d'entre eux ne sont qu'un affichage des résultats de calculs de backtest, qui ont peu de signification d'application pratique, tels que : exigence de capital du compte, revenu de détention, limite de confiance, etc. Vous devrez peut-être même vous concentrer uniquement sur les plus importants. Ci-dessous, je sélectionnerai les plus importants parmi les indicateurs de performance du backtest pour une explication détaillée.
Indicateurs de performance importants
Tirage maximal
La formule de calcul du tirage maximum est la même que ci-dessus. Pour le modèle, le drawdown maximum est un indicateur de risque très important, qui est encore plus important que la volatilité. Le drawdown maximum observé lors du backtest représente également, dans un sens, la pire situation possible qui puisse se produire après l'ouverture d'une position.
D'un point de vue mathématique, si le capital perd 20 %, les fonds restants doivent réaliser un bénéfice de 25 % pour rétablir l'échelle du capital d'origine. Si la perte est de 50 %, les fonds restants doivent réaliser un bénéfice de 100 % pour rétablir l’échelle du capital avant la perte.
Il ne fait alors aucun doute que plus la perte est importante, plus la possibilité de retrouver le niveau initial de capital est faible et plus la difficulté est grande. L'espace de profit à la hausse pour les fonds est illimité, mais l'espace de perte à la baisse est limité et la possibilité de toucher le fond est plus grande.
Quelle que soit la définition donnée, au moins ces deux points constituent la compréhension dominante actuelle :
- Plus le retracement maximum est petit, mieux c'est ;
- Le drawdown est directement proportionnel au risque. Plus le drawdown est important, plus le risque est grand, et plus le drawdown est faible, plus le risque est faible.
Ratio rendement/risque ajusté (RAROC)
Beaucoup de gens ne connaissent pas ce concept. En fait, le ratio rendement-risque ajusté constitue la ligne de démarcation entre les joueurs professionnels et les joueurs amateurs. Il s’agit également d’un très bon outil d’évaluation pour les banques d’investissement, les grands fonds et les traders professionnels, et constitue une norme d’évaluation courante dans le domaine financier mondial.
En matière d’investissement, nous ne devons pas seulement considérer les bénéfices, mais également considérer le niveau de risque pris pour obtenir ces bénéfices. D’une manière générale, le risque et le rendement d’un actif sont proportionnels. Cela signifie que lorsque le modèle est en tête en termes de rendement et progresse rapidement, il peut y avoir des risques cachés derrière sa gloire qui n’ont pas encore éclaté.
Par exemple, les conditions d’ouverture et de fermeture ou l’augmentation et la diminution des positions dans le modèle peuvent avoir des rendements plus élevés lorsque le marché est en hausse, mais une fois qu’une baisse se produit, les pertes seront multipliées, entraînant des pertes énormes. De plus, les hausses et les baisses ont des impacts asymétriques considérables.
De nombreux traders quantitatifs expérimentés sont prêts à sacrifier certains rendements afin de réduire les risques. Dans ce cas, les rendements ajustés au risque sont plus utiles à titre de référence. Par conséquent, dans le cadre d’un backtesting, un modèle à haut risque et à forte volatilité n’est pas nécessairement un bon modèle même s’il présente des rendements élevés.
Les dépôts sont sûrs, mais le rendement annuel n’est que de 2 %. Le marché peut vous faire gagner 50 % en quelques jours, ou vous faire perdre 50 % en quelques jours. Après tant d’années de trading, j’ai un concept très important : faire face aux risques. Les risques et les rendements n’existent jamais isolément. Le commerce, c’est comme aller pêcher en mer. Il vous est impossible de pêcher mais vous ne voulez pas supporter les risques de la mer. Être trop conservateur et être trop radical sont en fait deux extrêmes. Il en va de même pour la conception de modèles de stratégie.
Nombre de transactions
Vous ne pouvez pas utiliser quelques mois de performances de backtest pour prouver le modèle. S'il y a trop peu de données de backtest, les résultats du backtest peuvent être accidentels, soit les paramètres sont accidentels, soit les conditions du marché sont accidentelles, etc. De plus, des données historiques plus longues peuvent également filtrer certains biais de survie.
D'une manière générale, pour les actions et les matières premières nationales, les données doivent être rétro-testées sur plus de 5 ans, et pour les produits nouvellement cotés, au moins 3 ans de rétro-test sont nécessaires. Pour les produits ou matières premières cotés plus tôt, tels que l'or et l'indice du dollar américain sur le marché international, au moins un cycle haussier-baissier doit être rétrotesté, ce qui devrait généralement durer plus de 10 à 15 ans. La période de backtesting doit être suffisamment longue pour que les résultats du backtesting soient suffisamment fiables. Pour les produits qui ne répondent pas à cette exigence, la valeur R doit être pondérée de manière appropriée lors de l’ouverture d’une position afin de réduire de manière proactive l’exposition au risque.
Bénéfice moyen
L’indicateur de profit moyen semble ordinaire, mais il est en réalité très important. Son calcul est également très simple : Bénéfice Net / Nombre de Transactions. Il n’est pas exagéré de dire qu’il s’agit d’un miroir capable de détecter les performances des backtests qui semblent brillantes en surface. Comme indiqué ci-dessous, si cette stratégie peut rapporter de l’argent, elle n’est pas normale :

Figure 5-18

Figure 5-19
Si vous voyez les performances du backtest de cette stratégie, vous vous posez peut-être une question : ne serait-il pas dommage de ne pas utiliser une stratégie aussi proche de la perfection ? Attends une minute! Veuillez regarder attentivement le bénéfice moyen sur la deuxième image, qui n'est que de 17, ce qui signifie que le bénéfice moyen de chaque transaction n'est que de 17 yuans.
Prenons l’exemple de la majorité des produits du marché à terme avec un bond de 10 yuans. Quiconque a déjà fait du trading réel comprendra ce que cela signifie. Dans le trading réel, sans parler d'un seul saut, même dix ou huit sauts sont possibles. Les sauts à deux et à trois sont monnaie courante.
Taux de victoire
Le taux de gain n’existe jamais seul, ou il n’est pas réaliste de parler du problème uniquement sur la base du taux de gain. Si vous utilisez le bon modèle sur le bon marché, il n’est pas surprenant d’atteindre un taux de réussite de 80 %, mais cela n’a aucun sens.
Le prix monte ou descend, sinon il reste le même. Si le temps est suffisamment long, vous constaterez que la probabilité que les prix augmentent et diminuent est de 50 % dans chaque cas. Quel que soit le type de modèle de stratégie que vous utilisez, si le taux de réussite dépasse 50 % lors du backtesting, vous devez être prudent. D’un point de vue mathématique et physique, c’est impossible.
Courbe d'équité détaillée
Comme le dit le proverbe, une image vaut mille mots. La courbe d'équité détaillée commence à partir du moment de la première entrée jusqu'au moment de la dernière barre du graphique. Il s'agit d'une courbe d'équité en temps réel pour le trading. Il est en temps réel car il prend en compte le profit et la perte flottants sur chaque barre.

Figure 5-20
La courbe de capitaux propres détaillée reflète les variations de la valeur nette du compte et constitue l'outil d'évaluation le plus intuitif. Cela permet d'avoir une idée approximative de l'état des pertes et des profits de la stratégie et de la volatilité/fluidité des profits et des pertes en un coup d'œil. Cependant, cette image du rapport de performance stratégique ne vaut pas seulement mille mots, mais elle déroute également des millions de croyants. De plus, ne regardez jamais la courbe des capitaux propres de clôture.
Taux de rendement annualisé
Le rendement annualisé est un indicateur controversé. Certains pensent que ce document est destiné aux profanes et qu’il n’a aucune valeur de référence. Tout d’abord, réaliser un profit est une condition préalable pour que le modèle soit sélectionné, ou en d’autres termes, le rendement du modèle lui-même doit avoir une valeur attendue positive.

Figure 5-21
Vous pouvez avoir d’innombrables retours à 100 %, mais vous ne pouvez vous permettre qu’un seul retour à 100 % au maximum. L’écart entre le taux de rendement annualisé et le taux de rendement réel (taux de rendement de la période de détention) peut être très important, parfois même plus important que ce que nous pouvons imaginer.
Résumer
Enfin, une chose doit être expliquée. Les performances de backtesting parfaites n’existent pas. Outre les problèmes liés aux données de test elles-mêmes, les utilisateurs du modèle peuvent être confrontés à d’autres pièges. Tout, de l’optimisation des paramètres à la conception des transactions, peut être différent de l’opération réelle.
Plus important encore, les problèmes émotionnels au niveau de l’exécution sont le facteur X dans la mise en production du modèle. Le trading réel ne peut pas être exécuté dans un environnement de « vide émotionnel ». Le phénomène de la queue grasse est quelque chose sur lequel tout trader programmatique doit toujours être vigilant.
Devoirs
- Énumérez les indicateurs de performance que vous jugez les plus importants dans le backtesting
- Essayez de calculer l'indicateur du ratio de Sharpe
5.4 Pourquoi les tests hors échantillon sont nécessaires
résumé
Dans la section précédente, nous nous sommes concentrés sur plusieurs indicateurs de performance importants pour vous apprendre à comprendre le rapport de performance du backtesting de stratégie. En fait, écrire une stratégie qui peut générer des revenus grâce au backtesting n’est pas la chose la plus difficile. Ce qui est plus difficile, c’est de savoir comment évaluer si cette stratégie continue d’être efficace dans le trading réel. Alors aujourd’hui, je vais vous expliquer les tests hors échantillon et leur importance.
Le backtesting n'est pas la même chose que le trading réel
De nombreux débutants quantitatifs sont facilement convaincus de leurs stratégies de trading sur la base d'un rapport de performance apparemment bon ou d'une courbe de capital issue d'un backtest, et sont prêts à montrer leurs talents sur le marché. Certes, ce résultat de backtest peut parfaitement correspondre à un certain état de marché qu'ils ont observé, mais une fois que cette stratégie de trading est mise en pratique pendant une période plus longue, ils constateront que cette stratégie n'est pas réellement efficace.
J'ai vu de nombreuses stratégies de trading qui ont un taux de réussite de plus de 50 % lorsqu'elles sont testées rétrospectivement. Avec un taux de gain aussi élevé, le ratio de profit et de perte peut toujours être supérieur à 1:1. Cependant, une fois ces stratégies mises en pratique, elles entraînent généralement des pertes. Il existe de nombreuses raisons aux pertes, l’une d’entre elles étant que lors des backtests, il y a trop peu d’échantillons de données, ce qui entraîne un biais dans les données.
Cependant, le trading est une chose tellement compliquée. Avec le recul, c’est extrêmement clair, mais si nous revenons au début, nous sommes toujours perdus. Cela implique le problème fondamental de la quantification : les limites des données historiques. Par conséquent, si vous n'utilisez que des données historiques limitées pour tester votre stratégie de trading, il sera difficile d'éviter le problème de « conduire en regardant dans le rétroviseur ».
Qu’est-ce qu’un test hors échantillon ?
Comment pouvons-nous tirer le meilleur parti des données limitées pour tester scientifiquement les stratégies de trading lorsque les données sont limitées ? La réponse réside dans les tests hors échantillon. Lors du backtesting, les données historiques sont divisées en deux sections selon la séquence temporelle. La première section de données est utilisée pour l'optimisation de la stratégie et est appelée ensemble d'entraînement, tandis que la deuxième section de données est utilisée pour les tests hors échantillon et est appelée ensemble de test.
Si votre stratégie est toujours efficace, optimisez les meilleurs paramètres dans les données de l'ensemble d'entraînement et appliquez ces paramètres aux données de l'ensemble de test pour le backtesting. Idéalement, les résultats du backtest devraient être similaires à ceux de l’ensemble d’entraînement, ou dans une plage raisonnable. Cela montre que cette stratégie est relativement efficace.
Toutefois, si une stratégie fonctionne bien dans l’ensemble de tests, mais fonctionne mal dans l’ensemble de tests, ou varie considérablement, et que la même chose est vraie pour d’autres paramètres, alors la stratégie peut avoir un biais d’accommodation des données.
Par exemple, supposons que vous souhaitiez effectuer un backtesting des contrats à terme sur matières premières pour les barres d'armature et qu'il existe environ 10 ans de données sur les barres d'armature (2009-2019). Vous pouvez ensuite utiliser les données de 2009 à 2015 comme ensemble d’entraînement et les données de 2015 à 2019 comme ensemble de test. Par exemple, pour une stratégie de moyenne mobile double, les meilleurs groupes de paramètres dans l'ensemble d'entraînement sont (moyenne mobile sur 15 périodes et moyenne mobile sur 90 périodes), (moyenne mobile sur 5 périodes et moyenne mobile sur 50 périodes), (moyenne mobile sur 10 périodes et moyenne mobile sur 100 périodes)... Ensuite, nous mettons ces groupes de paramètres dans l'ensemble de test pour le backtesting, et comparons les rapports de performance du backtesting et les courbes de capital de l'ensemble d'entraînement et de l'ensemble de test pour déterminer si leur différence se situe dans une plage raisonnable.
Si vous n'utilisez pas de tests hors échantillon et utilisez directement les données de 2009 à 2019 pour tester la stratégie, les résultats peuvent être un bon rapport de performance de test et une bonne courbe de capital en raison de l'ajustement des données historiques. Cependant, ces résultats de backtest n’ont que peu d’importance pour le trading réel et n’ont aucun rôle d’orientation, en particulier pour les stratégies avec plus de paramètres.
Tests avancés hors échantillon
En plus de diviser les données historiques en deux parties et d'effectuer des backtestings dans l'échantillon et hors échantillon, il existe en fait une meilleure option, qui est la méthode de backtesting récursif et de backtesting croisé. Surtout lorsqu'il existe peu de données historiques, comme les contrats à terme sur le pétrole brut et les contrats à terme sur les pommes qui viennent d'être cotés ces dernières années, ces deux méthodes peuvent être utilisées pour tester de manière exhaustive le modèle en utilisant des données limitées.
Les principes de base du test récursif: former le modèle avec un historique de données plus long et le tester avec un historique de données plus court, puis déplacer continuellement la fenêtre de données vers l'arrière, en répétant les étapes de formation et de test.
Données de formation : 2000 à 2001, données de test : 2002 ;
Données de formation : 2001 à 2002, données de test : 2003 ;
Données de formation : 2002 à 2003, données de test : 2004 ;
Données de formation : 2003 à 2004, données de test : 2005 ;
Données de formation : 2004 à 2005, données de test : 2006 ;
... et ainsi de suite...
Enfin, les résultats des tests effectués en 2002, 2003, 2004, 2005, 2006... sont statistiquement validés pour évaluer de manière globale la performance de la stratégie.
Le principe de la vérification récurrente peut être expliqué de manière intuitive, comme le montre la figure ci-dessous:

Figure 5-22
La figure ci-dessus montre les deux méthodes utilisées pour effectuer un test inductif.
Le premier type: les données de test sont plus courtes et le nombre de tests est plus élevé à chaque test.
Deuxième type: à chaque test, les données de test sont plus longues et le nombre de tests est moindre.
Dans les applications pratiques, la longueur des données de test peut être modifiée et plusieurs tests peuvent être effectués pour déterminer la stabilité du modèle dans le traitement de données non stationnaires. Le principe de base de la validation croisée consiste à diviser toutes les données en N parties égales, à utiliser N-1 parties pour la formation à chaque fois et à utiliser les parties restantes pour les tests.
Le processus de vérification croisée est le suivant:
1 données de formation: 2001-2003, données de test: 2000;
2/ Données d'entraînement: 2000-2002, données de test: 2003
3/ Données de formation: 2000, 2001, 2003, données de test: 2002;
4/ Données de formation: 2000, 2002 et 2003, données de test: 2001

Figure 5-23
Comme le montre la figure ci-dessus: le plus grand avantage de la vérification croisée est l'utilisation optimale de données limitées, chaque donnée d'entraînement est également une donnée de test. Cependant, il existe également des inconvénients évidents lorsque la vérification croisée est appliquée à la vérification du modèle stratégique:
1 Lorsque les données sur les prix ne sont pas stables, les résultats des tests de modèles sont souvent peu fiables. Par exemple, les données de 2008 sont utilisées pour la formation et les données de 2005 pour les tests. Il est fort probable que l'environnement du marché en 2008 ait beaucoup changé par rapport à 2005, de sorte que les résultats des tests de modèles ne sont pas fiables.
2. Comme dans le cas de la première, il n'est pas logique d'utiliser un modèle de test de données plus ancien pour un modèle de test de données plus récent dans le cas d'un test croisé.
En outre, les tests de modèles de stratégie de quantification symétrique rencontrent des problèmes de chevauchement de données, qu'il s'agisse de tests récursifs ou de tests croisés.
Dans le développement de modèles de stratégie de trading, la plupart des indicateurs techniques sont basés sur des données historiques d'une certaine longueur. Par exemple, en utilisant un indicateur de tendance, calculer les données historiques des 50 derniers jours, et le jour de la transaction suivante, l'indicateur est calculé à partir des données des 50 jours précédant la date de la transaction, alors les données des deux indicateurs sont les mêmes pendant 49 jours, ce qui entraîne une variation peu évidente de l'indicateur tous les deux jours adjacents.

Figure 5-24
Les données qui se chevauchent peuvent avoir les conséquences suivantes:
- La lenteur des changements dans les résultats prévus par les modèles entraîne une lenteur des changements dans les positions, c'est ce que nous appelons le retard des indicateurs.
2/ Certaines valeurs statistiques ne sont pas disponibles pour les tests de résultats du modèle, ce qui rend les résultats de certains tests statistiques peu fiables en raison de la corrélation séquentielle causée par les données répétées.
Une bonne stratégie de trading devrait pouvoir être rentable à l’avenir. En plus de tester objectivement les stratégies de trading, les tests hors échantillon peuvent également faire gagner du temps aux traders quantitatifs. Dans la plupart des cas, il est très dangereux d’adopter directement les paramètres optimaux de tous les échantillons et de les mettre en combat réel.
Si l'on distingue toutes les données historiques avant le moment de l'optimisation paramétrique, en les divisant en données dans l'échantillon et données en dehors de l'échantillon, en utilisant d'abord les données dans l'échantillon pour l'optimisation paramétrique, puis en utilisant les données en dehors de l'échantillon pour les tests en dehors de l'échantillon, on peut trier cette erreur, tout en vérifiant si la stratégie optimisée s'applique au marché futur.
Résumer
Comme pour les transactions, nous n'avons jamais la possibilité de traverser le temps et de prendre une décision correcte pour nous-mêmes sans faire le moindre faux pas. Si la main de Dieu ou la capacité de traverser le futur est présente, nous pouvons faire des transactions physiques en ligne sans être testés, et nous pouvons faire des transactions physiques en ligne sans être testés. Et nous, les mortels, nous devons vérifier nos stratégies dans les données historiques.
Cependant, même avec une énorme quantité de données historiques, elles semblent extrêmement rares face à un avenir vaste, sans fin et imprévisible. Par conséquent, le système commercial qui s’est développé de bas en haut en fonction de l’histoire finira par s’effondrer avec le temps. Parce que l’histoire ne peut épuiser l’avenir. Par conséquent, un système de trading complet basé sur des attentes positives doit être soutenu par ses principes et sa logique internes.
« Faites confiance, mais vérifiez » — Président Reagan
Devoirs
- Quels phénomènes de la vie réelle constituent un biais de survie ?
- Utilisez les outils quantitatifs de l’inventeur pour effectuer des tests rétrospectifs à la fois dans l’échantillon et hors échantillon et comparer leurs différences.
5.5 Optimisation et optimisation de la stratégie de trading
résumé
L’essence de la stratégie de trading est la généralisation et la conclusion des règles du marché. Plus votre compréhension du marché est approfondie et plus votre capacité à exprimer des idées avec du code est élevée, plus votre stratégie sera proche du marché. Cette section continuera à expliquer comment optimiser vos stratégies de trading et effectuer les derniers préparatifs pour votre trading réel.
Optimiser les entrées et les sorties
La plupart des stratégies de suivi des tendances utilisent des avancées ou des indicateurs techniques pour capturer les tendances du marché. Habituellement, les méthodes d’entrée et de sortie de ces signaux sont moins opportunes. Si la stratégie utilise un modèle de prix de clôture, le point d'entrée sera au prix d'ouverture de la prochaine ligne K. Par conséquent, le meilleur moment d'entrée pour franchir cette ligne K sera manqué, et une grande quantité de bénéfices sera manquée.
Par conséquent, un moyen efficace consiste à utiliser des prix en temps réel plus avantageux dans la mise en œuvre de la stratégie et à passer des commandes immédiatement lorsque des signaux apparaissent. De cette façon, lorsque le signal est établi, vous pouvez entrer immédiatement sur le marché et ne manquerez pas de bénéfices. Mais tous les prix en temps réel ne sont pas meilleurs que les prix de clôture. Cela dépend de la stratégie de trading. Pour certaines stratégies avec une logique de trading simple, la différence entre le prix en temps réel et le prix de clôture est relativement faible. Cependant, le modèle de prix de clôture ne peut pas gérer une logique de trading plus détaillée, il est donc nécessaire d'utiliser le prix en temps réel.
Optimisation des paramètres
L'optimisation des paramètres peut rapprocher les stratégies de trading quantitatives des données historiques et obtenir de meilleures performances de backtesting. Par exemple : nous utilisons une stratégie de double moyenne mobile dans les contrats de barres d’armature, mais quelles sont les deux moyennes mobiles les meilleures ? Vous pouvez ensuite utiliser la fonction de réglage des paramètres dans l'outil quantitatif de l'inventeur pour trouver automatiquement les deux meilleurs paramètres de moyenne mobile.
Comme le montre la figure ci-dessous, en prenant comme exemple la stratégie de la double moyenne mobile, il s’agit en soi d’une instance multidimensionnelle. Si nous dessinons les résultats du backtest de chaque paramètre sous forme de point (notez la figure ci-dessous), alors chaque paramètre est une dimension de cette stratégie, et en fin de compte toutes les combinaisons de paramètres construisent cette forme de surface multidimensionnelle complexe (comme une montagne).

Figure 5-25
Comme indiqué ci-dessus, il s’agit d’un graphique de performance de stratégie à double paramètre. À mesure que les paramètres changent, le taux de rendement final change également de manière significative et la surface est fortement déformée, formant des « pics » et des « creux » de différentes hauteurs. Habituellement, le premier endroit dans le résultat d'optimisation est le point le plus élevé de toute la surface. Cependant, du point de vue de la sensibilité des paramètres, de l'objectivité, etc., ce résultat peut parfois ne pas être « optimal ». Parce que le marché est en constante évolution.
Par conséquent, le principe important de l’optimisation des paramètres est de choisir des plateaux de paramètres plutôt que des îlots de paramètres. Le plateau de paramètres fait référence à l’existence d’une plage de paramètres plus large dans laquelle la stratégie peut atteindre de bonnes performances. Généralement, elle forme une distribution normale avec le centre du plateau. Ce que l'on appelle l'îlot de paramètres signifie que la stratégie ne fonctionnera bien que lorsque la valeur du paramètre se situe dans une plage très étroite. Lorsque le paramètre s’écarte de cette valeur, les performances de la stratégie se détérioreront considérablement.

Figure 5-26
Plateau de paramètres
En prenant la figure ci-dessus comme exemple, une bonne distribution des paramètres de stratégie devrait être un plateau de paramètres. Même si les paramètres diffèrent, la rentabilité de la stratégie peut toujours être garantie. Ces paramètres sont très stables, ce qui peut rendre la stratégie plus universelle lorsqu'elle est confrontée à diverses conditions de marché dans le cadre d'opérations réelles futures.

Figure 5-27
Îles Parameter
En prenant la figure ci-dessus comme exemple, si les performances du backtest montrent des îlots de paramètres, lorsque les paramètres se déplacent légèrement, la rentabilité de la stratégie sera considérablement réduite. De tels paramètres sont souvent difficiles à gérer dans les conditions de marché en constante évolution dans les transactions réelles en raison de leur faible universalité.
Par conséquent, si les performances des paramètres proches sont bien pires que celles du paramètre optimal, alors ce paramètre optimal peut être le résultat d'un sur-ajustement, qui peut être mathématiquement considéré comme une solution singulière plutôt que la solution maximale recherchée. D'un point de vue mathématique, les singularités sont instables. Dans des conditions de marché incertaines à l’avenir, une fois que les caractéristiques du marché changent, les paramètres optimaux peuvent devenir les pires paramètres.
Ajouter un filtre
De nombreuses stratégies de tendance peuvent bien saisir la tendance et générer des rendements élevés lorsque les tendances du marché évoluent. Cependant, à long terme, le résultat final est soit un petit bénéfice, soit une perte. Quel est le problème ?
La raison est que la stratégie continue de se négocier à plusieurs reprises sur un marché volatil, et la plupart des transactions volatiles sont des pertes ou de petits bénéfices. Le marché est volatil environ 70 % du temps. Des pertes faibles et continues à long terme entraînent la perte de tous les bénéfices antérieurs.

Figure 5-28
La solution est d’ajouter des filtres. Il existe de nombreux types de filtres sur le marché, notamment des filtres de profits et de pertes, des filtres de valeur de risque, des filtres de modèles de tendance, des filtres d'indicateurs techniques, etc. Par exemple, l'ajout d'un filtre de moyenne mobile sur une grande période peut réduire le nombre de transactions sur un marché volatil et filtrer la moitié des transactions erronées.
Lisser la courbe de financement
La quantification poursuit une méthode de profit stable et durable, ce que souhaite voir la grande majorité des traders. Personne ne veut gagner 50 % cette année, perdre 30 % l’année prochaine et gagner 40 % l’année d’après. Ils préfèrent accepter un rendement annuel de 20 % qui peut durer plus de dix ans. Voilà ce que l’investissement quantitatif peut faire. Parce que l’investissement quantitatif est un modèle de trading avec une performance durable.
Afin d’obtenir une courbe de capital lisse, il est nécessaire de construire un portefeuille d’investissement avec plusieurs stratégies, plusieurs variétés, plusieurs cycles et plusieurs paramètres. Mais plus n’est pas forcément mieux. Il y a ici un effet marginal décroissant. Plus vous ajoutez d’éléments au portefeuille au début, meilleure est la diversification. Cependant, lorsque la stratégie atteint un certain ordre de grandeur, l’effet de rendement décroissant de la diversification commence à apparaître. L’avantage d’une combinaison est la diversification. Bien que le taux de rendement global ne soit pas le plus élevé, il est le plus stable.
Abandonnez la recherche du Saint Graal
De nombreux traders se demandent si le trading quantitatif peut trouver le Saint Graal. Certains traders se précipitent même sur le marché avec leurs soi-disant stratégies parfaites après un simple backtest. J'espère gagner toutes les batailles et devenir un quant professionnel capable de surmonter tous les obstacles.
Mais existe-t-il un Saint Graal ? C’est en fait très simple, la réponse est non. En fait, ce n’est pas difficile à comprendre. Si ce marché a réellement des règles, alors les personnes ayant un QI plus élevé, une éducation plus élevée et un travail plus acharné seront en mesure de découvrir ces règles. Qu’ils utilisent l’analyse mathématique, le monopole de l’information ou d’autres méthodes d’analyse, ils finiront par gagner la majeure partie de l’argent sur le marché. À long terme, ces personnes monopoliseront le marché commercial jusqu’à ce que celui-ci ne puisse plus fonctionner normalement.
Résumer
Si le temps de négociation est suffisamment long, n'importe qui peut être confronté à diverses tendances du marché au cours du processus de négociation, et il est peu probable que ces tendances se répètent exactement. En tant que trader quantitatif, en plus d'examiner et d'optimiser correctement vos propres stratégies de trading, vous devez également surveiller en permanence les conditions du marché et améliorer continuellement vos stratégies en réponse aux changements du marché.
Dans le même temps, vous devez également comprendre que les profits et les pertes proviennent de la même source. Les pertes font partie de toute la stratégie de trading. Même la meilleure stratégie de trading peut connaître une série de baisses. Lorsqu’il y a une perte dans chaque transaction, vos règles et stratégies de trading ne doivent pas être remises en question. Au moins, ne changez pas facilement votre cadre logique stratégique, à moins que votre cadre logique ne soit erroné dès le départ.
Devoirs
- Construisez un portefeuille d’investissement basé sur les caractéristiques de votre propre stratégie et effectuez un backtest en utilisant les outils quantitatifs de l’inventeur
- Essayez d'optimiser votre stratégie de trading quantitatif en fonction du contenu de cette section
5.6 Développez une pensée probabiliste et améliorez votre modèle de trading
résumé
Le trading est à la fois une science et un art. Il existe de nombreuses méthodes de trading, qu'il s'agisse d'investissement de valeur, d'analyse technique, de points chauds d'événements, de couverture d'arbitrage, etc., elles semblent être logiquement rigoureuses en surface et avoir du sens en théorie. Mais en réalité, elles sont souvent contradictoires. Parfois, la rigueur de la science ne peut expliquer l’imagination débordante de l’art.
Bien que les différentes méthodes commerciales aient des points de départ différents, tous les chemins mènent à Rome. L’avantage de l’investissement de valeur est qu’une marge de sécurité peut être définie pour les fluctuations de prix en fonction de la valeur ; L'avantage de l'analyse technique est que les trois hypothèses principales rendent la transaction scientifique.
Cependant, ils ont tous une caractéristique commune : ils ne peuvent faire que des prédictions approximatives sur l’analyse des prix futurs, mais pas de prédictions précises. Même si l'analyse fondamentale est combinée à l'analyse technique, elle ne peut pas résoudre le problème de l'amélioration de la « précision », le trading est donc un jeu de probabilités du début à la fin.
Jeux de hasard
En fait, le trading n’est pas seulement un jeu de probabilité. Dans la vie, tout, des petites choses comme traverser la route (le feu est vert, est-il prudent de traverser la route maintenant ?) et quel genre d'amis se faire (cet ami est-il fiable ?) ; Les grandes choses comme le type de carrière à poursuivre (le trading professionnel est-il vraiment une bonne carrière ?) et avec qui épouser (serons-nous heureux ensemble ?), sont autant de jeux de probabilités consistant à évaluer les risques et les rendements. Parce que nous n’avons pas la capacité de prédire l’avenir, chaque fois que nous faisons quelque chose, peu importe notre degré de confiance, il y a toujours un risque et nous ne pouvons pas être sûrs à 100 %.
Une raison importante pour laquelle de nombreuses personnes font des erreurs dans le trading est le manque de réflexion probabiliste et le fait d’être trop émotif plutôt que rationnel lors du trading. L’émotivité est en fait notre instinct primitif. Sur le marché, ces instincts primitifs peuvent stimuler de nombreuses faiblesses humaines et les amplifier de manière exponentielle. C’est pourquoi la plupart des gens arrivent sur le marché et finissent par échouer.
Raisons de l'échec de la transaction
Raison 1 : En raison de la nature humaine
La grande majorité des gens ont une faiblesse : ils aiment profiter des petits avantages et ont peur de subir de petites pertes. Dès qu’il y a un petit bénéfice sur le marché, ils l’encaissent immédiatement et quittent le marché avec des bénéfices ; une fois qu'il y a une perte, ils s'accrochent à la position perdante pour tenter de récupérer leur argent par hasard. En conséquence, les petites pertes s’accumulent lentement et se transforment en pertes importantes.
Les prix augmentent ou diminuent, ou restent les mêmes. À long terme, sans tenir compte des frais de transaction et du glissement, la probabilité de gagner ou de perdre de l’argent est d’environ 50 %. Par conséquent, la méthode de trading de la plupart des gens devient une stratégie d’attentes négatives avec des profits limités et des risques illimités. Leur relevé de règlement de transaction devrait ressembler à ceci : petit bénéfice>>......>>petit bénéfice>>grosse perte.
Dans la vie réelle, cela ressemble beaucoup à la pensée des pauvres et à celle des riches. Les pauvres sont réticents au risque et ont peur de perdre de l’argent. J'aime les emplois qui offrent un revenu stable et qui recherchent la stabilité. Même si vous n’êtes pas absolument sûr de vouloir faire quelque chose, vous ne devriez jamais le faire. À première vue, il ne semble y avoir aucun mal à faire cela, mais cela comporte d’énormes opportunités et risques.
Les riches sont plus disposés à prendre des risques, sachant que le risque et le rendement sont toujours proportionnels. Seul le risque engendre des opportunités. Ils évaluent les risques de manière rationnelle et font des paris courageux lorsque les risques sont contrôlables.
Raison 2 : J'aime gagner de l'argent rapidement
Une institution étrangère a réalisé une statistique qui a montré qu’à long terme, le rendement annualisé des actifs nets de la plupart des industries ne devrait pas dépasser 15 %. Au contraire, de nombreux investisseurs particuliers se sentent gênés de saluer les autres s’ils réalisent un bénéfice de 15 % sur le marché. Les gens aiment gagner de l’argent rapidement et leurs actions incluent des transactions importantes et des transactions à court terme.
Position lourde
Les positions lourdes, l’effet de levier élevé et l’allocation de capital sont tous très tentants, mais également très dangereux. Si vous réussissez, vous réussirez ; Si vous échouez, vous serez condamné. Si vous avez une stratégie de trading avec un taux de gain de 50% et que vous opérez avec une position complète et un trading sur marge, si vous avez de la chance, vous pouvez gagner plus de dix fois de suite, et il est également possible que votre richesse passe d'un changement quantitatif à un changement qualitatif.
Mais si vous faites une seule erreur, tout sera remis à zéro. Même si vous opérez simplement avec une position lourde sans aucune allocation de capital, il existe un risque que votre compte tombe à zéro, car vous ne pouvez pas garantir que vous ne subirez pas de pertes plus d'une douzaine de fois de suite dans la prochaine situation de marché. Même des transactions intensives peuvent transformer une stratégie de trading initialement attendue en une stratégie avec des gains et des pertes inégaux.
À court terme
Le seul art martial au monde qui ne peut être vaincu est la vitesse. Dans le monde du trading, le day trading manuel, le trading intraday à court terme et le trading quantitatif à haute fréquence ont toujours été très mystérieux. Je ne doute pas de ces gens qui tradent en regardant le chronomètre, mais j’essaie de vous persuader d’abandonner le trading à court terme sous un autre angle.
Lorsque nous jugeons si une méthode est faisable, nous ne devons pas seulement considérer ceux qui ont réussi en utilisant ces méthodes, mais également ceux qui ont échoué en utilisant ces méthodes. En d’autres termes, vous ne pouvez pas supposer que l’achat de billets de loterie est une stratégie avec des attentes positives simplement parce que certaines personnes gagnent le jackpot.
De plus, en regardant le classement des produits de capital-investissement, au cours des trois dernières années, combien des 100 premiers se livrent à des spéculations quotidiennes ou à des transactions à court terme ? Il ne fait aucun doute que le taux de réussite des investissements à court terme est très faible. Même si elle est efficace, cette méthode pour gagner de l’argent rapidement est difficile à maintenir sur le long terme. Si vous n’êtes pas doué, soyez prudent lorsque vous utilisez ce genre d’astuces, après tout, il n’y a qu’un seul Simmons.
Raison 3 : Biais
Si possible, je vous suggère de passer 100 minutes à regarder un film - "12 hommes en colère". Un film refait par quatre pays : la première version américaine en 1957, la version japonaise en 1991, la version russe en 1997 et la version chinoise en 2014. Bien que ce film ne puisse pas vous apprendre à trader, il vous apprend à regarder les choses et à apprendre à vous connaître, ce qui est très important.
Parce que l’expérience humaine est limitée, la cognition humaine est également limitée. Chacun a des préjugés plus ou moins importants en fonction de ses propres expériences. Souvent, les préjugés sont devenus une habitude pour la plupart des gens, et ils considèrent comme acquis de juger beaucoup de choses en fonction de leurs propres émotions.
Pour en revenir au marché, que votre jugement sur le marché soit basé sur une analyse fondamentale ou une analyse technique, cela n’a pas vraiment d’importance. Si vos opinions diffèrent de celles de la majorité du marché, les prix auront tendance à favoriser la majorité du marché et le marché ne fonctionnera pas selon vos opinions.
Par conséquent, dans les transactions, nous devons nous rappeler de « juger, mais ne pas nous fier au jugement ». En fin de compte, cela doit être basé sur des faits et des prix. La seule force qui fait monter et descendre les prix est ce que la plupart des gens attendent de l’avenir. Votre jugement n’a aucun poids sur le marché, alors ne laissez jamais votre jugement façonner votre propre parti pris.
Raison 4 : La recherche de la perfection.
Les participants au marché comprennent des experts de tous les horizons, notamment de la physique, des statistiques, des mathématiques, de l'astronomie, etc. De nombreuses personnes tentent d'utiliser leurs connaissances professionnelles pour expliquer ce marché.
Mais les principaux acteurs du marché sont les gens, et les gens eux-mêmes ont des limites cognitives, ce qui signifie que le marché lui-même est erroné et imparfait. Alors, comment pouvons-nous utiliser ces méthodes « parfaites » pour expliquer le marché ? Cela ne va-t-il pas à l’encontre de la nature du marché ?
La liste ci-dessus énumère les raisons pour lesquelles la grande majorité des personnes qui arrivent sur le marché échouent finalement. Outre les principales raisons mentionnées ci-dessus, il existe de nombreux autres facteurs, qui ne sont pas énumérés ici un par un. En bref, à l’exception de votre confiance dans la victoire, tout le reste n’est qu’un obstacle qui vous empêche de réussir.
Ceux qui gagnent de l’argent sur le marché grâce à la chance finiront par le restituer au marché au fil du temps. Le marché à terme est donc un jeu à somme négative. Ce n’est qu’en changeant votre façon de penser et en établissant votre propre stratégie de trading que vous pouvez avoir la possibilité de réussir.
Qu’est-ce que la pensée probabiliste ?
La pensée probabiliste est un nom fantaisiste, pour le dire simplement, c'est une pensée de jeu. Vous avez bien entendu, le trading est un jeu de hasard. Lorsque vous entendez parler de jeu, vous pensez peut-être à « quelqu'un qui a tout perdu au jeu, qui s'est enfui à cause de dettes ou qui n'avait plus de famille », et vous vous en éloignez.
Il existe en effet dans notre société des joueurs obsédés par le jeu. Mais jeu ≠ joueur. « Jeu » est probablement l’un des mots les plus mal compris. Si votre stratégie est une attente négative, vous êtes un joueur ; si votre stratégie est une attente positive, vous jouez.
Si nous supprimons le sens négatif du terme « jeu » et le comprenons comme une activité qui implique de prendre certains risques en échange de certains retours, alors la vie est en réalité un « jeu » partout. Quelle spécialisation choisir à l'école, acheter une maison, démarrer un projet, travailler ou créer une entreprise, etc.
Même placer de l’argent dans une banque est un pari risqué, car on n’est pas sûr qu’il y aura de l’inflation à l’avenir ou que la banque fera faillite (voir la crise de la dette grecque). En bref, du berceau à la tombe, chaque processus de la vie est un pari.
Comment gagner à long terme
Le concept de jeu doit être davantage résolu : comment peut-on gagner à long terme ? Avant d’étudier les stratégies gagnantes à long terme, étudions d’abord les principes de ces stratégies gagnantes à long terme. Outre la machine à imprimer de l’argent, qu’est-ce qui peut garantir une victoire à long terme ?
C'est ce qui se passe au casino : baccarat, roulette, machines à sous, blackjack, etc. Peu importe comment les méthodes de jeu changent, le casino finira par gagner. Il y a en fait un secret caché ici que les casinos ne révèlent jamais : la loi des grands nombres.
Comment fonctionne le Sic Bo
Trois dés, pariez sur la taille, 4-10 est petit, 11-17 est grand, si vous pariez correctement, vous gagnez de l'argent. Il existe une sorte de dé environnant au Sic Bo, c'est-à-dire que lorsque les points sur trois dés sont les mêmes, le croupier du casino gagne. La probabilité que les dés environnants apparaissent est de 2,8 %. La probabilité qu'un grand nombre et un petit nombre apparaissent est alors de 48,6 % chacun. Le casino s'appuie sur cette probabilité de 2,8 %. Si chaque joueur mise 100 yuans à chaque jeu, le casino gagnera 280 yuans après avoir joué 100 jeux.
(0.486+0.028)100100-0.486100100=280
Cependant, cette stratégie de casino comporte des failles. Si un gros joueur parie des dizaines de milliards sur un coup de tête et gagne, le casino fera faillite du jour au lendemain. Par conséquent, le casino fixera une limite de mise et aucun autre pari ne pourra être placé dans ce tour si la limite est dépassée. De cette façon, même si le joueur a la chance de gagner de l'argent pendant un certain temps, à long terme, il perdra toujours en probabilité. Dans un nombre infini de jeux de Sic Bo, le joueur perdra 2,8 % de son argent.
La loi des grands nombres
L'avantage du propriétaire du casino n'est que de 2 % supérieur à celui du joueur. Lors d’un seul pari, le propriétaire peut subir une perte ou même subir des pertes continues. Cependant, le propriétaire du casino ne sera pas effrayé par les pertes, car il sait que la raison pour laquelle il peut gagner de l'argent est que la « loi des grands nombres » est à l'œuvre. Tant que les gens continuent à jouer, il lui suffit d’un léger avantage de 2 % pour maintenir des profits stables à long terme.
Ainsi, le casino n’a pas peur que vous gagniez de l’argent, mais il a peur que vous ne veniez pas. Vous avez même entendu parler de banques faisant faillite au fil des ans, mais quand avez-vous entendu parler d’un casino faisant faillite ? À long terme, c’est toujours le casino qui gagne. C’est la raison pour laquelle les jeux de hasard seront gagnants à long terme.
Des exemples similaires de gains à long terme incluent : diverses loteries. Les fonds des prix de la loterie s'accumulent de plus en plus depuis le lancement de la loterie, et cet argent provient bien sûr de la majorité des joueurs de loterie. Savez-vous quelle est la probabilité de gagner 5 millions au Double Color Ball ? La réponse est un sur 17,7 millions.
Changements de probabilité
Supposons qu'il y ait une pièce de même poids des deux côtés, que la probabilité de lancer un mot (verso) ou une fleur (recto) soit de 50 %, et que chaque lancer de pièce soit indépendant du résultat précédent. Si vous lancez la pièce 10 000 fois de suite, la probabilité d’obtenir pile est d’environ 50 %.
Mais si vous ne le lancez que 10 fois, la probabilité d'obtenir un résultat positif changera, et la probabilité pourrait ne pas être de 50 %. Par conséquent, le croupier du casino doit s'assurer que cette stratégie d'attente positive est déclenchée suffisamment de fois pour que cette stratégie d'attente positive soit efficace. C’est également la raison pour laquelle les institutions de capital-investissement ne peuvent pas arrêter la stratégie lorsqu’elles lancent une stratégie de trading quantitatif, sauf en cas de conditions particulières.
Comment utiliser la « loi des grands nombres » pour créer une stratégie gagnante à long terme sur le marché financier sera le contenu de notre prochaine série de cours, alors restez à l'écoute !
Résumer
Ci-dessus, nous vous avons expliqué comment considérer le trading de manière scientifique sous l'angle des probabilités, des raisons de l'échec du trading, de l'état d'esprit de trading correct, du principe de gagner à long terme au jeu, etc. Je crois que si vous apprenez bien, le changement de pensée sera le changement de votre comportement, et le changement de comportement sera le changement de votre succès.
Devoirs
- Pourquoi le trading est-il un jeu de probabilités ?
- Quelles sont les autres raisons de l’échec d’une transaction ?
- 1










