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
a CROSSES UNDER bParameter
| Name | Typ | Standard | Beschreibung |
|---|---|---|---|
| a | numerische Reihe | erforderlich | Die Reihe, die auf eine Kreuzung nach unten geprüft wird. |
| b | numerische Reihe oder Konstante | erforderlich | Die 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:
a[1] >= b[1] and a < bAuf 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)
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)
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
ENDIFCROSSES 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)
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 < bseparat, 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
bohne darunter zu fallen, löst die Bedingung nicht aus, weil der Vergleich auf dem aktuellen Bar strikt ist. - Umgekehrte Operandenreihenfolge.
a CROSSES UNDER bundb CROSSES UNDER abeschreiben entgegengesetzte Ereignisse. Ein versehentliches Vertauschen der Operanden invertiert das Signal ohne jede Compiler-Warnung.
Verwandte Befehle
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.