Documentation

Applications

Dernière mise à jour le 15. 4. 2020 par Mark Fric

Blocs personnalisés

Qu'est-ce qu'un bloc personnalisé ?

Les blocs personnalisés vous permettent de créer votre propre combinaison de blocs et de l'enregistrer en tant que bloc personnalisé.

Par exemple, regardez le bloc de signal déjà existant dans StrategyQuant :

L'indice CCI est en hausse

Ce signal est valide lorsque

CCI(Période)[2] < CCI(Période)[1]

où la période est configurable et [2] signifie deux mesures en arrière, [1] signifie une mesure en arrière.

Il est donc valide lorsque l'indice CCI à une barre est plus élevé que l'indice CCI à deux barres - ce qui signifie que la valeur de l'indice CCI est à la hausse.

 

Quel est l'avantage de créer des combinaisons de blocs personnalisées ?

L'intérêt est de réduire le caractère aléatoire en utilisant des signaux qui ont un sens réel.

StrategyQuant pourrait générer des conditions de ce type de manière aléatoire en utilisant uniquement des blocs. L'ICC et IsLower (<)Mais la probabilité de générer au hasard des conditions significatives est faible si l'on considère le nombre de possibilités aléatoires.

Un autre avantage est que lorsque vous utilisez le bloc CCI(Période) est en hausseDe l'extérieur, il ne possède qu'un seul paramètre de période qui sera utilisé dans les deux indicateurs CCI de la condition.

Vous pouvez étendre StrategyQuant en créant vos propres blocs personnalisés comme celui-ci en créant un extrait de code Java. C'est une bonne méthode, mais tout le monde n'est pas programmeur.
Ainsi, depuis SQ Build 127, il existe un moyen de créer des blocs personnalisés comme celui-ci de manière visuelle dans l'éditeur d'AlgoWizard sans aucun codage.

Dans cette documentation, nous montrerons comment procéder exactement.

 

Étape 1 : Définir votre nouveau bloc personnalisé

Dans StrategyQuant, ouvrez la fenêtre AlgoWizard (1.), cliquer sur Personnaliser (2.) en haut. Passez ensuite à Blocs personnalisés (3.) tab :

Il s'agit du panneau de gestion et d'édition des blocs personnalisés.

A titre d'exemple, nous allons créer un nouveau bloc personnalisé qui sera valide lorsque le CCI est en hausse pendant 3 barres consécutives. En pseudo-code, nous pouvons écrire cette condition comme suit :

CCI(Période)[3] < CCI(Période) [2] < CCI(Période) [1]

 

Cliquez sur le bouton Ajouter un bloc (bouton). Une boîte de dialogue s'ouvre, dans laquelle nous pouvons spécifier les paramètres de notre nouveau bloc :

Clé de blocage

est la clé unique (ID) de ce bloc. Elle ne peut être composée que de lettres et de chiffres, sans espace ni caractères spéciaux. Nous nommerons notre nouveau bloc CCIRising3Bars.

Nom du bloc 

est son nom que nous verrons dans la sélection des blocs de construction. Nous l'appellerons CCI en hausse sur 3 barres

Type de bloc 

est un bloc de type. Pour l'instant, deux types sont pris en charge :

  • Condition - bloc qui renvoie une valeur vrai/faux qui peut être utilisée comme partie des conditions d'entrée ou de sortie. Il s'agit généralement d'une comparaison. Les blocs de ce type seront visibles dans la section Signaux des blocs de construction.
  • Niveau de prix - qui calcule le niveau de prix qui peut être utilisé pour les ordres stop / limite. Le bloc de ce type est visible dans la section Niveaux de prix Stop / Limit de la catégorie Blocs d'entrée Stop / Limit dans la configuration des blocs de construction.

Cliquez sur Économiser et un nouveau bloc personnalisé sera créé :

Ajout du bloc SQ Custom

Notez que ce bloc est encore vide, nous avons créé une définition mais le nouveau bloc n'a pas encore de contenu.

Ajoutons la première condition au bloc en cliquant sur Ajouter une autre condition:

Condition d'ajout d'un bloc personnalisé

Cela ouvre une boîte de dialogue standard pour choisir parmi tous les blocs de construction existants que vous connaissez de l'éditeur d'AlgoWizard. Trouvons L'ICC pour notre première comparaison :

N'oubliez pas de régler Shift sur 3, car nous voulons obtenir la valeur CCI de 3 barres en arrière. Après avoir cliqué sur Confirmer la première partie de notre condition personnalisée est créée :

Cliquez maintenant sur Est plus grand (>) et le remplacer par Est inférieur (<).

Cliquez ensuite sur 0 et le remplacer par CCI(14)[2].

