Jetzt beitreten
Befehle/probuilder · probacktest · proorder · proscreener

CROSSES UNDER

CROSSES UNDER in ProBuilder gibt auf dem Bar wahr zurück, auf dem eine Reihe von oberhalb nach unterhalb einer anderen wechselt, der Standardauslöser für bärische Crossover-Signale.

Syntax

probuilder
a CROSSES UNDER b

Parameter

NameTypStandardBeschreibung
anumerische ReiheerforderlichDie Reihe, die auf eine Kreuzung nach unten geprüft wird.
bnumerische Reihe oder KonstanteerforderlichDie Serie oder das feste Niveau, das a muss nach unten kreuzen.

Formel

a CROSSES UNDER b ist wahr, wenn beide Bedingungen auf demselben Bar gelten:

Code
a[1] >= b[1]  and  a < b

Auf dem vorherigen Bar a lag auf oder über b, und auf dem aktuellen Bar a liegt strikt unter b.

So funktioniert es

CROSSES UNDER vergleicht zwei Werte über aufeinanderfolgende Bars und gibt einen Booleschen Wert zurück. Der Ausdruck ist nur auf dem einen Bar wahr, auf dem die Beziehung von oben nach unten kippt. Auf späteren Bars, auf denen a bleibt lediglich unter b, gibt es false zurück. Es erkennt damit das Kreuzungsereignis selbst, anders als der Zustandsvergleich a < b, das true bleibt, solange die Bedingung gilt.

Beide Operanden können numerische Ausdrücke jeder Art sein: Indikatorausgabe, eine Kurskonstante wie close, eine Variable oder eine einfache Zahl. Das Kreuzen fester Niveaus ist ein häufiges Muster, zum Beispiel Stochastic[14,3](close) CROSSES UNDER 80.

Da der aktuelle Bar in den Test eingeht, kann eine auf einem laufenden Bar erkannte Abwärtskreuzung verschwinden, wenn sich die Kurse vor dem Bar-Schluss erholen. Das Prüfen verschobener Werte, etwa a[1] CROSSES UNDER b[1], beschränkt die Prüfung auf abgeschlossene Bars und erzeugt stabile Signale eine Bar später.

Beispiele

Beispiel 1, EMA-Kreuzen nach unten (Indikator)

probuilder
a = ExponentialAverage[20](close)
b = ExponentialAverage[50](close)
signal = 0
// Evaluate the crossing on completed bars only
IF a[1] CROSSES UNDER b[1] THEN
  signal = -1
ELSE
  signal = 0
ENDIF
RETURN signal AS "Bearish Signal"

Der Indikator gibt -1 auf dem Bar aus, nachdem die 20-Perioden-EMA unter die 50-Perioden-EMA gefallen ist, und andernfalls 0. Beide Operanden sind um einen Bar verschoben, sodass der Test abgeschlossene Daten verwendet.

Beispiel 2, Schließen einer Long-Position (ProOrder)

probuilder
fast = Average[20](close)
slow = Average[50](close)
// Enter on the upward cross, exit on the downward cross
IF fast CROSSES OVER slow AND NOT LONGONMARKET THEN
  BUY 1 CONTRACT AT MARKET
ENDIF
IF fast CROSSES UNDER slow AND LONGONMARKET THEN
  SELL AT MARKET
ENDIF

CROSSES UNDER dient als Ausstiegsauslöser: Die beim bullischen Kreuzen eröffnete Long-Position wird auf dem Bar geschlossen, auf dem der schnelle Durchschnitt wieder unter den langsamen fällt.

Beispiel 3, Stochastik verlässt den überkauften Bereich (ProScreener)

probuilder
myStoch = Stochastic[14, 3](close)
// Match instruments where %K has just dropped below 80
cond = myStoch CROSSES UNDER 80
SCREENER[cond] (myStoch AS "Stochastic")

Der Screener gibt Instrumente zurück, deren stochastischer %K im aktuellen Bar unter das Niveau 80 gekreuzt ist, ein gängiges Ausstiegsmuster bei überkauften Werten.

Häufige Fehler und Stolperfallen

  • Ein-bar-Ereignis, kein Zustand. Der Ausdruck ist nur auf dem Kreuzungsbar wahr. Logik, die "liegt noch darunter" benötigt, muss testen auf a < b separat, sonst verschwindet das Signal stillschweigend auf dem nächsten Bar.
  • Instabilität des laufenden bars. Auf einem sich bildenden Bar kann der Cross auslösen und vor dem Close wieder zurückgenommen werden. Verwenden Sie a[1] CROSSES UNDER b[1] wenn nur bestätigte Kreuzungen zählen sollen.
  • Strikte Ungleichheit erforderlich. Eine Serie, die genau auf das Niveau von b ohne darunter zu fallen, löst die Bedingung nicht aus, weil der Vergleich auf dem aktuellen Bar strikt ist.
  • Umgekehrte Operandenreihenfolge. a CROSSES UNDER b und b CROSSES UNDER a beschreiben entgegengesetzte Ereignisse. Ein versehentliches Vertauschen der Operanden invertiert das Signal ohne jede Compiler-Warnung.
  • CROSSES OVER, der Spiegeloperator für Kreuzungen nach oben.
  • IF, Bedingungsblock, der üblicherweise einen Kreuzungstest umschließt.
  • THEN, erforderlich zwischen der Bedingung und dem Blockinhalt.
  • ExponentialAverage, EMA-Reihe, die häufig in Crossover-Systemen kombiniert wird.
  • Average, einfacher gleitender Durchschnitt, eine weitere häufige Eingabe für Kreuzungen.
  • AND, kombiniert die Kreuzung mit Positions- oder Filterbedingungen.
  • NOT, negiert einen booleschen Wert, nützlich für Positionsprüfungen neben Kreuzungen.
  • BarsSince, zählt die Bars, die seit dem Zutreffen einer Bedingung wie einer Kreuzung vergangen sind.