Question sur Variable Moving Average
Forums › ProRealTime forum Français › Support ProBuilder › Question sur Variable Moving Average
- This topic has 7 replies, 3 voices, and was last updated 7 years ago by supertiti.
-
-
12/17/2016 at 3:02 PM #18705
Bonjour à tous,
Voici un indicateur qu’il est bien !
Question = Pourquoi ne peut-on pas mettre la variable “L” en decimal ? le système nous jette. Existe t’il une astuce pour contourner ce problème ?
merci de votre apport.
bon week end.1234567891011121314151617181920212223242526272829303132//PRC_Variable Moving Average | indicator//14.12.2016//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge//converted and adapted from Pinescript version// --- parameterssrc=customclose//l = 6if barindex>l thenk = 1.0/lpdm = 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 + mdmSpdi = pdmS/smdi = mdmS/spdiS = ((1 - k)*(pdiS[1]) + k*pdi)mdiS = ((1 - k)*(mdiS[1]) + k*mdi)d = abs(pdiS - mdiS)s1 = pdiS + mdiSiS = ((1 - k)*(iS[1]) + k*d/s1)hhv = highest[l](iS)llv = lowest[l](iS)d1 = hhv - llvvI = (iS - llv)/d1vma = (1 - k*vI)*(vma[1]) + k*vI*srcendifRETURN VMA12/17/2016 at 5:15 PM #1871312/17/2016 at 5:53 PM #1871512/17/2016 at 6:22 PM #18716Le problème c’est que cela n’est pas possible, les calculs des indicateurs utilisés dans le code (highest et lowest) utilisent bien entendu des périodes sans décimales. Par ailleurs, on ne pourrait trouver un High contenu entre 2 bougies par exemple.. CQFD 🙂
12/17/2016 at 6:44 PM #1871712/28/2016 at 7:44 PM #19287Bonsoir supertiti,
Je suis presque nul en codage,mais dans le cas présent,je propose que la valeur 1.0 dans la formule k=1.0/l
soit une variable décimale.Je pense que cela donne le même résultat que si on faisait varier l en décimal,ce qui n’est évidemment pas possible.
Essaie pour voir,et tu m’en diras des nouvelles!!
Bonne soirée.
12/28/2016 at 8:05 PM #19295Bonsoir Beotien
j ai fais ce que tu proposes, en effet cela fonctionne en allant de 1 et moins. Nicolas devrait nous donner son avis pour savoir si cette modification n altere pas l integrite du code.
ps : pas d accents car je tape avec un clavier espagnol et le temps de les trouver !!!
01/16/2017 at 12:24 PM #21282VMA V1
J’aimerai appliquer le principe de la HOLT EMA sur la VMA. c’est à dire colorer l’indicateur VMA en 3 couleurs : vert, blanc, rouge selon la tendance.
condition 1 = vert quand VMA > angle 5° positifs
condition 2 = blanc quand VMA est compris entre 5° positifs et 5° negatifs
condition 3 = rouge quand VMA > angle 5° negatifs
J’ai fais ceci mais cela ne me semble pas satisfaisant car je recherche à faire apparaitre les segments blancs de l’indicateur comme points de retournement éventuels; d’autre part l’indicateur perd de son intérêt car les “marches” disparaissent (les
plats de marches de VMA étant de bons supports ou résistances me semble t’il).
je joins un graphe avec VMA (jaune/bleu) et VMA V1 (vert,blanc,rouge)
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283// VMA V1// VMA PRC_Variable Moving Average 14.12.2016//Nicolas @ www.prorealcode.com Sharing ProRealTime knowledge//converted and adapted from Pinescript versionsrc=customcloseif barindex>l thenk = 1.0/lpdm = 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 + mdmSpdi = pdmS/smdi = mdmS/spdiS = ((1 - k)*(pdiS[1]) + k*pdi)mdiS = ((1 - k)*(mdiS[1]) + k*mdi)d = abs(pdiS - mdiS)s1 = pdiS + mdiSiS = ((1 - k)*(iS[1]) + k*d/s1)hhv = highest[l](iS)llv = lowest[l](iS)d1 = hhv - llvvI = (iS - llv)/d1vma = (1 - k*vI)*(vma[1]) + k*vI*srcendif// l = 6///////////////////////////////////////////////////////////////// HOLT EMA V2 slope by Nicolasprice = customcloseif alpha > 1 thenmyalpha = 2.0/(alpha+1.0)elsemyalpha = alphaendifif gmma > 1 thenmygamma = 2.0/(gmma+1)elsemygamma = gmmaendifIf barindex = 1 thenvalue1 = priceK = 0.0elsevalue1 = (1-myalpha)*(value1[1] + K[1]) + myalpha*priceK = (1-mygamma)*K[1] + mygamma*(value1 - value1[1])endifVMA = value1slope = atan((value1-(value1[1]+value1[2])/2)/1.5/ticksize)condition1 = slope >= angle1condition2 = slope < angle1 and slope > angle2condition3 = slope <= -1*angle1//base color = jauner=255g=255b=0if condition1 then // vert clairr=0g=255b=0elsif condition2 then // blancr=255g=255b=255elsif condition3 then // rouger=255g=0b=0endif// Variables :// gmma = 40// alpha = 20// angle1 = 5// angle2 = 1//////////////////////////////////////////////////////////////RETURN SRC as " CC " , VMA coloured(r,g,b) as " VMA V1 "Si quelqu’un peut apporter de l’aide pour résoudre ces problèmes d’escaliers qui disparaissent et de segments blancs absents par conséquence.
Merci, bonne journée et bons trades
-
AuthorPosts
Find exclusive trading pro-tools on