Répétez ces deux étapes pour ajouter une deuxième condition CCI(14)[2] < CCI(14)[1].

Le résultat devrait ressembler à ceci :

Il s'agit d'une condition complète. Elle est valable lorsque le CCI(14) est en hausse sur les 3 dernières barres.

Vous avez peut-être remarqué que la période CCI est fixée à une valeur fixe de 14.
Si nous devions utiliser ce bloc personnalisé dans son état actuel, il ressemblerait à ceci :

Notre nouveau bloc personnalisé n'aurait qu'un paramètre obligatoire, Chart, et aucun autre paramètre.

Cela signifie que la période de l'ICC utilisée dans le bloc sera toujours de 14 - la période sera de non généré de manière aléatoire dans StrategyQuant et vous ne pouvez pas le configurer ultérieurement.
Vous pouvez le faire pour certains paramètres, mais nous voulons que la période CCI soit générée de manière aléatoire.

C'est là que les paramètres des blocs personnalisés entrent en jeu. Il y a Paramètres dans la partie inférieure gauche :

Paramètres de bloc personnalisés
Pour l'instant, il ne contient qu'un seul paramètre - Graphique - qui est obligatoire pour chaque bloc personnalisé.
Ajoutons un nouveau paramètre Période. Cliquez sur Ajouter un paramètre (bouton). Un nouveau paramètre est ainsi ajouté au tableau. Renommez-le en Période et changez son type en période :

Vous pouvez nommer votre paramètre comme vous le souhaitez et vous disposez d'un choix d'options pour un type :

  • tableau - signifie qu'il s'agit d'un paramètre graphique. Les indicateurs sont calculés à partir de données graphiques, et le paramètre graphique nous permet, ainsi qu'à StrategyQuant, de définir le graphique à utiliser.
  • période - un type spécial qui doit être utilisé pour les périodes des indicateurs. Il s'agit d'un type distinct car StrategyQuant doit savoir que ce paramètre est une période, afin qu'il soit limité par les limites de la plage de périodes définies dans le générateur.
  • changement - un autre type spécial qui doit être utilisé pour les décalages. Le décalage est un index de l'historique des barres. Shift=0 signifie la barre actuelle, Shift=1 signifie la barre précédente, Sift=2 signifie deux barres en arrière. Encore une fois, il s'agit d'un type séparé car StrategyQuant doit savoir que ce paramètre est un décalage, de sorte qu'il sera limité par les limites de décalage de période définies dans le générateur.
  • int, double, bool - types de variables standard disponibles

Nous avons ajouté un nouveau paramètre de période, mais il n'est pas encore utilisé dans nos conditions de bloc personnalisées, qui ont toujours la valeur fixe 14 :

Pour utiliser le paramètre dans la condition, nous devons double-cliquer sur chaque condition pour l'ouvrir à la modification. Cliquez ensuite sur l'icône bleue [...] à côté du paramètre Période. Une liste s'ouvre, dans laquelle vous pouvez choisir parmi les paramètres de bloc possibles pour la période. Nous allons choisir notre nouveau paramètre Période.

Il en résulte que la période de notre indicateur CCI ne sera plus une valeur fixe, mais qu'elle sera configurable de l'extérieur à l'aide du paramètre Period :

Répétez l'opération pour les autres conditions de l'ICC, le résultat devrait ressembler à ceci :


Nous avons ainsi créé un nouveau bloc personnalisé appelé CCI en hausse pour 3 barres. Après avoir enregistré vos blocs personnalisés, vous pouvez immédiatement les utiliser dans l'éditeur d'AlgoWizard :

