Iscriviti ora
Istruzioni/probuilder · probacktest · proorder · proscreener

HighestBars

HighestBars in ProBuilder restituisce l'offset in bar verso il valore massimo di una serie su un periodo, dove 0 significa che il bar corrente contiene il valore massimo.

Sintassi

probuilder
HighestBars[Period](source)

Parametri

NomeTipoPredefinitoDescrizione
PeriodinteroobbligatorioNumero di bar passati da scansionare, incluso il bar corrente.
fonteserie numericaobbligatorioLa serie da cercare, come close, high, volume, o un indicatore.

Formula

Per una finestra di Period bar che terminano al bar attuale:

codice
HighestBars[Period](x) = offset k in [0, Period - 1]
                         where x[k] is the maximum of the window

Se non si può determinare alcun massimo nella finestra, la funzione restituisce -1.

Come funziona

HighestBars individua la posizione del massimo anziché il massimo stesso. Dove Highest[20](close) risponde a "qual è stata la chiusura più alta degli ultimi 20 bar", HighestBars[20](close) risponde alla domanda "quanto tempo fa è avvenuto". Il risultato è uno scostamento in bar contato a ritroso dalla bar corrente, quindi si inserisce direttamente nell'indicizzazione delle serie: close[HighestBars[20](close)] legge il close più alto della finestra.

L'offset parte da zero. Un valore restituito di 0 significa che il bar corrente porta il valore più alto, che è già di per sé un segnale utile e indica nuovi massimi della finestra. Quando più bar condividono lo stesso valore massimo, la funzione riporta la prima occorrenza trovata scorrendo a ritroso dal bar corrente, cioè quella più recente.

Il valore si aggiorna su ogni bar. Mentre la finestra avanza, un vecchio picco finisce per uscire dalla finestra e la funzione salta all'offset del bar più alto successivo ancora al suo interno.

Esempi

Esempio 1, Etichettatura della chiusura di picco (Indicatore)

probuilder
myHighest = HighestBars[10](close)
IF myHighest > 0 THEN
  // Place a label on the bar that holds the highest close of the window
  DRAWTEXT("Highest close in last 10 bars", barindex - myHighest, close[myHighest])
ENDIF

HighestBars trova quante bar indietro si è verificata la chiusura più alta delle ultime 10 bar, e DRAWTEXT ancora un'etichetta a quella bar. Il controllo myHighest > 0 salta i bar in cui la chiusura attuale è essa stessa il massimo.

Esempio 2, Bar trascorsi dal massimo a 50 bar (Indicatore)

probuilder
// Plot the age of the highest high inside a 50-bar window
RETURN HighestBars[50](high) AS "bars since 50-bar high"

La linea tracciata scende a 0 ogni volta che viene segnato un nuovo massimo a 50 bar e sale di uno su ogni bar che non riesce a superarlo, una misura compatta di quanto sia vecchio il massimo corrente.

Esempio 3, Ingresso solo su nuovi massimi (ProOrder)

probuilder
recency = HighestBars[20](close)
// An offset of 0 means this bar set the highest close of the window
IF recency = 0 AND NOT ONMARKET THEN
  BUY 1 CONTRACT AT MARKET
ENDIF
SET STOP PLOSS 40

La strategia compra solo sui bar che stabiliscono un nuovo massimo di chiusura a 20 bar, usando l'offset zero come conferma di breakout.

Errori e insidie comuni

  • Offset, non valore. HighestBars restituisce un conteggio di barre, non un prezzo. Tracciarlo come se fosse il valore di picco produce un dente di sega tra 0 e Period. Usa Highest per il valore stesso.
  • Conteggio a partire da zero. 0 si riferisce alla bar corrente, quindi il valore massimo restituibile è Period - 1. La logica scritta come se il conteggio partisse da 1 manca completamente i nuovi massimi.
  • Il caso -1. Quando la finestra non può produrre un massimo, la funzione restituisce -1. Passare quel valore direttamente a un indice di serie come close[-1] non è valido, quindi proteggi il risultato prima di indicizzarlo.
  • I pareggi si risolvono sul bar più recente. Con massimi duplicati nella finestra, vince l'offset più piccolo. I calcoli che presuppongono l'occorrenza più vecchia saranno errati della distanza tra i duplicati.
  • Highest, il valore massimo stesso su un periodo.
  • Lowest, il valore minimo su un periodo.
  • LowestBars, offset verso il valore minimo, lo specchio di HighestBars.
  • BarsSince, bar trascorsi da quando una condizione arbitraria era vera.
  • BarIndex, numero assoluto del bar, usato per convertire gli offset in posizioni sul grafico.
  • DRAWTEXT, disegna un'etichetta su un bar individuato con l'offset restituito.
  • Summation, aggregazione di una serie su finestra fissa.