Introduction à l'inventeur de la transaction quantifiée - de la base à la réalité

Auteur:La bonté, Créé: 2019-06-25 15:48:58, Mis à jour: 2023-10-31 21:01:08

Lorsque le prix se déplace vers le bas, c'est-à-dire vers le bas de la ligne de support, nous pensons que la force de l'air est en train de se renforcer, une vague de tendance à la baisse s'est formée et un signal de vente a été généré.imgFigure 4 à 20

Si après avoir acheté une position ouverte, le prix retombe dans la trajectoire de la ligne de Brynne, nous pensons que la force multiplate est en train de s'affaiblir, ou que la force aérienne est en train de se renforcer, ce qui génère un signal de mise à l'échelle; si après avoir vendu une position ouverte, le prix retombe dans la trajectoire de la ligne de Brynne, nous pensons que la force aérienne est en train de s'affaiblir, ou que la force multiplate est en train de se renforcer, ce qui génère un signal de mise à l'échelle.

Conditions de vente

Une ouverture à plusieurs:如果无持仓,并且收盘价大于上轨,并且时间非14:45 Ouverture à vide:如果无持仓,并且收盘价小于下轨,并且时间非14:45 Placement à plusieurs:如果持多单,并且收盘价小于中轨,或者时间是14:45 La tête nue:如果持空单,并且收盘价大于中轨,或者时间是14:45

Mise en œuvre du code stratégique

Pour mettre en œuvre une stratégie, nous devons d'abord réfléchir à ce dont nous avons besoin de données, à quelle API nous allons accéder, comment calculer la logique de transaction, et enfin, par quel moyen nous allons passer une commande.

Première étape: utiliser le cadre stratégique de l'OTC

Le cadre de stratégie CTA est un ensemble de normes officiellement introduites par l'inventeur de la quantification, qui permet d'éviter de considérer les problèmes triviaux liés au développement de stratégies de négociation quantifiées et de concentrer directement l'attention sur la logique de programmation des transactions. Par exemple, si vous n'utilisez pas ce cadre, vous devrez prendre en compte les problèmes de transfert de mois, de prix de vente, de retrait ou de suivi des commandes en cas de défaillance...imgFigure 4 à 21

Le graphique ci-dessus est le cadre stratégique de CTA utilisé par les outils de quantification des inventeurs. C'est un format de code fixe où tout le code de logique transactionnelle est écrit à partir de la ligne 3.

Il est important de noter que le code de la variété dans le graphique ci-dessus est rb000/rb888. Cela signifie que les données du signal sont utilisées par rb000, les données de transaction sont utilisées par rb888, et le transfert est automatiquement effectué. Bien sûr, vous pouvez également spécifier un code de variété spécifique, comme le code de la variété rb1910, c'est-à-dire que les données de signal et les données de transaction sont utilisées par rb1910.

FMZ a une bibliothèque de classes de négociation de produits et de contrats à terme en JavaScript, qui peut être utilisée dans le code en cliquant directement sur l'interface de l'éditeur de stratégie:img

Deuxième étape: obtenir des données

Réfléchissez bien, quels sont les données nécessaires? D'après notre logique de négociation stratégique, il faut d'abord obtenir l'état actuel des avoirs, puis comparer la relation entre le prix de clôture et la tendance à la baisse sur l'indicateur de la bande de Berlin, et finalement juger si le marché est sur le point de clôturer.

Obtenir les données de la ligne K

La première chose à faire est d'obtenir l'arithmétique de K et le prix de clôture de la racine supérieure de K, car avec l'arithmétique de K, on peut calculer l'indicateur de la courbe de Brin.imgFigure 4 à 22

