Rejoignez-nous
Mathématiques/probuilder · probacktest · proorder · proscreener

FLOOR

FLOOR en ProBuilder arrondit un nombre vers le bas à l'entier le plus proche, ou à un nombre fixé de décimales. Syntaxe, paramètre optionnel de chiffres et exemples.

Syntaxe

probuilder
floor(var, digits)

Paramètres

NomTypeDescription
varnombreLa valeur à arrondir vers le bas.
digitsentierFacultatif. Nombre de décimales pour l'arrondi vers le bas. Si omis, var est arrondi à l'entier inférieur.

Formule

code
FLOOR(x) = largest integer <= x

Avec digits, la valeur est multipliée par 10^digits, arrondie à la baisse, puis ramenée à l'échelle, donc floor(x, d) arrondit x jusqu'à d décimales.

Comment ça marche

FLOOR arrondit toujours vers moins l'infini, en éliminant toute partie fractionnaire pour les nombres positifs. floor(3.1) et floor(3.9) renvoient tous deux 3. Pour les négatifs, il s'éloigne de zéro : floor(-3.2) renvoie -4, le plus grand entier qui n'est pas supérieur à -3.2.

Le paramètre facultatif digits argument définit la précision. floor(3.756, 1) renvoie 3.7. C'est le miroir de CEIL, qui arrondit toujours vers le haut, et diffère de ROUND, qui retient la valeur la plus proche dans les deux sens.

Exemples

Exemple 1, Arrondir une moyenne vers le bas à des unités entières (Indicateur)

probuilder
// Whole-number floor of a moving average
ma = Average[20](close)
downTicks = floor(ma)
RETURN downTicks AS "MA rounded down"

La partie fractionnaire de la moyenne est supprimée, la ligne tracée se situe donc au niveau de la moyenne brute ou en dessous.

Exemple 2, Ranger un ratio dans des paliers inférieurs (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")

Arrondir vers le bas à une décimale regroupe les instruments dans des bandes grossières ancrées sur le plancher de chaque bande.

Exemple 3, Position size prudente (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

Arrondir la quantité brute à l'inférieur maintient l'exposition totale dans le budget. Pour arrondir un prix d'ordre à l'inférieur sur un tick valide, utilisez ROUNDEDDOWN à la place.

Erreurs et pièges courants

  • Arrondit toujours vers le bas, pas vers le plus proche. floor(3.9) est 3, pas 4. Pour l'entier le plus proche, utilisez ROUND ; pour arrondir vers le haut, utilisez CEIL.
  • Les valeurs négatives s'éloignent de zéro. floor(-2.5) renvoie -3, pas -2, car -3 est le plus grand entier qui n'est pas supérieur à -2.5.
  • Pas la même chose que ROUNDEDDOWN. FLOOR arrondit à l'entier ou au décimal inférieur. ROUNDEDDOWN arrondit un prix d'ordre à la baisse au tick valide le plus proche de l'instrument.
  • CEIL, arrondit vers le haut à l'entier ou à la décimale la plus proche, la direction opposée.
  • ROUND, arrondit à l'entier ou à la décimale la plus proche.
  • ROUNDEDDOWN, arrondit un prix d'ordre vers le bas au tick négociable le plus proche.
  • ROUNDEDUP, arrondit un prix d'ordre vers le haut au tick négociable le plus proche.
  • ABS, valeur absolue, souvent combinée avec un arrondi.
  • SGN, signe d'une valeur.
  • MOD, reste d'une division, une autre opération orientée entiers.