AdaptiveAverage
AdaptiveAverage i ProBuilder returnerar Adaptive Moving Average, ett glidande medelvärde som anpassar sin hastighet till volatiliteten. Syntax, parametrar, exempel.
Syntax
AdaptiveAverage[MAperiod, fastSC, slowSC](price)Parametrar
| Namn | Typ | Standard | Beskrivning |
|---|---|---|---|
MAperiod | heltal | 9 | Tillbakablickande period som används för att mäta hur riktad den senaste prisrörelsen har varit. |
fastSC | heltal | 2 | Period för snabb utjämningskonstant. Styr hur snabbt genomsnittet reagerar när priset trendar rent. |
slowSC | heltal | 30 | Period för långsam utjämningskonstant. Styr hur trögt genomsnittet blir när priset är stökigt. |
price | priskälla | close | Prisserien som jämnas ut, till exempel close, open, eller typicalprice. |
Formel
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 är effektivitetskvoten. Den närmar sig 1 när priset rör sig i en rak linje över tillbakablicksfönstret och närmar sig 0 när priset rör sig fram och tillbaka utan nettoförflyttning. Den kvadrerade utjämningskonstanten SC interpolerar sedan mellan den snabba och den långsamma EMA-hastigheten.
Så fungerar det
Ett glidande medelvärde med fast period tvingar fram en och samma kompromiss i alla marknadsförhållanden: korta perioder ger whipsaw i intervall, långa perioder släpar efter i trender. Adaptive Moving Average kringgår kompromissen genom att räkna om sin egen utjämningskonstant på varje bar.
När effektivitetsförhållandet är högt, vilket betyder att de senaste barerna mestadels rörde sig i en riktning, förskjuts utjämningskonstanten mot den snabba änden och genomsnittet följer priset tätt. När förhållandet är lågt, vilket betyder att priset täckte en stor sträcka men hamnade ingenstans, förskjuts konstanten mot den långsamma änden och genomsnittet planar ut och ignorerar bruset.
Den praktiska effekten är en linje som planar ut under konsolideringar och accelererar när en riktad rörelse börjar. Detta minskar både eftersläpningsstraffet hos långsamma genomsnitt och whipsaw-straffet hos snabba, till priset av ytterligare två parametrar att konfigurera.
Exempel
Exempel 1, Standard-AMA på stängningskurser (Indicator)
// Adaptive average: 9-bar efficiency window, fast constant 2, slow constant 30
myAMA = AdaptiveAverage[9, 2, 30](close)
RETURN myAMADen klassiska konfigurationen. Ritad på prisdiagrammet håller linjen sig nära priset i trender och blir nästan horisontell under sidledes faser.
Exempel 2, Adaptivt trendfilter för entries (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
ENDIFEtt crossover-system som använder den adaptiva linjen istället för ett genomsnitt med fast period. Eftersom AMA planar ut i intervall klustrar crossovers under konsolidering mindre än med ett enkelt glidande medelvärde av liknande hastighet.
Exempel 3, Screening för pris över en stigande 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")Returnerar instrument där priset ligger över ett uppåtlutande adaptivt genomsnitt, sorterade efter procentuellt avstånd från linjen.
Tolkning
| Observation | Avläsning |
|---|---|
| Pris över en stigande AMA | Riktad uppåtrörelse pågår. |
| Pris under en fallande AMA | Riktad nedåtrörelse pågår. |
| AMA nästan platt | Lågt effektivitetsförhållande, priset rör sig i intervall. Crossover-signaler är opålitliga här. |
| AMA-lutningen blir brantare | Effektivitetsförhållandet stiger, rörelsen blir mer enkelriktad. |
Det platta linjetillståndet är informativt i sig. Många system använder AMA-lutningen som ett regimfilter och accepterar bara signaler från andra indikatorer medan den adaptiva linjen har en tydlig lutning.
Vanliga fel och fallgropar
- Parameterordningen spelar roll. Signaturen är
[MAperiod, fastSC, slowSC]. Att kasta om den snabba och den långsamma konstanten, till exempel[9, 30, 2], inverterar det adaptiva beteendet och ger en linje som snabbar upp i brus och saktar ner i trender. - Utjämningskonstanter är perioder, inte alfavärden.
fastSCochslowSCuttrycks som motsvarande EMA-perioder (2 och 30), inte som decimala utjämningsfaktorer. Att skicka0.6667där2förväntas ger inget fel men leder till en annan beräkning än den avsedda. - Crossovers misslyckas fortfarande i snäva intervall. AMA minskar whipsaws, den tar inte bort dem. I mycket snäva intervall kan priset gång på gång pendla kring den platta linjen. Ett villkor för minsta lutning eller minsta avstånd filtrerar bort de flesta av dessa.
- Kort MAperiod destabiliserar effektivitetsförhållandet. Värden under ungefär 5 gör att förhållandet hoppar oregelbundet från bar till bar, vilket motverkar syftet med anpassningen. Håll effektivitetsfönstret på måttlig längd och justera reaktionsförmågan med utjämningskonstanterna istället.
Relaterade instruktioner
Average, enkelt glidande medelvärde, baslinjen med fast hastighet.ExponentialAverage, EMA med en konstant utjämningsfaktor.WilderAverage, Wilders utjämning, en långsammare EMA-variant.HullAverage, genomsnitt med låg fördröjning som använder viktade genomsnitt.ZLEMA, zero-lag exponentiellt glidande medelvärde.TEMA, trippelt exponentiellt glidande medelvärde.DEMA, dubbelt exponentiellt glidande medelvärde.TimeSeriesAverage, glidande medelvärde baserat på linjär regression.WeightedAverage, linjärt viktat glidande medelvärde.