Le blogueur a écrit: Ligne 4: Obtenir une matrice de K lignes, qui est un format fixe. 5ème ligne: Filtrer la longueur de la ligne K, car nous calculons le paramètre de l'indicateur de la courroie de Brynne à partir de 20, il n'est pas possible de calculer l'indicateur de la courroie de Brynne lorsque la ligne K est inférieure à 20 mètres. 6e ligne: Dans l'ensemble de la ligne K obtenue, on obtient d'abord l'objet de la racine supérieure de la ligne K, puis on obtient le prix de clôture de cet objet. On obtient le deuxième élément de l'inverse d'un ensemble, c'est-à-dire la longueur de l'ensemble moins 2 ((r[r.length - 2]); les éléments de l'ensemble de la ligne K sont tous des objets, les objets contiennent le prix d'ouverture, le prix le plus élevé, le prix le plus bas, le prix de clôture, le volume de transactions, le temps, pour obtenir le prix de clôture, il faut ajouter directement le chiffre.

Obtenir des données de temps sur la ligne K

Comme nous sommes une stratégie journalière, nous avons besoin d'aplanir les positions avant la clôture, donc pour déterminer si la ligne K actuelle est proche de la clôture, si c'est la ligne K proche de la clôture, nous aplanissons les positions, si ce n'est pas la ligne K proche de la clôture, nous pouvons ouvrir les positions, en utilisant le code écrit comme suit:imgFigure 4 à 23

Le blogueur a également publié un article intitulé: 8e ligne: Obtenez la propriété de la barre de temps de la racine de la ligne K, puis créez un objet de temps ((new Date)). 9ème ligne: calculer le nombre d'heures et de minutes selon l'objet de temps, et déterminer si l'heure de la ligne de base K est 14h45.

Obtenir des données sur les stocks

L'information sur les positions est une condition importante de la stratégie de négociation quantitative. Lorsque les conditions de négociation sont établies, il est également nécessaire de déterminer si une commande est passée en fonction de l'état de la position et du nombre de positions. Par exemple, lorsque les conditions de négociation d'achat et de vente sont établies, il n'est pas nécessaire d'effectuer une commande en répétition si une position est présente; si aucune position n'est présente, une commande peut être passée.imgFigure 4 à 24 Le blogueur a écrit: Ligne 11: Obtenir l'état actuel du stock. Si vous avez plusieurs commandes, la valeur est 1; si vous avez des commandes vierges, la valeur est 1; si vous n'avez pas de stock, la valeur est 0.

Obtenir les données de la bande passante

Ensuite, il est nécessaire de calculer les valeurs de l'indicateur de la courroie de Bryn, en orbite, en orbite moyenne et en orbite inférieure. Il faut d'abord obtenir une matrice de la courroie de Bryn, et obtenir les valeurs de la courroie de Bryn à partir de l'ensemble. Dans l'outil de quantification de l'inventeur, obtenir une matrice de la courroie de Bryn est encore simple, vous pouvez appeler directement l'API de la courroie de Bryn, mais il est difficile d'obtenir des valeurs de la courroie de Bryn, car la courroie de Bryn est un ensemble de nombres en deux dimensions.

Une matrice bidimensionnelle est en fait une matrice dans une matrice, et l'ordre d'obtention est le suivant: d'abord, on obtient une matrice spécifiée dans une matrice, puis on obtient un élément spécifié dans une matrice spécifiée, comme le montre le diagramme ci-dessous:imgFigure 4 à 25

Comme illustré ci-dessous, les lignes 13 à 19 sont des lignes de code pour obtenir les valeurs de la courbe de Brynne en orbite, en orbite moyenne et en orbite inférieure. Parmi elles, la ligne 13 est l'API utilisée directement par l'inventeur pour obtenir les ensembles de courbes de Brynne; les lignes 14 à 16 sont les lignes de la courbe de Brynne en orbite supérieure, en orbite moyenne et en orbite inférieure des ensembles bidimensionnels; les lignes 17 à 19 sont les valeurs de la courbe de Brynne en orbite supérieure, en orbite moyenne et en orbite inférieure des ensembles de courbes de Brynne de la racine K.imgFigure 4 à 26

Troisième étape: passer commande

Avec les données ci-dessus, vous pouvez écrire la logique de transaction ainsi que le code de la transaction de sous-commande. Le format est également très simple, le plus souvent utilisé est le clavier d'instructions if, qui peut être décrit comme suit: sous-commande si les conditions 1 et 2 sont remplies; sous-commande si les conditions 3 ou 4 sont remplies.imgFigure 4 à 27

Dans le graphique ci-dessus, les lignes 21-24 sont la logique de transaction et le code de la transaction à suivre.

Prenons l'exemple d'un clavier multiligne (la ligne 23), qui est un clavier si l'on ne peut omettre que le clavier {} si une seule ligne de code est exécutée dans ce clavier.

Si vous faites attention, vous remarquerez peut-être que ces lignes contiennent des phrases comme "return 1" et "return -1", ce qui est un format fixe, c'est-à-dire: "return 1" s'il est acheté; "return -1" s'il est vendu.

Le code complet de la stratégie

Le code complet de la stratégie est maintenant écrit, et si vous écrivez le code de la stratégie en séparant le cadre de transaction, les données de transaction, la logique de transaction, l'ordre de vente et d'autres éléments, ce n'est pas simple:imgFigure 4 à 28

Il y a deux points à prendre en compte: essayez (mais pas nécessairement) d'écrire la logique stratégique lorsque les conditions de la ligne de base K sont établies, la ligne de base K est émise, ou la ligne de base K est émise, le résultat de cette réévaluation n'est pas très différent du résultat du disque réel. Vous pouvez écrire autrement, mais vous devez vous assurer que la logique stratégique est correcte. En général, écrivez la logique de l'équilibre devant la logique d'ouverture, dans le but de le faire, essayez de faire en sorte que la logique stratégique soit conforme à vos attentes.

Résumé

Ci-dessus, nous avons appris chaque étape pour développer une stratégie de trading quantitative complète, y compris: l'introduction de la stratégie, la méthode de calcul des indicateurs de la bande de brin, la logique de la stratégie, les conditions d'achat et de vente, la mise en œuvre du code de la stratégie, etc. Grâce à ce cas de stratégie, non seulement vous êtes familiarisé avec les méthodes de programmation des outils de quantification des inventeurs, mais vous pouvez également modifier différentes stratégies en fonction de ce modèle.

Les stratégies de négociation quantitative ne sont rien de plus qu'un résumé de l'expérience subjective ou du système de négociation. Si nous écrivons l'expérience ou le système utilisé dans la transaction subjective séparément avant d'écrire la stratégie, et que nous la traduisons en code une par une, vous verrez que c'est beaucoup plus facile d'écrire une stratégie.

Prévisions pour la suite

Dans le développement de stratégies de transaction quantitative, si vous ne pouvez choisir qu'un seul langage de programmation, n'hésitez pas à choisir Python, qui couvre toute la chaîne d'affaires, de l'acquisition de données à la retouche stratégique en passant par les transactions.

Les devoirs après les cours

1° Essayez d'utiliser les connaissances de cette section pour mettre en œuvre une stratégie à deux lignes. 2° Essayez de mettre en œuvre l'algorithme de pointage KDJ en utilisant le langage JavaScript de l'outil de quantification de l'inventeur.

4.3 Une introduction rapide à Python

Résumé

Dans le développement de stratégies de transaction quantitative, si vous ne pouvez choisir qu'un seul langage de programmation, n'hésitez pas à choisir Python, qui couvre toute la chaîne d'affaires, de l'acquisition de données à la retouche stratégique en passant par les transactions.

Pourquoi apprendre autant de langages?

En repensant aux cours précédents, nous avons appris ensemble: les langages mac, les langages visuels, les langages JavaScript, y compris Python, que nous allons apprendre dans cette section.

En fait, chaque langage de programmation a ses propres caractéristiques linguistiques, et ces langages n'ont pas leurs avantages et leurs inconvénients. Il s'agit plutôt de voir quelle langue de programmation est la plus adaptée à la stratégie et si cette langue de programmation vous convient.

Nous nous engageons également à ouvrir les portes de la quantification à tous, à diffuser les connaissances de tous les langages de programmation, la quantification n'est pas aussi profonde et inaccessible que nous l'imaginions, et nous croyons que la quantification sera populaire et civilisée dans le futur.

Pourquoi choisir Python

Le processus de quantification des transactions consiste à obtenir des données, à analyser des données de calcul, à traiter des données, etc. En termes d'analyse de données, aucun autre langage ne peut être aussi précis et performant que Python. Surtout dans le traitement des données d'analyse de séquence temporelle (la ligne K est les données de séquence temporelle), Python a l'avantage d'être plus simple et pratique.

Les 5 principales raisons de choisir Python

1. La quantification est largement utilisée:

Quantipian aux États-Unis et les inventeurs locaux peuvent être quantifiés en Python.

2. facile à apprendre:

La philosophie de conception de Python est centrée sur l'utilisateur et appartient à un langage interprétatif facile à déboguer.

3. L'accès est gratuit:

Les utilisateurs peuvent choisir de ne pas utiliser le logiciel, de ne pas payer pour son utilisation, de partager son code source et d'améliorer l'efficacité de l'apprentissage et de l'utilisation.

4. Une riche bibliothèque:

Il y a aussi la gestion des données, le traitement des données, la visualisation, l'analyse statistique, l'analyse technique, l'apprentissage automatique...

5. Interface de l'application:

Les données des différentes plateformes permettent de stocker les appels et d'interfacer les commandes en temps réel.

La stratégie complète

Afin de vous aider à comprendre rapidement les points clés de cette section, avant d'entamer une introduction rapide à l'inventeur du langage JavaScript quantifié, une première compréhension du concept de nom de cette section.

Une ouverture à plusieurs: si aucun poste n'est en cours et que la moyenne de 5 cycles est supérieure à la moyenne de 20 cycles.Ouverture à vide: si il n'y a pas de position actuelle et que la ligne moyenne de 5 cycles est inférieure à la ligne moyenne de 20 cycles.Placement à plusieurs: si vous détenez plusieurs commandes et que la moyenne de 5 cycles est inférieure à la moyenne de 20 cycles.La tête nue: si la commande en cours est vide et que la moyenne de 5 cycles est supérieure à la moyenne de 20 cycles.

Si vous l'écrivez en Python, cela ressemble à ceci:imgFigure 4 à 29

Le code dans la figure ci-dessus est une stratégie de transaction quantitative complète écrite en Python. Il peut être exécuté en direct et effectuer des transactions automatiquement. En termes de volume de code, Python est un peu plus grand que JavaScript, car nous n'utilisons pas le cadre de transaction CTA.

Mais le processus de conception de l'ensemble des stratégies est presque le même: configurer la variété de marché, obtenir les données de la ligne K, obtenir les informations de stock, calculer la logique de transaction, commander et vendre. Autrement dit, bien que la syntaxe de programmation soit différente, la logique de stratégie écrite est la même.

Sélection de version

Il y a deux versions de Python: Python 2 et Python 3. Il y avait un passage qui disait que Python était comme un pistolet à double canon, mais qu'il ne pouvait tirer qu'une balle à la fois, mais on ne savait jamais exactement lequel était le plus précis.

Identifiant

L'identifiant est le nom de la variable, comme dans le diagramme suivant test, test, test 10, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, testDans Python, tout est en majuscules, c'est-à-dire que le nom de la variable test et le nom de la variable test sont deux variables différentes. Le premier caractère d'un identifiant (nom de la variable, de la fonction, de l'attribut ou du paramètre de la fonction) doit être une lettre, une hybride.Les caractères suivants peuvent également être des chiffres, comme le montre le graphique ci-dessous:imgFigure 4 à 30

