ROUND
ROUND in ProBuilder arrotonda un numero all'intero più vicino, o a un numero stabilito di cifre decimali. Sintassi, la nota sull'arrotondamento bancario ed esempi svolti.
Sintassi
ROUND(a, digits)Parametri
| Nome | Tipo | Descrizione |
|---|---|---|
a | numero | Il valore da arrotondare. |
digits | intero | Opzionale. Numero di decimali a cui arrotondare. Se omesso, a è arrotondato al numero intero più vicino. |
Formula
ROUND(x) = nearest integer to x, halves rounded to the nearest even valueCon digits, a viene arrotondato a quel numero di decimali, quindi ROUND(3.14159, 2) restituisce 3.14.
Come funziona
ROUND sceglie il valore più vicino in entrambe le direzioni, a differenza di CEIL che arrotonda sempre per eccesso e FLOOR che arrotonda sempre per difetto. Una parte frazionaria inferiore a 0.5 arrotonda per difetto, superiore a 0.5 per eccesso. I mezzi esatti seguono l'arrotondamento bancario: vanno al numero pari più vicino, quindi ROUND(2.5) dà 2 e ROUND(3.5) dà 4. Questo riduce la distorsione cumulativa quando si arrotondano molti valori.
L'opzionale digits argomento imposta la precisione del risultato, utile per normalizzare prezzi o letture di indicatori a un numero fisso di decimali.
Esempi
Esempio 1, Arrotondare un tasso di variazione (Indicatore)
// Round the 10-period rate of change to a whole number
i1 = ROC[10](close)
roundedROCvalue = ROUND(i1)
RETURN i1 AS "ROC", roundedROCvalue AS "ROC rounded"Se la lettura grezza è 9.6, ROUND restituisce 10. Un valore di 9.4 verrebbe arrotondato per difetto a 9.
Esempio 2, Arrotondare a due decimali per il raggruppamento (ProScreener)
// Group instruments by a two-decimal ratio
ratio = close / Average[50](close)
r = ROUND(ratio, 2)
SCREENER[r >= 1](r AS "Ratio 2dp")Arrotondare a due decimali raccoglie rapporti quasi identici in gruppi condivisi.
Esempio 3, Arrotondare un prezzo obiettivo calcolato (ProOrder)
// Round a target price to a whole number before display
entry = close
target = ROUND(entry * 1.015)
IF NOT LongOnMarket AND close CROSSES OVER Average[20](close) THEN
BUY 1 CONTRACT AT MARKET
ENDIFROUND normalizza il target calcolato a un numero intero. Per allineare invece un prezzo d'ordine a un tick valido, usa ROUNDEDUP o ROUNDEDDOWN.
Errori e insidie comuni
- I mezzi si arrotondano al pari.
ROUND(2.5)restituisce 2, non 3, perché l'arrotondamento bancario porta i mezzi esatti al numero pari più vicino. Non dare per scontato che 0.5 venga sempre arrotondato per eccesso. - Arrotonda in entrambe le direzioni. A differenza di
CEILeFLOOR,ROUNDpuò salire o scendere. UsaCEILper forzare verso l'alto eFLOORper forzare verso il basso. - Non è un arrotondamento al tick.
ROUNDfunziona su interi e decimali. Per arrotondare il prezzo di un ordine al tick negoziabile dello strumento, usaROUNDEDUPoROUNDEDDOWN.
Istruzioni correlate
CEIL, arrotonda per eccesso al numero intero o decimale più vicino.FLOOR, arrotonda per difetto al numero intero o decimale più vicino.ROUNDEDUP, arrotonda per eccesso il prezzo di un ordine al tick negoziabile più vicino.ROUNDEDDOWN, arrotonda per difetto il prezzo di un ordine al tick negoziabile più vicino.ABS, valore assoluto, spesso abbinato all'arrotondamento.SGN, segno di un valore.MOD, resto di una divisione.