Bli medlem i dag
Indikatorer/probuilder · probacktest · proorder · proscreener

AdaptiveAverage

AdaptiveAverage i ProBuilder returnerer Adaptive Moving Average, et glidende gjennomsnitt som tilpasser hastigheten sin til volatiliteten. Syntaks, parametere, eksempler.

Syntaks

probuilder
AdaptiveAverage[MAperiod, fastSC, slowSC](price)

Parametere

NavnTypeStandardBeskrivelse
MAperiodheltall9Tilbakeblikksperiode som brukes til å måle hvor retningsbestemt den siste prisbevegelsen har vært.
fastSCheltall2Periode for rask utjevningskonstant. Styrer hvor raskt gjennomsnittet reagerer når prisen trender rent.
slowSCheltall30Periode for langsom utjevningskonstant. Styrer hvor treg gjennomsnittet blir når prisen er støyende.
pricepriskildelukkPrisserien som utjevnes, for eksempel close, open, eller typicalprice.

Formel

kode
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 er effektivitetsforholdet. Det nærmer seg 1 når prisen beveger seg i en rett linje over tilbakeblikksvinduet, og nærmer seg 0 når prisen går fram og tilbake uten netto framdrift. Den kvadrerte utjevningskonstanten SC interpolerer deretter mellom rask og langsom EMA-hastighet.

Slik fungerer det

Et glidende gjennomsnitt med fast periode tvinger fram ett og samme kompromiss i alle markedsforhold: korte perioder gir whipsaw i sideveis markeder, lange perioder henger etter i trender. Adaptive Moving Average omgår kompromisset ved å beregne sin egen utjevningskonstant på nytt for hver bar.

Når effektivitetsforholdet er høyt, altså når de siste barene i hovedsak har beveget seg i én retning, forskyves utjevningskonstanten mot den raske enden, og gjennomsnittet følger prisen tett. Når forholdstallet er lavt, altså når prisen har tilbakelagt mye distanse, men endt opp på samme sted, forskyves konstanten mot den langsomme enden, og gjennomsnittet flater ut og ignorerer støyen.

Den praktiske effekten er en linje som flater ut under konsolideringer og akselererer når en retningsbestemt bevegelse starter. Dette reduserer både forsinkelsesulempen ved langsomme gjennomsnitt og whipsaw-ulempen ved raske, til prisen av to ekstra parametere som må konfigureres.

Eksempler

Eksempel 1, Standard AMA på lukkekurser (Indikator)

probuilder
// Adaptive average: 9-bar efficiency window, fast constant 2, slow constant 30
myAMA = AdaptiveAverage[9, 2, 30](close)
RETURN myAMA

Den klassiske konfigurasjonen. Tegnet inn i prisdiagrammet holder linjen seg nær prisen i trender og blir nesten horisontal i sideveis faser.

Eksempel 2, Adaptivt trendfilter for innganger (ProOrder)

probuilder
// 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
ENDIF

Et kryssingssystem som bruker den adaptive linjen i stedet for et gjennomsnitt med fast periode. Fordi AMA flater ut i sideveis markeder, klumper kryssinger seg mindre under konsolidering enn med et enkelt glidende gjennomsnitt med tilsvarende hastighet.

Eksempel 3, Screening for pris over en stigende AMA (ProScreener)

probuilder
// 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")

Returnerer instrumenter der prisen ligger over et adaptivt gjennomsnitt med stigende helning, sortert etter prosentvis avstand fra linjen.

Tolkning

ObservasjonAvlesning
Pris over en stigende AMARetningsbestemt oppadgående bevegelse pågår.
Pris under en fallende AMARetningsbestemt nedadgående bevegelse pågår.
AMA nesten flatLavt effektivitetsforhold, prisen går sideveis. Kryssingssignaler er upålitelige her.
AMA-stigningen blir brattereEffektivitetsforholdet stiger, bevegelsen blir mer ensrettet.

Tilstanden med flat linje er informativ i seg selv. Mange systemer bruker AMA-helningen som et regimefilter, og godtar bare signaler fra andre indikatorer så lenge den adaptive linjen har en klar helning.

Vanlige feil og fallgruver

  • Rekkefølgen på parameterne har betydning. Signaturen er [MAperiod, fastSC, slowSC]. Å bytte om de raske og langsomme konstantene, for eksempel [9, 30, 2], inverterer den adaptive atferden og gir en linje som akselererer i støy og bremser i trender.
  • Utjevningskonstanter er perioder, ikke alfaer. fastSC og slowSC uttrykkes som ekvivalente EMA-perioder (2 og 30), ikke som desimale glattingsfaktorer. Å sende 0.6667 der 2 forventes, gir ikke en feil, men gir en annen beregning enn tiltenkt.
  • Kryssinger svikter fortsatt i trange sideveis markeder. AMA reduserer whipsaw, den fjerner det ikke. I svært trange sideveis markeder kan prisen gjentatte ganger ligge på begge sider av den flate linjen. En betingelse om minimumshelning eller minimumsavstand filtrerer bort de fleste av disse.
  • Kort MAperiod destabiliserer effektivitetsforholdet. Verdier under omtrent 5 gjør at forholdstallet hopper uregelmessig fra bar til bar, noe som undergraver hele poenget med tilpasningen. Hold effektivitetsvinduet på moderat lengde og juster responsen med utjevningskonstantene i stedet.
  • Average, enkelt glidende gjennomsnitt, utgangspunktet med fast hastighet.
  • ExponentialAverage, EMA med en konstant utjevningsfaktor.
  • WilderAverage, Wilders utjevning, en langsommere EMA-variant.
  • HullAverage, gjennomsnitt med lav forsinkelse basert på vektede gjennomsnitt.
  • ZLEMA, zero-lag eksponentielt glidende gjennomsnitt.
  • TEMA, trippelt eksponentielt glidende gjennomsnitt.
  • DEMA, dobbelt eksponentielt glidende gjennomsnitt.
  • TimeSeriesAverage, glidende gjennomsnitt basert på lineær regresjon.
  • WeightedAverage, lineært vektet glidende gjennomsnitt.