Les notes

Une annotation est une traduction ou une interprétation d'une ligne de code, dont les règles sont très simples et comprennent des annotations à ligne unique et des annotations au niveau des blocs. Une annotation à ligne unique commence par un point d'ancrage, une annotation à bloc commence par trois guillemets ou trois guillemets et se termine par trois guillemets ou trois guillemets, comme indiqué ci-dessous:imgFigure 4 à 31

La ligne et la contraction

La caractéristique principale de Python est l'utilisation de l'argot pour représenter les blocs de code, sans avoir besoin d'utiliser de parenthèses majuscules {}. Le nombre d'espaces réduits est variable, mais les statements d'un même bloc de code doivent contenir le même nombre d'espaces réduits.imgFigure 4 à 32

Variables

Les variables peuvent être enregistrées avec n'importe quel type de données, l'écriture directe du nom de la variable est la création de la variable, mais lorsque la variable est créée, la valeur de la variable doit être définie en même temps, sinon le programme renvoie une erreur. L'opérateur à gauche est un nom de variable, et l'opérateur à droite est une valeur stockée dans la variable.imgFigure 4 à 33

Les données

Python possède six types de données, dont trois sont invariants et trois variables. Une fois qu'une donnée invariante est créée, sa valeur ne peut être modifiée et son adresse est unique en mémoire; une donnée variable est une référence à une adresse en mémoire dont l'adresse en mémoire ne change pas si sa valeur change. Les données invariables sont les suivantes: Numéro (numéros), Chaîne (chaînes), Tuple (groupes). Les données variables sont les suivantes: Liste, Dictionnaire, Ensemble.imgFigure 4 à 34

Les chiffres

Les types numériques de Python prennent en charge les types d'objets indiqués par les variables int ((int) ∞, float (∞), bool (∞), complexe (∞), complexe (∞) et complexe (∞).imgFigure 4 à 35

Opérateur

Comme la plupart des langages, les opérations mathématiques en Python sont très intuitives. Les opérations mathématiques, les opérations de comparaison et les opérations logiques sont les mêmes que celles que nous connaissons à l'école. Les opérations mathématiques de addition et de diminution sont des opérations mathématiques où les opérations de comparaison permettent de comparer deux valeurs inférieures ou inférieures.imgFigure 4 à 36

Il est à noter que: and est logique avec, ce qui signifie et . or est logique ou, ce qui signifie ou . Le "and" est celui où toutes les conditions sont "true" et où la condition finale est "true"; le "and" est celui où toutes les conditions sont "true" et où la condition finale est "true"; La condition est la suivante: si l'une d'elles est vraie, la condition finale est vraie.

Les priorités

Les mathématiques de l'école secondaire nous disent: 1 Si c'est une opération de même niveau, elle est généralement effectuée de gauche à droite.2. Si il y a une addition, une soustraction et une multiplication, la multiplication est effectuée en premier.imgFigure 4 à 37

La valeur de Boole

Les types Boole représentent le vrai et le faux, généralement utilisés dans le jugement conditionnel et dans les statements de cycle. Python définit deux constantes pour les valeurs True et Flase. En fait, n'importe quel objet peut être transformé en type Boole ou directement utilisé pour le jugement conditionnel, comme indiqué ci-dessous:imgFigure 4 à 38

Les chaînes

Les chaînes sont des caractères qui sont souvent utilisés pour définir des codes de variété. Par exemple, une chaîne peut être enveloppée d'une seule syllabe si 1905.imgFigure 4 à 39

Liste

Les listes sont les types de données les plus couramment utilisés dans Python. Vous pouvez imaginer une liste comme un conteneur, sauf que les éléments du conteneur sont classés de gauche à droite, le premier élément est 0, le deuxième élément est 1, et ainsi de suite.imgFigure 4 à 40

Les fonctions

Les fonctions en Python ne sont pas essentiellement différentes des fonctions que nous apprenons au lycée, et vous pouvez comprendre ce qui est transmis et ce qui est produit par le calcul des fonctions, comme le montre le diagramme suivant:imgFigure 4 à 41

la phrase if

Les expressions if apparaissent souvent dans nos vies, par exemple: je parierai si il pleut aujourd'hui. C'est-à-dire que la phrase n'exécute le code que si la condition spécifiée est True. Attention, attention au format de condensation du code, sinon cela génère des erreurs Python!imgFigure 4 à 42

Les phrases if...else

Les phrases if...else sont aussi des phrases couramment utilisées, par exemple: si il pleut aujourd'hui, je parie; sinon, je ne parie pas. Les phrases if...else sont des extensions de phrases if, c'est-à-dire que le code est exécuté par les phrases suivantes si la condition spécifiée est False.imgFigure 4 à 43

les phrases elif

Comme Python ne prend pas en charge les déclarations de commutation, il n'est possible d'utiliser que les déclarations elif pour juger de plusieurs conditions. Par exemple: si c'est un rayon de soleil, je vois plus; sinon, si c'est un rayon de pénis, je vois moins; sinon, je regarde; comme indiqué ci-dessous:imgFigure 4 à 44

pour le cycle

Parfois, nous avons besoin d'obtenir des données de ligne K des derniers jours, et nous avons besoin d'obtenir des données de ligne K de l'ensemble des lignes K, selon la position des données de ligne K, alors il est pratique d'utiliser le for loop, comme le montre le diagramme ci-dessous:imgFigure 4 à 45

cycle while

Nous savons tous que le marché est en constante évolution et que si vous voulez obtenir les dernières séries de K-lignes, vous devez continuer à exécuter le même code encore et encore, alors utilisez le cycle de whilx, le cycle peut toujours obtenir les dernières séries de K-lignes tant que la condition est vraie.imgFigure 4 à 46

