Modification code Nadaraya
Forums › ProRealTime forum Français › Support ProBuilder › Modification code Nadaraya
- This topic has 5 replies, 4 voices, and was last updated 10 months ago by Matriciel.
-
-
09/19/2023 at 10:54 AM #221262
Bonjour à tous. Comment modifier ce code pour qu’il propose des liens hautes et basses détectables sur des alertes PRT plutôt que des points…?
Vous remerciant par avance.123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051//Nadaraya-Watson Envelopedefparam drawonlastbaronly = truelength = 500//Window Sizehh = 8 //Bandwidthmult = 0.45src = Closen = barindexk = 2if IsLastBarUpdate theny2 = 0sume = 0for i = 0 to length-1sum = 0sumw = 0for j = 0 to length-1w = EXP(-pow(i-j,2)/(hh*hh*2))sum = sum+src[j]*wsumw = sumw+wnexty2 = sum/sumwsume = sume+abs(src[i] - y2)$a[barindex-i]=y2//DRAWPOINT(barindex-i, y2, 1)nextmae = sume/(length*mult)for i=0 to length-1DRAWPOINT(barindex-i, $a[barindex-i]-mae, 1) coloured(0,255,0,100)DRAWPOINT(barindex-i, $a[barindex-i]+mae, 1) coloured(255,0,0,100)//if close[barindex-i] > ($a[barindex-i]+mae) then // and src[1]<y2[1]+mae then//drawarrowdown(barindex-i,high) coloured("red")//endif//if close[barindex-i] < ($a[barindex-i]-mae) then //and src[1]>y2[1]-mae then//drawarrowup(barindex-i,low) coloured("green")//endifnext/*drawpoint(barindex,y2,1)drawpoint(barindex,y2+mae,1)drawpoint(barindex,y2-mae,1)*/Y2High=$a[barindex]+maeY2Low=$a[barindex]-maeendifreturn09/22/2023 at 11:22 AM #221433Bonjour,
considérant que:
1) pour être détectable par alerte, il faut renvoyer des valeurs en ligne return
et 2) ces valeurs en temps réel a priori sont Y2high et Y2low
alors il suffit de remplacer la ligne return “vide” par:
1return Y2Low, Y2Highet utiliser ces 2 valeur pour créer ses alertes.
Mais on est bien d’accord que les points obtenus par drawpoint dans ce code repeignent sur les bougies de l’historique, c’est-à-dire que leur position en live sur la dernière barre va se déplacer sur cette même barre au fur et à mesure qu’elle glisse dans le passé. Donc, ne pas être surpris si à l’affichage les points “glissent” par rapport aux valeurs Y2high, Y2low qui elles ne bougent pas (ne repeignent pas) sur les barres où elles existent depuis le lancement de l’indicateur (car ont démarré en islastbarupdate).
1 user thanked author for this post.
09/23/2023 at 11:42 AM #221472Pour se rendre compte de l’effet “repaint”, il suffit de mettre la ligne 2 en commentaire avec “//” avant la ligne 2.
//defparam drawonlastbaronly = trueLes points hauts et bas vont alors se redessiner (sans être effacés au préalable à chaque bar). Ce qui permettra de se rendre compte que les point hauts et bas tels qu’ils sont détectés de prime abord ne sont pas aussi “exploitables” que ceux recalculés plusieurs bars plus loin (plus tard) une fois que le parcours réel des bougies est enfin connus…C’est facile de tracer une enveloppe parfaite une fois que l’on connait la position exacte des bougies…12/27/2023 at 10:52 AM #225723Bonjour à tous,
J’aimerais avoir l’instruction “drawsegment” à la place de “drawpoint” afin de tracer des segments en lieu et place des points.
J’ai fais ceci mais cela ne fonctionne pas :
DRAWSEGMENT (barindex-i[1], $a[barindex-i][1], barindex-i, $a[barindex-i], 1) coloured(255,255,255)
Pouvez-vous m’aider s’il-vous-plait ?
MERCI !
12/27/2023 at 11:30 AM #225725Bonjour,
tu peux essayer de remplacer les drawpoint par:
DRAWSEGMENT(barindex-i-1, $a[barindex-i-1]-mae, barindex-i, $a[barindex-i]-mae) coloured(0,255,0,255)
DRAWSEGMENT(barindex-i-1, $a[barindex-i-1]+mae, barindex-i, $a[barindex-i]+mae) coloured(255,0,0,255)(modifs: changé les tentatives avec [1] en -i-1, rajouté les + ou – mae)
12/27/2023 at 11:44 AM #225726 -
AuthorPosts