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

TriangularAverage

TriangularAverage in ProBuilder geeft een dubbel afgevlakt eenvoudig bewegend gemiddelde van de prijs over N bars, wat een extra vloeiende trendlijn oplevert. Syntaxis, voorbeelden.

Syntaxis

probuilder
TriangularAverage[N](price)

Parameters

NaamTypeStandaardBeschrijving
Ngeheel getalgeenTotale lookbackperiode. Grotere waarden geven een vloeiendere, langzamere lijn.
priceprijsbrongeenReeks om te smoothen, meestal close. Elke koersconstante of eigen variabele is toegestaan.

Formule

code
TMA = SMA[m](SMA[m](price))
where m is approximately (N + 1) / 2

De afvlakking wordt in twee doorgangen toegepast: een eenvoudig bewegend gemiddelde van de ruwe data, daarna een eenvoudig bewegend gemiddelde van dat eerste gemiddelde. Het gecombineerde weegschema is triangulair, bars in het midden van het venster hebben het meeste gewicht en de gewichten lopen lineair af naar beide uiteinden, waar de naam vandaan komt.

Hoe het werkt

Een eenvoudig bewegend gemiddelde weegt elke bar in zijn venster gelijk, dus één uitschieter die het venster in- of uitgaat verschuift de lijn merkbaar. Het triangulaire gemiddelde onderdrukt dit effect. Omdat de tweede doorgang het gemiddelde van de eerste neemt, worden korte spikes twee keer verdund, en de resulterende lijn is een van de vloeiendste uit de klassieke familie van bewegende gemiddelden.

De prijs van de dubbele afvlakking is lag. Een TMA draait later dan het gelijkwaardige eenvoudige gemiddelde, en veel later dan de prijs zelf. Hij is daarom beter geschikt om de bestaande trend te beschrijven dan om instappen bij omkeringen te timen. In trendende markten zijn de helling van de lijn en de kant van de lijn waarop de prijs handelt de belangrijkste signalen.

De periode N gedraagt zich zoals bij andere gemiddelden: kleine waarden volgen de prijs dichter, grote waarden leggen de nadruk op de langere cyclus. Omdat de effectieve smoothing dubbel is, voelt een TMA met periode 20 vergelijkbaar met een merkbaar langer simple average.

Voorbeelden

Voorbeeld 1, Getrapte trendlijn uit een TMA over 50 bars (Indicator)

probuilder
// Hold the plotted value until the TMA moves at least 1% away from it
once ssMA = close
MA = TriangularAverage[50](close)
if(MA > ssMA + (MA/100)*1) THEN
  ssMA = MA
ELSIF (MA < ssMA - (MA/100)*1) THEN
  ssMA = MA
ELSE
  ssMA = ssMA
ENDIF
RETURN ssMA

Het triangulaire gemiddelde over 50 periodes wordt omgezet in een getrapte lijn die alleen wordt bijgewerkt wanneer de TMA meer dan 1 procent afwijkt van de laatst opgeslagen waarde. Kleine schommelingen in het gemiddelde worden genegeerd en de plot verandert alleen van niveau bij betekenisvolle bewegingen.

Voorbeeld 2, Crossover-systeem van prijs en TMA (ProOrder)

probuilder
// Trend following on closes crossing the triangular average
tma = TriangularAverage[50](close)

IF close CROSSES OVER tma THEN
  BUY 1 CONTRACT AT MARKET
ELSIF close CROSSES UNDER tma THEN
  SELL AT MARKET
ENDIF

Omdat de TMA zeer vloeiend is, kruist de prijs de lijn minder vaak dan bij een eenvoudig gemiddelde met dezelfde periode, wat minder maar langere signalen oplevert.

Voorbeeld 3, Scan op stijgende TMA (ProScreener)

probuilder
tma = TriangularAverage[20](close)
SCREENER[tma > tma[5]] ((tma - tma[5]) AS "TMA slope")

Geeft instrumenten waarvan het triangulaire gemiddelde over 20 periodes hoger is dan vijf bars eerder, gerangschikt op de grootte van de stijging, een eenvoudig uptrendfilter.

Interpretatie

De standaardconventies voor bewegende gemiddelden gelden. Een prijs boven een stijgende TMA duidt op een uptrend, een prijs onder een dalende TMA op een downtrend, en een vlakke TMA op een range. Omdat de lijn dubbel is afgevlakt, zijn de veranderingen in de helling zeldzamer en bedachtzamer dan bij andere gemiddelden, wat de TMA populair maakt als trendfilter: neem long-signalen van een sneller instrument alleen zolang de TMA stijgt, shorts alleen zolang hij daalt. Crossovers van prijs en TMA komen laat ten opzichte van de werkelijke omslag, dus ze bevestigen omkeringen in plaats van erop te anticiperen.

Veelvoorkomende fouten en valkuilen

  • Verkeerd type haakjes. De periode hoort tussen vierkante haken en de prijs tussen ronde haken: TriangularAverage[50](close). Schrijven TriangularAverage(50, close) is een syntaxisfout.
  • Tijdige omkeersignalen verwachten. De dubbele afvlakking maakt de TMA een van de meest vertraagde gangbare gemiddelden. Instappen op basis van TMA-omslagen vinden ver na de prijsomkering plaats, waar vooral mean reversion-logica rekening mee moet houden.
  • De effectieve periode onderschatten. Een TMA met periode N vlakt ongeveer af als een aanzienlijk langer simpel gemiddelde. Een strategie overzetten van Average[N] naar TriangularAverage[N] van karakter verandert, stem de periode opnieuw af.
  • Opwarmbars. Twee afvlakkingsrondes vereisen ruwweg N bars historie voordat de uitvoer stabiliseert. Waarden op de vroegste bars van de grafiek zijn onbetrouwbaar.
  • Average, eenvoudig bewegend gemiddelde, de basis met één doorgang.
  • ExponentialAverage, exponentieel gewogen gemiddelde met minder lag.
  • WeightedAverage, lineair gewogen gemiddelde dat recente bars zwaarder weegt.
  • TimeSeriesAverage, bewegend gemiddelde op basis van regressie.
  • WilderAverage, de afvlakking van Wilder die binnen RSI en ATR wordt gebruikt.
  • HullAverage, bewegend gemiddelde ontworpen om lag te minimaliseren.
  • DEMA, dubbel exponentieel bewegend gemiddelde, minder lag dan een dubbele SMA.
  • TEMA, driedubbel exponentieel voortschrijdend gemiddelde.
  • ZLEMA, zero-lag exponentieel voortschrijdend gemiddelde.