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
floor(var, digits)Paramètres
| Nom | Type | Description |
|---|---|---|
var | nombre | La valeur à arrondir vers le bas. |
digits | entier | Facultatif. Nombre de décimales pour l'arrondi vers le bas. Si omis, var est arrondi à l'entier inférieur. |
Formule
FLOOR(x) = largest integer <= xAvec 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)
// 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)
// 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)
// 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
ENDIFArrondir 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)est3, pas4. Pour l'entier le plus proche, utilisezROUND; pour arrondir vers le haut, utilisezCEIL. - 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.
FLOORarrondit à l'entier ou au décimal inférieur.ROUNDEDDOWNarrondit un prix d'ordre à la baisse au tick valide le plus proche de l'instrument.
Instructions liées
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.