FLOOR
FLOOR en ProBuilder redondea un número hacia abajo al entero más cercano, o a un número determinado de decimales. Sintaxis, parámetro opcional de dígitos y ejemplos.
Sintaxis
floor(var, digits)Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
var | número | El valor a redondear hacia abajo. |
digits | entero | Opcional. Número de decimales a los que redondear hacia abajo. Si se omite, var se redondea a la baja al número entero más cercano. |
Fórmula
FLOOR(x) = largest integer <= xCon digits, el valor se multiplica por 10^digits, se redondea a la baja y se vuelve a escalar, de modo que floor(x, d) redondea x hasta d decimales.
Cómo funciona
FLOOR siempre redondea hacia menos infinito, descartando cualquier parte fraccionaria en los números positivos. floor(3.1) y floor(3.9) ambos devuelven 3. Para negativos se aleja de cero: floor(-3.2) devuelve -4, el mayor entero que no es mayor que -3.2.
El opcional digits argumento fija la precisión. floor(3.756, 1) devuelve 3.7. Es el reflejo de CEIL, que siempre redondea hacia arriba, y se diferencia de ROUND, que toma el valor más cercano en cualquier dirección.
Ejemplos
Ejemplo 1, Redondear una media hacia abajo a unidades enteras (Indicador)
// Whole-number floor of a moving average
ma = Average[20](close)
downTicks = floor(ma)
RETURN downTicks AS "MA rounded down"La parte fraccionaria de la media se descarta, por lo que la línea dibujada queda en la media bruta o por debajo de ella.
Ejemplo 2, Agrupar un ratio en escalones inferiores (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")Redondear hacia abajo a un decimal agrupa los instrumentos en bandas amplias ancladas en el suelo de cada banda.
Ejemplo 3, Position size conservador (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
ENDIFRedondear a la baja la cantidad bruta mantiene la exposición total dentro del presupuesto. Para redondear a la baja un precio de orden a un tick válido, usa ROUNDEDDOWN en su lugar.
Errores y trampas habituales
- Siempre redondea hacia abajo, no hacia el más cercano.
floor(3.9)es3, no4. Para el entero más cercano usaROUND; para redondear hacia arriba useCEIL. - Los negativos se alejan de cero.
floor(-2.5)devuelve-3, no-2, porque -3 es el mayor entero que no es mayor que -2.5. - No es lo mismo que ROUNDEDDOWN.
FLOORredondea a la baja a enteros o decimales.ROUNDEDDOWNredondea a la baja un precio de orden al tick válido más cercano del instrumento.
Instrucciones relacionadas
CEIL, redondea hacia arriba al entero o decimal más cercano, en la dirección opuesta.ROUND, redondea al entero o decimal más próximo.ROUNDEDDOWN, redondea a la baja el precio de una orden al tick negociable más próximo.ROUNDEDUP, redondea al alza 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, otra operación orientada a enteros.