Average
Average i ProBuilder returnerar ett glidande medelvärde av valfri serie, med ett valfritt typargument som väljer SMA, EMA, WMA, Wilder, Hull med flera. Exempel.
Syntax
Average[N](price)
Average[N,M](price)Parametrar
| Namn | Typ | Standard | Beskrivning |
|---|---|---|---|
N | heltal | 20 | Antal barer i medelvärdet. Kortare perioder följer kursen nära; längre perioder jämnar ut mer och ligger mer efter. |
M | heltal | 0 | Valfri väljare för medelvärdestyp. Se tabellen nedan. |
price | priskälla | close | Serien som ska medelvärdesberäknas. Accepterar valfri priskonstant eller egen variabel, inklusive andra indikatorer. |
Värden för M:
M | Medelvärdestyp |
|---|---|
| 0 | Enkelt glidande medelvärde (SMA) |
| 1 | Exponentiellt glidande medelvärde (EMA) |
| 2 | Viktat glidande medelvärde (WMA) |
| 3 | Wilders glidande medelvärde |
| 4 | Triangulärt glidande medelvärde |
| 5 | Glidande medelvärde med slutpunkt |
| 6 | Glidande medelvärde för tidsserier |
| 7 | Hull Moving Average (ProRealTime™ v11 och senare) |
| 8 | Zero-Lag Moving Average (ProRealTime™ v11 och senare) |
Formel
SMA = (price + price[1] + ... + price[N-1]) / NMed M utelämnas eller är 0, blir resultatet det aritmetiska medelvärdet av de senaste N värden. Varje annan M värde tillämpar viktningsschemat för motsvarande medelvärdestyp; de dedikerade instruktionerna (ExponentialAverage, WeightedAverage, WilderAverage, och så vidare) dokumenterar de definitionerna.
Så fungerar det
Average är ProBuilders allmänna utjämningsfunktion. På varje bar räknar den om medelvärdet av de senaste N värden av den angivna serien, vilket ger en linje som filtrerar bruset från bar till bar till priset av att reagera på förändringar med en fördröjning proportionell mot N.
Det andra hakparentesargumentet gör en funktion till nio. Average[20,1](close) motsvarar ExponentialAverage[20](close), Average[20,3](close) till WilderAverage[20](close), och så vidare. Det är praktiskt när medelvärdestypen själv är en variabel, till exempel när en optimerare eller en indikatorinställning ska växla mellan SMA och EMA utan att koden skrivs om.
Indatan behöver inte vara ett pris. Vilken numerisk serie som helst fungerar, så Average används rutinmässigt för att jämna ut oscillatorer, volym, spreads eller utdata från andra beräkningar.
Exempel
Exempel 1, Snabba och långsamma enkla medelvärden (Indikator)
// 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)Ritar ut två SMA av stängningskursen, den snabba i rött och den långsamma i grönt. Paret visualiserar kortsiktigt momentum mot den bredare driften.
Exempel 2, System med korsande glidande medelvärden (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
ENDIFStrategin håller en long-position så länge 20-periodsmedelvärdet ligger över 50-periodsmedelvärdet och stänger när förhållandet inverteras, den minimala mallen för trendföljande logik.
Exempel 3, Avstånd från 200-barsmedelvärdet (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")Filtrerar bevakningslistan till instrument över sitt långsiktiga medelvärde och rangordnar dem efter den procentuella skillnaden, en enkel skanning av relativ styrka.
Tolkning
Kursen mot medelvärdet. Att kursen håller sig över ett stigande medelvärde är standarddefinitionen av en uppåtgående trend på den horisonten; kursen under ett fallande medelvärde, en nedåtgående trend. Medelvärdena med 50 och 200 perioder är de mest bevakade referenslinjerna.
Korsningar. När ett snabbt medelvärde korsar över ett långsamt signalerar det att de senaste kurserna rör sig snabbare än de äldre, ett momentumskifte. Korsningar ligger efter av konstruktion, så de bekräftar trender snarare än förutser dem, och de ger falska signaler i sidledes marknader.
Lutning. Riktningen på själva medelvärdet är ofta mer informativ än en enskild korsning. Ett platt medelvärde indikerar en range, där korsningssignaler försämras kraftigt.
Vanliga fel och fallgropar
- Fel typ av parentes.
Average(20, close)ger ett syntaxfel. Period och typ står i hakparenteser, serien i parenteser:Average[20,1](close). - Ogiltig typväljare.
Mutanför 0 till 8 är inte en giltig medelvärdestyp. Värdena 7 och 8 kräver dessutom ProRealTime™ v11 eller senare. - Att anta att EMA är standard. Med ett argument returnerar funktionen alltid ett enkelt medelvärde. Kod som flyttats från plattformar vars standard är exponentiell beter sig annorlunda tills
,1läggs till. - Korsningssystem i range. Två medelvärden av en sidledes serie korsar varandra upprepade gånger. Utan ett trend- eller volatilitetsfilter ackumulerar korsningsmallen i Exempel 2 förlustaffärer i platta marknader.
Relaterade instruktioner
ExponentialAverage, dedikerad EMA, likvärdig medM = 1.WeightedAverage, linjärt viktat medelvärde, motsvararM = 2.WilderAverage, Wilders utjämning, motsvarandeM = 3.TriangularAverage, dubbelt utjämnat medelvärde, motsvararM = 4.EndPointAverage, regression end point average, motsvarandeM = 5.TimeSeriesAverage, tidsseriegenomsnitt, motsvarandeM = 6.HullAverage, Hull-medelvärde med låg eftersläpning, likvärdigt medM = 7.ZLEMA, zero-lag exponential average, motsvarandeM = 8.RSI, oscillator som ofta jämnas ut medAverage.