Les phrases break et continue

Le cycle est conditionnel, le cycle ne commence à faire quelque chose de répétitif que lorsque cette condition est false, et le cycle ne s'arrête que lorsque cette condition est false. Cependant, les statements break peuvent sauter immédiatement du cycle pendant que le cycle est exécuté; les statements continue peuvent interrompre un cycle et poursuivre le cycle suivant, comme indiqué ci-dessous:imgFigure 4 à 47

La phrase retour

La déclaration de retour arrête l'exécution de la fonction et renvoie la valeur de la fonction. La déclaration de retour n'apparaît que dans le corps de la fonction et n'importe où ailleurs dans le code provoque une erreur de syntaxe!imgFigure 4 à 48

L'architecture stratégique

L'architecture de stratégie peut être comprise comme un format fixe de la stratégie, l'inventeur de l'outil de quantification utilise un modèle de consultation.

La ligne 4 - 7 est la principale fonction d'entrée du programme, c'est-à-dire que l'ordinateur exécute le code à partir de la ligne 4, puis exécute directement la ligne 5 et entre dans une boucle infinie; puis exécute la fonction logique stratégique (onTick) et la fonction de sommeil (Sleep) dans une boucle infinie; la fonction onTick est également la première ligne de code, vous pouvez écrire la logique stratégique dans la ligne 2; nous savons que dans la boucle, l'exécution du programme est très rapide, alors l'utilisation de la fonction de sommeil numérique (Sleep) peut faire une pause, le code de la génération suivante Sleep (500) est une boucle à chaque fois et s'endort en 500 millisecondes.imgFigure 4 à 49

Résumé

C'est une introduction rapide à la langue Python, et même si c'est une base simple, il est toujours possible d'écrire une stratégie de transaction quantitative simple. Si vous avez besoin d'écrire une stratégie plus complexe, vous pouvez vous référer à la documentation de l'API de l'inventeur de l'outil de quantification Python.

Prévisions pour la suite

Dans le domaine de l'analyse technique, les stratégies de tendance sont sans aucun doute les deux grandes branches. Bien que l'objectif soit de saisir les tendances de la tendance des prix, la philosophie de négociation et les caractéristiques de risque des deux stratégies sont très différentes.

Les devoirs après les cours

1° Essayez d'obtenir des données historiques de lignes K avec le langage Python dans les outils de quantification de l'inventeur. 2° Essayez d'écrire le code de stratégie au début de cette section, avec des notes.

4.4 Comment utiliser le langage Python pour réaliser des transactions stratégiques

Résumé

Dans le dernier article, nous avons appris l'introduction, la grammaire de base, le cadre stratégique du langage Python, etc. Bien que le contenu soit ennuyeux, c'est une compétence essentielle à la mise en œuvre d'une stratégie de trading, et il faut l'apprendre. Dans ce cas, nous allons utiliser le chaudron et continuer les bases de Python dans le précédent article, en commençant par une stratégie simple, en apprenant à l'utiliser, pour vous aider à mettre en œuvre une stratégie de trading quantitative viable.

Résumé de la stratégie

De nombreuses stratégies de négociation, la stratégie du canal de Donchian devrait être l'une des stratégies les plus classiques et les plus révolutionnaires. Elle est devenue célèbre dès 1970, lorsque des entreprises étrangères ont effectué des simulations et des études sur les stratégies de négociation programmées traditionnelles.

Plus tard, une autre formation de marchands de cigognes, la plus célèbre de l'histoire du commerce, a eu un grand succès aux États-Unis. Les méthodes de négociation des cigognes à l'époque étaient secrètes, mais il a fallu plus d'une décennie avant que les lois sur le commerce des cigognes ne soient rendues publiques et que l'on découvre que les cigognes utilisaient des stratégies améliorées de la passerelle de Donchi.

La stratégie de trading de type rupture est adaptée aux types de transactions où la tendance est plus fluide. La méthode de trading de rupture la plus courante est de tirer parti de la relation entre le prix et la position relative des supports et résistances pour déterminer le point de vente d'une transaction particulière.

Les règles stratégiques du tunnel de Dongcheon

Le canal de Dongqian est un indicateur tendanciel, dont l'apparence et les signaux sont un peu similaires à ceux de l'indicateur de la Braille. Cependant, le canal de Dongqian est construit en fonction des prix les plus élevés et les prix les plus bas sur une période donnée. Par exemple, en calculant la valeur maximale des prix les plus élevés des 50 dernières lignes K, une trajectoire est formée; en calculant la valeur minimale des prix les plus bas des 50 dernières lignes K, une trajectoire est formée. L'indicateur est composé de trois courbes de couleurs différentes, les prix les plus élevés et les prix les plus bas par défaut sur 20 cycles pour montrer la volatilité des prix du marché.

Si le prix dépasse la barre, c'est un signal d'achat; si le prix dépasse la barre, c'est un signal de vente. En général, il est rare que le prix dépasse et dépasse la barre en même temps. Dans la plupart des cas, le prix se déplace le long d'un mouvement unilatéral de hausse ou de baisse, ou entre la barre et la barre.

Les méthodes de calcul du tunnel de Dongcheng

Dans l'outil de quantification de l'inventeur, la méthode de calcul du canal de Dongjian est très simple, en utilisant directement le prix le plus élevé ou le prix le plus bas d'un cycle spécifié, comme le montre le graphique suivant: la ligne 5 est la valeur maximale du prix le plus élevé de 50 cycles et la ligne 6 est la valeur minimale du prix le plus bas de 50 cycles.imgFigure 4 à 50

La logique stratégique

Il y a beaucoup de façons d'utiliser le canal de Dongguan, qui 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 dépasse la trajectoire ascendante, c'est-à-dire qu'il dépasse la ligne de pression supérieure, nous pensons que les forces multilatérales se renforcent, une vague de panique a été formée et un signal d'ouverture d'achat est généré.imgFigure 4-51

Si, après avoir acheté, le prix retombe dans la trajectoire du canal de Dongch'an, nous pensons que la force multiplate est en train de s'affaiblir, ou que la force aérienne est en train de se renforcer, ce qui produit un signal de mise à l'échelle; si, après avoir vendu, le prix retombe dans la trajectoire du canal de Dongch'an, nous pensons que la force aérienne est en train de s'affaiblir, ou que la force multiplate est en train de se renforcer, ce qui produit un signal de mise à l'échelle.

Conditions de vente Une ouverture à plusieurs: si vous n'avez pas de portefeuille et que le prix de clôture est supérieur au cours de la transactionOuverture à vide: si vous n'avez pas d'actions et que le prix de clôture est inférieur à la trajectoirePlacement à plusieurs: si vous avez plusieurs commandes et que le prix de clôture est inférieur au cours moyenLa tête nue: si la facture est vide et que le prix de clôture est supérieur à la moyenne

Mise en œuvre du code stratégique

