ProRealCode - Trading & Coding with ProRealTime™
objet: adaptation de l’indicateur de bolsatrilera 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 close
trend=mov
else
trend=trend[0]
endif
rising=abs(close-close[1])>abs(close-close[trendDetectionLength])
falling=abs(close-close[1]
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
tough = dn
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”
Présentation de l’indicateur
//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"
Lorsque vous devez joindre des images, veuillez utiliser le format JPG ou PNG.
S’applique également à l’autre sujet que vous avez publié.
Merci 🙂
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é
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.
//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"
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 😉
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:
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.
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.
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/
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).
//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"
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
//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 volume besoin aide pour correction codage
This topic contains 13 replies,
has 5 voices, and was last updated by vince_laur
2 years ago.
| Forum: | ProBuilder : Indicateurs & Outils Personnalisés |
| Language: | French |
| Started: | 05/11/2021 |
| Status: | Active |
| Attachments: | 5 files |
The information collected on this form is stored in a computer file by ProRealCode to create and access your ProRealCode profile. This data is kept in a secure database for the duration of the member's membership. They will be kept as long as you use our services and will be automatically deleted after 3 years of inactivity. Your personal data is used to create your private profile on ProRealCode. This data is maintained by SAS ProRealCode, 407 rue Freycinet, 59151 Arleux, France. If you subscribe to our newsletters, your email address is provided to our service provider "MailChimp" located in the United States, with whom we have signed a confidentiality agreement. This company is also compliant with the EU/Swiss Privacy Shield, and the GDPR. For any request for correction or deletion concerning your data, you can directly contact the ProRealCode team by email at privacy@prorealcode.com If you would like to lodge a complaint regarding the use of your personal data, you can contact your data protection supervisory authority.