Répondre

définition de la période de validité des conditions IF

7 réponses

huangwh88

Customer, bbp_participant, community, 113 replies.

Visiter le profil

Il y a 7 ans #116256

Bonjour, chers collègues, 

 

Je me demandais si je pouvais programmer ce qui suit dans l'assistant :

 

Supposons que j'ai un système de croisement MACD et RSI avec 2 conditions d'entrée.

 

La condition 1 est que le MACD passe au-dessus de 0. En supposant qu'il reste au-dessus de 0, il y a une fenêtre de 10 périodes pour que le RSI passe au-dessus de 50. Si cela se produit, la transaction est exécutée. Dans le cas contraire, la condition MACD est réinitialisée et nous attendons le prochain passage de la MACD au-dessus de 0. 

 

Dans les cas où le MACD et le RSI se croisent en même temps, l'énoncé IF peut être :

 

MACD supérieur à 0 ET RSI supérieur à 50

 

Mais si le croisement RSI se produit 5 périodes après, l'instruction IF peut être :

 

MACD > 0 ET RSI supérieur à 50

 

Comment puis-je faire en sorte que l'EA reconnaisse que le croisement MACD s'est produit afin qu'il utilise MACD > 0 à la place pour les périodes suivantes ?

 

Deuxièmement, comment puis-je ajouter la fenêtre de validité de 10 périodes ?

 

J'espère que cela a du sens. Merci pour votre aide.

0

chris.marshall

Abonné, bbp_participant, communauté, 4 réponses.

Visiter le profil

Il y a 7 ans #141290

Je n'ai que quelques indicateurs dans mon parcours avec ce produit mais j'ai obtenu la solution suivante pour résoudre un problème similaire que j'avais dans un EA. Il faut savoir que lorsque j'ai essayé de l'utiliser en tant qu'indicateur, cela n'a pas fonctionné, mais je ne sais pas encore pourquoi.

Vous pourriez définir 2 variables MACDP (pour compter les bougies après le croisement au-dessus) et MACDN (pour compter les bougies après le croisement au-dessous) ou toute autre variable qui vous semble pertinente. Cela se fait dans l'onglet Stratégie, dans la case inférieure "Paramètres de la stratégie". Faites en sorte qu'elles soient de type entier.

Ensuite, il faut établir deux nouvelles règles qui calculent sur la clôture de la bougie.
1) SI MACD > 0 Alors MACDP = MACDP + 1 ET MACDN = 0
2) SI MACD < 0 Alors MACDN = MACDN + 1 ET MACDP = 0
Assurez-vous que ces deux règles précèdent le test RSI dans l'ordre d'exécution.

Votre test RSI serait alors le suivant
1) SI le RSI passe au-dessus de 50 et que le MACDP > 0 et le MACDP < 11, alors il faut négocier.
2) SI le RSI passe en dessous de 50 et que le MACDN est à -11, alors il faut négocier.

0

huangwh88

Customer, bbp_participant, community, 113 replies.

Visiter le profil

Il y a 7 ans #141294

Je n'ai que quelques indicateurs dans mon parcours avec ce produit mais j'ai obtenu la solution suivante pour résoudre un problème similaire que j'avais dans un EA. Il faut savoir que lorsque j'ai essayé de l'utiliser en tant qu'indicateur, cela n'a pas fonctionné, mais je ne sais pas encore pourquoi.

Vous pourriez définir 2 variables MACDP (pour compter les bougies après le croisement au-dessus) et MACDN (pour compter les bougies après le croisement au-dessous) ou toute autre variable qui vous semble pertinente. Cela se fait dans l'onglet Stratégie, dans la case inférieure "Paramètres de la stratégie". Faites en sorte qu'elles soient de type entier.

Ensuite, il faut établir deux nouvelles règles qui calculent sur la clôture de la bougie.
1) SI MACD > 0 Alors MACDP = MACDP + 1 ET MACDN = 0
2) SI MACD < 0 Alors MACDN = MACDN + 1 ET MACDP = 0
Assurez-vous que ces deux règles précèdent le test RSI dans l'ordre d'exécution.

Votre test RSI serait alors le suivant
1) SI le RSI passe au-dessus de 50 et que le MACDP > 0 et le MACDP < 11, alors il faut négocier.
2) SI le RSI passe en dessous de 50 et que le MACDN est à -11, alors il faut négocier.

Bonjour Chris, 

 

J'apprécie vraiment votre point de vue. Je comprends ce que vous dites, mais comment l'EA reconnaît-il qu'il ne doit ajouter au MACDP et au MACDN qu'après un franchissement à la hausse ou à la baisse au cours des 10 périodes précédentes ? 

 

