Limiter le nombre de signaux dans un indicateur
Forums › ProRealTime forum Français › Support ProBuilder › Limiter le nombre de signaux dans un indicateur
- This topic has 9 replies, 2 voices, and was last updated 5 years ago by Nicolas.
-
-
03/04/2019 at 1:04 PM #92818
Je souhaite savoir s’il est possible, dans un indicateur, de limiter le nombre de signaux. Soit n’autoriser l’indicateur à donner un signal achat que si le dernier signal était en sens inverse… Donc alterner systématiquement le sens des signaux…
Soit limiter le nombre de signaux consécutifs dans un même sens (Maximum 3 signaux dans le même sens).Je poste un code exemple. Les signaux sont données par un +1 à l’achat et un -1 à la vente.
12345678910111213141516171819// HORAIRES DE TRADINGsignal=0IF time < 080000 or time > 200000 THENbackgroundcolor(210,210,210)ENDIF// Affichage des EMA 8 & 21EMA8 = ExponentialAverage[8](close)EMA21 = ExponentialAverage[21](close)// Affichage des FLECHES (TIMEFRAME M1)CondLong = Close > Close[1] And Close[1] > Close[2] And (Close > High[2] And Close[1] > High[2]) and EMA8>EMA21CondShort= Close < Close[1] And Close[1] < Close[2] And (Close < Low[2] And Close[1] <Low[2])and EMA8<EMA21If CondLong THENsignal=1ELSIF CondShort THENsignal=-1ENDIFRETURN signal03/04/2019 at 1:16 PM #92820Pourquoi penses-tu que cela ne soit pas possible ? 🙂
1/ Exemple: quand ton signal est haussier, enregistre cette information dans une variable, à la prochaine détection d’un signal, ajoute un test pour savoir si le signal est le même que cette variable ou pas .. basique !
2/ Exemple : quand ton signal est haussier, incrémente une variable (mavariable = mavariable + 1), et ajoute un test pour savoir quelle est cette quantité au prochain signal .. simple !
😉
03/04/2019 at 1:29 PM #9282103/04/2019 at 2:51 PM #92823Alors voici une première tentative qui ne marche pas sur la base de la deuxième proposition que tu formules.
je précise au début mavariable=0
Puis quand il y a signal achat, If….. : mavariable = mavariable + 1
et signal de vente, if….. : mavariable = mavariable -1Et pour compter, je mets dans ma condition achat et vente “if mavariable <3 ou >-3″….
12345678910111213141516171819202122// HORAIRES DE TRADINGsignal=0mavariable=0IF time < 080000 or time > 200000 THENbackgroundcolor(210,210,210)ENDIF// Affichage des EMA 8 & 21EMA8 = ExponentialAverage[8](close)EMA21 = ExponentialAverage[21](close)// Affichage des FLECHES (TIMEFRAME M1)CondLong = Close > Close[1] And Close[1] > Close[2] And (Close > High[2] And Close[1] > High[2]) and EMA8>EMA21CondShort= Close < Close[1] And Close[1] < Close[2] And (Close < Low[2] And Close[1] <Low[2])and EMA8<EMA21If CondLong and mavariable<3 THENsignal=1mavariable = mavariable + 1ELSIF CondShort and mavariable>-3 THENsignal=-1mavariable = mavariable -1ENDIFRETURN signal03/04/2019 at 3:37 PM #92824Bien tenté, mais puisque tu remets “mavariable” à 0 à chaque lecture de ton code, alors tu n’auras jamais aucun compte ! Par ailleurs 3 – (-3) = 6, et donc tu pourras avoir jusqu’à 6 fois le même signal ici.
Non testé :
12345678910111213141516171819202122232425// HORAIRES DE TRADINGsignal=0IF time < 080000 or time > 200000 THENbackgroundcolor(210,210,210)ENDIF// Affichage des EMA 8 & 21EMA8 = ExponentialAverage[8](close)EMA21 = ExponentialAverage[21](close)// Affichage des FLECHES (TIMEFRAME M1)CondLong = Close > Close[1] And Close[1] > Close[2] And (Close > High[2] And Close[1] > High[2]) and EMA8>EMA21CondShort= Close < Close[1] And Close[1] < Close[2] And (Close < Low[2] And Close[1] <Low[2])and EMA8<EMA21If CondLong and upvariable<3 THENsignal=1upvariable = upvariable + 1dnvariable = 0ELSIF CondShort and dnvariable<3 THENsignal=-1dnvariable = dnvariable + 1upvariable = 0ENDIFRETURN signalJ’ai scindé les signaux haussiers et baissiers (upvariable et dnvariable).
03/04/2019 at 7:14 PM #9284303/05/2019 at 4:02 PM #92900Une demande complémentaire. L’indicateur fonctionne bien mais j’aimerais qu’il soit remis à 0 en fin de session.
Je m’explique : si je prévois de faire fonctionner les signaux de 9h à 17h par exemple… si ledernier signal est acheteur… il faut qu’à 17h00 tout soit remis à 0 et que le premier signal puisse être acheteur aussi le lendemain.Actuellement, si un signal acheteur survient à 16h… et que le lendemain toutes les conditions sont réunies pour un achat à 9h00 mais que le nombre de signaux dans le même sens mentionné et atteind, le signal n’apparaît pas.
Je sais pas si je suis bien clair. Enfin j’espère Nicolas.
03/05/2019 at 4:29 PM #9290403/05/2019 at 6:25 PM #9291203/06/2019 at 9:29 AM #92931 -
AuthorPosts
Find exclusive trading pro-tools on