Modification code Nadaraya

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #221262 quote
    Sofitech
    Participant
    Master

    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.

    //Nadaraya-Watson Envelope
    defparam drawonlastbaronly = true
    length = 500//Window Size
    hh      = 8 //Bandwidth
    mult   = 0.45
    
    src    = Close
     
    n = barindex
    k = 2
     
    if IsLastBarUpdate then
    y2 = 0
    sume = 0
    for i = 0 to length-1
    sum = 0
    sumw = 0
            
    for j = 0 to length-1
    w = EXP(-pow(i-j,2)/(hh*hh*2))
    sum = sum+src[j]*w
    sumw = sumw+w
    next
    y2 = sum/sumw
    sume = sume+abs(src[i] - y2)
    $a[barindex-i]=y2
    //DRAWPOINT(barindex-i, y2, 1)
    
    next
    mae = sume/(length*mult)
    for i=0 to length-1
    
    DRAWPOINT(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")
    //endif
    next
    
    /*drawpoint(barindex,y2,1)
    drawpoint(barindex,y2+mae,1)
    drawpoint(barindex,y2-mae,1)*/
     
    Y2High=$a[barindex]+mae
    Y2Low=$a[barindex]-mae
    endif
     
    return
    #221433 quote
    JC_Bywan
    Moderator
    Master

    Bonjour,

    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:

    return Y2Low, Y2High

    et 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).

    Nicolas thanked this post
    #221472 quote
    LaMaille
    Participant
    Junior

    Pour se rendre compte de l’effet “repaint”, il suffit de mettre la ligne 2 en commentaire avec “//” avant la ligne 2.

    //defparam drawonlastbaronly = true
    Les 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…
    #225723 quote
    Matriciel
    Participant
    Master

    Bonjour à 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 !

    #225725 quote
    JC_Bywan
    Moderator
    Master

    Bonjour,

    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)

    #225726 quote
    Matriciel
    Participant
    Master

    Merci beaucoup JC !

    Cela fonctionne parfaitement.

    Passe de bonnes fêtes !   :o)

    JC_Bywan thanked this post
Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.

Modification code Nadaraya


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
Sofitech @sofitech Participant
Summary

This topic contains 5 replies,
has 4 voices, and was last updated by Matriciel
2 years, 1 month ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 09/19/2023
Status: Active
Attachments: No files
Logo Logo
Loading...