Bli medlem idag
Indikatorer/probuilder · probacktest · proorder · proscreener

TimeSeriesAverage

TimeSeriesAverage i ProBuilder returnerar ett regressionsbaserat glidande medelvärde av priset över N barer, som reagerar snabbare än ett enkelt medelvärde. Syntax och exempel.

Syntax

probuilder
TimeSeriesAverage[N](price)

Parametrar

NamnTypStandardBeskrivning
NheltalingenAntal barer i lookback-fönstret. Små värden följer priset nära, stora värden ger en jämnare, långsammare linje.
pricepriskällaingenSerien som ska medelvärdesberäknas. Vanligtvis close, men open, high, low, typicalprice eller någon egen variabel accepteras.

Formel

kod
TSMA = value at the current bar of the least squares
       regression line fitted to the last N values of price

En rät linje anpassas genom de senaste N värden för price med linjär regression, och medelvärdet tar värdet av den linjen på den senaste baren. Eftersom anpassningen projicerar datans aktuella riktning i stället för att vikta alla barer lika följer resultatet en trendande serie tätare än ett enkelt medelvärde med samma period.

Så fungerar det

På varje bar anpassar funktionen om regressionslinjen över det rullande fönstret av de senaste N värden och matar ut ändpunkten på den linjen. Utdatan är en utjämnad prisserie i samma enheter som indatan, så den kan ritas direkt i prisdiagrammet, jämföras mot andra glidande medelvärden eller användas som en dynamisk stöd- och referensnivå.

Jämfört med Average (enkelt glidande medelvärde) har tidsseriemetoden mindre eftersläpning i ihållande trender, eftersom regressionsanpassningen extrapolerar fönstrets lutning. Avvägningen är beteendet vid vändpunkter: när priset vänder skarpt kan den anpassade linjen en kort stund peka fel eller skjuta över innan fönstret hinner med.

Valet av N styr balansen mellan känslighet och stabilitet. Ett kort fönster som 10 reagerar inom några barer men ger fler falska riktningsändringar. Ett längre fönster som 50 eller 100 filtrerar brus och lämpar sig bättre för att identifiera den underliggande trenden.

Exempel

Exempel 1, Grundläggande 20-barsutjämning (Indikator)

probuilder
// Smooth the closing prices over the last 20 bars
averagePrice = TimeSeriesAverage[20](close)
RETURN averagePrice

Beräknar det 20-periodiga time series-glidande medelvärdet av stängningen och ritar det. Linjen håller sig nära priset i trender samtidigt som den filtrerar bruset från bar till bar.

Exempel 2, Korsning mellan snabbt och långsamt medelvärde (ProOrder)

probuilder
// Regression based fast line against a simple slow line
fastLine = TimeSeriesAverage[20](close)
slowLine = Average[50](close)

IF fastLine CROSSES OVER slowLine THEN
  BUY 1 CONTRACT AT MARKET
ELSIF fastLine CROSSES UNDER slowLine THEN
  SELL AT MARKET
ENDIF

En klassisk strategi med dubbla glidande medelvärden. Att använda TimeSeriesAverage för den snabba linjen utlöser korsningar något tidigare än ett enkelt medelvärde av samma period skulle göra.

Exempel 3, Instrument som handlas över sitt medelvärde (ProScreener)

probuilder
tsa = TimeSeriesAverage[20](close)
SCREENER[close > tsa] ((close / tsa - 1) * 100 AS "Pct above TSA")

Returnerar instrument vars senaste pris ligger över deras 20-periodiga time series-medelvärde, sorterade efter det procentuella avståndet mellan priset och linjen.

Tolkning

Läsningarna följer de vanliga konventionerna för glidande medelvärden. Pris över en stigande linje indikerar en upptrend, pris under en fallande linje indikerar en nedtrend. Korsningar mellan priset och linjen, eller mellan ett snabbt och ett långsamt medelvärde, används ofta som signaler om trendskifte. Eftersom regressionsändpunkten reagerar snabbt uppträder signalerna tidigare än med ett enkelt medelvärde men innehåller fler whipsaws i sidledes marknader. Att bekräfta med ett lutningsvillkor, till exempel att linjen är högre än fem barer tillbaka, filtrerar bort en del av det bruset.

Vanliga fel och fallgropar

  • Fel typ av parentes. TimeSeriesAverage(20, close) kompilerar inte. Perioden står i hakparenteser och priskällan i parenteser: TimeSeriesAverage[20](close).
  • Överskjutning vid vändningar. Regressionsanpassningen extrapolerar den aktuella lutningen, så efter en skarp vändning kan linjen fortsätta röra sig i den gamla riktningen under några barer. Signaler som tas vid exakta vändpunkter är mindre tillförlitliga än med långsammare medelvärden.
  • Otillräcklig historik. Den första N barerna i ett diagram innehåller inte ett fullt fönster, så tidiga värden är opålitliga. Backtest bör utesluta uppvärmningsperioden eller förladda tillräckligt många barer.
  • Perioden är för kort. Värden som TimeSeriesAverage[3] följer priset nästan tick för tick och ger konstanta riktningsändringar. För trendidentifiering är perioder på 20 eller mer typiska.
  • Average, enkelt glidande medelvärde, den grundläggande utjämningsmetoden.
  • ExponentialAverage, exponentiell viktning med mindre eftersläpning än ett enkelt medelvärde.
  • WeightedAverage, linjärt viktat glidande medelvärde.
  • TriangularAverage, dubbelt utjämnat enkelt glidande medelvärde.
  • EndPointAverage, nära relaterat regressionsändpunktsmedelvärde.
  • LinearRegression, den underliggande minstakvadratanpassningen som ett fristående verktyg.
  • HullAverage, glidande medelvärde med låg eftersläpning byggt av viktade medelvärden.
  • ZLEMA, zero-lag exponentiellt glidande medelvärde.