Únete hoy
Matemáticas/probuilder · probacktest · proorder · proscreener

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

probuilder
floor(var, digits)

Parámetros

NombreTipoDescripción
varnúmeroEl valor a redondear hacia abajo.
digitsenteroOpcional. 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

código
FLOOR(x) = largest integer <= x

Con 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)

probuilder
// 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)

probuilder
// 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)

probuilder
// 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
ENDIF

Redondear 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) es 3, no 4. Para el entero más cercano usa ROUND; para redondear hacia arriba use CEIL.
  • 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. FLOOR redondea a la baja a enteros o decimales. ROUNDEDDOWN redondea a la baja un precio de orden al tick válido más cercano del instrumento.
  • 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.