Ehler's ZMA
Forums › ProRealTime forum Français › Support ProBuilder › Ehler's ZMA
- This topic has 9 replies, 3 voices, and was last updated 7 years ago by supertiti.
-
-
10/24/2017 at 12:34 PM #50378ZMA123456789101112131415161718ZMA, Ehler’s Zero-Lag Moving Average, an EMA with a correction term for removing lag. This is the source code:var ZMA(var *Data,int Period){var *ZMA = series(Data[0]);var a = 2.0/(1+Period);var Ema = EMA(Data,Period);var Error = 1000000;var Gain, GainLimit=5, BestGain=0;for(Gain = -GainLimit; Gain < GainLimit; Gain += 0.1) {ZMA[0] = a*(Ema + Gain*(Data[0]-ZMA[1])) + (1-a)*ZMA[1];var NewError = Data[0] - ZMA[0];if(abs(Error) < newError) {Error = abs(newError);BestGain = Gain;}}return ZMA[0] = a*(Ema + BestGain*(Data[0]-ZMA[1])) + (1-a)*ZMA[1];////////////////////////////////////////////////////////////////////////
Bonjour à tous,
Il est possible de traduire pour Prorealtime cette moyenne zéro retard de John Ehlers ?
d’avance merci
10/24/2017 at 12:52 PM #50383Bonjour Supertiti,
n’est ce pas la #65 de ce post suivant ?
https://www.prorealcode.com/topic/indicateur-afr-average-filter-regression/
bonne journée
Zen
10/24/2017 at 1:02 PM #50387Voici le code de Laurenzo , Nicolas nous dira si cela correspond
Ehlers MA123456789101112131415161718//-----------------------------//// 65 - ZLJE - Zero Lag John Ehlers ////-----------------------------//IF MAType = 65 THENPeriod = MAX(Period, 2)alpha = 2 / (1 + Period)per = ROUND((Period - 1) / 2)IF BarIndex < per THENAFR = SeriesELSEAFR = AFR[1] + alpha * (2 * Series - Series[per] - AFR[1])ENDIFENDIF10/26/2017 at 3:20 PM #50624Je pense qu’il s’agit bien de la même moyenne mobile en effet. La seule différence c’est l’utilisation d’un facteur fixe en lieu et place du ‘bestgain’ de la version initiale, en effet pour obtenir le ‘bestgain’, soit le meilleur gain pour l’amplification du signal, il faudrait faire une boucle en complément du code de Laurenzo. Je vais essayer de voir si je peux le recoder de zéro.
10/26/2017 at 3:53 PM #50627Bon, après avoir recodé ce type de moyenne mobile à l’aide du code fournit par Supertiti, on constate en effet une grosse différence (jaune celle du code de Laurenzo et en blanche la nouvelle).
Voici donc le code selon ma propre interprétation:
12345678910111213141516171819202122232425Period=20Data = customcloseonce ZMA = customcloseonce a = 2.0/(1+Period)Ema = average[Period,1](Data)once Error = 1000000once GainLimit = 5BestGain = 0Gain = -GainLimitif barindex>Period thenWhile Gain < GainLimit doGain = Gain+0.1ZMA = a*(Ema + Gain*(Data-ZMA[1])) + (1-a)*ZMA[1]NewError = Data - ZMAif(abs(Error) < newError) thenError = abs(newError)BestGain = GainendifwendZMA = a*(Ema + BestGain*(Data-ZMA[1])) + (1-a)*ZMA[1]endifreturn ZMABizarrement, je la trouve pas si réactive pour une moyenne mobile “sans lag” à période égale avec d’autres, il faudrait pouvoir vérifier avec une autre plateforme/code pourquoi pas …
10/27/2017 at 10:56 AM #50684Bonjour Nicolas,
C’est vrai juste à l’oeil on voit que ça ressemble plus a une moyenne pondérée qu’à autre chose.
J’ai mis les trois moyennes sur les prix et le code que je propose est indentique à un moyenne pondérée de PRT.
en jaune celle de laurenzo
en rose celle de Nicolas
en bleu pointillée celle de PRT où p = 56
merci Nicolas pour ton soutien
Bonne journée
10/27/2017 at 12:10 PM #5070410/27/2017 at 1:57 PM #50723Je l’ai récupéré ici :
10/27/2017 at 3:43 PM #50727Bon, je viens de retrouver un code d’une version en EasyLanguage, et je pense que cette fois on tient la bonne (version ProBuilder ci-dessous):
123456789101112131415161718192021222324252627Length=20GainLimit=50alpha=0Gain=0BestGain=0EC=0Error=0LeastError=0EMA=0alpha = 2 / (Length + 1)if barindex>Length thenEMA = alpha*Close + (1 - alpha)*EMA[1]LeastError = 1000000For Value1 = -GainLimit to GainLimit doGain = Value1 / 10EC = alpha*(EMA + Gain*(Close - EC[1])) + (1 - alpha)*EC[1]Error = Close - ECIf Abs(Error) < LeastError ThenLeastError = Abs(Error)BestGain = GainEndifnextEC = alpha*(EMA + BestGain*(Close - EC[1])) + (1 - alpha)*EC[1]endifreturn EC10/27/2017 at 5:01 PM #50746 -
AuthorPosts
Find exclusive trading pro-tools on