Word nu lid
Instructies/probuilder · probacktest · proorder · proscreener

CROSSES UNDER

CROSSES UNDER in ProBuilder geeft true op de bar waar de ene reeks van boven naar onder een andere beweegt, de standaardtrigger voor bearish crossoversignalen.

Syntaxis

probuilder
a CROSSES UNDER b

Parameters

NaamTypeStandaardBeschrijving
anumerieke reeksverplichtDe reeks die op een neerwaartse kruising wordt getest.
bnumerieke reeks of constanteverplichtDe reeks of het vaste niveau dat a moet neerwaarts kruisen.

Formule

a CROSSES UNDER b is waar wanneer beide voorwaarden op dezelfde bar gelden:

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

Op de vorige bar a was op of boven b, en op de huidige bar a is strikt onder b.

Hoe het werkt

CROSSES UNDER vergelijkt twee waarden over opeenvolgende bars en geeft een boolean. De expressie is alleen waar op de enkele bar waar de verhouding van boven naar onder omslaat. Op latere bars waar a blijft slechts onder b, geeft hij false terug. Hij detecteert dus de kruising zelf, anders dan de toestandsvergelijking a < b, die true blijft zolang de voorwaarde geldt.

Beide operanden mogen elke numerieke expressie zijn: indicatoruitvoer, een koersconstante zoals close, een variabele of een gewoon getal. Het kruisen van vaste niveaus is een veelvoorkomend patroon, bijvoorbeeld Stochastic[14,3](close) CROSSES UNDER 80.

Omdat de huidige bar meedoet in de test, kan een neerwaartse kruising die op een live bar wordt gedetecteerd verdwijnen als de prijzen herstellen voordat de bar sluit. Verschoven waarden testen, zoals a[1] CROSSES UNDER b[1], beperkt de controle tot afgeronde bars en levert stabiele signalen één bar later.

Voorbeelden

Voorbeeld 1, EMA-kruising naar beneden (Indicator)

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"

De indicator drukt -1 af op de bar nadat de EMA over 20 periodes onder de EMA over 50 periodes daalt, en anders 0. Beide operanden zijn één bar verschoven zodat de test gesloten data gebruikt.

Voorbeeld 2, Een long positie sluiten (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 werkt als de uitstaptrigger: de long positie die bij de bullish kruising is geopend wordt gesloten op de bar waar het snelle gemiddelde terugvalt onder het langzame.

Voorbeeld 3, Stochastic verlaat overbought gebied (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")

De screener geeft instrumenten waarvan de stochastic %K op de huidige bar onder het niveau 80 kruiste, een gangbaar overbought uitstappatroon.

Veelvoorkomende fouten en valkuilen

  • Gebeurtenis van één bar, geen toestand. De expressie is alleen waar op de bar van de kruising. Logica die "ligt nog steeds eronder" nodig heeft moet testen op a < b apart, anders verdwijnt het signaal stilzwijgend op de volgende bar.
  • Instabiliteit van de live bar. Op een vormende bar kan de cross afgaan en vóór de close weer uitgaan. Gebruik a[1] CROSSES UNDER b[1] wanneer alleen bevestigde kruisingen mogen meetellen.
  • Strikte ongelijkheid vereist. Een reeks die daalt tot precies het niveau van b zonder eronder te komen activeert de voorwaarde niet, omdat de vergelijking op de huidige bar strikt is.
  • Omgekeerde volgorde van operanden. a CROSSES UNDER b en b CROSSES UNDER a beschrijven tegengestelde gebeurtenissen. De operanden per ongeluk verwisselen draait het signaal om zonder enige compilerwaarschuwing.
  • CROSSES OVER, de spiegeloperator voor opwaartse kruisingen.
  • IF, voorwaardelijk blok dat meestal om een kruisingstest heen staat.
  • THEN, verplicht tussen de voorwaarde en de body van het blok.
  • ExponentialAverage, EMA-reeks die in crossoversystemen vaak wordt gecombineerd.
  • Average, enkelvoudig voortschrijdend gemiddelde, nog een veelgebruikte invoer voor kruisingen.
  • AND, combineert de kruising met positie- of filtervoorwaarden.
  • NOT, ontkent een boolean, nuttig voor positiecontroles naast kruisingen.
  • BarsSince, telt het aantal bars sinds een voorwaarde zoals een kruising waar was.