weis wave volume besoin aide pour correction codage

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #169342 quote
    christophe11560
    Participant
    Senior

    objet: adaptation de l’indicateur de bolsatrilera WEIS WAVE VOLUME

    Weis Wave Volume

    Bonjour,
    Je souhaite faire apparaître le cumul de volume sur chaque poussée de l’histogramme.
    Mes cumuls sont faux. j’ai des erreurs dans mon code et je suis arrivé à mes limites de programmation !!!!
    Est ce que quelqu’un aurait l’amabilité de résoudre mon problème pour lequel je galère …
    En vous remerciant par avance
    christophe

    REM WEIS WAVE VOLUME
    // @author LazyBear
    // List of all indicators Lazy Bear: https://www.tradingview.com/v/4IneGo8h/
    //adaptación para Prorealtime por bolsatrilera

    //p=2
    trendDetectionLength=p

    if close>close[1] then
    mov=1
    elsif close0 and mov <> mov[1] then
    trend=mov
    else
    trend=trend[0]
    endif

    rising=abs(close-close[1])>abs(close-close[trendDetectionLength])
    falling=abs(close-close[1] wave[1] and isTrending then
    wave=trend
    else
    wave=wave[0]
    endif

    if wave=wave[1] then
    vol=vol[0]+volume
    else
    vol=volume
    endif

    if wave=1 then
    up=vol
    else
    up=0
    endif

    if 0 then
    if wave=1 then
    dn=0
    endif
    endif

    if wave=-1 then
    dn=-vol
    else
    dn=vol
    endif

    if wave=1 then
    dn=0
    else
    dn=vol
    endif

    peak = upup[2]
    tough = dndn[2]
    cumV = cumV+volume
    if peak then
    text = round(cumv/1000)
    drawtext(“#text#K”,barindex[1],up[1]+0.17*up[1],Dialog,Bold,12) coloured(0,200,0)
    //drawsegment(barindex[1],cumV[1]+0.20*cumV[1],previousX,previousY)
    cumV = up
    //color = -1
    //previousX = barindex[1]
    //previousY = cumV[1]+0.20*cumV[1]
    elsif tough then
    text = round(cumv/1000)
    drawtext(“#text#K”,barindex[1],dn[1]+0.23*dn[1],Dialog,Bold,12) coloured(200,0,0)
    //drawsegment(barindex[1],cumV[1]+0.20*cumV[1],previousX,previousY)
    cumV = dn
    //color = 1
    //previousX = barindex[1]
    //previousY = cumV[1]+0.20*cumV[1]
    endif

    return up coloured (0,128,0)style(histogram)as “up”,dn coloured(255,0,0)style(histogram)as “dn”

    CCH_Weis-Wave-Volume.itf
    #169346 quote
    christophe11560
    Participant
    Senior

    Présentation de l’indicateur

    indicateurs.pdf
    #169351 quote
    christophe11560
    Participant
    Senior
    
    //p=2
    trendDetectionLength=p
    
    if close>close[1] then
    mov=1
    elsif close<close[1] then
    mov=-1
    else
    mov=0
    endif
    
    if mov <>0 and mov <> mov[1] then
    trend=mov
    else
    trend=trend[0]
    endif
    
    rising=abs(close-close[1])>abs(close-close[trendDetectionLength])
    falling=abs(close-close[1]<abs(close-close[trendDetectionLength]))
    
    if rising or falling then
    isTrending= rising or falling
    endif
    
    if trend <> wave[1] and isTrending then
    wave=trend
    else
    wave=wave[0]
    endif
    
    if wave=wave[1] then
    vol=vol[0]+volume
    else
    vol=volume
    endif
    
    if wave=1 then
    up=vol
    else
    up=0
    endif
    
    if 0 then
    if wave=1 then
    dn=0
    endif
    endif
    
    if wave=-1 then
    dn=-vol
    else
    dn=vol
    endif
    
    if wave=1 then
    dn=0
    else
    dn=vol
    endif
    
    peak = up<up[1] and up[1]>up[2]
    tough = dn<dn[1] and dn[1]>dn[2]
    cumV = cumV+volume
    if peak then
    text = round(cumv/1000)
    drawtext("#text#K",barindex[1],up[1]+0.17*up[1],Dialog,Bold,12) coloured(0,200,0)
    //drawsegment(barindex[1],cumV[1]+0.20*cumV[1],previousX,previousY)
    cumV = up
    //color = -1
    //previousX = barindex[1]
    //previousY = cumV[1]+0.20*cumV[1]
    elsif tough then
    text = round(cumv/1000)
    drawtext("#text#K",barindex[1],dn[1]+0.23*dn[1],Dialog,Bold,12) coloured(200,0,0)
    //drawsegment(barindex[1],cumV[1]+0.20*cumV[1],previousX,previousY)
    cumV = dn
    //color = 1
    //previousX = barindex[1]
    //previousY = cumV[1]+0.20*cumV[1]
    endif
    
    
    return up coloured (0,128,0)style(histogram)as "up",dn coloured(255,0,0)style(histogram)as "dn"
    #169356 quote
    robertogozzi
    Moderator
    Master

    Lorsque vous devez joindre des images, veuillez utiliser le format JPG ou PNG.

    S’applique également à l’autre sujet que vous avez publié.

    Merci 🙂

    #169364 quote
    christophe11560
    Participant
    Senior

    Rebonjour,
    Pour information cet indicateur va de paire avec un autre que je travaille et le lequel j’ai aussi une erreur de code: voir https://www.prorealcode.com/topic/zigzag-bar-volume-besoin-aide-pour-correction-codage/#post-169350

    Je vous envoie le lien qui explique le fonctionnement de ces 2 indicateurs et la stratégie liée à cette méthodologie:
    Ceci est inspiré de l’indicateur de David Weis st basé sur les travaux du célèbre M.Wyckoff
    site officiel de David Weis => https://weisonwyckoff.com/weis-wave/
    exemple de stratégie commerciale => https://atas.net/atas-possibilities/indicators/how-to-use-the-weis-waves-indicator/

    Extrait du site de David WEIS sur son plugin Weis Wave:

    “Le Weis Wave Plugin est au-dessus de tout ce qui est actuellement disponible pour la communauté commerciale. Je fais du trading depuis 25 ans et j’utilise le Weis Wave depuis trois ans. Avec son volume de vagues unique, le Weis Wave aide les traders à reconnaître les points de retournement. —Alfred T., Autriche
    Je dois vous dire que votre Weis Wave a été EXTRÊMEMENT utile!
    Je négocie pour gagner ma vie depuis plus de 15 ans maintenant… cet outil que vous avez fourni m’a rendu les choses beaucoup plus claires. —TK

    Le plugin Weis Wave est le produit final de 30 ans de travail pour trouver la représentation la plus précise du volume. Les informations tirées de ce plugin sont d’une grande aide pour anticiper les changements de tendance à des degrés divers.

    => Quiconque a observé le mouvement des prix intra journaliers sait qu’il se déroule dans une série de vagues d’achat et de vente – un processus de construction et de démolition. Les prix ne se déroulent pas par lots de temps égal.
    Lorsque le mouvement naturel des prix est lié par le temps, la tendance reste visible. Le volume, cependant, ne se porte pas aussi bien. La subdivision du volume en périodes de temps obscurcit la véritable force de l’achat et de la vente. Le plugin Weis Wave crée des graphiques d’ondes avec leur volume d’onde correspondant.”

    Si quelqu’un connaît les codes du plugin Weis Wave, je suis bien sûr intéressé

    #169367 quote
    JC_Bywan
    Moderator
    Master

    Pas de double post svp, merci de tenir compte de la checklist dans le grand cadre jaune en bas de page avant le bouton submit, qui décrit les règles à respecter pour publier dans le forum. Le double post sur weis wave (le #169364 ci-dessus mis une 2e fois dans l’autre topic zigzag) a été supprimé dans le topic zigzag, de façon générale les doubles posts d’un topic à un autre, même dans 2 langues différentes pour prendre un cas extrême, seront systématiquement supprimés pour respecter les règles du forum.

    Sans chercher à savoir le détail de ce que fait ce code, la ligne 43 du code ci-dessus “if 0 then” semble clairement à corriger, avant toute autre éventuelle recherche d’autres problèmes, si ça peut t’aider à passer à l’étape suivante.

    #169411 quote
    christophe11560
    Participant
    Senior
    //Suite à votre remarque, je viens de corriger la partie du code indiquée.
    //sauf erreur de ma part cela à l'air de fonctionner avec mes modifications.
    
    //p=2
    defparam calculateonlastbars = 400
    trendDetectionLength=p
    
    if close>close[1] then
    mov=1
    elsif close<close[1] then
    mov=-1
    else
    mov=0
    endif
    
    if mov <>0 and mov <> mov[1] then
    trend=mov
    else
    trend=trend[1]//trend[0]
    endif
    
    rising=abs(close-close[1])>=abs(close-close[trendDetectionLength])
    falling=abs(close-close[1]<abs(close-close[trendDetectionLength]))
    
    if rising or falling then
    isTrending= rising or falling
    endif
    
    if trend <> wave[1] and isTrending then
    wave=trend
    else
    wave=wave[1]//wave[0]
    endif
    
    if wave=wave[1] then
    vol=vol[1]+volume//vol[0]+volume
    else
    vol=volume
    endif
    
    if wave=1 then
    up=vol
    dn=0
    elsif wave=-1 then
    up=0
    dn=vol
    else
    up=0
    dn=vol
    endif
    
    peak = up<up[1] and up[1]>up[2]
    tough = dn<dn[1] and dn[1]>dn[2]
    cumV = cumV+volume
    up=up+volume
    dn=dn+volume
    if peak then
    text = round(cumv/1000)
    drawtext("#text#K",barindex[1],up[1]+0.17*up[1],Dialog,Bold,12) coloured(0,200,0)
    cumV = up
    elsif tough then
    text = round(cumv/1000)
    drawtext("#text#K",barindex[1],dn[1]+0.23*dn[1],Dialog,Bold,12) coloured(200,0,0)
    cumV = dn
    endif
    
    //
    return up coloured (0,128,0)style(histogram)as "up",dn coloured(255,0,0)style(histogram)as "dn"
    
    #169413 quote
    christophe11560
    Participant
    Senior

    Merci pour l’info Noobywan.
    nota: j’ai un petit niveau en programmation.

    Par contre, cela n’a pas résolu l’erreur sur le total affiché en texte sur la dernière barre Dn ou Up. Lorsque l’on met le curseur de la souris sur la dernière barre de Dn ou Up le total volume ne correspond pas.

    Nicolas, Noobywan, robertogozzi ou autres confrères, si vous avez des idées ca m’arrangerait vraiment 😉

    #169505 quote
    JC_Bywan
    Moderator
    Master

    Tu ne tombes pas au meilleur moment hélas, où on est tous assez occupé avec un autre gros projet. Je viens de voir cet autre topic posté 5 jours avant qui semble traiter de weis wave et zigzag aussi:

    https://www.prorealcode.com/topic/conversion-of-priceactionswing-indicators-package-for-ninjatrader-7-08-0/

    En général quand on a ici le même genre de questions à quelques jours près par des utilisateurs de pays différents, c’est qu’ils ont vu une même vidéo qui vient de sortir, ou un webi, ou étaient dans une discussion de groupe avec quelqu’un qui a présenté quelque chose dans une autre plateforme, et ils le veulent dans PRT. Autant donc suivre ce qui se fera dans cet autre topic antérieur, où il y a déjà eu avertissement que ça risque de prendre du temps.

    Si tu maitrises l’anglais pas de souci, sinon tu as en haut à gauche du post d’en-tête une boite “google translate”. Tu as aussi en haut à droite du post d’en-tête un bouton “subscribe” pour être prévenu des réponses qui y seront faites.

    #169555 quote
    christophe11560
    Participant
    Senior

    Merci pour votre retour,
    ma démarche n’est pas liée à quelques choses qui vient de sortir.
    Je m’intéresse aux travaux de David Weis parce que je suis entrain de lire son livre et que je trouve sa méthode très intéressante. Comme le dit Bollinger dans son livre, il est très important d’avoir une lecture complémentaire des prix par les volumes et les 2 indicateurs développés par Weiss (simple en codage) réponde très bien à ce principe. Une bien meilleure vue d’ensemble de la circulation de l’argent intelligent.
    En cherchant des outils existants sur la plateforme, je n’ai pas trouvé ces indicateurs et ceux qui s’y rapproche ne sont pas adapté à sa méthode.
    L’indicateur cumulative zigzag est bien mais ne calque pas à la cumulation des volumes sur les ondes et sa construction est différente de celle développé par Weiss. De plus, j’ai remarqué que le volume indiqué indiqué sur l’indicateur ne correspond pas à celui de la barre cumulative. pourquoi?
    C’est pourquoi je pense, que les 2 indicateurs que je cherche à développer qui ne demande pas un codage très compliqué je pense mais pour lequel j’ai dépassé mes compétences peuvent servir à toute la communauté.

    Je comprends que cela ne tombe pas au bon moment pour vous 😉 et Je pense que çà vaut le coup que je patiente et que dès que vous avez plus de temps on puisse travailler dessus!!!

    merci en tout cas d’avoir pris le temps de me répondre

    je vais néanmoins me rapprocher de Anjoloro en attendant.

    #169569 quote
    Alai-n
    Participant
    Veteran

    Bonjour Christophe,

    Je n’ai pas de solution pour ton code. Mais je t’invite à aller voir ce lien si tu t’intéresses à Wyckoff et peut être trouver ta réponse pour le calcul des volumes cumulés !!! https://www.prorealcode.com/user/rb-72/

    #169697 quote
    christophe11560
    Participant
    Senior

    J’ai trouvé mon erreur !!!! il fonctionne parfaitement maintenant sans réglage quelques soit le TF !!!

    je serai ravis qu’il soit partagé en tant qu’indicateur sur la PF

    Rappel:
    Lien qui explique le fonctionnement de ces 2 indicateurs et la stratégie liée à cette méthodologie:
    Ceci est inspiré de l’indicateur de David Weis st basé sur les travaux du célèbre M.Wyckoff
    site officiel de David Weis => https://weisonwyckoff.com/weis-wave/
    exemple de stratégie commerciale => https://atas.net/atas-possibilities/indicators/how-to-use-the-weis-waves-indicator/

    Vous penserez par vagues. Richard D. Wyckoff

    David Weis a développé les concepts de Richard Wyckoff plus loin. Il est devenu plus facile de créer des graphiques et d’analyser les vagues alternées de prix et de volume dans différents marchés et périodes de temps avec le développement du logiciel. Dans son livre «Trades About to Happen: A Modern Adaptation of the Wyckoff Method», Weis écrit: «le mouvement des prix se déroule par vagues plutôt que par périodes de temps égales» et le volume des vagues montre tout mieux que les graphiques horaires ou quotidiens.

    Comment fonctionne l’indicateur
    «L’action du volume nous renseigne sur l’offre et la demande; prix dénote simplement la valeur du volume ». Humphry B. Neill

    L’indicateur Weis Waves résume les volumes de chaque vague. C’est ainsi que nous recevons un histogramme des volumes cumulés d’ondes alternées.

    À savoir, le volume cumulé rend les graphiques d’ondes de Weis uniques. Il permet de comparer la relation des caractéristiques de la séquence d’ondes, comme la correspondance de la force appliquée (exprimée en volume) et du résultat reçu (la progression du prix).

    Weis-Wave-Volume.jpg Weis-Wave-Volume.jpg
    #169699 quote
    christophe11560
    Participant
    Senior
    //p=2
    defparam calculateonlastbars = 400
    trendDetectionLength=p
    
    if close>close[1] then
    mov=1
    elsif close<close[1] then
    mov=-1
    else
    mov=0
    endif
    
    if mov <>0 and mov <> mov[1] then
    trend=mov
    else
    trend=trend[1]
    endif
    
    rising=abs(close-close[1])>=abs(close-close[trendDetectionLength])
    falling=abs(close-close[1]<abs(close-close[trendDetectionLength]))
    
    if rising or falling then
    isTrending= rising or falling
    endif
    
    if trend <> wave[1] and isTrending then
    wave=trend
    else
    wave=wave[1]
    endif
    
    if wave=wave[1] then
    vol=vol[1]+volume
    else
    vol=volume
    endif
    
    if wave=1 then
    up=vol
    dn=0
    elsif wave=-1 then
    up=0
    dn=vol
    else
    up=0
    dn=vol
    endif
    
    peak = up<up[1] and up[1]>up[2]
    tough = dn<dn[1] and dn[1]>dn[2]
    
    if peak then
    text = round(up[1]/1000)
    drawtext("#text#K",barindex[1],up[1]+0.23*up[1],Dialog,Bold,10) coloured(0,200,0)
    elsif tough then
    text = round(dn[1]/1000)
    drawtext("#text#K",barindex[1],dn[1]+0.23*dn[1],Dialog,Bold,10) coloured(200,0,0)
    endif
    
    return up coloured (0,128,0)style(histogram)as "up",dn coloured(255,0,0)style(histogram)as "dn"
    PLermite thanked this post
    CCH_Weis-Wave-Volume-1.itf
    #229040 quote
    vince_laur
    Participant
    Junior

    voilà mon interprétation de l’indicateur. Je ne sais pas si c’est fidèle à la vision de l’auteur, David h. Weis.

    ce qui change par rapport au code de chistophe11560

    • le paramètre p a une vraie utilité.
    • je n’incrémente pas les volumes dans un mouvement qui va dans le sens opposé de la wave. Auquel cas je diminue l’intensité lumineuse
    //p=2
    defparam calculateonlastbars = 400
    
    
    if close>close[1] then
    mov=1
    elsif close<close[1] then
    mov=-1
    else
    mov=0
    endif
    
    rising=close-highest[p](close[1])>=0
    falling=close-lowest[p](close[1])<0
    reverse=0
    reverse=(rising and not rising[1])  or(falling and not falling[1])
    
    
    if mov <>0   then
    if reverse then
    wave=mov
    a=300
    else
    wave=wave[1]
    endif
    endif
    
    if wave =wave[1] then
    if mov=wave then
    vol=vol[1]+volume
    a=300
    else
    vol=vol[1]
    a=80
    endif
    else
    vol=volume
    endif
    
    if wave=1 then
    up=vol
    dn=0
    elsif wave=-1 then
    up=0
    dn=vol
    else
    up=0
    dn=vol
    endif
    
    peak = up<up[1] and up[1]>up[2]
    tough = dn<dn[1] and dn[1]>dn[2]
    
    if peak then
    text = round(up[1]/1000)
    drawtext("#text#K",barindex[1],up[1]+0.23*up[1],Dialog,Bold,10) coloured(0,200,0)
    elsif tough then
    text = round(dn[1]/1000)
    drawtext("#text#K",barindex[1],dn[1]+0.23*dn[1],Dialog,Bold,10) coloured(200,0,0)
    endif
    
    return up coloured (0,128,0,a)style(histogram)as "up",dn coloured(255,0,0,a)style(histogram)as "dn"
    
    weis-wave-perso.png weis-wave-perso.png
Viewing 14 posts - 1 through 14 (of 14 total)
  • You must be logged in to reply to this topic.

weis wave volume besoin aide pour correction codage


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
Summary

This topic contains 13 replies,
has 5 voices, and was last updated by vince_laur
2 years ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 05/11/2021
Status: Active
Attachments: 5 files
Logo Logo
Loading...