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

ROUND

ROUND en ProBuilder arrondit un nombre à l'entier le plus proche, ou à un nombre défini de décimales. Syntaxe, la note sur l'arrondi bancaire et des exemples détaillés.

Syntaxe

probuilder
ROUND(a, digits)

Paramètres

NomTypeDescription
anombreLa valeur à arrondir.
digitsentierOptionnel. Nombre de décimales d'arrondi. En cas d'omission, a est arrondi au nombre entier le plus proche.

Formule

code
ROUND(x) = nearest integer to x,   halves rounded to the nearest even value

Avec digits, a est arrondi à ce nombre de décimales, donc ROUND(3.14159, 2) renvoie 3.14.

Comment ça marche

ROUND choisit la valeur la plus proche dans les deux sens, contrairement à CEIL qui arrondit toujours vers le haut et FLOOR qui arrondit toujours vers le bas. Une partie fractionnaire inférieure à 0.5 est arrondie vers le bas, supérieure à 0.5 vers le haut. Les demis exacts suivent l'arrondi bancaire : ils vont au nombre pair le plus proche, de sorte que ROUND(2.5) donne 2 et ROUND(3.5) donne 4. Cela réduit le biais cumulé lors de l'arrondi de nombreuses valeurs.

Le paramètre facultatif digits argument définit la précision du résultat, utile pour normaliser des prix ou des valeurs d'indicateur à un nombre fixe de décimales.

Exemples

Exemple 1, Arrondir un taux de variation (Indicateur)

probuilder
// Round the 10-period rate of change to a whole number
i1 = ROC[10](close)
roundedROCvalue = ROUND(i1)
RETURN i1 AS "ROC", roundedROCvalue AS "ROC rounded"

Si la lecture brute est 9.6, ROUND renvoie 10. Une valeur de 9.4 serait arrondie à 9.

Exemple 2, Arrondir à deux décimales pour regrouper (ProScreener)

probuilder
// Group instruments by a two-decimal ratio
ratio = close / Average[50](close)
r = ROUND(ratio, 2)
SCREENER[r >= 1](r AS "Ratio 2dp")

Arrondir à deux décimales regroupe des ratios quasi identiques dans des paniers communs.

Exemple 3, Arrondir un prix cible calculé (ProOrder)

probuilder
// Round a target price to a whole number before display
entry = close
target = ROUND(entry * 1.015)
IF NOT LongOnMarket AND close CROSSES OVER Average[20](close) THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

ROUND normalise l'objectif calculé en un nombre entier. Pour aligner un prix d'ordre sur un tick valide, utilisez plutôt ROUNDEDUP ou ROUNDEDDOWN.

Erreurs et pièges courants

  • Les demis sont arrondis au pair. ROUND(2.5) renvoie 2, et non 3, car l'arrondi bancaire envoie les demis exacts vers le nombre pair le plus proche. Ne supposez pas que 0.5 s'arrondit toujours vers le haut.
  • Arrondit dans les deux sens. Contrairement à CEIL et FLOOR, ROUND peut monter ou descendre. Utilisez CEIL pour forcer vers le haut et FLOOR pour forcer vers le bas.
  • Pas un arrondi au tick. ROUND fonctionne sur les entiers et les décimaux. Pour arrondir un prix d'ordre au tick négociable de l'instrument, utilisez ROUNDEDUP ou ROUNDEDDOWN.
  • CEIL, arrondit à l'entier ou à la décimale supérieure.
  • FLOOR, arrondit à l'entier ou à la décimale inférieure.
  • 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 associée à l'arrondi.
  • SGN, signe d'une valeur.
  • MOD, reste d'une division.