FLOOR
FLOOR in ProBuilder arrotonda un numero per difetto all'intero più vicino, o a un numero stabilito di cifre decimali. Sintassi, parametro opzionale delle cifre ed esempi.
Sintassi
floor(var, digits)Parametri
| Nome | Tipo | Descrizione |
|---|---|---|
var | numero | Il valore da arrotondare per difetto. |
digits | intero | Opzionale. Numero di decimali a cui arrotondare per difetto. Se omesso, var viene arrotondato per difetto all'intero più vicino. |
Formula
FLOOR(x) = largest integer <= xCon digits, il valore viene scalato di 10^digits, arrotondato per difetto, poi riportato alla scala originale, quindi floor(x, d) arrotonda x fino a d cifre decimali.
Come funziona
FLOOR arrotonda sempre verso meno infinito, scartando qualsiasi parte frazionaria per i numeri positivi. floor(3.1) e floor(3.9) restituiscono entrambi 3. Per i negativi si allontana da zero: floor(-3.2) restituisce -4, il più grande intero non maggiore di -3.2.
L'opzionale digits argomento imposta la precisione. floor(3.756, 1) restituisce 3.7. Questo è il simmetrico di CEIL, che arrotonda sempre per eccesso, e differisce da ROUND, che sceglie il valore più vicino in entrambe le direzioni.
Esempi
Esempio 1, Arrotondare per difetto una media a unità intere (Indicatore)
// Whole-number floor of a moving average
ma = Average[20](close)
downTicks = floor(ma)
RETURN downTicks AS "MA rounded down"La parte frazionaria della media viene eliminata, quindi la linea tracciata si colloca al livello della media grezza o sotto di essa.
Esempio 2, Raggruppare un rapporto in gradini inferiori (ProScreener)
// Group price-to-average ratio into 0.1 lower buckets
ratio = close / Average[50](close)
bucket = floor(ratio, 1)
SCREENER[ratio < 1](bucket AS "Ratio floor")Arrotondare per difetto a un decimale raggruppa gli strumenti in fasce ampie ancorate al limite inferiore di ogni fascia.
Esempio 3, Position size conservativa (ProOrder)
// Round required contracts down so exposure never overshoots the budget
budget = 10000
priceValue = close
rawQty = budget / priceValue
qty = floor(rawQty)
IF qty >= 1 AND NOT LongOnMarket AND close CROSSES OVER Average[20](close) THEN
BUY qty CONTRACT AT MARKET
ENDIFArrotondare per difetto la quantità grezza mantiene l'esposizione totale entro il budget. Per arrotondare per difetto il prezzo di un ordine a un tick valido, usa ROUNDEDDOWN invece.
Errori e insidie comuni
- Arrotonda sempre per difetto, non al più vicino.
floor(3.9)è3, non4. Per l'intero più vicino usareROUND; per arrotondare per eccesso usaCEIL. - I numeri negativi si allontanano da zero.
floor(-2.5)restituisce-3, non-2, perché -3 è il più grande intero che non è maggiore di -2.5. - Non è lo stesso di ROUNDEDDOWN.
FLOORarrotonda per difetto a interi o decimali.ROUNDEDDOWNarrotonda per difetto il prezzo di un ordine al tick valido più vicino dello strumento.
Istruzioni correlate
CEIL, arrotonda per eccesso all'intero o al decimale più vicino, nella direzione opposta.ROUND, arrotonda all'intero o al decimale più vicino.ROUNDEDDOWN, arrotonda per difetto il prezzo di un ordine al tick negoziabile più vicino.ROUNDEDUP, arrotonda per eccesso il prezzo di un ordine al tick negoziabile più vicino.ABS, valore assoluto, spesso combinato con l'arrotondamento.SGN, segno di un valore.MOD, resto di una divisione, un'altra operazione orientata agli interi.