Iscriviti ora
Indicatori/probuilder · probacktest · proorder · proscreener

TimeSeriesAverage

TimeSeriesAverage in ProBuilder restituisce una media mobile del prezzo basata sulla regressione su N bar, che reagisce più rapidamente di una media semplice. Sintassi ed esempi.

Sintassi

probuilder
TimeSeriesAverage[N](price)

Parametri

NomeTipoPredefinitoDescrizione
NinteronessunoNumero di bar nella finestra di lookback. Valori piccoli seguono il prezzo da vicino, valori grandi producono una linea più liscia e più lenta.
pricefonte di prezzonessunoLa serie da mediare. Tipicamente close, ma open, high, low, typicalprice o qualsiasi variabile personalizzata è accettata.

Formula

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

Una retta viene interpolata sugli ultimi N valori di price usando la regressione lineare, e la media assume il valore di quella retta sul bar più recente. Poiché l'interpolazione proietta la direzione corrente dei dati anziché pesare allo stesso modo tutti i bar, il risultato aderisce a una serie in trend più strettamente di una media semplice dello stesso periodo.

Come funziona

Su ogni bar la funzione riadatta la retta di regressione sulla finestra mobile delle ultime N valori e restituisce il punto finale di quella retta. L'output è una serie di prezzi lisciata nelle stesse unità dell'input, quindi può essere tracciata direttamente sul grafico dei prezzi, confrontata con altre medie mobili, oppure usata come livello di supporto e riferimento dinamico.

Rispetto a Average (media mobile semplice), il metodo delle serie temporali ha meno ritardo nei trend prolungati perché la retta di regressione estrapola l'inclinazione della finestra. Il compromesso è il comportamento ai punti di svolta: quando il prezzo si inverte bruscamente, la retta interpolata può puntare brevemente nella direzione sbagliata o eccedere prima che la finestra si adegui.

La scelta di N controlla l'equilibrio tra reattività e stabilità. Una finestra breve come 10 reagisce entro pochi bar ma produce più falsi cambi di direzione. Una finestra più lunga come 50 o 100 filtra il rumore ed è più adatta a identificare il trend di fondo.

Esempi

Esempio 1, Smoothing di base a 20 bar (Indicatore)

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

Calcola la media mobile time series a 20 periodi della chiusura e la traccia. La linea resta vicina al prezzo nei trend filtrando il rumore da bar a bar.

Esempio 2, Incrocio tra media rapida e lenta (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

Una classica strategia a doppia media mobile. Usando TimeSeriesAverage per la linea veloce genera crossover leggermente prima di quanto farebbe una media semplice dello stesso periodo.

Esempio 3, Strumenti che quotano sopra la loro media (ProScreener)

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

Restituisce gli strumenti il cui ultimo prezzo è sopra la loro media time series a 20 periodi, ordinati per la distanza percentuale tra il prezzo e la linea.

Interpretazione

Le letture seguono le consuete convenzioni delle medie mobili. Un prezzo sopra una linea in salita indica un trend rialzista, un prezzo sotto una linea in discesa indica un trend ribassista. Gli incroci tra il prezzo e la linea, o tra una media rapida e una lenta, sono comunemente usati come segnali di cambio di trend. Poiché l'endpoint di regressione reagisce rapidamente, i segnali compaiono prima che con una media semplice, ma comprendono più whipsaw nei mercati laterali. Confermare con una condizione sulla pendenza, per esempio che la linea sia più alta di cinque bar prima, filtra parte di quel rumore.

Errori e insidie comuni

  • Tipo di parentesi errato. TimeSeriesAverage(20, close) non compila. Il periodo va tra parentesi quadre e la fonte di prezzo tra parentesi tonde: TimeSeriesAverage[20](close).
  • Overshoot in corrispondenza delle inversioni. Il fit di regressione estrapola la pendenza corrente, quindi dopo un'inversione brusca la linea può continuare a muoversi nella vecchia direzione per alcune bar. I segnali presi esattamente nei punti di svolta sono meno affidabili che con medie più lente.
  • Storico insufficiente. Il primo N bar di un grafico non contengono una finestra completa, quindi i primi valori non sono affidabili. I backtest dovrebbero escludere il periodo di riscaldamento o precaricare un numero sufficiente di bar.
  • Periodo troppo breve. Valori come TimeSeriesAverage[3] seguono il prezzo quasi tick per tick e generano continui cambi di direzione. Per identificare il trend, periodi di 20 o più sono tipici.
  • Average, media mobile semplice, il metodo di smoothing di riferimento.
  • ExponentialAverage, ponderazione esponenziale con meno ritardo di una media semplice.
  • WeightedAverage, media mobile ponderata linearmente.
  • TriangularAverage, media mobile semplice a doppio smoothing.
  • EndPointAverage, media di endpoint di regressione strettamente correlata.
  • LinearRegression, il fit ai minimi quadrati sottostante come strumento autonomo.
  • HullAverage, media mobile a basso ritardo costruita a partire da medie ponderate.
  • ZLEMA, media mobile esponenziale a lag zero.