La première étape de la mise en œuvre de la stratégie est d'obtenir des données, car les données sont une partie préalable de la stratégie de négociation. Imaginez quelles données nous avons tous besoin? et comment les obtenir? puis, en fonction de ces données, calculer la logique de négociation; enfin, avec la logique de négociation, acheter et vendre une transaction.

Première étape: utiliser la bibliothèque de transactions

Vous pouvez imaginer une bibliothèque de transactions comme un module fonctionnel, et l'avantage de l'utilisation d'une bibliothèque de transactions est que vous pouvez vous concentrer sur la rédaction de la logique stratégique. Par exemple, lorsque nous utilisons une bibliothèque de transactions, nous pouvons ouvrir une transaction en utilisant directement l'API ci-dessous; mais si nous n'utilisons pas une bibliothèque de transactions, nous devons ouvrir une transaction en utilisant l'API ci-dessous.imgFigure 4-52

Le graphique ci-dessus est le cadre de stratégie CTA utilisé par les outils de quantification des inventeurs. C'est un format de code fixe où tout le code de logique de transaction est écrit à partir de la ligne 4.

La bibliothèque de classes de modèles de JavaScript est intégrée et Python doit copier et sauvegarder ce modèle:https://www.fmz.com/strategy/24288Vous pouvez également utiliser une bibliothèque de modèles pour compléter votre stratégie.

img

Deuxième étape: obtenir des données

Réfléchissez bien, quels sont les données nécessaires? D'après notre logique de négociation stratégique, il faut d'abord obtenir l'état actuel des avoirs, puis comparer la relation entre le prix de clôture et la tendance à la baisse sur l'indicateur de la bande de Berlin, et finalement juger si le marché est sur le point de clôturer.

Obtenir les données de la ligne K

Tout d'abord, il faut obtenir l'arithmétique de K-lines et le prix de clôture actuel de K-lines, car avec l'arithmétique de K-lines, vous pouvez appeler l'API pour obtenir le prix le plus élevé ou le prix le plus bas de N cycles.imgFigure 4-53 Le blogueur a écrit: La quatrième ligne: obtenir l'ensemble des lignes K, qui est un format fixe. 5ème ligne: Filtrer la longueur de la ligne K, parce que nous calculons le prix le plus élevé ou le prix le plus bas de N cycles, le paramètre utilisé est 50, et quand la ligne K est inférieure à 50, il est impossible de calculer. 6e ligne: nous utilisons le code len (records - 1) pour obtenir les dernières données de l'arbre K, à savoir les dernières données de la ligne K. Cette donnée est un objet qui contient les données suivantes: prix d'ouverture, prix le plus élevé, prix le plus bas, prix de clôture, volume de transactions, temps, etc. Puisqu'il s'agit d'un objet, nous utilisons directement le lien.

Obtenir des données sur les stocks

L'information sur les positions est une condition importante de la stratégie de négociation quantitative. Lorsque les conditions de négociation sont établies, il est également nécessaire de déterminer si une commande est passée par l'état de la position et le nombre de positions. Par exemple: lorsque les conditions de négociation d'une position ouverte sont établies, si une position est passée, il n'est pas nécessaire de passer une commande en répétition; si aucune position n'est pas passée, vous pouvez passer une commande.imgFigure 4 à 54

Le blogueur a écrit: C'est une fonction qui récupère les informations de stockage et qui renvoie 0 si le stockage est vide; 1 si les commandes sont multiples; -1 si les commandes sont vides. Notez le code ci-dessus: Deuxième ligne: créer une fonction, nommée mp, qui n'a pas de paramètres. Troisième ligne: Obtenir des entrées de stockage, qui est un format fixe. La quatrième ligne: Déterminez la longueur de l'arrayage de stockage, si sa longueur est égale, c'est certainement un stockage vide, donc retournez 0. 6e ligne: en utilisant le for loop, commencez à parcourir l'ensemble, la logique suivante est assez simple, si vous tenez plusieurs lignes, retournez 1; si vous tenez une liste vide, retournez -1 ; Ligne 18: appeler la fonction d'accès à l'information stockée que vous venez d'écrire.

Obtenez les prix les plus élevés et les prix les plus bas des 50 dernières lignes K

Dans l'outil de quantification de l'inventeur, les fonctions TA.Highest TA et TA.Lowest TA peuvent être obtenues directement à l'aide de TA.Highest TA et TA.Lowest TA sans avoir à écrire la logique elle-même.imgFigure 4-55

Le blogueur a écrit: 19e ligne: appeler la fonction TA.Highest pour obtenir la valeur maximale du prix le plus élevé de 50 cycles 20e ligne: appeler la fonction TA.Lowest pour obtenir la valeur minimale du prix minimum de 50 cycles Ligne 21: calculer la moyenne en fonction de la valeur maximale du prix le plus élevé de 50 cycles et de la valeur minimale du prix le plus bas de 50 cycles

Troisième étape: passer commande

Avec les données ci-dessus, vous pouvez écrire la logique de transaction ainsi que le code de la transaction de sous-commande. Le format est également très simple, le plus souvent utilisé est le clavier d'instructions if, qui peut être décrit comme suit: sous-commande si les conditions 1 et 2 sont remplies; sous-commande si les conditions 3 ou 4 sont remplies.imgFigure 4-56

Le blogueur a également publié un article intitulé: Ligne 22: Utiliser une bibliothèque de classes de transactions, qui est un format fixe Les lignes 23 et 24: C'est une phrase simple qui utilise les équations de comparaison et de logique de l'équation que nous avons apprises auparavant, qui signifie que si vous avez plusieurs commandes et que le prix de clôture est inférieur à la moyenne, toutes les positions sont égalées. Les lignes 25, 26: C'est une phrase de la liste blanche, qui utilise les équations de comparaison de l'ancrage et de l'ancrage logique que nous avons apprises précédemment, ce qui signifie que si vous avez une liste blanche et que le prix de clôture est supérieur à la moyenne, toutes les positions sont égalées. Ligne 27: Déterminez l'état actuel des stocks et passez à l'étape suivante s'ils sont vides. Les lignes 28 et 29: Déterminez si le prix de clôture est supérieur au cours normal et achetez-le si le prix de clôture dépasse le cours normal. Les lignes 30 et 31: Déterminez si le prix de clôture est inférieur à la tendance, et vendez la position ouverte si le prix de clôture tombe en dessous de la tendance.

Résumé

Ci-dessus, nous avons appris chaque étape pour développer une stratégie de négociation quantitative complète en Python, y compris: une présentation de la stratégie, la méthode de calcul du canal de Dongjian, la logique de la stratégie, les conditions d'achat et de vente, l'implémentation du code de la stratégie, etc. Cette section est juste une stratégie simple, comme un jeu de quilles, il n'y a pas une seule méthode, vous pouvez superposer différentes méthodes de négociation selon votre système de négociation, formant ainsi votre propre stratégie de négociation quantitative.

Prévisions pour la suite

Dans le développement de stratégies de transaction quantitative, du point de vue de la vitesse d'exécution du langage de programmation, il n'est pas possible de dire quel langage est le plus rapide. Surtout dans le domaine des dérivés et des transactions haute fréquence, C++ est un langage spécifique unique, C++ a un avantage numérique, qui permet d'améliorer la vitesse par rapport à JavaScript et Python.

