AdaptiveAverage
AdaptiveAverage in ProBuilder geeft de Adaptive Moving Average, een moving average die zijn snelheid aanpast aan de volatiliteit. Syntaxis, parameters, voorbeelden.
Syntaxis
AdaptiveAverage[MAperiod, fastSC, slowSC](price)Parameters
| Naam | Type | Standaard | Beschrijving |
|---|---|---|---|
MAperiod | geheel getal | 9 | Lookbackperiode die wordt gebruikt om te meten hoe gericht de recente koersbeweging was. |
fastSC | geheel getal | 2 | Periode van de snelle smoothingconstante. Bepaalt hoe snel het gemiddelde reageert wanneer de koers zuiver trendt. |
slowSC | geheel getal | 30 | Periode van de langzame smoothingconstante. Bepaalt hoe traag het gemiddelde wordt wanneer de koers onrustig is. |
price | prijsbron | close | De prijsreeks die wordt gesmoothd, zoals close, open, of typicalprice. |
Formule
ER = Abs(price - price[MAperiod]) / Sum of Abs(price - price[1]) over MAperiod bars
fast = 2 / (fastSC + 1)
slow = 2 / (slowSC + 1)
SC = (ER * (fast - slow) + slow)^2
AMA = AMA[1] + SC * (price - AMA[1])ER is de efficiency ratio. Hij nadert 1 wanneer de prijs in een rechte lijn door het lookbackvenster loopt en nadert 0 wanneer de prijs heen en weer beweegt zonder netto voortgang. De gekwadrateerde smoothingconstante SC interpoleert dan tussen de snelle en langzame EMA-snelheden.
Hoe het werkt
Een moving average met vaste periode dwingt één compromis af voor elke marktomstandigheid: korte periodes whipsawen in ranges, lange periodes lopen achter in trends. De Adaptive Moving Average omzeilt dat compromis door op elke bar zijn eigen smoothingconstante opnieuw te berekenen.
Wanneer de efficiency ratio hoog is, wat betekent dat de recente bars zich overwegend in één richting bewogen, verschuift de smoothingconstante naar het snelle uiteinde en volgt het gemiddelde de koers nauw. Wanneer de ratio laag is, wat betekent dat de koers veel afstand aflegde maar nergens uitkwam, verschuift de constante naar het langzame uiteinde en wordt het gemiddelde vlak, waarmee de ruis wordt genegeerd.
Het praktische effect is een lijn die vlak wordt tijdens consolidaties en versnelt zodra een gerichte beweging begint. Dit vermindert zowel de lag van langzame gemiddelden als de whipsaws van snelle, ten koste van twee extra parameters om in te stellen.
Voorbeelden
Voorbeeld 1, Standaard AMA op slotkoersen (Indicator)
// Adaptive average: 9-bar efficiency window, fast constant 2, slow constant 30
myAMA = AdaptiveAverage[9, 2, 30](close)
RETURN myAMADe klassieke configuratie. Op de koersgrafiek getekend blijft de lijn in trends dicht bij de koers en wordt hij bijna horizontaal tijdens zijwaartse fases.
Voorbeeld 2, Adaptief trendfilter voor instappen (ProOrder)
// Trade long only while price holds above a flattening-resistant average
ama = AdaptiveAverage[10, 2, 30](close)
IF NOT LongOnMarket AND close CROSSES OVER ama THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF LongOnMarket AND close CROSSES UNDER ama THEN
SELL AT MARKET
ENDIFEen crossover-systeem dat de adaptieve lijn gebruikt in plaats van een gemiddelde met vaste periode. Omdat de AMA vlak wordt in ranges, clusteren crossovers tijdens consolidatie minder dan bij een simple moving average met vergelijkbare snelheid.
Voorbeeld 3, Screenen op koers boven een stijgende AMA (ProScreener)
// Instruments trading above an adaptive average that slopes upward
ama = AdaptiveAverage[9, 2, 30](close)
rising = ama > ama[5]
SCREENER[close > ama AND rising]((close / ama - 1) * 100 AS "% above AMA")Geeft instrumenten waar de koers boven een opwaarts hellend adaptief gemiddelde staat, gesorteerd op procentuele afstand tot de lijn.
Interpretatie
| Observatie | Stand |
|---|---|
| Koers boven een stijgende AMA | Gerichte opwaartse beweging aan de gang. |
| Koers onder een dalende AMA | Gerichte neerwaartse beweging aan de gang. |
| AMA bijna vlak | Lage efficiency ratio, de koers beweegt in een range. Crossover-signalen zijn hier onbetrouwbaar. |
| Hellingsgraad van AMA wordt steiler | De efficiency ratio stijgt, de beweging wordt meer eenzijdig gericht. |
De vlakke-lijnstatus is op zichzelf al informatief. Veel systemen gebruiken de hellingsgraad van de AMA als regimefilter en accepteren alleen signalen van andere indicatoren zolang de adaptieve lijn een duidelijke hellingsgraad heeft.
Veelvoorkomende fouten en valkuilen
- De volgorde van de parameters is belangrijk. De signatuur is
[MAperiod, fastSC, slowSC]. Het verwisselen van de snelle en langzame constanten, bijvoorbeeld[9, 30, 2], keert het adaptieve gedrag om en levert een lijn die versnelt in ruis en vertraagt in trends. - Smoothingconstanten zijn periodes, geen alfa's.
fastSCenslowSCworden uitgedrukt als equivalente EMA-periodes (2 en 30), niet als decimale effeningsfactoren. Het doorgeven van0.6667waar2wordt verwacht geeft geen foutmelding, maar levert een andere berekening dan bedoeld. - Crossovers falen nog steeds in smalle ranges. De AMA vermindert whipsaws, maar verwijdert ze niet. In zeer smalle ranges kan de koers de vlakke lijn herhaaldelijk kruisen. Een voorwaarde met een minimale hellingsgraad of minimale afstand filtert de meeste daarvan weg.
- Een korte MAperiod destabiliseert de efficiency ratio. Waarden onder ongeveer 5 laten de ratio van bar tot bar onregelmatig springen, wat het doel van de aanpassing ondermijnt. Houd het efficiencyvenster van gemiddelde lengte en stel de reactiesnelheid in plaats daarvan af met de smoothingconstanten.
Gerelateerde instructies
Average, simple moving average, de basislijn met vaste snelheid.ExponentialAverage, EMA met een constante smoothingfactor.WilderAverage, Wilder-smoothing, een langzamere EMA-variant.HullAverage, gemiddelde met weinig lag dat gewogen gemiddelden gebruikt.ZLEMA, zero-lag exponentieel voortschrijdend gemiddelde.TEMA, driedubbel exponentieel voortschrijdend gemiddelde.DEMA, dubbel exponentieel voortschrijdend gemiddelde.TimeSeriesAverage, voortschrijdend gemiddelde op basis van lineaire regressie.WeightedAverage, lineair gewogen voortschrijdend gemiddelde.