Average
Average in ProBuilder geeft een moving average van elke reeks, met een optioneel type-argument dat SMA, EMA, WMA, Wilder, Hull en meer selecteert. Voorbeelden.
Syntaxis
Average[N](price)
Average[N,M](price)Parameters
| Naam | Type | Standaard | Beschrijving |
|---|---|---|---|
N | geheel getal | 20 | Aantal bars in het gemiddelde. Kortere periodes volgen de prijs nauwer; langere periodes vlakken meer af en lopen meer achter. |
M | geheel getal | 0 | Optionele selector voor het type gemiddelde. Zie de tabel hieronder. |
price | prijsbron | close | De reeks waarvan het gemiddelde wordt genomen. Accepteert elke prijsconstante of eigen variabele, inclusief andere indicatoren. |
Waarden voor M:
M | Type gemiddelde |
|---|---|
| 0 | Simple Moving Average (SMA) |
| 1 | Exponential Moving Average (EMA) |
| 2 | Weighted Moving Average (WMA) |
| 3 | Wilder's Moving Average |
| 4 | Triangular Moving Average |
| 5 | End Point Moving Average |
| 6 | Time Series Moving Average |
| 7 | Hull Moving Average (ProRealTime™ v11 en later) |
| 8 | Zero-Lag Moving Average (ProRealTime™ v11 en later) |
Formule
SMA = (price + price[1] + ... + price[N-1]) / NMet M weggelaten of 0, dan is het resultaat het rekenkundig gemiddelde van de laatste N waarden. Elke andere M waarde past het weegschema van het bijbehorende gemiddeldetype toe; de specifieke instructies (ExponentialAverage, WeightedAverage, WilderAverage, enzovoort) documenteren die definities.
Hoe het werkt
Average is de algemene smoothingfunctie van ProBuilder. Op elke bar herberekent het het gemiddelde van de meest recente N waarden van de gegeven serie, wat een lijn oplevert die ruis van bar tot bar filtert, ten koste van een reactie op veranderingen met een vertraging die proportioneel is aan N.
Het tweede argument tussen haken maakt van één functie negen. Average[20,1](close) is gelijk aan ExponentialAverage[20](close), Average[20,3](close) naar WilderAverage[20](close), enzovoort. Dit is handig wanneer het type gemiddelde zelf een variabele is, bijvoorbeeld wanneer een optimizer of een indicatorinstelling tussen SMA en EMA moet wisselen zonder code te herschrijven.
De invoer hoeft geen prijs te zijn. Elke numerieke reeks werkt, dus Average wordt routinematig gebruikt om oscillatoren, volume, spreads of de uitvoer van andere berekeningen te effenen.
Voorbeelden
Voorbeeld 1, Snelle en langzame simpele gemiddelden (Indicator)
// Plot a 7-period and a 20-period simple moving average
FastMA = Average[7](Close)
SlowMA = Average[20](Close)
RETURN FastMA coloured(221,33,33), SlowMA coloured(35,194,57)Tekent twee SMA's van de close, de snelle in rood en de langzame in groen. Het paar visualiseert het momentum op korte termijn tegen de bredere drift.
Voorbeeld 2, Moving average crossover-systeem (ProOrder)
// Reverse position on each crossover of the 20 and 50 SMA
fastMA = Average[20](close)
slowMA = Average[50](close)
IF fastMA CROSSES OVER slowMA THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF fastMA CROSSES UNDER slowMA AND LongOnMarket THEN
SELL AT MARKET
ENDIFDe strategie houdt een long positie aan zolang het gemiddelde over 20 periodes boven het gemiddelde over 50 periodes ligt en stapt uit wanneer die verhouding omkeert, het minimale sjabloon voor trendvolgende logica.
Voorbeeld 3, Afstand tot het 200-bar gemiddelde (ProScreener)
// List instruments trading above their 200-period average
ma200 = Average[200](close)
gap = (close / ma200 - 1) * 100
SCREENER[close > ma200](gap AS "% above MA200")Filtert de watchlist op instrumenten boven hun langetermijngemiddelde en rangschikt ze op het procentuele verschil, een simpele relative-strength scan.
Interpretatie
Prijs versus het gemiddelde. Een prijs die zich boven een stijgend gemiddelde handhaaft, is de standaarddefinitie van een opwaartse trend op die horizon; een prijs onder een dalend gemiddelde die van een neerwaartse trend. De gemiddelden over 50 en 200 periodes zijn de meest bekeken referentielijnen.
Kruisingen. Een snel gemiddelde dat boven een langzaam gemiddelde kruist, signaleert dat recente prijzen de oudere voorbijstreven, een omslag in momentum. Crossovers lopen door hun constructie achter, dus ze bevestigen trends in plaats van erop vooruit te lopen, en in zijwaartse markten leveren ze whipsaws op.
Helling. De richting van het gemiddelde zelf is vaak informatiever dan een enkele kruising. Een vlak gemiddelde duidt op een range, waarin crossover-signalen sterk verslechteren.
Veelvoorkomende fouten en valkuilen
- Verkeerd type haakjes.
Average(20, close)geeft een syntaxisfout. Periode en type gaan tussen vierkante haken, de reeks tussen ronde haken:Average[20,1](close). - Ongeldige typeselector.
Mbuiten 0 tot 8 is geen geldig gemiddeldetype. Waarden 7 en 8 vereisen bovendien ProRealTime™ v11 of hoger. - Aannemen dat EMA standaard is. Met één argument geeft de functie altijd een simpel gemiddelde. Code die is overgezet van platforms waar de standaard exponentieel is, gedraagt zich anders totdat
,1wordt toegevoegd. - Crossover-systemen in ranges. Twee gemiddelden van een zijwaartse reeks kruisen elkaar herhaaldelijk. Zonder trend- of volatiliteitsfilter verzamelt het crossover-sjabloon in Voorbeeld 2 verliesgevende trades in vlakke markten.
Gerelateerde instructies
ExponentialAverage, speciale EMA, gelijk aanM = 1.WeightedAverage, lineair gewogen gemiddelde, gelijk aanM = 2.WilderAverage, Wilder-smoothing, equivalent aanM = 3.TriangularAverage, dubbel gesmoothd gemiddelde, gelijk aanM = 4.EndPointAverage, regression end point average, equivalent aanM = 5.TimeSeriesAverage, gemiddelde van de tijdreeks, equivalent aanM = 6.HullAverage, Hull-gemiddelde met weinig lag, gelijk aanM = 7.ZLEMA, zero-lag exponential average, equivalent aanM = 8.RSI, oscillator die vaak wordt afgevlakt metAverage.