Non Croisement 2 moyennes mobiles
Forums › ProRealTime forum Français › Support ProBuilder › Non Croisement 2 moyennes mobiles
- This topic has 15 replies, 4 voices, and was last updated 4 years ago by NicoPommier.
-
-
01/28/2020 at 12:41 PM #118128
Bonjour,
Je souhaite créer, svp, un indicateur sur le non croisement de 2 moyennes mobiles exponentielles de 7 jours et celle de 20 jours.
L’indicateur est valable dans les 2 sens , achat et vente, mais se déclenche dans 2 possibilités (soit l’une soit l’autre) dans chaque sens.
Moyenne mobile exponentielle 7 jours = MM7
Moyenne mobile exponentielle 20 jours = MM20
Les sens :
Achat (indicateur =1)
La MM7 qui était au dessus de la MM20 qui est haussière, se dirige à la baisse au jour en direction de la MM20
2 possibilités (l’une ou l’autre)
a)LA MM7 touche la MM20 et repart à la hausse (la MM7 ne croise pas à la baisse la MM20)
b)La MM7 ne touche pas la MM20 , mais se rapproche de très près de la MM20 et repart à la hausse. Je définis cet écart de 1%
Vente (indicateur =-1)
La MM7 qui était en dessous de la MM20 qui est baissière, se dirige à la hausse en direction de la MM20
2 possibilités
a) LA MM7 touche la MM20 et repart à la baisse (la MM7 ne croise pas à la hausse la MM20)
b)La MM7 ne touche pas la MM20 , mais se rapproche de très près de la MM20 et repart à la hausse. Je définis cet écart de 1%
Je joins une copie écran de ces non croisements.
En vous remerciant.
Stéphane
01/28/2020 at 12:49 PM #118133Très semblable à ces 2 sujets:
Codage non croisement de moyennes mobiles
Questions sur croisement et non croisement
Peut-être est-ce suffisant ?
01/28/2020 at 3:47 PM #118159Bonjour Nicolas,
Merci pour avoir trouvé ces 2 sujets.
J’ai testé surtout le premier, mais il ne correspond pas à mes attentes, il y a des non croisements qui échappent au programme de cet internaute.
Le 2ème sujet m’a donné des idées….le forum est formidable.
En vous remerciant d’essayer de me programmer ma demande.
Stéphane
01/28/2020 at 4:24 PM #118162Les fameux non-croisement ! Voilà une nouvelle version, qui j’en suis certain n’arrivera pas à attraper tout ce que vos yeux pourront trouver comme “non croisement”, difficile de trouver quelque-chose qui n’a pas lieu ! 😆
Plus sérieusement, ce pullback de moyennes mobiles, on peut aussi le trouver avec l’histogramme d’un MACD qui recoupe sa ligne de signal inférieure à 0 pour une vente et au dessus pour un achat. On pourrait donc aussi y coller le filtre en pourcentage.. à étudier.
123456789101112131415161718192021222324252627//reserrement de MA en pourcentagepercentage = 1a = average[7]b = average[20]upper = max(a,b)lower = min(a,b)d = ((upper - lower) / close) *100e = d <= percentagebull = a>=bbear = not bullatr = averagetruerange[14]if (bull and bull[1]) thenpullback = a>a[1] and a[1]<=a[2]if pullback and e thendrawtext("NC",barindex,low-atr/3,dialog,bold,20) coloured(0,200,0)endifendifif (bear and bear[1]) thenpullback = a<a[1] and a[1]>=a[2]if pullback and e thendrawtext("NC",barindex,high+atr/3,dialog,bold,20) coloured(200,0,0)endifendifreturn a, b style(line,3)01/28/2020 at 4:37 PM #118164Ci-joint donc la version MACD, forcément plus en retard..
12345678910111213141516171819202122232425262728293031//reserrement de MA en pourcentagepercentage = 1signalPeriod = 2a = average[7]b = average[20]upper = max(a,b)lower = min(a,b)d = ((upper - lower) / close) *100e = d <= percentagediff = a-bbull = diff>0bear = not bullsignal = average[signalperiod,1](diff)atr = averagetruerange[14]if (bull) thenpullback = diff crosses over signalif pullback and e thendrawtext("NC",barindex,low-atr/3,dialog,bold,20) coloured(0,200,0)endifendifif (bear) thenpullback = diff crosses under signalif pullback and e thendrawtext("NC",barindex,high+atr/3,dialog,bold,20) coloured(200,0,0)endifendifreturn a, b style(line,3)01/28/2020 at 5:05 PM #11816501/31/2020 at 3:01 PM #118357Hello Nicolas,
Le sujet m’intéresse pour le signal MacD.
Un détail : la ligne macd et le signal se construisent en général avec une EMA , plutôt dans cet ordre d’esprit du coup :
1234567signalPeriod = 6a = exponentialaverage[9]b = exponentialaverage[19]macdline = a-bsignal = exponentialaverage[signalperiod](diff)ce qui m’étonne c’est même en réglant avec une EMA et les valeurs ci dessus je n’obtiens pas le même résultat qu’avec ma version (cf screen EMA)
Voici ma version , néanmoins j’obtiens trop de signaux bruités cf screenshot.
L’idée serait de garder uniquement les signaux clean du type entouré sur mon screenshot.
123456789101112131415161718192021222324252627282930313233343536373839defparam calculateonlastbars=600macdS=9macdB=19macdsignal=6myMACD=exponentialaverage[macdS]-exponentialaverage[macdB]signal=exponentialaverage[macdsignal](myMACD)//slope = macdB - macdB[1]a=myMACDb=signalatr = averagetruerange[10](close)*0.5//Conditions NC MACD Achatca1 = a > bca2 = a[1] < aca3 = a[2] > a[1]ca4 = b[1] < b AND b[2] < b[1]//Conditions NC MACD Ventecv1 = a < bcv2 = a[1] > acv3 = a[2] < a[1]cv4 = b[1] > b AND b[2] > b[1]NCMACDBULL = ca1 AND ca2 AND ca3 AND ca4if NCMACDBULL thendrawtext("NC",barindex,highest[3](high)+atr*1.2,Dialog,Bold,13) coloured(0,255,75)endifNCMACDBEAR = cv1 AND cv2 AND cv3 AND cv4If NCMACDBEAR thendrawtext("NC", barindex,lowest[3](low)-atr*1.2, Dialog,Bold,13) coloured(255,0,0)endifRETURN NCMACDBULL as "NCMAC ACHAT", NCMACDBEAR as "NCMAC VENTE"01/31/2020 at 5:27 PM #118379Attention “macdsignal” est une instruction réservée par la plateforme en v11 désormais.
Pour la question, désolé mais j’ai du mal à comprendre. Il faudrait quelques exemples précis avec des dates et des détails sur l’instrument, timeframe, .. et pourquoi tel ou tel signal n’est pas à considérer.
04/09/2020 at 1:46 PM #125434Bonjour Nicolas,
Je trouve vos deux versions de cet indicateur très intéressantes ! Elles fonctionnent à merveille.
Auriez vous la possibilité de coder un screener permettant de visualiser les actions en passe d’avoir un non croisement haussier mm7/mm20 ?Merci beaucoup pour votre retour
Nicolas P
04/09/2020 at 4:02 PM #125458Ci-dessous le screener de cette version: https://www.prorealcode.com/topic/non-croisement-2-moyennes-mobiles/#post-118162
123456789101112131415161718192021222324//reserrement de MA en pourcentagepercentage = 1a = average[7]b = average[20]upper = max(a,b)lower = min(a,b)d = ((upper - lower) / close) *100e = d <= percentagebull = a>=bbear = not bullverif = 0if (bull and bull[1]) thenpullback = a>a[1] and a[1]<=a[2]verif = pullback and eendifif (bear and bear[1]) thenpullback = a<a[1] and a[1]>=a[2]verif = pullback and eendifscreener[verif]Les conditions bull ou bear ne sont pas séparées, il faudra faire le tri visuellement 😉
04/09/2020 at 9:01 PM #125491Merci beaucoup Nicolas je teste ça rapidement 🙂
04/09/2020 at 9:06 PM #125492Alors je viens de le tester et j’ai un problème avec la dernière ligne
Screener [verif] ne permet pas de lancer le programme.
Auriez vous une idée pour ce problème?
Merci pour votre retour
Nicolas P.
04/10/2020 at 8:28 AM #12552404/10/2020 at 9:39 AM #125546Fais gaffe, j’avais posé la question pour avoir un indicateur sous le graphique.
Le screener, faut aller dans le chemin décrit par Nicolas.
D’autre part, il se peut que le screener te ramène rien car il n’y a pas le Signal. Je l’ai lancé il n’y a rien sur les valeurs du CAC40. en unité de temps cours de clôture.
J’espère qu’il est bien paramétré.
Stéphane
04/10/2020 at 1:26 PM #125577Merci à vous pour vos réponses.
J’ai bien rempli le code dans un nouveau screener et lorsque je veux lancer le programme il s’affiche ce message d’erreur :” erreur de syntaxe, ligne 23, caractère 10. Une des expressions suivantes serait plus appropriée que “[” : “,” ou “=”. ” Cela correspond à la dernière ligne du screener : screener[verif].C’est moi qui ne comprend pas probablement.. ?
Merci pour vos retours en tout cas
Nicolas P
-
AuthorPosts
Find exclusive trading pro-tools on