Bonjour Nicolas , bonjour à tous
Aujourd’hui j’aimerais jouer les entremetteuses et marier Richard Wyckoff et Tushar S Chande sous les auspices de la VMA éditée par Nicolas.
Je joins un graphe de Repsol pour mieux exprimer ce que je souhaiterais.
Je voudrais définir un rectangle qui prendrait appuis sur la VMA dès qu’elle produit un plat et qui irait rechercher quelques jours en arrière les plus bas ou plus hauts sur une période p .
Ainsi je pense que l’on pourrait cerner les phases d’accumulations ou de distributions quand elles se présentent et optimiser les points d’entrées et de sorties.
Merci à ceux qui peuvent aider
Bon week end
////PRC_Variable Moving Average | indicator
//14.12.2016
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge
//converted and adapted from Pinescript version
// --- parameters
src=customclose
//l = 6
if barindex>l then
k = 1.0/l
pdm = max((src - src[1]), 0)
mdm = max((src[1] - src), 0)
pdmS = ((1 - k)*(pdmS[1]) + k*pdm)
mdmS = ((1 - k)*(mdmS[1]) + k*mdm)
s = pdmS + mdmS
pdi = pdmS/s
mdi = mdmS/s
pdiS = ((1 - k)*(pdiS[1]) + k*pdi)
mdiS = ((1 - k)*(mdiS[1]) + k*mdi)
d = abs(pdiS - mdiS)
s1 = pdiS + mdiS
iS = ((1 - k)*(iS[1]) + k*d/s1)
hhv = highest[l](iS)
llv = lowest[l](iS)
d1 = hhv - llv
vI = (iS - llv)/d1
vma = (1 - k*vI)*(vma[1]) + k*vI*src
endif
Pas une mauvaise idée, merci. A partir du premier plat, donc revirement de la VMA ?
Bonjour Nicolas
Oui le premier plat déclencherait le rectangle mais si on peut choisir à partir de quel plat on déclenche (le 1,le 2,le 3 etc ) ce serait bien aussi si c’est possible
sinon on va se retrouver avec des rectangles à tous les retournements.
Bonne journée.
Ci-joint un rapide premier essai brouillon, les variables à ajuster sont:
l = periode de la VMA
triggerPeriod = observation de période flat avant de signaler une zone
decay = période offset à partir de la période en cours pour valider ou non que la VMA a changé de direction, j’ai observé que celle-ci fluctue très peu dans les valeurs, alors qu’à l’oeil nu on ne le voit pas ..
////PRC_Variable Moving Average | indicator
//14.12.2016
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge
//converted and adapted from Pinescript version
// --- parameters
src=customclose
l = 20
triggerPeriod=3
decay=2
// --- end of parameters
if barindex>l then
k = 1.0/l
pdm = max((src - src[1]), 0)
mdm = max((src[1] - src), 0)
pdmS = ((1 - k)*(pdmS[1]) + k*pdm)
mdmS = ((1 - k)*(mdmS[1]) + k*mdm)
s = pdmS + mdmS
pdi = pdmS/s
mdi = mdmS/s
pdiS = ((1 - k)*(pdiS[1]) + k*pdi)
mdiS = ((1 - k)*(mdiS[1]) + k*mdi)
d = abs(pdiS - mdiS)
s1 = pdiS + mdiS
iS = ((1 - k)*(iS[1]) + k*d/s1)
hhv = highest[l](iS)
llv = lowest[l](iS)
d1 = hhv - llv
vI = (iS - llv)/d1
vma = (1 - k*vI)*(vma[1]) + k*vI*src
endif
if vma>vma[decay] then
trend=1
endif
if vma<vma[decay] then
trend=-1
endif
if trend>0 then
hh=max(hh,high)
ll=hh*100
if hh<>hh[1] then
hhbar=barindex[1]
endif
else
ll=min(ll,low)
hh=0
if ll<>ll[1] then
llbar=barindex[1]
endif
endif
flat=vma=vma[1]
flatrange=summation[triggerPeriod](flat)=triggerPeriod
if flatrange then
if trend>0 then
drawrectangle(hhbar,hh,barindex,vma) coloured(255,0,0,0)
endif
if trend<0 then
drawrectangle(llbar,ll,barindex,vma) coloured(0,255,0,0)
endif
endif
return vma style(line,2),flatrange//,hh,ll,vma[1]
C’est un bon premier jet mais il comporte quelques erreurs , j’observe que les rectangles n’apparaissent pas toujours à bon escient ( éllipses rouges ).
Après une baisse de la valeur le rectangle apparent devrait être au dessous de la vma
Et inversement pour une hausse
Alors yaka faucon !! merci pour ton aide
Je joins un graphe de Repsol que j’ai vendu ce matin.
En effet j’ai remarqué cela, à cause de l’infime fluctuation de la VMA, le code pense que nous étions dans un trend inverse à ces moments..