Jetzt beitreten
Mathematisch/probuilder · probacktest · proorder · proscreener

MIN

MIN in ProBuilder gibt den kleineren von zwei Werten oder Variablen zurück. Syntax, Parameter und Beispiele für das Begrenzen nach oben, das Einschränken und den Vergleich zweier Datenreihen.

Syntax

probuilder
MIN(a, b)

Parameter

NameTypBeschreibung
aZahlErster zu vergleichender Wert oder erste zu vergleichende Variable.
bZahlZweiter zu vergleichender Wert oder zweite zu vergleichende Variable.

Formel

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

Das Ergebnis entspricht demjenigen Argument, das kleiner ist. Wenn beide gleich sind, wird einer der beiden Werte zurückgegeben, da sie identisch sind.

So funktioniert es

MIN nimmt genau zwei Argumente und gibt den kleineren zurück. Es ist das Zwei-Werte-Gegenstück zu Lowest, die eine einzelne Reihe über ein Rückblickfenster durchsucht. Um den kleinsten von drei oder mehr Werten zu wählen, verschachteln Sie Aufrufe: MIN(a, MIN(b, c)).

Häufig wird damit eine Obergrenze erzwungen. MIN(x, k) garantiert, dass das Ergebnis nie über k. Kombiniert mit MAX es begrenzt einen Wert auf einen Bereich: MIN(hi, MAX(lo, x)), ein Muster, um Eingaben innerhalb eines gültigen Bereichs zu halten.

Beispiele

Beispiel 1, Der kleinere von zwei gleitenden Durchschnitten (Indikator)

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 wählt auf jedem Bar den niedrigeren der beiden Durchschnitte und erzeugt so eine untere Hülle, die jeweils der darunter liegenden Periode folgt.

Beispiel 2, Einen Wert nach oben begrenzen (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) verhindert, dass Extremwerte den Scan dominieren, indem der Wert an einer Obergrenze gehalten wird.

Beispiel 3, Eine Eingabe auf einen gültigen Bereich einschränken (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

Kombinieren MIN mit MAX begrenzt den Wert auf [-1, 1], den sicheren Eingabebereich für Funktionen wie ASIN und ACOS.

Häufige Fehler und Stolperfallen

  • Genau zwei Argumente. MIN vergleicht nur zwei Werte. Für den niedrigsten Wert einer Reihe verwenden Sie Lowest; für drei oder mehr Werte verschachteln Sie Aufrufe wie MIN(a, MIN(b, c)).
  • Kein laufendes Minimum. MIN(a, b) vergleicht die aktuellen Werte von a und b. Es verfolgt kein Tief über die Zeit. Verwenden Sie Lowest für ein rollierendes Tief.
  • Die Reihenfolge spielt keine Rolle. MIN(a, b) und MIN(b, a) liefern dasselbe Ergebnis, die Reihenfolge der Argumente ist also irrelevant.
  • MAX, gibt den größeren von zwei Werten zurück, das Gegenstück zu MIN.
  • ABS, Absolutwert, oft kombiniert mit MIN um Abstände zu begrenzen.
  • Lowest, niedrigster Wert einer Reihe über eine Rückblickperiode.
  • Highest, höchster Wert einer Reihe über eine Rückblickperiode.
  • ROUND, rundet auf die nächste Ganzzahl oder Dezimalstelle.
  • SGN, Vorzeichen eines Werts.
  • Range, Spanne von High zu Low eines Bars.