ROUND
ROUND en ProBuilder redondea un número al entero más cercano, o a un número determinado de decimales. Sintaxis, la nota sobre el redondeo bancario y ejemplos resueltos.
Sintaxis
ROUND(a, digits)Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
a | número | El valor a redondear. |
digits | entero | Opcional. Número de decimales al que redondear. Si se omite, a se redondea al número entero más próximo. |
Fórmula
ROUND(x) = nearest integer to x, halves rounded to the nearest even valueCon digits, a se redondea a ese número de decimales, así que ROUND(3.14159, 2) devuelve 3.14.
Cómo funciona
ROUND elige el valor más cercano en cualquier dirección, a diferencia de CEIL que siempre redondea hacia arriba y FLOOR que siempre redondea a la baja. Una parte fraccionaria por debajo de 0.5 redondea a la baja, por encima de 0.5 redondea al alza. Los medios exactos siguen el redondeo bancario: van al número par más cercano, por lo que ROUND(2.5) da 2 y ROUND(3.5) da 4. Esto reduce el sesgo acumulado al redondear muchos valores.
El opcional digits argumento define la precisión del resultado, útil para normalizar precios o lecturas de indicadores a un número fijo de decimales.
Ejemplos
Ejemplo 1, Redondear una tasa de variación (Indicador)
// 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"Si la lectura bruta es 9.6, ROUND devuelve 10. Un valor de 9.4 se redondearía hacia abajo a 9.
Ejemplo 2, Redondear a dos decimales para agrupar (ProScreener)
// Group instruments by a two-decimal ratio
ratio = close / Average[50](close)
r = ROUND(ratio, 2)
SCREENER[r >= 1](r AS "Ratio 2dp")Redondear a dos decimales agrupa ratios casi idénticos en los mismos grupos.
Ejemplo 3, Redondear un precio objetivo calculado (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 normaliza el objetivo calculado a un número entero. Para ajustar en cambio un precio de orden a un tick válido, usa ROUNDEDUP o ROUNDEDDOWN.
Errores y trampas habituales
- Los medios se redondean al par.
ROUND(2.5)devuelve 2, no 3, porque el redondeo bancario envía las mitades exactas al número par más cercano. No asumas que 0.5 siempre redondea hacia arriba. - Redondea en ambas direcciones. A diferencia de
CEILyFLOOR,ROUNDpuede subir o bajar. UsaCEILpara forzar hacia arriba yFLOORpara forzar hacia abajo. - No es redondeo a tick.
ROUNDfunciona con enteros y decimales. Para redondear el precio de una orden al tick negociable del instrumento, usaROUNDEDUPoROUNDEDDOWN.
Instrucciones relacionadas
CEIL, redondea hacia arriba al entero o decimal más cercano.FLOOR, redondea hacia abajo al entero o decimal más cercano.ROUNDEDUP, redondea al alza el precio de una orden al tick negociable más próximo.ROUNDEDDOWN, redondea a la baja el precio de una orden al tick negociable más próximo.ABS, valor absoluto, a menudo combinado con el redondeo.SGN, signo de un valor.MOD, resto de una división.