Le langage humain. Après de longues années de méditation et d'auto-apprentissage, nous avons appris à parler dans l'inconscient et à comprendre le sens des mots des autres enfants. Il existe de nombreuses langues, y compris le chinois, l'anglais, le français, etc. En chinois: Bonjour au monde En anglais: Hello World Français: Bonjour tout le monde
Si l'on utilise un langage de programmation pour afficher "bonjour au monde" sur l'écran de votre ordinateur, cela ressemble à ceci: L'article est en anglais: "Puts" (en anglais seulement). L'article est publié en anglais et en espagnol. Python: print (Bonjour au monde) On peut voir que les langages informatiques ont leurs propres règles spécifiques, et il y en a beaucoup d'autres, et ces règles sont la catégorie de langages de programmation que nous avons besoin d'expliquer aujourd'hui, dans chaque catégorie, nous n'avons qu'à nous souvenir des règles les plus élémentaires et les plus courantes, pour pouvoir utiliser ces langages de programmation et les communications informatiques pour que les ordinateurs fonctionnent selon nos instructions.
Pour vous aider à comparer et à choisir le langage de programmation de transaction quantitative qui vous convient, nous allons faire une classification des six langages les plus couramment utilisés: Python, Matlab/R, C++, Java/C#, EasyLanguage et Visualization (voir ci-dessous).Figure 3-1 Évaluation des langages de programmation
Nous les classons selon leur gamme de fonctionnalités, leur vitesse d'exécution, leur évolutivité et leur difficulté d'apprentissage. Un score compris entre 1 et 5, par exemple un score de 5 dans la gamme de fonctionnalités, signifie que les fonctionnalités sont puissantes. Un point signifie moins de fonctionnalités.
Mais pour chaque langage de programmation, l'évaluation est principalement destinée aux applications dans le domaine de la transaction quantitative et comporte des composants subjectifs individuels.
La programmation visualisée est née il y a longtemps et ce n'est pas nouveau. Cette idée de programmation, qui se présente comme un tout, est constituée de différents modules de contrôle, qui permettent de construire la logique du code, de terminer la conception des stratégies de transaction, et de construire un processus similaire à celui des blocs.Figure 3-2 Interfaces de langage de programmation visualisées
Comme illustré ci-dessus, le même programme nécessite seulement quelques lignes de code dans la programmation de visualisation de plate-forme de négociation quantitative de l'inventeur. Cela réduit considérablement le seuil de programmation, ce qui est une expérience d'exploitation fantastique, en particulier pour les traders qui ne comprennent pas du tout la programmation.
Comme la base de la stratégie d'implémentation de ce langage de visualisation est transférée en C++, il n'y a pas beaucoup d'impact sur la vitesse d'exécution du programme. Cependant, les fonctionnalités et l'évolutivité sont faibles et il est impossible de développer des stratégies de transaction trop complexes ou trop détaillées.
Le terme EasyLanguage désigne un langage de programmation unique à certains logiciels de négociation quantitative commerciaux. Bien que ces langages aient également des caractéristiques partiellement orientées vers les objets, ils sont principalement utilisés sous forme de scripts dans les applications. Sur le plan grammatical, ils sont également très proches de notre langage naturel.
Ce langage de script ne pose pas de problème pour la vérification des stratégies et le disque dur dans son logiciel spécifique, mais il est souvent limité en termes d'extensibilité, par exemple, les développeurs de stratégies ne peuvent pas appeler des API externes. Et en termes de vitesse de fonctionnement, ce langage de script fonctionne sur sa propre machine virtuelle, moins optimisé pour les performances que Java / C #, plus lent.
Sur Stackoverflow, la fréquentation du langage de programmation dominant n'a pratiquement pas changé au cours des dernières années, seuls Python est en 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. Il est devenu le langage le plus utilisé en raison de sa flexibilité et de son ouverture.
Les listes et les dictionnaires de structures de données de base de Python sont très puissants et peuvent essentiellement répondre aux besoins de représentation de données. Si vous avez besoin d'une structure de données plus rapide et plus complète, nous vous recommandons d'utiliser NumPy et SciPy, deux bibliothèques qui sont essentiellement appelées bibliothèques standards pour le calcul scientifique de 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, très adaptées pour traiter les séquences de temps.
En termes de vitesse, Python se situe au milieu du flux, un peu plus lent que C++ et un peu plus rapide que EasyLanguage, principalement parce que Python est un langage dynamique qui est généralement rapide lorsqu'il est exécuté en Python pur.
En tant que langage de plongée, Python est le premier en termes de performances d'extension, en plus d'être largement lié à d'autres langages, et la conception de l'API d'extension est très facile à utiliser. En termes de difficulté d'apprentissage, la grammaire de Python est simple, le code est lisible et facile à apprendre.
Matlab et R sont les deux langues les plus utilisées pour l'analyse de données, et les auteurs de la langue ont beaucoup conçu pour les opérations scientifiques en termes de syntaxe, en particulier en ce qui concerne la prise en charge des opérations de transaction quantitative.
De plus, ils sont relativement faibles en termes de vitesse d'exécution et d'évolutivité, car Matlab et R fonctionnent sur des machines virtuelles de langues uniques. En termes de performances, leurs machines virtuelles sont bien inférieures à celles de Java et de C#. Mais ils sont relativement faciles à apprendre car leur syntaxe est plus proche des formules mathématiques.
C++ est un langage de programmation universel qui prend en charge plusieurs modes de programmation, tels que la programmation procédurale, l'abstraction de données, la programmation orientée objet, la programmation générique et le mode de conception.
À l'heure actuelle, C++ reste le langage de programmation préféré pour les transactions de grande capacité et de haute fréquence, pour une raison simple: les caractéristiques du langage C++ sont plus faciles à approcher du bas de l'ordinateur et sont les outils les plus efficaces pour développer des systèmes de récupération et d'exécution de haute performance qui traitent de grandes quantités de données.
Java/C# sont des langages statiques qui fonctionnent sur des machines virtuelles, et qui, par rapport à C++, n'ont pas de franchissement d'arithmétique, pas de coredumps, de localisations exceptionnellement précises du code, de mécanismes de récupération automatique de la corbeille, de fuites de mémoire, etc. Ainsi, ils sont également plus faciles à apprendre que C++ en termes de difficulté de syntaxe. En termes de vitesse d'exécution, ils sont à la traîne de C++ car leurs machines virtuelles ont toutes des fonctions JIT compilées en cours d'exécution.
Cependant, en termes de fonctionnalités, il n'est pas possible d'optimiser le sous-sol du système de transaction comme le fait C++. En termes d'extension des performances, il est un peu plus faible que C++, car leur extension nécessite de passer par le pont de C, et les deux langues fonctionnent elles-mêmes sur une machine virtuelle.
Cependant, en retour, les langages de programmation quantifiés ne sont pas importants, ce sont les idées qui comptent. Les inventeurs de langages quantifiés et de langages visualisés comme seuil d'entrée en quantification sont tout à fait sans problème, l'amélioration après l'entrée nécessite de continuer à essayer d'explorer en combinant différentes conditions du marché, on peut dire que l'idée détermine la sortie, les yeux déterminent les limites.
Vous devez concevoir votre stratégie et négocier vos idées. En ce sens, la quantité de négociation reste au cœur de l'idée de négociation. En tant que trader quantitatif, vous devez non seulement maîtriser la syntaxe et les fonctions de base de la plate-forme de stratégie, mais aussi réaliser les idées de négociation dans la vie réelle.
1° Quels sont les avantages de Python en tant que transaction quantitative? 2) Essayez d'écrire quelques APIs couramment utilisées dans le langage de Mac des inventeurs.
Je suis sûr qu'avec l'introduction que j'ai faite sur les langages de programmation, vous savez maintenant comment choisir, alors dans les prochains chapitres, nous allons développer des stratégies de transaction quantitative ciblées d'apprentissage selon la classification des langages de programmation.
Qu'est-ce qu'un langage Mac? Le langage Mac est un ensemble de fonctions programmatiques qui s'est développé à partir des premiers indicateurs techniques de stock. Il enveloppe l'algorithme en une seule fonction, où l'utilisateur n'a qu'à appeler une fonction en une ligne, comme une pile de briques de puzzle, pour réaliser une logique stratégique.
Il utilise un modèle de construction de " petite syntaxe, grande fonction ", ce qui améliore considérablement l'efficacité de l'écriture, une stratégie de plus de 100 phrases dans d'autres langues, 10 phrases en général peuvent être écrites dans la langue Ma. Il est également capable de prendre en charge la logique de transaction partiellement complexe.
Afin de vous aider à comprendre rapidement les points clés de cette section, avant d'introduire une introduction rapide à l'inventeur de la langue quantique, nous avons une première compréhension du concept de nom de cette section. Nous avons utilisé les lignes moyennes de 50 jours à long terme et les lignes moyennes de 10 jours à court terme comme cas de base.
Une ouverture à plusieurs: si il n'y a pas de position en cours et que le prix de clôture est supérieur à la moyenne courte, et que le prix de clôture est supérieur à la moyenne longue, et que la moyenne courte est supérieure à la moyenne longue, et que la moyenne longue est en hausse;
Ouverture à vide: si il n'y a pas de position en cours et que le prix de clôture est inférieur à la moyenne à court terme, et que le prix de clôture est inférieur à la moyenne à long terme, et que la moyenne à court terme est inférieure à la moyenne à long terme, et que la moyenne à long terme est en baisse;
Placement à plusieurs: si vous avez plusieurs commandes actuellement détenues et que le prix de clôture est inférieur à la moyenne à long terme, ou si la moyenne à court terme est inférieure à la moyenne à long terme, ou si la moyenne à long terme est en baisse;
La tête nue: si vous avez un ordre vacant et que le prix de clôture est supérieur à la moyenne à long terme, ou que la moyenne à court terme est supérieure à la moyenne à long terme, ou que la moyenne à long terme est en hausse.
Si on l'écrit dans le code de la langue Ma, cela ressemble à ceci:Figure 3-3 Exemples complets de la langue Ma
Pour écrire une stratégie de transaction quantifiée complète, il faut généralement plusieurs étapes: acquisition de données, calcul de données, calcul logique, achat et vente de sous-ordonnances. Comme indiqué ci-dessus, dans tout le code, une seule API est utilisée pour obtenir les données de base, à savoir les balises CLOSE des lignes 1 et 2; puis les lignes 1 à 9 sont la partie calcul des données; enfin, les lignes 11 à 14 sont la partie calcul logique et sous-ordonnance.
Notez que le code en violet est une variable; dans la première ligne à la neuvième ligne, le jaune vert: = jaune est un symbole d'attribution, les données de la droite du symbole d'attribution sont attribuées à la variable de la gauche du symbole d'attribution après le calcul; le code en orange est l'API, par exemple, dans la première ligne, appeler MA ((symétrique) nécessite la transmission de deux paramètres, les paramètres de transmission peuvent être compris comme des paramètres, c'est-à-dire que le type de MA doit être configuré lors de l'appel de MA; le jaune rouge est le jaune AND, le jaune OR est un opérateur logique, principalement utilisé pour connecter plusieurs calculs logiques, etc. Une fois les concepts de base connus, nous commençons à apprendre les bases du langage en détail.
Les données de base (prix d'ouverture, prix le plus élevé, prix le plus bas, prix de clôture, volume de transactions) sont une partie intégrante de la transaction de quantification. Pour obtenir les données de base les plus récentes dans la stratégie, il suffit d'appeler l'API de l'outil de quantification de l'inventeur.
Les noms de variables sont des nombres qui peuvent être modifiés, les noms de variables peuvent être compris comme des codes, leurs noms prennent en charge les noms en caractères chinois, lettres, chiffres et signes, mais la longueur doit être contrôlée dans les 31 caractères. Les noms de variables ne peuvent pas se répéter, ne peuvent pas être répétés avec des noms de paramètres, ne peuvent pas être répétés avec des noms de fonctions (API), chaque phrase doit se terminer par un point.Figure 3 à 4 Types de données en langue Ma
L'attribution des variables consiste à attribuer une valeur de la droite à une variable de la gauche. Il existe quatre types d'attribution, qui permettent de contrôler l'affichage des nombres sur le graphique, ainsi que la définition de leur emplacement.Figure 3-5 Attribution des variables dans la langue Ma
Dans la langue Ma, il existe plusieurs types de données, dont les plus couramment utilisés sont le type de valeur numérique, le type de chaîne, le type Boole. Les types de valeur numérique sont les nombres, y compris les nombres entiers, les nombres décimaux, les nombres négatifs positifs, etc., tels que: 1, 2, 3, 1, 1234, 2, 23456...; les types de chaîne peuvent être compris comme des lettres, en chinois, en anglais, les chiffres peuvent être des chaînes, telles que:
L'opérateur relationnel, comme son nom l'indique, est un opérateur utilisé pour comparer les relations entre deux valeurs.Figure 3-6 Opérateurs de langue Ma
Les opérations logiques permettent de connecter des expressions de type Boole distinctes en un tout, les plus couramment utilisées étant le prix d'ouverture et le prix d'ouverture OR. Supposons qu'il y ait deux valeurs de type Boole, respectivement le prix de clôture de l'ouverture est supérieur au prix d'ouverture et le prix de clôture de l'ouverture est supérieur au prix de clôture uniforme. Nous pouvons les composer en une valeur de Boole, par exemple: le prix de clôture de l'ouverture est supérieur au prix d'ouverture et le prix de clôture d'AND est supérieur au prix de clôture de l'ouverture ou le prix de clôture de l'ouverture est supérieur au prix de clôture de l'ouverture ou le prix de clôture de l'ouverture est supérieur au prix de clôture uniforme.Figure 3-7 Opérations logiques en langage mac
Attention!
L'ADN et l'ADN sont les conditions pour que l'ADN soit l'ADN lorsque toutes les conditions sont l'ADN, et la condition finale est l'ADN;
L'équation OR est l'équation dans toutes les conditions, si l'une d'elles est l'équation, l'équation finale est l'équation.
Les lettres
Il n'y a aucune différence entre les opérateurs arithmétiques couramment utilisés dans la langue de Macédoine (
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.Figure 3-9 Priorité des opérations pour les calculs en langage mac
Dans le langage de Mac, l'outil de quantification de l'inventeur, les stratégies de programmation exécutent un total de deux modes, à savoir: le mode de prix de clôture et le mode de prix en temps réel. Le mode de prix de clôture indique que le signal de la ligne K actuelle est formé et exécute immédiatement la transaction dès le début de la ligne K inférieure. Le mode de prix en temps réel indique que le signal de la ligne K actuelle est formé et exécute immédiatement la transaction suivante.
Si c'est une stratégie journalière, la fonction de temps d'arrêt de l'échiquier doit être utilisée lorsque l'échiquier doit être égalisé. Cette fonction est affichée sous forme de quatre chiffres, c'est-à-dire: HHMM ((1450
Figure 3-11 Classification par modèle des langues Ma
Il existe deux catégories de modèles dans le langage Mac, à savoir: les modèles non filtrés et les modèles filtrés. En fait, cela est bien compris: les modèles non filtrés permettent l'apparition d'un signal d'ouverture ou d'équilibrage en continu, ce qui permet d'augmenter et de diminuer les fonctions d'opération.
C'est une introduction rapide à la langue Ma, et vous pourrez programmer une stratégie de transaction quantitative après l'avoir apprise. Si vous avez besoin d'écrire une stratégie plus complexe, vous pouvez vous référer au document de l'API de l'outil de quantification de l'inventeur, ou consulter directement la stratégie de transaction quantitative de l'agent client officiel.
Le day trading est également un mode de trading qui ne laisse pas de positions en place pendant la nuit, ce qui réduit le risque de fluctuation du marché et permet de procéder à des ajustements en temps opportun dès que des tendances défavorables se produisent. Après avoir appris l'introduction à la langue mac, nous allons vous aider à écrire une stratégie de trading quantifié sur le jour.
1° Essayez d'écrire une API pour obtenir des données de base en Mac en utilisant les outils de quantification de l'inventeur. 2° Quelles sont les différentes manières d'afficher les valeurs des variables dans les graphiques?
Dans l'article précédent, nous vous avons expliqué les prérequis de la mise en œuvre d'une stratégie de trading à partir de l'introduction de la langue Ma, de la grammaire de base, de la façon dont le modèle est exécuté, de la classification du modèle, etc. Dans cet article, nous continuerons avec le contenu précédent, à partir de modules de stratégie couramment utilisés, d'indicateurs techniques, étape par étape pour vous aider à mettre en œuvre une stratégie de trading quantifiée qui fonctionne au jour le jour.
Pensez à la façon dont vous assemblez un robot avec des morceaux de Lego. Vous ne pouvez jamais assembler un robot en un seul morceau de haut en bas ou de bas en haut en un seul morceau. Tout le monde qui a un peu de bon sens sait qu'il faut assembler la tête, les bras, les jambes, les ailes, etc. individuellement, puis assembler un robot complet.
L'augmentation de la phase est le pourcentage de la différence entre le prix de clôture de la ligne K et le prix de clôture des N cycles précédents. Par exemple, calculer l'augmentation de la dernière phase de 10 lignes K peut s'écrire:Graphique 3-12 Augmentation du niveau de la langue
La hauteur d'innovation est la plus haute valeur depuis N cycles lorsque la racine K est plus grande que la dernière. Par exemple, pour calculer si la racine K est plus grande que la plus haute valeur des 10 dernières lignes K, on peut écrire:Graphique 3-13 La langue maya est à nouveau très innovante
L'offensive de volume peut être comprise comme une hausse des prix et une augmentation spectaculaire du volume des transactions. Par exemple: si le prix de clôture de la ligne K principale est 1,5 fois le prix de clôture de la ligne K principale précédente, c'est-à-dire une hausse de 50% dans les 10 jours; le volume des transactions est supérieur à 5 fois la moyenne des 10 dernières K principales. Le code peut être écrit comme suit:Graphique 3-14 La montée en puissance de la langue Ma
L'arrangement à large échelle signifie que le prix a été maintenu dans une certaine marge pendant une période proche. Par exemple, si le prix le plus élevé de 10 cycles est inférieur à environ 0.05 en dehors du prix de clôture de la racine K, le code peut être écrit comme suit:Figure 3-15 Langue Maï répertoriée de manière restreinte
L'arrangement polyhedral est divisé en un arrangement polyhedral et un arrangement en carré, la ligne K est l'arrangement polyhedral à l'étage supérieur de l'arrangement sous-ligne 5
Pour obtenir le sommet précédent, ainsi que l'emplacement de ce sommet, vous pouvez l'obtenir directement via l'API de l'outil de quantification de l'inventeur.Graphique 3-17 Les premiers sommets de la langue Ma
Le point de rupture est le point de rupture où le prix le plus bas de la ligne K apparaît sans couplage. Il est composé de deux lignes K. Le point de rupture est le prix de référence du point de support et de pression ultérieur.Figure 3-18 Le saut à l'élastique
Figure 3-19 Graphique des moyennes mobiles
D'un point de vue statistique, la moyenne est la moyenne arithmétique des prix quotidiens, c'est une trajectoire de prix tendancielle. Les systèmes de moyenne sont des outils techniques couramment utilisés par la plupart des analystes, qui, d'un point de vue technique, influencent les facteurs psychologiques des prix des analystes techniques, les facteurs décisionnels de l'achat et de la vente, sont de bons outils de référence pour les analystes techniques, et les outils de quantification des inventeurs prennent en charge plusieurs types de moyenne, comme indiqué ci-dessous:Figure 3-20 Le calcul des différents indicateurs de la langue Ma
Graphique 3-21 BOLL
Le BOLL, également appelé indicateur de la bande de Berlin, utilise des principes statistiques pour calculer la moyenne en fonction des moyennes mobiles de N jours, puis la hausse et la baisse en fonction du décalage type. Lorsque le BOLL s'élargit, il indique que les prix reviennent progressivement à la moyenne. Lorsque le BOLL s'élargit, cela signifie que le marché commence à changer, si le prix s'élargit, cela indique une augmentation du pouvoir d'achat, si le prix s'élargit, cela indique une augmentation du pouvoir de vente.
Parmi tous les indicateurs techniques, la méthode de calcul de BOLL est l'une des plus complexes, qui introduit la notion d'écart-type en statistique et implique le calcul des lignes médianes (MB), supérieures (UP) et inférieures (DN).Figure 3-22 Le calcul de la bande de Braille en langue Maï
Figure 3-23 Indicateur MACD
L'indicateur MACD utilise des moyennes mobiles rapides (à court terme) et lentes (à long terme) et leurs signes d'agrégation et de séparation pour effectuer des opérations doubles. Le MACD, développé selon le principe des moyennes mobiles, élimine les défauts des moyennes mobiles qui émettent souvent de faux signaux et conserve l'effet des moyennes mobiles.
Figure 3-24 Indicateur MACD en langue maï
Ce sont les modules de stratégie les plus couramment utilisés dans le développement de stratégies de négociation quantitative, bien sûr, en fait, beaucoup plus que cela, grâce aux exemples de modules ci-dessus, vous pouvez également réaliser manuellement quelques-uns des modules de négociation les plus couramment utilisés dans la négociation subjective.
Une stratégie de trading de rupture a été largement diffusée sur le marché des devises au comptant, la stratégie HANS123, qui utilise le simple fait de briser les hauts et les bas de la ligne K après l'ouverture comme critère de jugement pour déclencher un signal de transaction.
Les joueurs doivent être prêts à entrer 30 minutes après l'ouverture. En haut de la piste = 30 minutes après le début du jeu; La piste inférieure = le point bas 30 minutes après le début du jeu; Il y a une différence de prix entre les deux types de transactions. Il est possible de vendre une position ouverte lorsque le prix chute. La stratégie de négociation de jour, le solde avant la clôture;
Figure 3-25 Le code de la stratégie de la langue Ma
Nous avons appris le concept du module de stratégie ci-dessus, et grâce à quelques exemples de modules de stratégie couramment utilisés, nous connaissons les méthodes de programmation des outils de quantification des inventeurs. Apprendre à écrire des modules de stratégie, améliorer la logique de programmation, est une étape clé pour la quantification progressive des transactions.
Peut-être que certains seront confus, le code de la confusion ne comprend pas. Ne vous précipitez pas, nous avons pensé à tout pour vous, dans les outils de quantification des inventeurs, il y a un autre langage de programmation, plus adapté à l'utilisation de petits utilisateurs, c'est la programmation visuelle, comme son nom l'indique, attendez-vous à cela!
1° Essayez de mettre en œuvre manuellement quelques-uns des modules de négociation que vous utilisez le plus souvent dans les transactions subjectives. 2° Essayez de mettre en œuvre l'algorithme de pointage KDJ en utilisant le langage de Mac dans les outils de quantification de l'inventeur.
Beaucoup de traders subjectifs s'intéressent à la transaction quantitative et commencent avec une certaine confiance, mais après avoir appris la syntaxe de base des langages de programmation traditionnels, les opérations de données, les structures de données, les contrôles logiques, etc., après avoir vu que le code long et complexe est souvent lent ou étouffant, alors le langage de programmation visualisé peut être plus approprié pour vous initier.
Afin de vous aider à comprendre rapidement les points clés de cette section, avant d'entamer une introduction rapide au langage de programmation de visualisation quantifiée par l'inventeur, voyons ce que sont les stratégies écrites en langage de visualisation.
Une ouverture à plusieurs: si aucune position n'est en cours et que le prix de clôture est supérieur à la moyenne de 50 cycles.Ouverture à vide: si aucune position n'est en cours et que le prix de clôture est inférieur à la ligne moyenne de 50 cycles.Placement à plusieurs: si vous détenez plusieurs commandes et que le prix de clôture est inférieur à la moyenne de 50 cycles.La tête nue: si vous avez un ordre vacant et que le prix de clôture est supérieur à la moyenne de 50 cycles.
Si vous écrivez les stratégies ci-dessus en langage visuel, elles ressemblent à ceci (voir ci-dessous):Figure 3-26 Interfaces linguistiques visualisées
Comme indiqué ci-dessus, l'ensemble du processus de conception de la stratégie consiste à: définir une variété de marché, obtenir une matrice de ligne K, obtenir une moyenne de 50 cycles sur la ligne K, obtenir un prix de clôture sur la ligne K, obtenir une matrice de positions, déterminer l'état des positions, déterminer si le prix de clôture est supérieur ou inférieur à la ligne moyenne, ouvrir ou clôturer une position.
Il est important de noter ici le concept d'arrangement de l'arrangement, qui est l'une des structures de données les plus importantes pour tous les langages de programmation. Les arrées sont comme des conteneurs dans lesquels une série de valeurs peut être stockée. Par exemple, si vous appelez l'API pour obtenir un ensemble de lignes K, elle renvoie le résultat suivant:Diagramme 3-27 Arrées de lignes K
Le code du diagramme ci-dessus est une matrice de K lignes qui contient 3 données: les données de la racine supérieure de K, les données de la racine supérieure de K, les données de la racine de K. Si nous donnons la valeur de cette matrice à une variable, si nous voulons obtenir cette matrice, la dernière donnée (les données de la racine de K) peut être écrite comme ceci (les lignes 4 et 5 du diagramme ci-dessous):Citation de l'arithmétique de la figure 3-28.
On utilise directement la deuxième écriture (la 5ème ligne), car il y a des centaines de milliers de lignes de données dans la réalité, et de nouvelles lignes de K sont constamment ajoutées. Ainsi, on peut d'abord obtenir la longueur de l'array, arrarr.length signifie obtenir la longueur de l'array, puis moins arr1, c'est-à-dire les données de la dernière ligne de K. Si vous voulez obtenir les données de la racine de la ligne de K, alors moins arr2.
Si vous regardez attentivement, vous remarquerez que ces données sont toutes regroupées par un point de vente, et que le nom en anglais indique les points suivants: temps, prix d'ouverture, prix le plus élevé, prix le plus bas, prix de clôture, volume de transaction. Si vous voulez obtenir le prix de clôture de la ligne K supérieure, ajoutez le point de vente directement après.Citation de l'arithmétique de la figure 3-29
Avec ces concepts, commençons par écrire un programme en java qui exécute Hello, world, pour avoir une idée de la programmation traditionnelle, comme le montre le graphique ci-dessous:Figure 3 à 30
Il suffit d'exporter une chaîne de caractères hello world! pour écrire 5 lignes de code. Je crois que la plupart des débutants ne connaissent que les mots anglais entre parenthèses hello, world
La programmation visualisée est née il y a longtemps et ce n'est pas nouveau. Cette idée de programmation, qui se présente comme un tout, est constituée de différents modules de contrôle, qui permettent de construire la logique du code, de terminer la conception des stratégies de transaction, et de construire un processus similaire à celui des blocs.Figure 3 à 31
Comme illustré ci-dessus, le même programme est réalisé avec une seule ligne de code dans la programmation visualisée par blockly. Cela réduit considérablement le seuil de programmation, ce qui est une excellente expérience d'utilisation, en particulier pour les traders qui ne comprennent pas du tout la programmation.
blockly n'est pas un jouet de programmation, c'est un véritable éditeur, et non un système d'exploitation déguisé en éditeur, qui prend en charge de nombreux éléments de base de la programmation, tels que des variables, des fonctions, des arithmétiques et des blocs personnalisés faciles à étendre, qui vous permettent d'accomplir des tâches de programmation complexes.
La programmation de visualisation quantifiée par les inventeurs est réalisée grâce à l'outil de visualisation blockly de Google.Figure 3 à 32
Des centaines de modules de négociation courants sont intégrés à l'interface de programmation visualisée quantifiée par l'inventeur, et d'autres modules seront ajoutés ultérieurement pour soutenir les nouvelles idées et les nouvelles applications des traders, qui seront développées et maintenues conjointement par les développeurs.
Bien que la syntaxe soit simple, elle n'est pas dépourvue de performances. Elle peut presque satisfaire la plupart des stratégies de développement de transactions quantitatives simples. Elle ne perd pas en fonctionnalités, en vitesse et en langages de programmation conventionnels tels que Python et JavaScript.
Figure 3 à 33
Figure 3 à 34
Figure 3 à 35
Nous avons commencé avec une stratégie de visualisation complète, une introduction et des caractéristiques du langage de visualisation, une introduction à l'utilisation du langage de visualisation sur les outils de quantification des inventeurs et un exemple d'écriture d'un bonjour monde.
La programmation visualisée n'est pas très différente des bases de langages de programmation avancés et est même universelle dans certains endroits. Apprendre la programmation visualisée va plus loin que l'apprentissage de la programmation avancée. Dans la section suivante, nous étudierons en profondeur les étapes de la programmation visualisée, y compris comment écrire des modules de négociation quantitative couramment utilisés dans les outils de quantification des inventeurs et comment développer une stratégie de négociation interne complète.
1° Quantifier les interfaces de programmation visualisées par les inventeurs, utiliser les APIs et comprendre ce qu'ils signifient. 2° Obtenez les prix d'ouverture les plus récents en langage visualisé et exportez-les dans les journaux.
Dans l'article précédent, nous avons appris l'introduction et les caractéristiques du langage de programmation visualisé, l'exemple de Hello World, ainsi que la composition de stratégies dans les outils de trading quantifiés par les inventeurs. Dans cet article, nous continuons à l'article suivant, en commençant par les modules de stratégie et les indicateurs techniques couramment utilisés, en passant par la logique stratégique, pour vous aider à réaliser une stratégie de trading interne complète.
L'augmentation de la phase est le pourcentage de la différence entre le prix de clôture de la ligne K et le prix de clôture des N cycles précédents. Par exemple, calculer l'augmentation de la dernière phase de 10 lignes K peut s'écrire:Figure 3 à 36
Le code ci-dessus montre que l'exécution par ordinateur nécessite un cycle logique complet, par exemple pour calculer l'augmentation de phase des 10 dernières lignes de K, qui doit être décomposée en plusieurs étapes:
Tout d'abord, l'ordinateur doit savoir clairement quelle variété vous souhaitez échanger, par exemple le méthanol dans l'exemple ci-dessus, puis définissez le code du contrat comme suit: MA888
Avec les données de K-Line, vous pouvez obtenir des données détaillées de n'importe quelle ligne de K-Line à partir de ces données de K-Line. Pour calculer l'augmentation de la phase statistique, il faut d'abord obtenir les deux prix de clôture de la ligne K, par exemple: le prix de clôture de la ligne K supérieure et le prix de clôture de la ligne K 11 précédente.
Enfin, on calcule le taux d'augmentation de la phase à partir des deux prix de clôture de la ligne K. Chacune des stratégies ci-dessous présente des caractéristiques telles que le cycle logique et les attributs conditionnels.
L'offensive de volume peut être comprise comme une hausse des prix et une augmentation spectaculaire du volume des transactions. Par exemple: si le prix de clôture de la ligne K principale est 1,5 fois le prix de clôture de la ligne K principale précédente, c'est-à-dire une hausse de 50% dans les 10 jours; le volume des transactions est supérieur à 5 fois la moyenne des 10 dernières K principales. Le code peut être écrit comme suit:Figure 3 à 37
Le point de rupture est le point de rupture où le prix le plus bas de la ligne K apparaît sans couplage. Il est composé de deux lignes K. Le point de rupture est le prix de référence du point de support et de pression ultérieur.Figure 3 à 38
D'un point de vue statistique, la moyenne est la moyenne arithmétique des prix quotidiens, c'est une trajectoire de prix tendancielle. Les systèmes de moyenne sont des outils techniques couramment utilisés par la plupart des analystes, qui, d'un point de vue technique, influencent les facteurs psychologiques des prix des analystes techniques, les facteurs décisionnels de l'achat et de la vente, sont de bons outils de référence pour les analystes techniques, et les outils de quantification des inventeurs prennent en charge plusieurs types de moyenne, comme indiqué ci-dessous:Figure 3 à 39
L'indicateur MACD utilise des moyennes mobiles rapides (à court terme) et lentes (à long terme) et leurs signes d'agrégation et de séparation pour effectuer des opérations doubles. Le MACD, développé selon le principe des moyennes mobiles, élimine les défauts des moyennes mobiles qui émettent souvent de faux signaux et conserve l'effet des moyennes mobiles.Figure 3 à 40
L'indicateur KDJ combine les avantages de la notion de dynamique, de la force et de la moyenne mobile pour mesurer la variation des prix des actions en dehors de la plage normale des prix. Il prend en compte non seulement le prix de clôture, mais aussi les prix les plus élevés et les plus bas récents, ce qui évite de considérer uniquement le prix de clôture et d'ignorer les faiblesses de la vraie volatilité.Figure 3 à 41
Benjamin Graham, le mentor de Warren Buffett, a mentionné un modèle de négociation de l'équilibre dynamique des actions et des obligations dans son livre L'investisseur intelligent.
Le modèle de transaction est très simple: Les investisseurs investissent 50% de leur capital dans des fonds d'actions et 50% dans des fonds de titres, soit la moitié des titres et des titres.
Une rééquilibrage d'actifs à intervalles fixes ou selon les changements du marché ramène le ratio entre les actifs en actions et les actifs en obligations à son niveau initial de 1:1. Voilà toute la logique de la stratégie, y compris quand acheter et combien acheter.
Dans cette approche, les taux de volatilité des fonds obligataires sont en fait très faibles, bien inférieurs à ceux des actions, de sorte que les obligations sont considérées ici comme des "paras de référence", c'est-à-dire que les obligations sont utilisées pour mesurer si les actions gagnent trop ou trop peu.
Si une hausse du prix d'une action rend la valeur marchande de cette dernière plus élevée que celle de la dette, le ratio entre les deux est révisé lorsque la valeur marchande est supérieure au seuil fixé.
En revanche, une baisse du prix des actions rend la valeur marchande des actions inférieure à celle des obligations, et lorsque le ratio entre les deux est supérieur au seuil fixé, la position globale est révisée, les actions achetées et les obligations vendues, ramenant le ratio entre les actions et les obligations à 1:1.
C'est ainsi qu'un équilibre dynamique des ratios entre les actions et les obligations est suffisant pour profiter des fruits de la croissance des actions et réduire la volatilité des actifs.
Selon la valeur actuelle des BTC, le solde du compte est réservé à 5000 yen en espèces et 0,1 BTC, soit un ratio initial de 1:1 entre la valeur de l'argent et la valeur marchande des BTC.
Si le prix du BTC atteint ¥6000, c'est-à-dire que la valeur marchande du BTC est supérieure au solde du compte et que la différence entre les deux est supérieure au seuil de conversion, vendre ((6000-5000) / 6000/2 pièces.
Si le prix du BTC tombe à ¥ 4000, c'est-à-dire que la valeur marchande du BTC est inférieure au solde du compte, et que la différence entre les deux dépasse le seuil fixé, achetez ((5000-4000)/4000/2 pièces.
De cette façon, que BTC soit valorisé ou dévalué, le solde de compte est toujours dynamiquement égal à la valeur marchande de BTC. Si BTC est dévalué, achetez-en un peu, puis vendez-en un peu, comme si c'était normal.
Conditions d'achat: Si la valeur marchande de la position en cours moins le solde disponible en cours est inférieur à moins 5% du solde disponible en cours, la position est achetée.Conditions de vente: Si la valeur marchande de la détention actuelle moins le solde disponible actuel est supérieur à 5% du solde disponible actuel, la vente au comptant est effectuée.
Nous avons calculé les quatre conditions préalables nécessaires à la stratégie de transaction et attribué des valeurs aux variables respectives.Figure 3 à 42
Il est important de noter que la valeur marchande totale des pièces est la valeur marchande totale du nombre de pièces actuellement détenues, calculée en multipliant le nombre total de pièces actuellement détenues par le prix actuel le plus récent.
Une fois l'attribution des conditions nécessaires prédéfinies terminée, il est nécessaire d'écrire la logique de transaction. Ce n'est pas aussi compliqué que prévu. Il suffit d'exprimer la logique stratégique ci-dessus sous la forme de blocs de code.
C'est-à-dire que si l'actif est inférieur à 5% du solde disponible négatif, il est acheté, et si l'actif est supérieur à 5% du solde disponible, il est vendu.Figure 3 à 43
L'ensemble de la stratégie semble avoir été écrit, mais sachez que le programme est exécuté de haut en bas et qu'il s'arrête après l'exécution. Mais notre stratégie de transaction n'est pas d'exécuter les conditions de la transaction une fois, mais d'exécuter à plusieurs reprises en boucle.
C'est-à-dire que le programme doit constamment vérifier si les conditions de la stratégie ont été atteintes, si c'est pour exécuter une vente ou un achat, il doit continuer à vérifier; à ce moment-là, une autre phrase circulaire est utilisée, comme dans la figure suivante:Figure 3 à 44
Les stratégies de visualisation ne sont pas essentiellement différentes des stratégies écrites dans d'autres langages de programmation, elles prennent également en charge plusieurs cycles, des tests de données historiques précis, et bien sûr, elles prennent également en charge les transactions réelles de produits à terme et de devises numériques au pays et à l'étranger.Figure 3 à 45
Une stratégie de transaction complète n'est pas encore terminée. Dans l'intérêt du parti, cette stratégie a été partagée sur Strategy Square et peut être copiée directement.
La loi des 10 000 heures est toujours là, mais il est impossible pour un trader de base zéro de prendre 10 000 heures pour entrer à nouveau.
Avec la programmation visuelle, vous n'avez pas besoin de vous souvenir de la syntaxe et des noms de méthodes, il suffit de naviguer dans le module de fonctionnalités et de trouver ce que vous voulez.
En revanche, la programmation visualisée est tout à fait acceptable comme une porte d'entrée à la quantification, mais elle a aussi ses limites, comme ne pas développer de stratégies de trading trop complexes et trop détaillées.
Du point de vue de la professionnalisation des transactions quantitatives, les langages Mac et les langages de visualisation ne sont que des langages de transition dans le monde des transactions quantitatives. Leurs caractéristiques linguistiques déterminent également les limites dans le développement de stratégies de transactions quantitatives, certaines stratégies complexes étant peu susceptibles d'être mises en œuvre.
1, essayez d'utiliser un langage visualisé pour réaliser les indices de la bande dessinée. 2° Essayez d'utiliser le module de négociation de cette section pour réaliser une stratégie de négociation.
En tant qu'émergente du commerce quantitatif, il est impossible d'apprendre un langage simple. Les langages Mac et les langages de visualisation des inventeurs de l'outil de quantification, bien qu'ils puissent vous initier, présentent de nombreuses limitations dans le développement stratégique en raison de leurs caractéristiques linguistiques.
Le langage JavaScript a des performances et une efficacité d'exécution supérieures à celles des langages visualisés. Et en termes de développement de stratégies, le langage JavaScript est beaucoup plus flexible que le langage visualisé. Par exemple, si vous voulez développer une stratégie de suite, vous ne pouvez pas utiliser le langage visuel, car il a des modules limités et ne prend pas en charge les stratégies de stratégie similaires aux suites.
De plus, le langage JavaScript est plus simple et élégant que le langage visualisé, par exemple: le langage visualisé contient 10 lignes de code, et peut-être 5 lignes peuvent être écrites en JavaScript. Dans certains aspects, le langage visualisé n'est qu'une version littéraire de JavaScript, dont le code est exécuté et la logique est presque la même que celle de JavaScript.
JavaScript est un langage de programmation de haut niveau officiel. Il est à la fois adapté comme langage d'introduction à l'apprentissage de la programmation et comme langage de travail pour le développement quotidien. Il est l'un des langages informatiques les plus prometteurs et les plus prometteurs qui soient, et il a une domination indéniable sur le côté du navigateur. Bien qu'il soit célèbre pour développer des pages Web, il est également utilisé dans de nombreux environnements non-navigateurs, par exemple: serveur, PC, mobile, etc.
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 c'est écrit dans le langage JavaScript, cela ressemble à ceci:Figure 4 à 1
Le code illustré ci-dessus est une stratégie de négociation quantifiée complète écrite en JavaScript. Elle peut être exécutée en direct et effectuer des transactions automatiquement. Du point de vue de la quantité de code, la langue est plus simple que le langage visualisé. Le processus de conception de l'ensemble de la stratégie est le suivant: configurer la variété des marchés, obtenir des données de ligne K, obtenir des informations de stock, calculer la logique des transactions, passer des commandes.
Toutes les variables, noms de fonction et opérateurs en JavaScript sont en minuscules, 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 de variable, fonction, propriété ou paramètre de fonction) doit être une lettre, une virgule (_) ou un dollar ($) et le caractère suivant peut être un chiffre, comme indiqué ci-dessous:Figure 2 à 4
Les annotations comprennent des annotations à une seule ligne et des annotations au niveau du bloc. Les annotations à une seule ligne commencent par deux courbes et les annotations au niveau du bloc par une courbe et un astérisque./) commence par une étoile et une hybride (((/) La conclusion est illustrée par le graphique suivant:Figure 4 à 3
Chaque phrase se termine par un point-virgule; bien que cela ne soit pas obligatoire, nous vous recommandons de ne jamais l'ignorer.Figure 4 à 4
Les variables peuvent être enregistrées avec n'importe quel type de données. L'opérateur var est utilisé pour créer une variable, suivi du nom de la variable. Une valeur de variable peut être définie en même temps que la définition de la variable.Figure 4 et 5
Il existe 5 types de données en JavaScript: sans définition, nul, boolean, numérique, numérique, string, comme indiqué ci-dessous:Figure 4 à 6
Undefined n'a qu'une seule valeur, une variable spéciale, undefined, qui représente une valeur qui n'est pas encore définie. Par exemple, si nous définissons seulement une variable et que nous ne lui donnons pas de valeur, alors la valeur de cette variable est undefined.
Null a une seule valeur, une valeur spéciale de null, qui représente une valeur qui est définie comme vide. Par exemple, si nous créons une variable et que la valeur de la variable est définie comme null, la valeur retournée par la requête est null.
Boolean possède deux valeurs, le verbe verbe vrai et le verbe faux, où le verbe vrai représente le vrai et le verbe faux le faux.
Le nombre est un type de nombre, comprenant les nombres positifs, négatifs, entiers, décimaux, etc. En outre, le nombre NaN est un nombre spécial qui indique spécifiquement les cas où la valeur n'est pas renvoyée, par exemple: 1 divisé par 0, renvoie le nombre NaN.
Les strings peuvent être interprétés comme des caractères, contenant du chinois et de l'anglais, et peuvent être construits avec des guillemets simples ou doubles.
Vous pouvez concevoir un objet comme un conteneur qui contient toutes sortes de données, dont les propriétés et les valeurs correspondent. Vous pouvez créer ce conteneur à l'aide de l'opérateur new. Et vous pouvez ajouter des propriétés et des méthodes à l'objet créé, comme le montre la figure suivante:Figure 4 à 7
Une matrice est aussi un conteneur de données, sauf que les éléments du conteneur sont classés de gauche à droite, le premier élément est 0, le second élément est 1, et ainsi de suite.Figure 4 à 8
Les fonctions en JavaScript ne sont pas essentiellement différentes des fonctions que nous apprenons au lycée, vous pouvez comprendre ce que vous passez, ce que vous sortez en calculant les fonctions, comme le montre le graphique suivant:Figure 4 à 9
JavaScript possède plusieurs opérateurs, à savoir les opérateurs arithmétiques, les opérateurs de comparaison, les opérateurs logiques. Les opérateurs arithmétiques sont des opérations mathématiques de multiplication et de diminution. Les opérateurs de comparaison peuvent comparer deux valeurs inférieures ou inférieures.Figure 4 à 10
Il est important de noter que:?? &&
Les mathématiques de l'école secondaire nous disent: 1 Si c'est un calcul de même niveau, le calcul est généralement effectué en ordre de gauche à droite.2. Si il y a une addition et une subtraction, il faut commencer par la multiplication. Si il y a une addition et une subtraction, il faut commencer par la multiplication.Figure 4 à 11
Normalement, lorsque vous écrivez du code, vous devez toujours exécuter différentes actions pour différentes décisions. Vous pouvez utiliser des statements conditionnels dans le code pour accomplir cette tâche. if statement - n'exécute le code que si la condition spécifiée est true if...else Statement - exécute du code lorsque la condition est true et exécute du code lorsque la condition est false if...else if...else - Utilisez cette expression pour choisir l'un des blocs de code à exécuter commutation - utilisez la commutation pour choisir l'un des plusieurs blocs de code à exécuter
Cette expression n'exécute le code que si la condition spécifiée est true. Veuillez utiliser l'if minuscule. L'utilisation de l'IF majuscule génère une erreur JavaScript!Le tableau 4-12#
Le code est exécuté lorsque la condition est true et le code est exécuté lorsque la condition est false, comme indiqué ci-dessous:Figure 4 à 13
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:Figure 4 à 14
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.Figure 4 à 15
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:Figure 4 à 16
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!Figure 4 à 17
Dans l'outil de quantification des inventeurs, il est officiellement intégré un cadre de stratégies standard, comme le montre le graphique ci-dessous, qui est très pratique si vous écrivez des stratégies en JavaScript:Figure 4 à 18
Comme le code dans la figure ci-dessus, il s'agit d'un cadre de stratégie standard, qui, en plus de la possibilité de modifier le code de la variété de produits à terme, est un format fixe. Le principal avantage de l'utilisation du cadre pour écrire des stratégies est que vous n'avez qu'à écrire la logique de la stratégie.
C'est une introduction rapide au langage JavaScript, et vous pourrez alors programmer des stratégies de transaction quantitatives. Si vous avez besoin de créer des stratégies plus complexes, vous pouvez consulter la documentation de l'API du langage JavaScript.
Le day trading est aussi un mode de trading qui ne laisse pas de positions en place pendant la nuit, ce qui réduit le risque de fluctuation du marché et permet de s'adapter en temps opportun si un marché défavorable se présente. Après avoir appris l'introduction au langage JavaScript, nous allons vous aider à écrire une stratégie de trading quantifié de jour qui peut être utilisée.
1, essayer d'obtenir des données historiques sur les lignes K en utilisant le langage JavaScript 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.
Dans l'article précédent, nous vous avons expliqué les prérequis de la mise en œuvre d'une stratégie de trading à partir de l'introduction du langage JavaScript, de la grammaire de base, du cadre de stratégie CTA, etc. Dans cet article, nous allons continuer ce qui précède, à partir de modules de stratégie couramment utilisés, d'indicateurs techniques, et étape par étape pour vous aider à mettre en œuvre une stratégie de trading quantitative quotidienne viable.
La courbe de Bollinger est également appelée le canal de Bollinger; c'est l'un des indicateurs techniques les plus couramment utilisés et a été inventé par John Bollinger dans les années 1980. En théorie, les prix ont toujours fluctué autour de la valeur dans une certaine plage, et c'est sur la base de cette théorie que la courbe de Bollinger a introduit le concept de canal de Bollinger.
Il est calculé en utilisant des principes statistiques, en calculant d'abord le décalage par rapport au prix d'un temps donné, puis l'intervalle de confiance par rapport au prix obtenu par une ligne moyenne plus/moins 2 fois le décalage par rapport au prix.
En raison de l'adoption de la notion de décalage standard, la largeur du canal de Bolling est dynamiquement ajustée en fonction des fluctuations des prix récentes. Une faible fluctuation entraîne une diminution du canal de Bolling; une forte fluctuation entraîne une augmentation de la largeur du canal de Bolling. Lorsque le canal de BOLL est étroit par rapport à sa largeur, le prix revient progressivement à l'équilibre.
Parmi tous les indicateurs techniques, la méthode de calcul de la courroie de Bryn est l'une des plus complexes, qui introduit la notion d'écart-type en statistique et implique le calcul des lignes médianes (MB), supérieures (UP) et inférieures (DN).
La gare centrale= moyenne mobile simple sur N périodesÀ bord= écart type de l'orbite moyenne + K × NEn dessous= orbite moyenne − déviation standard de la période K × NFigure 4 à 19
Il existe de nombreuses façons d'utiliser la ligne de Braille, qu'elle soit utilisée seule ou en combinaison avec d'autres indicateurs. Dans ce tutoriel, nous utiliserons la méthode la plus simple de la ligne de Braille. C'est-à-dire que lorsque le prix dépasse la trajectoire de bas en haut, c'est-à-dire dépasse la ligne de pression supérieure, nous pensons que les forces multilatérales sont en train de se renforcer, une vague de hausse a été formée et un signal d'achat est généré.
Hailhydra2C'est un bon article!
Le vide quantifiémarque