Iscriviti ora
Matematica/probuilder · probacktest · proorder · proscreener

MAX

MAX in ProBuilder restituisce il maggiore di due valori o variabili. Sintassi, parametri ed esempi per limitare inferiormente, vincolare e confrontare due serie di dati.

Sintassi

probuilder
MAX(a, b)

Parametri

NomeTipoDescrizione
anumeroPrimo valore o variabile da confrontare.
bnumeroSecondo valore o variabile da confrontare.

Formula

codice
MAX(a, b) = a if a >= b, otherwise b

Il risultato è pari all'argomento maggiore. Quando i due sono uguali, viene restituito uno qualsiasi dei due valori poiché sono identici.

Come funziona

MAX accetta esattamente due argomenti e restituisce il maggiore. È il corrispettivo a due valori di Highest, che scansiona una singola serie su una finestra di lookback. Per scegliere il maggiore tra tre o più valori, annida le chiamate: MAX(a, MAX(b, c)).

Un uso frequente è imporre un limite inferiore, o floor. MAX(x, 0) azzera i valori negativi, e MAX(x, k) garantisce che il risultato non sia mai inferiore a k. Combinato con MIN limita un valore in un intervallo: MIN(hi, MAX(lo, x)).

Esempi

Esempio 1, La maggiore di due medie mobili (Indicatore)

probuilder
// Return whichever high-based average is greater
mmA = Average[20](high)
mmB = Average[50](high)
result = MAX(mmA, mmB)
RETURN result AS "Upper average"

MAX sceglie la più alta delle due medie su ogni bar, producendo un inviluppo superiore che segue il periodo che si trova più in alto.

Esempio 2, Limitare inferiormente una lettura a zero (ProScreener)

probuilder
// Never let the momentum reading go below zero
mom = close - close[10]
floored = MAX(mom, 0)
SCREENER[floored > 0](floored AS "Positive momentum")

MAX(mom, 0) azzera il momentum negativo, quindi solo i movimenti rialzisti effettivi sopravvivono come letture positive.

Esempio 3, Ampliare uno stop a una distanza minima (ProOrder)

probuilder
// Use the larger of an ATR-based stop and a fixed minimum distance
atrStop = 2 * AverageTrueRange[14](close)
minStop = 15 * pointsize
stopDist = MAX(atrStop, minStop)
IF NOT LongOnMarket AND close CROSSES OVER Average[20](close) THEN
  BUY 1 CONTRACT AT MARKET
  SET STOP LOSS stopDist
ENDIF

MAX garantisce che lo stop non sia mai più stretto del minimo fisso, anche quando il valore basato sull'ATR è piccolo in un mercato tranquillo.

Errori e insidie comuni

  • Esattamente due argomenti. MAX confronta solo due valori. Per il massimo su una serie usa Highest; per tre o più valori annida le chiamate come MAX(a, MAX(b, c)).
  • Non è un massimo cumulato. MAX(a, b) confronta i valori correnti di a e b. Non traccia un massimo nel tempo. Usa Highest per un massimo mobile.
  • L'ordine non è importante. MAX(a, b) e MAX(b, a) restituiscono lo stesso risultato, quindi l'ordine degli argomenti è irrilevante.
  • MIN, restituisce il minore di due valori, la controparte di MAX.
  • ABS, valore assoluto, spesso combinato con MAX per limitare le distanze.
  • Highest, valore più alto di una serie su un periodo di lookback.
  • Lowest, valore più basso di una serie su un periodo di lookback.
  • ROUND, arrotonda all'intero o al decimale più vicino.
  • SGN, segno di un valore.
  • Range, ampiezza da massimo a minimo di una bar.