CROSSES UNDER
CROSSES UNDER i ProBuilder returnerar true på den bar där en serie rör sig från över till under en annan, standardtriggern för bearish crossover-signaler.
Syntax
a CROSSES UNDER bParametrar
| Namn | Typ | Standard | Beskrivning |
|---|---|---|---|
| a | numerisk serie | obligatorisk | Serien som testas för en korsning nedåt. |
| b | numerisk serie eller konstant | obligatorisk | Serien eller den fasta nivå som a måste korsa nedåt. |
Formel
a CROSSES UNDER b är sant när båda villkoren gäller på samma bar:
a[1] >= b[1] and a < bPå föregående bar a låg på eller över b, och på den aktuella baren a ligger strikt under b.
Så fungerar det
CROSSES UNDER jämför två värden över på varandra följande barer och returnerar ett booleskt värde. Uttrycket är sant endast på den enda bar där förhållandet vänder från över till under. På senare barer där a bara stannar under b, returnerar det false. Det upptäcker alltså själva korsningshändelsen, till skillnad från tillståndsjämförelsen a < b, som förblir true så länge villkoret gäller.
Vilken operand som helst kan vara ett numeriskt uttryck av vilket slag som helst: indikatorutdata, en kurskonstant såsom close, en variabel eller ett vanligt tal. Att korsa fasta nivåer är ett vanligt mönster, till exempel Stochastic[14,3](close) CROSSES UNDER 80.
Eftersom aktuell bar deltar i testet kan en nedåtkorsning som upptäcks på en levande bar försvinna om priserna återhämtar sig innan baren stänger. Att testa förskjutna värden, till exempel a[1] CROSSES UNDER b[1], begränsar kontrollen till avslutade barer och ger stabila signaler en bar senare.
Exempel
Exempel 1, EMA-korsning nedåt (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"Indikatorn skriver ut -1 på baren efter att den 20-periods EMA faller under den 50-periods EMA, och 0 annars. Båda operanderna förskjuts en bar så att testet använder stängda data.
Exempel 2, Stänga en 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 fungerar som exittrigger: long-positionen som öppnades vid den bullish korsningen stängs på den bar där det snabba medelvärdet faller tillbaka under det långsamma.
Exempel 3, Stochastic lämnar överköpt zon (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")Screenern returnerar instrument vars stochastic %K korsade under nivån 80 på den aktuella baren, ett vanligt exitmönster vid överköpt läge.
Vanliga fel och fallgropar
- En händelse på en bar, inte ett tillstånd. Uttrycket är sant bara på korsningsbaren. Logik som behöver "ligger fortfarande under" måste testa
a < bseparat, annars försvinner signalen tyst på nästa bar. - Instabilitet på den aktiva baren. På en formande bar kan korsningen utlösas och sedan upphöra före stängningen. Använd
a[1] CROSSES UNDER b[1]när bara bekräftade korsningar ska räknas. - Strikt olikhet krävs. En serie som faller till exakt samma nivå som
butan att röra sig under den utlöser inte villkoret, eftersom jämförelsen på aktuell bar är strikt. - Omvänd operandordning.
a CROSSES UNDER bochb CROSSES UNDER abeskriver motsatta händelser. Att av misstag byta plats på operanderna inverterar signalen utan någon kompilatorvarning.
Relaterade instruktioner
CROSSES OVER, spegeloperatorn för korsningar uppåt.IF, villkorsblock som vanligtvis omsluter ett korsningstest.THEN, obligatoriskt mellan villkoret och blockets innehåll.ExponentialAverage, EMA-serie som ofta kombineras i crossover-system.Average, enkelt glidande medelvärde, en annan vanlig indata för korsningar.AND, kombinerar korsningen med positions- eller filtervillkor.NOT, negerar ett booleskt värde, användbart för positionskontroller vid sidan av korsningar.BarsSince, räknar antalet barer sedan ett villkor, till exempel en korsning, var sant.