Word nu lid
Indicatoren/probuilder · probacktest · proorder · proscreener

ZLEMA

ZLEMA in ProBuilder geeft de Zero Lag Exponential Moving Average, een EMA-variant die lag vermindert voor snellere trendsignalen. Syntaxis, formule, voorbeelden.

Syntaxis

probuilder
ZLEMA[period](price)

Parameters

NaamTypeStandaardBeschrijving
periodgeheel getal20Lengte van het exponentiële gemiddelde en basis van de lagcorrectie.
priceprijsbroncloseDe reeks waarvan het gemiddelde wordt genomen. Accepteert close, open, high, low, of een eigen variabele.

Formule

code
lag   = (period - 1) / 2
ZLEMA = EMA[period](price + (price - price[lag]))

De term price - price[lag] schat hoe ver een conventioneel gemiddelde achter de koers aanloopt, en door het bij de input op te tellen wordt de data ongeveer met dat bedrag naar voren geschoven voordat de EMA wordt toegepast.

Hoe het werkt

Elk moving average loopt achter, omdat het een venster met historische data samenvat waarvan het zwaartepunt achter de huidige bar ligt. Voor een EMA met lengte period die verschuiving is ongeveer (period - 1) / 2 bars. De ZLEMA compenseert dit door de EMA een aangepaste reeks te geven: de huidige koers plus de verandering sinds lag bars terug. Wanneer de prijs gestaag trendt, heft de correctie het grootste deel van de vertraging op en loopt de lijn dicht bij de prijs; wanneer de prijs vlak is, is de correctieterm bijna nul en gedraagt de ZLEMA zich als een gewone EMA.

De compensatie is een extrapolatie, dus er hangt een prijs aan. Op scherpe omslagpunten wijst de van lag ontdane invoer kort de verkeerde kant op, wat doorschieten en af en toe whipsaw-signalen oplevert die een langzamer gemiddelde zou hebben gefilterd. ZLEMA hoort tot dezelfde low-lag-familie als DEMA, TEMA, en HullAverage, die elk op een andere manier vloeiendheid tegen reactiesnelheid afwegen.

Voorbeelden

Voorbeeld 1, ZLEMA over 15 periodes van de close (Indicator)

probuilder
// Zero lag exponential average over 15 bars
myZLEMA = ZLEMA[15](close)
RETURN myZLEMA

Het bronvoorbeeld: berekent en plot de ZLEMA over 15 periodes van slotkoersen, die zichtbaar dichter bij de koers blijft dan een EMA over 15 periodes.

Voorbeeld 2, Kruising van ZLEMA en EMA (ProBacktest)

probuilder
// Use the faster ZLEMA against a plain EMA of the same length
fastLine = ZLEMA[20](close)
slowLine = ExponentialAverage[20](close)

IF fastLine CROSSES OVER slowLine THEN
  BUY 1 CONTRACT AT MARKET
ENDIF
IF fastLine CROSSES UNDER slowLine THEN
  SELL AT MARKET
ENDIF

Omdat ZLEMA voorloopt op een EMA van gelijke lengte, levert het kruisen van de twee lijnen met dezelfde periode een signaal in momentum-stijl op zonder dat twee verschillende lengtes nodig zijn.

Voorbeeld 3, Screenen op een verse verandering in de helling van de ZLEMA (ProScreener)

probuilder
// Instruments whose 20-bar ZLEMA just turned upward
z = ZLEMA[20](close)
turnedUp = z > z[1] AND z[1] <= z[2]
SCREENER[turnedUp](((close / z) - 1) * 100 AS "% vs ZLEMA")

Geeft instrumenten waar de helling van de ZLEMA op de huidige bar omsloeg van niet-stijgend naar stijgend, een scan op vroege trendwisselingen die profiteert van de verminderde lag.

Interpretatie

ZLEMA wordt gelezen als elk voortschrijdend gemiddelde. Een koers boven een stijgende lijn duidt op een opwaartse trend, een koers onder een dalende lijn op een neerwaartse trend, en kruisingen, van koers tegen de lijn of twee gemiddelden tegen elkaar, markeren mogelijke trendwisselingen. Signalen komen eerder dan bij een EMA of SMA van gelijke lengte.

Eerder betekent niet beter. De vermindering van lag komt van het extrapoleren van recent momentum, dus in schokkerige omstandigheden genereert de ZLEMA meer valse starts dan langzamere gemiddelden. Het past bij systemen waarin te late instappen de belangrijkste kostenpost zijn, en het combineert natuurlijk met een bevestigingsfilter zoals een langer gemiddelde of een volatiliteitsmaat.

Veelvoorkomende fouten en valkuilen

  • Verkeerde types haakjes. De periode gaat tussen vierkante haken en de prijs tussen ronde haken: ZLEMA[20](close). ZLEMA(20, close) compileert niet.
  • EMA-achtige vloeiendheid verwachten. Bij dezelfde periode is de ZLEMA onrustiger en schiet hij door bij omslagpunten. Hem invoegen in een systeem dat is afgestemd op ExponentialAverage verandert de handelsfrequentie en de resultaten.
  • Zeer korte periodes. Bij kleine period waarden is de lagterm bijna nul en zakt de lijn in naar de ruwe koers, wat ruis toevoegt zonder voordeel. De techniek heeft een betekenisvolle lag nodig om te verwijderen.
  • Zero lag letterlijk opvatten. De naam is een streven. De correctie verwijdert het grootste deel van de lag in stabiele toestand maar kan omkeringen niet voorzien, en de resterende vertraging groeit precies wanneer het uitmaakt, bij omkeringen.
  • ExponentialAverage, de standaard EMA die ZLEMA aanpast.
  • Average, basislijn van het enkelvoudig voortschrijdend gemiddelde.
  • WeightedAverage, lineair gewogen voortschrijdend gemiddelde.
  • HullAverage, nog een gemiddelde met weinig lag, opgebouwd uit WMA's.
  • DEMA, double exponential moving average, vergelijkbaar doel.
  • TEMA, triple exponential moving average, verdere vermindering van lag.
  • WilderAverage, langzaam geëffend gemiddelde aan het andere uiterste.
  • TimeSeriesAverage, op regressie gebaseerd gemiddelde met weinig lag.