Bonjour Nicolas et tout le monde 🙂
Est ce que quelqu’un aurait le code de la moyenne mobile à lissage multiple ?
D’avance merci pour votre retour et bonne journée !
La moyenne mobile à lissage multiple utilise une moyenne mobile lissée par une autre moyenne mobile (lissage double) ou par deux autres moyennes mobiles (lissage triple). Pour chaque moyenne mobile, vous pouvez régler la période et la méthode de calcul (simple, exponentielle, pondérée …).
Donc ça devrait ressembler à ce code :
//Multiple smoothing moving average
// MA type (0=SMA,1=EMA,2=WMA,3=Wilder,4=Triangular,5=End point,6=Time series,7 = Hull (PRT v11 only),8 = ZeroLag (PRT v11 only))
period1=14
type1 = 0
period2=10
type2 = 0
period3=9
type3 = 0
src = customclose
avg = average[period1,type1](average[period2,type2](average[period3,type3](src)))
return avg
Au top Nicolas comme d habitude oserais je dire !
Merci encore et bonne journée !
Juste une petite chose j aurais aimé deux zéro lag mais apparement cela ne m est pas permis j ai la vesion PRT de chez binck, peut être existe t il un moyen de contourner l affaire en changeant le code ou avec un autre numéro ?
Genre comme ceci peut être ( je vais tester )
//Multiple smoothing moving average
//Calcul de la moyenne mobile courte sans retard
EMA1 = ExponentialAverage[4](close)
EMA2 = ExponentialAverage[4](EMA1)
diff = EMA1 - EMA2
ind1 = EMA1 + diff
//Calcul de la moyenne mobile longue sans retard
EMA3 = ExponentialAverage[8](close)
EMA4 = ExponentialAverage[8](EMA3)
diff1 = EMA3 - EMA4
ind2 = EMA3 + diff1
src = customclose
avg = average[ind1](average[ind2](src))
return avg
Non comme cela cela ne fonctionne pas 🙂
//Multiple smoothing moving average
//ZeroLag MA:
PeriodF = 4
DataF = Close
lagF = ROUND((PeriodF-1)/2)
dF = (DataF+(DataF-DataF[lagF]))
MF = exponentialaverage[periodF](dF)
//ZeroLag MA:
PeriodG = 8
DataG = Close
lagG = ROUND((PeriodG-1)/2)
dG = (DataG+(DataG-DataG[lagG]))
MG = exponentialaverage[periodG](dG)
src = customclose
avg = average[MF](average[MG](src))
return avg
Et comme ceci non plus tjs le même message d erreur avec une valeur négative …
Comme ceci ça doit mieux fonctionner :
//Double smooth Zerolag EMA
//ZeroLag MA:
PeriodF = 4
DataF = customclose
lagF = ROUND((PeriodF-1)/2)
dF = (DataF+(DataF-DataF[lagF]))
MF = exponentialaverage[periodF](dF)
//ZeroLag MA:
PeriodG = 8
DataG = MF
lagG = ROUND((PeriodG-1)/2)
dG = (DataG+(DataG-DataG[lagG]))
MG = exponentialaverage[periodG](dG)
avg = MG
return avg
Ok merci je viens d essayer mais je n ai pas la même courbe que selon le code PRT ( je t embête parce que j aimerais faire un indicateur pour pouvoir en faire un screener mais je n arrive pas a la prendre en cération simpfliée alors j essaie d en écrire le code pour en faire un indicateur
Tiens en orange celle de PRT en mauve ta version
une idée ? D avance merci