CEIL
CEIL dans ProBuilder arrondit un nombre à l'entier supérieur, ou à un nombre défini de décimales. Syntaxe, paramètre optionnel de décimales et exemples.
Syntaxe
ceil(var, digits)Paramètres
| Nom | Type | Description |
|---|---|---|
var | nombre | La valeur à arrondir au supérieur. |
digits | entier | Facultatif. Nombre de décimales pour l'arrondi vers le haut. Si omis, var est arrondi à l'entier supérieur. |
Formule
CEIL(x) = smallest integer >= xAvec digits, la valeur est multipliée par 10^digits, arrondie à la hausse, puis ramenée à l'échelle, donc ceil(x, d) arrondit x jusqu'à d décimales.
Comment ça marche
CEIL arrondit toujours vers plus l'infini, jamais vers zéro. ceil(3.1) et ceil(3.9) renvoient tous deux 4 parce que toute partie fractionnaire pousse le résultat vers le haut. Pour les négatifs, il va vers zéro : ceil(-3.7) renvoie -3, le plus petit entier qui n'est pas inférieur à -3.7.
Le paramètre facultatif digits argument permet d'arrondir au-dessus à une précision choisie. ceil(3.14159, 2) renvoie 3.15. Cela diffère de ROUND, qui choisit la valeur la plus proche dans les deux directions, et de FLOOR, qui arrondit toujours vers le bas.
Exemples
Exemple 1, Arrondir une moyenne aux unités entières supérieures (Indicateur)
// Whole-number ceiling of a moving average
ma = Average[20](close)
upTicks = ceil(ma)
RETURN upTicks AS "MA rounded up"Toute partie fractionnaire de la moyenne est poussée vers l'entier supérieur, de sorte que la ligne tracée se situe au niveau de la moyenne brute ou au-dessus.
Exemple 2, Regrouper un ratio en paliers supérieurs (ProScreener)
// Group price-to-average ratio into 0.1 upper buckets
ratio = close / Average[50](close)
bucket = ceil(ratio, 1)
SCREENER[ratio > 1](bucket AS "Ratio ceiling")Arrondir au supérieur à une décimale regroupe les instruments en bandes grossières tout en conservant le plafond de chaque bande.
Exemple 3, Position size qui couvre un objectif (ProOrder)
// Round required contracts up so exposure is never short of target
targetExposure = 10000
priceValue = close
rawQty = targetExposure / priceValue
qty = ceil(rawQty)
IF NOT LongOnMarket AND close CROSSES OVER Average[20](close) THEN
BUY qty CONTRACT AT MARKET
ENDIFArrondir la quantité brute vers le haut garantit que la taille exécutée couvre l'exposition visée plutôt que de rester juste en dessous. Pour arrondir un prix d'ordre à un tick valide, utilisez ROUNDEDUP à la place.
Erreurs et pièges courants
- Arrondit toujours au supérieur, pas au plus proche.
ceil(3.1)est4, pas3. Si vous voulez l'entier le plus proche, utilisezROUND; pour arrondir vers le bas, utilisezFLOOR. - Les nombres négatifs se rapprochent de zéro.
ceil(-2.5)renvoie-2, pas-3, car -2 est le plus petit entier supérieur ou égal à -2.5. - Ce n'est pas la même chose que ROUNDEDUP.
CEILarrondit à l'entier ou au décimal supérieur.ROUNDEDUParrondit un prix d'ordre à la hausse au tick valide le plus proche de l'instrument.
Instructions liées
FLOOR, arrondit à l'entier ou à la décimale inférieure, dans la direction opposée.ROUND, arrondit à l'entier ou à la décimale la plus proche.ROUNDEDUP, arrondit un prix d'ordre vers le haut au tick négociable le plus proche.ROUNDEDDOWN, arrondit un prix d'ordre vers le bas 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.