Les devoirs après les cours

1, à partir de Lin Yin, mettre en œuvre la stratégie de cette section. 2° Essayez d'ajouter un indicateur uniforme à la stratégie de cette section et de réduire la fréquence des transactions.

Chapitre 5: Révision, débogage et amélioration stratégique

5.1 Signification et piège de la réévaluation

Résumé

La retrospective est la différence majeure entre les transactions quantitatives et traditionnelles, basées sur des données réelles sur le marché qui ont déjà eu lieu dans l'histoire, des signaux de stratégie d'analyses rapides pour déclencher et capturer les transactions, et des rapports de performance sur une période de temps.

Le sens de la réévaluation

Dans les chapitres précédents, nous avons appris les bases des langages de programmation traditionnels, et nous avons appris à utiliser ces bases pour écrire des stratégies de transaction simples. Nous avons déjà parcouru une bonne partie du chemin. Cependant, une stratégie écrite ne peut certainement pas être directement mise en place.

Du point de vue de la logique quantitative des transactions, la stratégie est basée sur un ensemble de perceptions et d'hypothèses sur le marché, et la retrospective permet de déterminer efficacement si ces hypothèses sont valides et stables.

De plus, du point de vue de l'exécution quantitative des transactions, le retest peut aider à détecter les bugs dans la logique de la stratégie, tels que les fonctions futures, les prix volés, les multiples ajustements, etc.; il fournit une preuve fiable que la stratégie peut être utilisée pour les transactions en direct.

  • La preuve de l'exactitude des signaux de transaction.
  • Vous pouvez vérifier si la logique de transaction et vos idées sont réalisables.
  • Il s'agit d'un outil qui permet de détecter les défauts dans les systèmes de négociation et d'améliorer les stratégies initiales.

Le but de la retrospective est donc de reproduire le processus de négociation réel avec des données historiques aussi authentiques que possible, de vérifier l'efficacité de la stratégie, d'éviter de payer un prix élevé pour une stratégie erronée et de nous aider à filtrer, améliorer et optimiser la stratégie de négociation.

Le piège de la retouche

Les signaux de détection des pièges clignotent:

Les stratégies de trading sont basées sur des données historiques statiques lors de la rétroévaluation; les données des transactions réelles sont dynamiques. Par exemple, si le prix le plus élevé est supérieur au prix de clôture d'hier, l'opération d'ouverture est effectuée. Cette condition d'ouverture s'applique au disque réel, si la ligne K n'est pas encore terminée, le prix le plus élevé est dynamique et les signaux de trading peuvent revenir et cligner.

Les fonctionnalités futures du piège sont:

Les fonctions futures utilisent des prix futurs, c'est-à-dire que les conditions actuelles peuvent être modifiées à l'avenir, et les fonctions futures peuvent également provoquer des signaux clignotants.

Comme le montre le graphique ci-dessous: la fonction de conversion des mots indique les points d'inflexion des pics et des bassins d'onde, elle peut ajuster sa valeur en fonction du prix en temps réel le plus récent, mais si le prix actuel change, le résultat du calcul de la fonction de conversion des mots changera également. Si une fonction avec une fonction future est utilisée, le signal de sous-traitance actuel peut être créé et sous-traité, mais après un certain temps, le signal peut ne plus être valide.imgFigure 5 à 1

Le prix du piège à la trappe

Le prix volé est un acte de vente qui utilise le prix passé pour négocier. Par exemple, si le prix le plus élevé est supérieur à un prix fixe, il est acheté au prix d'ouverture. Cette condition est le prix volé, car dans le disque réel, le prix le plus élevé est supérieur à un certain prix, à une certaine distance du prix d'ouverture, auquel cas le prix d'ouverture n'est pas achetable.

Dans un autre cas, si le prix a bondi au-dessus d'un prix fixe fixé par la stratégie, il est possible de négocier à un prix fixe lors de la réévaluation, mais ce prix fixe n'est manifestement pas achetable sur le marché réel.

Le prix de l'impossible piège

Les prix non négociables peuvent être divisés en plusieurs catégories: La première: dans le vrai marché, les coupes ne sont généralement pas achetées lors de l'arrêt, et vice versa; mais dans le retentissement, elles sont négociables.

Le deuxième type: le mécanisme de prise de vue des bourses est le suivant: le prix est prioritaire, le temps est prioritaire. Certaines sortes d'échanges ont souvent de grandes commandes.

Troisième: si la stratégie de l'avantage, alors le profit de rebond est élevé, parce que le rebond a toujours été supposé pour saisir ces différences de prix. Dans le cas réel, beaucoup de différences de prix ne peuvent pas être saisis, ou seulement une jambe a été prise, en général, certainement défavorable à votre direction qui est la première transaction, alors il faut immédiatement pour compléter l'autre jambe, alors le point de glissement n'est plus de 1 ou 2 points, et la stratégie de l'avantage lui-même est de gagner ces différences de prix de quelques points, cette situation est impossible à simuler dans le rebond.

Le quatrième type: l'événement du cygne noir. Dans le cas de l'événement du cygne noir, bien qu'il semble y avoir des prix d'ouverture, des prix les plus élevés, des prix les plus bas et des prix de clôture, dans les conditions extrêmes de la journée, le prix moyen est vide, un grand nombre d'ordres de cessation de perte, ce qui provoque des incidents de piétinement, une liquidité nulle et une très grande difficulté de transaction, mais une perte peut être arrêtée lors de la remise en question.imgFigure 5 à 5

La détection des pièges trop ajustés

Chaque fois que je vois le graphique ci-dessous, mon esprit se dit: haha... un modèle ridicule, si seulement il était suffisamment complexe, pourrait s'adapter parfaitement aux données.imgFigure 5 à 5

Pour les transactions quantifiées, le retrait est basé sur des données historiques, mais l'échantillon de données historiques est limité si les paramètres de la stratégie de transaction sont trop nombreux ou si la logique de transaction est trop complexe, ce qui entraîne une stratégie de transaction trop adaptée aux données historiques.

Le processus de modélisation des stratégies de quantification est essentiellement un processus de recherche de données non aléatoires locales à partir d'un grand nombre de données apparemment aléatoires, qui, sans une connaissance statistique, peuvent facilement tomber dans le piège de l'hyperconformité.

Alors, ne vous trompez pas. Si vous trouvez que les données hors échantillon ne fonctionnent pas bien, et que vous pensez que c'est trop dommage de perdre le modèle ou que vous ne voulez pas admettre que votre modèle ne fonctionne pas, 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, la blessure finale sera certainement votre véritable argent d'or.

Détectez la déviation des survivants des pièges

Une blague populaire sur Wall Street dit: supposons qu'il y ait 1000 singes qui participent à l'investissement sur le marché, et que la première année, on élimine les 500 singes qui perdent au grand prix; la deuxième année, on élimine la moitié et on en a 250; et la troisième année, on en a 125; la troisième année, on en élimine la moitié et on en a 250; la troisième année, on en a 125; la troisième année, on élimine les 500 singes qui perdent au grand prix.imgFigure 5 à 5