Par exemple, si j'attache l'EA lorsque le MACD est au-dessus de 0 et que le croisement s'est produit il y a 20 périodes, le MACDP sera à 1 et la condition sera mûre pour l'entrée, bien qu'elle ait en fait expiré.

 

Si nous pouvions utiliser un opérateur WHILE en conjonction avec un indicateur vrai/faux, ce serait beaucoup plus facile, mais avec seulement IF, je ne suis toujours pas sûr.

0

chris.marshall

Abonné, bbp_participant, communauté, 4 réponses.

Visiter le profil

Il y a 7 ans #141297

De la manière dont il est écrit ci-dessus, il compterait à partir de la première bougie après le croisement dans l'une ou l'autre direction.

S'il y avait 20 bougies positives, la MACDP atteindrait 20, mais votre test RSI ne serait valable que si la MACDP est comprise entre 1 et 10.

 

Vous avez raison, cela ne tient pas compte de la période entre le chargement de l'EA et le premier croisement. Une façon simple de contourner ce problème serait de compter les bougies depuis le dernier croisement au-dessus ou au-dessous et de régler la valeur de départ de MACDP/MACDN en conséquence lors du chargement de l'EA.

 

Je suis sûr qu'il existe des moyens plus élégants de contourner le problème, mais je ne connais pas encore le programme.

0

tomas262

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

Il y a 7 ans #141311

Bonjour,

 

La façon la plus simple d'y parvenir est de mettre en place un compteur. Lorsque la condition MACD est valide, le compteur est activé pour faire compteur = compteur + 1 (initialement, il est fixé à 0).

Vous comptez maintenant chaque nouvelle barre à l'aide de ce compteur. En même temps que le compteur est actif, vous surveillez l'état du RSI, mais seulement jusqu'à ce que le compteur soit inférieur à 10. Une fois que le compteur est supérieur à 10, vous le remettez à 0 et attendez un autre signal MACD.

 

Faites-moi savoir si vous avez besoin d'un exemple de projet pour cela.

0

huangwh88

Customer, bbp_participant, community, 113 replies.

Visiter le profil

Il y a 7 ans #141325

De la manière dont il est écrit ci-dessus, il compterait à partir de la première bougie après le croisement dans l'une ou l'autre direction.

S'il y avait 20 bougies positives, la MACDP atteindrait 20, mais votre test RSI ne serait valable que si la MACDP est comprise entre 1 et 10.

 

Vous avez raison, cela ne tient pas compte de la période entre le chargement de l'EA et le premier croisement. Une façon simple de contourner ce problème serait de compter les bougies depuis le dernier croisement au-dessus ou au-dessous et de régler la valeur de départ de MACDP/MACDN en conséquence lors du chargement de l'EA.

 

Je suis sûr qu'il existe des moyens plus élégants de contourner le problème, mais je ne connais pas encore le programme.

Oui, j'y ai pensé et il y a effectivement une solution facile, similaire à celle que vous avez mentionnée. Nous pouvons régler le compteur pour qu'il ne démarre qu'après un croisement. Il pourrait y avoir une certaine "perte de temps" si un croisement se produisait peu de temps avant que je n'attache l'EA, mais ce n'est pas un gros problème. 

 

Merci pour votre aide !

0

huangwh88

Customer, bbp_participant, community, 113 replies.

Visiter le profil

Il y a 7 ans #141326

Bonjour,

 

La façon la plus simple d'y parvenir est de mettre en place un compteur. Lorsque la condition MACD est valide, le compteur est activé pour faire compteur = compteur + 1 (initialement, il est fixé à 0).

Vous comptez maintenant chaque nouvelle barre à l'aide de ce compteur. En même temps que le compteur est actif, vous surveillez l'état du RSI, mais seulement jusqu'à ce que le compteur soit inférieur à 10. Une fois que le compteur est supérieur à 10, vous le remettez à 0 et attendez un autre signal MACD.

 

Faites-moi savoir si vous avez besoin d'un exemple de projet pour cela.

Bonjour Tomas, 

 

veuillez m'envoyer l'exemple de projet. Je vous remercie de votre attention.

0

tomas262

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

Il y a 7 ans #141338

Bonjour,

 

Vous trouverez l'exemple ci-joint. L'EA attend que le RSI dépasse le niveau 20. Ensuite, il attend 10 mesures pour que le MACD franchisse le niveau 0. Si aucun signal n'est émis par le MACD, tout recommence.

0

Affichage de 7 réponses de 1 à 7 (sur un total de 7)