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

MIN

MIN dans ProBuilder renvoie la plus petite de deux valeurs ou variables. Syntaxe, paramètres et exemples pour plafonner, borner et comparer deux séries de données.

Syntaxe

probuilder
MIN(a, b)

Paramètres

NomTypeDescription
anombrePremière valeur ou variable à comparer.
bnombreDeuxième valeur ou variable à comparer.

Formule

code
MIN(a, b) = a if a <= b, otherwise b

Le résultat est égal à celui des deux arguments qui est le plus petit. Lorsque les deux sont égaux, l'une ou l'autre valeur est renvoyée puisqu'elles sont identiques.

Comment ça marche

MIN prend exactement deux arguments et renvoie le plus petit. C'est l'équivalent à deux valeurs de Lowest, qui balaie une seule série sur une fenêtre d'observation. Pour choisir la plus petite de trois valeurs ou plus, imbriquez les appels : MIN(a, MIN(b, c)).

Un usage fréquent est d'imposer une borne supérieure, ou plafond. MIN(x, k) garantit que le résultat n'est jamais supérieur à k. Combiné à MAX elle borne une valeur dans un intervalle : MIN(hi, MAX(lo, x)), un procédé utilisé pour maintenir les entrées dans un domaine valide.

Exemples

Exemple 1, La plus petite de deux moyennes mobiles (Indicateur)

probuilder
// Return whichever low-based average is lower
mmA = Average[20](low)
mmB = Average[50](low)
result = MIN(mmA, mmB)
RETURN result AS "Lower average"

MIN retient la plus basse des deux moyennes sur chaque bar, produisant une enveloppe inférieure qui suit la période la plus basse.

Exemple 2, Plafonner une valeur à un maximum (ProScreener)

probuilder
// Limit an overheated ratio to a maximum of 2
ratio = close / Average[50](close)
capped = MIN(ratio, 2)
SCREENER[ratio > 1](capped AS "Capped ratio")

MIN(ratio, 2) empêche les valeurs extrêmes de dominer le scan en plafonnant la lecture.

Exemple 3, Borner une entrée dans une plage valide (ProOrder)

probuilder
// Keep a normalized reading inside [-1, 1] before using it
raw = (close - Average[20](close)) / (2 * STD[20](close))
clamped = MIN(1, MAX(-1, raw))
IF NOT LongOnMarket AND clamped > 0.8 THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

Associer MIN avec MAX borne la lecture dans [-1, 1], qui est la plage d'entrée sûre pour des fonctions comme ASIN et ACOS.

Erreurs et pièges courants

  • Exactement deux arguments. MIN ne compare que deux valeurs. Pour le minimum sur une série, utilisez Lowest ; pour trois valeurs ou plus, imbriquez les appels comme MIN(a, MIN(b, c)).
  • Ce n'est pas un minimum glissant. MIN(a, b) compare les valeurs actuelles de a et b. Elle ne suit pas un creux dans le temps. Utilisez Lowest pour un plus bas glissant.
  • L'ordre n'a pas d'importance. MIN(a, b) et MIN(b, a) renvoient le même résultat, l'ordre des arguments n'a donc pas d'importance.
  • MAX, renvoie la plus grande de deux valeurs, le pendant de MIN.
  • ABS, valeur absolue, souvent combinée avec MIN pour borner les distances.
  • Lowest, valeur la plus basse d'une série sur une période de calcul.
  • Highest, valeur la plus élevée d'une série sur une période de calcul.
  • ROUND, arrondit à l'entier ou à la décimale la plus proche.
  • SGN, signe d'une valeur.
  • Range, amplitude du high au low d'un bar.