À la neuvième année, il reste le dernier bâton. Puis vous regardez, regardez, regardez à gauche, regardez à droite, regardez et vous vous sentez bien. La dernière fois que vous voyez la couverture d'une revue financière, je me dis tout d'un coup, oh, oh, ce n'est pas Buffett!

Bien sûr, c'est juste une blague, mais avez-vous pensé que si vous avez 1000 gestionnaires de fonds, dans 10 ans, environ 10 gestionnaires de fonds gagneront le marché pendant 10 ans consécutifs.

Comme le résultat du test à gauche ci-dessous, je suis convaincu que la majorité des investisseurs vont voir le jour. Cette stratégie d'investissement est très solide et n'a pratiquement pas de retrait important.imgFigure 5 à 5

Et lent, comme le montre le diagramme à droite, la vraie situation est là-dedans. La courbe de retouche à gauche est la seule à avoir obtenu le meilleur résultat parmi de nombreuses retouches.

Le coût de l'impact des pièges

Dans un environnement de négociation réel, le prix fluctue constamment, et lorsque vous envisagez une opportunité de négociation, le moment où vous passez une commande, le prix a probablement déjà changé.

Cependant, la réévaluation est basée sur des données statiques et il est difficile de simuler un environnement de transaction réel. Par exemple: le prix de l'ordre est de 1050 achats, mais le prix de la transaction réelle peut être de 1051. Il existe de nombreux principes qui provoquent ce phénomène, tels que: vide de liquidité dans les marchés extrêmes, latence du réseau, système logiciel, système matériel, réponse du serveur, etc.

Retour sur le point de non-slip

imgFigure 5 et 6

Comme illustré ci-dessus, un retrait de point de non-glisse, la courbe de fonds est relativement agréable, mais le prix de transaction réel dans les transactions en direct et le prix de transaction idéal dans le retrait stratégique sont différents. Ainsi, pour réduire cette erreur, deux points de glisse peuvent être définis lors du retrait stratégique pour augmenter le prix d'achat ou diminuer le prix de vente.

Plus de retouches sur les glissades

imgFigure 5 à 7

Comme illustré ci-dessus, la même stratégie, si les résultats de la réévaluation sont très différents des résultats de la réévaluation sans ajout de points de glissement, si vous ajoutez 2 points de glissement, cela signifie que la stratégie doit être améliorée ou remplacée par une nouvelle. En particulier, les stratégies à fréquence de transaction relativement élevée, ajoutant 1 à 2 points de glissement lors de la réévaluation, peuvent rapprocher la réévaluation de l'environnement de négociation réel.

Résumé

La réponse est très simple: il faut simuler la transaction pendant un certain temps avant que la stratégie ne se concrétise. Si le prix de transaction de l'imitation de la transaction est identique au prix de transaction lors de la réévaluation, cela prouve que la stratégie n'a pas de problème, du moins la logique stratégique n'a pas de problème.

Quoi qu'il en soit, pour un développeur de système de trading expérimenté, le retrospective est un must; car il peut vous dire si une idée stratégique peut être vérifiée et validée dans le trading historique; mais souvent, le retrospectif ne signifie pas que vous serez rentable dans le futur; car il y a trop de trous dans le retrospectif et vous ne comprendrez pas les leçons sans acheter de l'argent; et ces leçons sont empilées avec de l'or et de l'argent authentiques.

Les devoirs après les cours

1° Qu'est-ce que le sur-adaptation et comment l'éviter? Deuxièmement, quelles sont les anomalies des survivants dans la vie réelle?

5.2 Comment effectuer une reévaluation quantitative des transactions

Résumé

La signification et l'importance de la revalorisation sont incontestables. Lors de la revalorisation quantitative, les stratégies doivent être autant que possible dans le contexte réel de l'histoire, car l'ignorance des détails dans le contexte historique peut entraîner l'invalidité de l'ensemble de la revalorisation quantitative.

Le retracement est une sorte de retracement de données, qui consiste à revenir sur les données historiques de la ligne K et à simuler des règles de négociation réelles pour finalement regrouper des données telles que le taux de change, le taux de retrait maximal, le taux de rendement annuel, la courbe des fonds sur une période donnée. Il existe actuellement de nombreux logiciels qui permettent de retracement, tels que la finance chinoise très complète, le VNPY qui peut être personnalisé de manière flexible, etc.

L'inventeur quantifie comme un logiciel commercial de transaction quantifiée, avec un moteur de retouche haut de gamme, un cadre de retouche for-loop, pour effectuer des calculs quantifiés vectoriels plus rapidement.

Introduction à l'interface de révision

Nous avons créé un site Web pour développer des outils de transaction quantifiés, en utilisant la stratégie de la langue Maï quantifiée par les inventeurs.www.fmz.comVous pouvez cliquer sur le centre de contrôle, la bibliothèque de stratégies, sélectionnez une stratégie, réessayez l'analogie pour accéder aux pages suivantes:imgFigure 5 à 8

Dans l'interface de configuration de la retouche, vous pouvez personnaliser selon vos besoins réels. Par exemple, vous pouvez définir le temps de retouche, le cycle de ligne K, le type de données (données de niveau analogique ou de niveau disque réel); comparativement, les retouches de données de niveau analogique sont plus rapides et les retouches de données de niveau disque réel sont plus précises).

La stratégie de la langue de Mac dans l'outil de négociation quantitative de l'inventeur a deux modes d'exécution de réévaluation, à savoir: modèle de prix de clôture et modèle de prix en temps réel. Le modèle de prix de clôture indique que le modèle n'est exécuté qu'à l'expiration de la ligne K actuelle, et exécute les transactions au début de la ligne K inférieure. Le modèle de prix en temps réel indique qu'un modèle est exécuté à chaque variation de prix, et que les transactions sont immédiatement effectuées lorsque le signal de transaction est créé.imgFigure 5 à 9

Le nombre par défaut de positions ouvertes est le nombre de positions ouvertes au moment de la mise à jour. Le nombre maximum de positions ouvertes lors d'une seule transaction est le nombre maximal de positions ouvertes par transaction confié au moteur de mise à jour.

Dans l'option à terme, remplissez la variété de contrat à revoir, telle que rb000 ou rb888. L'option en disque réel est principalement utilisée pour les transactions en disque réel et peut être maintenue par défaut pendant le repassage. Si le processus de restauration automatique est cliqué sur vrai, le robot redémarre automatiquement la position du signal avant l'arrêt de la stratégie lors de l'exécution du disque réel, sans avoir à recalculer le signal.imgFigure 5 à 10

L'option de négociation instantanée est principalement destinée aux transactions de devises numériques et peut être maintenue par défaut lors de la vérification. Vous pouvez spécifier le volume de transaction, le volume de transaction minimum, la précision de la monnaie fixée, la précision de la variété de transactions, les frais de traitement, le temps de synchronisation des comptes, l'intervalle de statistique de gain et perte, ainsi que le facteur d'effet de levier et d'autres paramètres associés pour chaque échange de devises numériques.imgFigure 5 à 11

