Calcul VWAP début Date et Heure précises
Forums › ProRealTime forum Français › Support ProBuilder › Calcul VWAP début Date et Heure précises
- This topic has 6 replies, 2 voices, and was last updated 3 years ago by
JC_Bywan.
Tagged: anchored vwap
-
-
01/17/2022 at 2:51 AM #185639
Bonjour/bonsoir,
Je reprends le code ci dessous de Nicolas de 2017 concernant le Vwap date anchored avec une date que l’on peut choisir MAIS qui débute à 01h00 du mat.
Je souhaite utiliser cette base de code en permettant de choisir la date ET AUSSI l’heure du début du calcul du VWAP en laissant “vivre” l’indicateur dans le temps (plusieurs jours/semaines).
Exemple graphe ci dessous sur Nasdaq M15 du 11 au 14 janvier 2022.Voici le code de Nicolas.
Variables :
StartDate=20220112
viewSD =t
J’ai rajouté StartTime = 160000 mais bon pas sûr…
C’est sûrement dans les lignes 19 à 23 que cela cloche. 🙁VWAP Date1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950//PRC_VWAP Date anchored | indicator//19.10.2017//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge// --- settings//startDate = 20161212//viewSD = 1 //1 = true / 0 = false// --- end of settingsVWAP=undefinedSDup1 = undefinedSDlw1 = undefinedSDup2 = undefinedSDlw2 = undefinedSDup3 = undefinedSDlw3 = undefinedif opendate=startDate and startTime thenstartbar=barindexendifif opendate>=startDate and startTime thenbarcount=barindex-startbard = max(1, barcount)VWAP = SUMMATION[d](volume*typicalprice)/SUMMATION[d](volume)if(barcount=0) thensd = 0elsesd = SUMMATION[d](max(abs(high-vwap),abs(vwap-low)))/dendifif viewSD thenSDup1 = vwap+sdSDlw1 = vwap-sdSDup2 = vwap+sd*2SDlw2 = vwap-sd*2SDup3 = vwap+sd*3SDlw3 = vwap-sd*3endifif vwap>vwap[1] thencolor = 1elsecolor = -1endifendifRETURN VWAP coloured by color as "VWAP", SDup1 as "upper 1 STD", SDlw1 as "lower 1 STD", SDup2 as "upper 2 STD", SDlw2 as "lower 2 STD", SDup3 as "upper 3 STD", SDlw3 as "lower 3 STD"Bref, l’idée est bien d’avoir un VWAP que l’on peut utiliser n’importe quand (date choisies) et à n’importe quelle heure (heure ciblée) sur de multiples durées (5/15/30/60/240 min) avec l’option de clôturer le calcul à la fin de la session 22h00 mais aussi et surtout d’avoir le choix de le laisser “vivre” au fur et à mesure des journées/semaines.
Est- ce que cela semble faisable d’améliorer le code ci dessus qui ne répond pour le moment pas encore à cela ?
Merci pour le coup de main. 🙂
A suivre…01/28/2022 at 10:33 PM #186902Bonsoir,
A priori tu as bien pressenti le problème des lignes 19 à 23, plus précisément en 19 et en 22, faire juste “if starttime” va considérer que c’est vrai car starttime est différent de 0, ce que tu veux faire en fait, c’est comparer opentime à starttime en ligne 19:
1if opendate=startDate and opentime=startTime thenet en ligne 22 gérer à la fois: le cas “on est en opendate et l’heure de début de bougie est plus grande que starttime”, et aussi le cas “la date est postérieure à startdate quelle que soit l’heure:1if (opendate=startDate and opentime>=startTime) or opendate>startDate then(pas vérifié le reste au cas où, mais commencer par ça déjà)02/01/2022 at 12:46 AM #187184Bonsoir et un grand MERCI à toi JC_Bywan pour ta réponse pertinente.
Cela fonctionne très bien.
Résultat graphique pour que chacun puisse en profiter.
NQ en M30 avec date de départ fixée au 24 janvier et 18h00 comme heure de début du calcul.
Par exemple, on peut observer dès le 25 janvier et les jours suivants, la pertinence des premières lignes de STD (Up/Low) – cercles jaunes02/01/2022 at 1:19 AM #187189Sauf que, sauf que 😉
En fait les lignes de SD ne sont calculées que sur le VWAP du premier jour. Ensuite, elles restent figées/fixes. Voir le graphe de mon dernier post.
Donc mes cercles jaunes sont d’une certaine façon, non valides.
Comment faire que l’ensemble VWAP et les SD up et Low suivent l’évolution en partant toujours du même principe du choix d’une date et d’une heure précise ?
J’imagine que pour le coup cela se passe entre les lignes 27 à 31.
Juste un petit paramètre à modifier ?
Merci pour ton éventuelle réponse.A suivre…
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950//PRC_VWAP Date anchored | indicator//19.10.2017//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge// --- settings//startDate = 20161212//viewSD = 1 //1 = true / 0 = false// --- end of settingsVWAP=undefinedSDup1 = undefinedSDlw1 = undefinedSDup2 = undefinedSDlw2 = undefinedSDup3 = undefinedSDlw3 = undefinedif opendate=startDate and opentime=startTime thenstartbar=barindexendifif (opendate=startDate and opentime>=startTime) or opendate>startDate thenbarcount=barindex-startbard = max(1, barcount)VWAP = SUMMATION[d](volume*typicalprice)/SUMMATION[d](volume)if(barcount=0) thensd = 0elsesd = SUMMATION[d](max(abs(high-vwap),abs(vwap-low)))/dendifif viewSD thenSDup1 = vwap+sdSDlw1 = vwap-sdSDup2 = vwap+sd*2SDlw2 = vwap-sd*2SDup3 = vwap+sd*3SDlw3 = vwap-sd*3endifif vwap>vwap[1] thencolor = 1elsecolor = -1endifendifRETURN VWAP coloured by color as "VWAP", SDup1 as "upper 1 STD", SDlw1 as "lower 1 STD", SDup2 as "upper 2 STD", SDlw2 as "lower 2 STD", SDup3 as "upper 3 STD", SDlw3 as "lower 3 STD"02/01/2022 at 7:16 AM #187196A priori ça viendrait de la ligne 31? Si pour faire des bandes on veut des écarts types du vwap (donc la racine carrée de la somme des écarts du vwap à sa moyenne), ça ne ressemble pas à ta formule de la ligne 31.
Cela dit dans le cas du “anchored”, il faudrait chercher si cet écart type se fait sur période “d” continument croissante, ou bien s’il y a une période standard acceptée pour éviter un échantillon trop grand dès que d est plus grand que cette période standard, il faudrait trouver ça pour décider de la formule, je t’avoue que j’ai pas posé de bandes avant sur un vwap anchored donc j’ai pas de certitude sur prendre “d” ou une période “p” standard sur ce coup.
Dans le premier cas on aurait un sd=STD[d](vwap) à tester, dans le 2e cas un sd=STD[min(p,d)](vwap)
02/07/2022 at 11:54 PM #187850Bonsoir JC_Bywan,
Merci à toi pour ton suivi.
J’ai testé tes 2 propositions.
La première = pas de résultat.
La seconde sur le NQ en M15 avec (p) sur 96.
Début le 17 janvier 16h00.
Résultats non satisfaisant pour le moment.
A voir…Chose curieuse sur le second chart, cela fonctionne complètement avec le code initial mais à partir d’une TF en H4 (pas plus petite).
Comment expliquer cela à ton avis ?
NQ H4 début 17 janvier 13h00.02/09/2022 at 11:00 PM #187990J’ai fait plusieurs petites modifs, plus simple de mettre le code en entier avec ses diverses modifs que de les décrire une à une:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253//PRC_VWAP Date anchored | indicator//19.10.2017//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge// --- settings//startDate = 20220124//20161212//startTime=180000//viewSD = 1 //1 = true / 0 = false// --- end of settingsVWAP=undefinedSDup1 = undefinedSDlw1 = undefinedSDup2 = undefinedSDlw2 = undefinedSDup3 = undefinedSDlw3 = undefinedif opendate=startDate and opentime=startTime thenstartbar=barindexbarcount=1endifif barcount>=1 thenbarcount=barindex-startbar+1d = max(1, barcount)VWAP = SUMMATION[d](volume*typicalprice)/SUMMATION[d](volume)if(barcount=0) thensd = 0elsesd = std[d](abs(typicalprice-vwap))endifif viewSD thenSDup1 = vwap+sdSDlw1 = vwap-sdSDup2 = vwap+sd*2SDlw2 = vwap-sd*2SDup3 = vwap+sd*3SDlw3 = vwap-sd*3endifif vwap>vwap[1] thencolor = 1elsecolor = -1endifendifRETURN VWAP coloured by color as "VWAP", SDup1 as "upper 1 STD", SDlw1 as "lower 1 STD", SDup2 as "upper 2 STD", SDlw2 as "lower 2 STD", SDup3 as "upper 3 STD", SDlw3 as "lower 3 STD" -
AuthorPosts
Find exclusive trading pro-tools on