Ainsi que dans Building blocks configuration of a builder (configuration des blocs de construction d'un constructeur) :

La bonne chose est que vous n'avez pas besoin de faire quoi que ce soit d'autre. Parce que ce bloc personnalisé a été créé en utilisant des composants de bloc déjà existants, StrategyQuant sait comment générer le code source pour votre plateforme de trading cible.

 

Étape 2 : Spécification d'un bloc opposé

Nous avons créé un nouveau bloc personnalisé CCI en hausse pour 3 barres. La stratégie de trading comporte généralement des règles Long et Short, où les conditions d'entrée Short sont opposées aux conditions d'entrée Long.

Chaque bloc standard dans StrategyQuant a son bloc opposé spécifié, de sorte que SQ "sait" comment créer un bloc opposé pour un bloc généré.

Si un bloc personnalisé n'a pas de bloc opposé défini, il est simplement copié et utilisé comme bloc opposé.
Les conditions de votre stratégie seraient donc les suivantes :

Entrée longue = CCI en hausse pendant 3 barres
Entrée courte = CCI en hausse pendant 3 barres

Ce n'est généralement pas ce que nous voulons, nous voudrions que les règles soient les suivantes :

Entrée longue = CCI en hausse pendant 3 barres
Entrée courte = CCI en baisse pendant 3 barres

Bloc CCI en baisse depuis 3 barres n'existe pas encore. Pour qu'il fonctionne, nous devons le créer. Heureusement, c'est très simple. Retournez dans l'éditeur de blocs personnalisés et cliquez sur Lien non défini:

Cela ouvrira une boîte de dialogue dans laquelle nous pourrons créer un nouveau bloc personnalisé qui sera utilisé comme bloc opposé, ou choisir un bloc existant - s'il existe.
Nous allons créer un nouveau bloc et le nommer CCI en baisse depuis 3 barres:


Cliquez sur Économiser et le nouveau bloc est créé :

Notez qu'il n'est pas vide - StrategyQuant l'a créé en annulant le bloc original pour votre commodité. La négation est correcte, il n'y a donc plus rien à faire. Nous avons deux blocs définis comme nous le souhaitions :

 

Mise à jour des blocs opposés

Cette négation automatique ne se produit qu'une seule fois lorsque vous créez le bloc opposé. Si vous avez maintenant apporté des modifications au bloc CCI en hausse pour 3 barresCes changements ne sont pas répercutés sur le bloc opposé. CCI en baisse depuis 3 barres automatiquement.

Pour appliquer automatiquement les modifications en annulant à nouveau le bloc personnalisé source, vous pouvez vous rendre dans le bloc opposé et cliquer sur le bouton Négation du bloc opposé bouton.

Attention, vous devez le faire sur le bloc opposé.
Ainsi, si vous modifiez le bloc CCI en hausse pour 3 barres vous devez ensuite passer à un bloc CCI en baisse depuis 3 barres et cliquez sur le bouton Négation du bloc opposé pour annuler automatiquement le contenu du bloc modifié et l'utiliser dans le bloc opposé.

Cet article a-t-il été utile ? L'article était utile L'article n'était pas utile

S'abonner
Notification pour
11 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
tnickel
tnickel
22. 4. 2020 10:25 am

haut, très bonne idée.

Fernando Morales
Fernando Morales
19. 8. 2020 8:53 pm

Puis-je utiliser le même bloc pour les signaux d'achat et de vente ? Je veux dire qu'en ne créant pas le bloc opposé, SQ l'utilisera pour l'achat/la vente ?

tomas262
tomas262
Répondre à  Fernando Morales
26. 8. 2020 10:52 pm

Vous devez toujours définir le bloc opposé. La SQ l'utilisera pour négocier "l'autre côté". Il peut toutefois s'agir de la même règle

Fernando Morales
Fernando Morales
19. 8. 2020 8:56 pm

Comment puis-je assigner un bloc personnalisé pour qu'il soit utilisé uniquement comme règle de sortie ?

tomas262
tomas262
Répondre à  Fernando Morales
26. 8. 2020 10:51 pm

Je pense que la meilleure solution serait de créer un modèle dans AlgoWizard avec des règles de sortie définies basées sur le nouveau bloc personnalisé.

PaperoneJ12
8. 1. 2022 5:42 pm

Est-il possible de modifier la clé de bloc après la création d'un nouveau bloc personnalisé ? Si oui, comment ?

Daniel Eagan
Daniel Eagan
16. 8. 2022 10:00 pm

Comment puis-je sauvegarder le contenu de mes blocs personnalisés et de mes groupes aléatoires ? Pour une raison quelconque, tous les contenus ont disparu dans chacun de mes blocs personnalisés. Les valeurs des paramètres demeurent, mais le contenu a disparu. Il me faudra probablement 12 à 15 heures de travail pour réintégrer toutes ces valeurs. Toute aide serait très appréciée. Je vous remercie.

Daniel Eagan
Daniel Eagan
Répondre à  Daniel Eagan
16. 8. 2022 10:04 pm

Pas de problème, j'ai trouvé le chargement à partir de l'onglet sauvegarde. Dieu merci !

Redlock55
22. 5. 2023 11:56 am

Est-ce moi ou les images de l'écran sont-elles floues ? Difficile à lire.

Hodei Ostolaza bernedo
Hodei Ostolaza bernedo
5. 2. 2024 5:02 pm

Hello , i have a problem ,
I have created two custom blocks, I have managed to perform tests and works great but when I want to look at the code I get an error. It doesn’t allow me to see the code in any programming language.

error!one ore more block strategies uses isnt implemented in MQL code

tomas262
Administrateur
Répondre à  Hodei Ostolaza bernedo
6. 2. 2024 5:38 pm

Did you also create TPL – template files for corresponding code? Let us know if any help needed