Retour sur la stratégie

Avant de retester, déterminez votre stratégie de trading, par exemple la stratégie Thermostat, qui est basée sur l'état du marché, une stratégie de tendance dans un marché tendance, une stratégie de choc dans un marché bouillonnant.imgFigure 5 à 12 Dans l'interface de retouche d'analogie, après avoir configuré les paramètres de retouche, cliquez directement sur le bouton de démarrage du retouche, et les résultats du retouche apparaissent instantanément après quelques dizaines de secondes. Dans le journal de retouche, le nombre de secondes de temps de retouche, le total des journaux et le nombre de transactions sont enregistrés.imgFigure 5 à 13

Le panneau d'informations sur l'état indique la variété des transactions, le volume des avoirs, le prix des avoirs, le prix le plus récent, le type de signal le plus récent, le prix le plus élevé et le prix le plus bas après la tenue, le nombre et la durée des mises à jour, ainsi que les informations sur les fonds. En outre, le panneau des avoirs et des pertes flottants affiche la courbe de fonds détaillée du compte, ainsi que des indicateurs de performance couramment utilisés: taux de rendement, taux de rendement annualisé, taux de Sharpe, taux de volatilité annualisé maximal, taux de retrait, qui répondent en grande partie aux besoins de la majorité des utilisateurs.

Parmi ces indicateurs, le plus important est le ratio de Sharpe. Il est un indicateur global qui prend en compte à la fois le risque et le rendement, mais aussi un indicateur de référence important pour mesurer le produit d'un fonds.

Le taux de volatilité annuel, comme son nom l'indique, est le taux de volatilité journalier x le nombre de jours de négociation par an. Il mesure le risque du fonds, mais ce n'est absolument pas l'ensemble du risque. Par exemple, si la stratégie A a un taux de volatilité plus élevé, mais qu'elle fluctue constamment vers le haut, le rendement est bon, si la stratégie B a un faible taux de volatilité, mais qu'elle est constamment immobile, pouvons-nous dire que la stratégie B est meilleure que la stratégie A?imgFigure 5 à 14

Enfin, dans le panneau d'informations du journal, les informations détaillées sur la prise de vue de chaque transaction lors de la réévaluation sont enregistrées, y compris le moment précis de la transaction, le lieu de négociation, les achats et les ventes, ainsi que le type de position ouverte, le prix de transaction pris par le moteur de réévaluation, le nombre de transactions et les informations à imprimer, etc.imgFigure 5 à 15

Après le test

Dans la plupart des cas, le résultat de la réévaluation est très différent de ce que vous attendez. Après tout, une stratégie de rentabilité stable et durable n'est pas si facile à obtenir.

Si votre stratégie est en train de perdre de l'argent, 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, si les conditions de mise à niveau sont trop élevées, etc. Si nécessaire, vous pouvez également réexaminer votre stratégie de trading et votre idée de trading sous un autre angle.

Si votre stratégie a un résultat de retouche très bon, une courbe de fonds très parfaite, un ratio de Sharpe supérieur à 1 ou plus. Ne vous réjouissez pas si cela se produit, car la plupart des problèmes peuvent être éliminés en utilisant des fonctions futures, ou des prix volés, ou des ajustements excessifs, ou en n'installant pas de glisser-déposer.

Résumé

Ce qui précède est l'introduction de l'ensemble du processus de retouche de la stratégie de négociation, qui peut être dit spécifique à chaque détail. Il convient de noter que le retouche de données historiques est après tout un environnement idéal où tous les risques sont connus.

Le marché est toujours en mouvement et en évolution, les stratégies retracées historiquement ne sont pas nécessairement bonnes pour l'avenir, elles ne peuvent pas seulement faire face aux risques connus dans l'environnement de retracement, mais aussi aux risques inconnus à l'avenir. Il est donc nécessaire d'augmenter la résistance aux risques et l'universalité des stratégies.

Les devoirs après les cours

1, essayez de reproduire les stratégies de cette section et de revoir les rapports de performance 2. Essayez d'améliorer et d'optimiser les stratégies de cette section en fonction de votre expérience de trading.

5.3 Comment lire les rapports de performance des tests stratégiques

Résumé

Une fois que notre analyse de stratégie est terminée, l'inventeur de l'outil de trading quantifié produit une page Web contenant divers indicateurs de performance, des graphiques de courbe de rendement. Mais peut-être que nous ne connaissons pas bien l'interprétation et le contenu de ces indicateurs, ce qui nous empêche de juger de la stratégie de groupe, cet article commencera par les principaux concepts d'indicateurs pour vous aider à lire le rapport de performance de l'analyse de stratégie et à distinguer les avantages et les inconvénients de la stratégie.

Une évaluation objective et complète

Qu'il s'agisse d'un enregistrement des données de transaction en direct ou d'un rapport de réévaluation basé sur des données historiques rétro-testées, les avantages et les inconvénients des modèles sont évalués par des statistiques sur les transactions.

La question est de savoir quelles sont les statistiques avec lesquelles nous devons comparer. Prenons un exemple: si nous obtenons deux ensembles de données sur le même laps de temps, nous pouvons déterminer quel modèle fonctionne mieux.imgFigure 5 à 16

La réponse est non. L'unicité du système de notation conduirait le système de négociation quantitative à l'impasse.

Un système de trading doit être opérationnel par le biais d'un retrait historique. Un système de trading qui n'est pas opérationnel par le biais d'un retrait historique ne peut pas être rentable sur le long terme dans les transactions réelles. Le retrait historique est un élément préalable nécessaire à l'introduction du système de trading sur le marché réel.

Un système de négociation qui peut être retracé historiquement n'est pas nécessairement un système de négociation utile, mais celui qui ne peut pas être retracé historiquement n'est pas nécessairement un système de négociation utile. En général, nous devons analyser les rapports de performance en termes de stabilité, de durabilité, de jugement de l'attente, etc.imgFigure 5 à 17

Comme indiqué ci-dessus, les traders qui ont été exposés à la quantification ont probablement rencontré une série de termes de données redondants et difficiles à comprendre, et même de nombreuses données contradictoires dans ces données de performance.

Les termes d'indicateurs de performance dans le graphique ci-dessus peuvent généralement être divisés en plusieurs grandes catégories: ratio de performance, analyse cyclique, curve variée, analyse de transactions extrêmes, etc. Même du point de vue strict des produits de fonds, la plupart ne sont que des résultats de calcul de la réévaluation, qui ne sont pas significatifs en pratique, tels que: besoins en fonds de compte, bénéfices détenus, limites de confiance, etc. Vous n'avez même pas besoin de vous concentrer sur quelques-uns des plus importants.

Indicateurs de performance importants

Taux de retrait maximal des actifs (Max Drawdown)

La formule de calcul de la rétroaction maximale est la suivante:


Relationnée

Plus de

Hailhydra2C'est un bon article!

Le vide quantifiémarque