CROSSES OVER
CROSSES OVER i ProBuilder returnerar true på den bar där en serie rör sig från under till över en annan, standardtriggern för bullish crossover-signaler.
Syntax
a CROSSES OVER bParametrar
| Namn | Typ | Standard | Beskrivning |
|---|---|---|---|
| a | numerisk serie | obligatorisk | Serien som testas för en korsning uppåt. |
| b | numerisk serie eller konstant | obligatorisk | Serien eller den fasta nivå som a måste korsa uppåt. |
Formel
a CROSSES OVER 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 under b, och på den aktuella baren a ligger strikt över b.
Så fungerar det
CROSSES OVER jämför två värden över på varandra följande barer och returnerar ett booleskt värde. Den löser ut endast på den enda bar där förhållandet vänder från under till över. På varje följande bar där a helt enkelt stannar över b, är uttrycket false. Det gör den till en händelsedetektor snarare än ett tillståndstest, vilket är den avgörande skillnaden mot att skriva a > b.
Båda operanderna kan vara vilket numeriskt uttryck som helst: ett indikatoranrop, en priskonstant som close, en användarvariabel eller ett fast tal. Att korsa en konstant nivå är vanligt, till exempel RSI[14](close) CROSSES OVER 50.
Eftersom testet involverar den aktuella baren kan en signal som utvärderas på en pågående, oavslutad bar uppstå och försvinna när priserna rör sig. Strategier som bara får agera på bekräftade signaler testar typiskt förskjutna värden, som a[1] CROSSES OVER b[1], så korsningen mäts på avslutade barer.
Exempel
Exempel 1, EMA-crossover-signal (Indikator)
a = ExponentialAverage[20](close)
b = ExponentialAverage[50](close)
signal = 0
// Test the crossing on completed bars to avoid repainting
IF a[1] CROSSES OVER b[1] THEN
signal = 1
ELSE
signal = 0
ENDIF
RETURN signal AS "Bullish Signal"Indikatorn ritar 1 på baren efter att en 20-periods EMA korsar över en 50-periods EMA, och 0 överallt annars. Att förskjuta båda operanderna med en bar innebär att signalen enbart bygger på stängda data.
Exempel 2, Long-entry vid en korsning av glidande medelvärden (ProOrder)
fast = Average[20](close)
slow = Average[50](close)
// Open a long position on the upward cross
IF fast CROSSES OVER slow AND NOT LONGONMARKET THEN
BUY 1 CONTRACT AT MARKET
ENDIF
SET STOP PLOSS 50Strategin köper ett kontrakt på den bar där det snabba medelvärdet korsar över det långsamma medelvärdet, förutsatt att ingen long-position redan är öppen, och lägger på ett stopp på 50 punkter.
Exempel 3, RSI lämnar översåld zon (ProScreener)
myRSI = RSI[14](close)
// Match instruments where RSI has just crossed above 30
cond = myRSI CROSSES OVER 30
SCREENER[cond] (myRSI AS "RSI value")Screenern listar instrument vars 14-periods RSI korsade över nivån 30 på den aktuella baren, och visar RSI-värdet i resultatkolumnen.
Vanliga fel och fallgropar
- Att förväxla en korsning med ett tillstånd.
a CROSSES OVER bär sant för exakt en bar. Kod som förväntar sig att det förblir sant medanaligger kvar överbbör användaa > bistället. - Ommålning på den aktiva baren. Utvärderat på den formande baren kan villkoret slå om när ticks kommer in. Att testa
a[1] CROSSES OVER b[1]bekräftar korsningen på stängda barer till priset av en bars fördröjning. - Beröring utan korsning. Om
astiger till exakt lika medboch sedan faller tillbaka utlöses ingen korsning, eftersom värdet på aktuell bar måste vara strikt större. Signaler som ska inkludera tangeringar behöver en explicit jämförelse. - Platta serier korsar aldrig. När båda operanderna är identiska eller rör sig i exakt samma takt, till exempel samma medelvärde tillämpat på samma indata, returnerar uttrycket aldrig true. Kontrollera att de två serierna verkligen är olika.
Relaterade instruktioner
CROSSES UNDER, spegeloperatorn för korsningar nedåt.IF, villkorsblock som vanligtvis omsluter ett korsningstest.THEN, obligatoriskt mellan villkoret och blockets innehåll.ExponentialAverage, EMA-serie som ofta används i crossover-system.Average, enkelt glidande medelvärde, en annan vanlig indata för korsningar.AND, kombinerar en crossover med ytterligare filter.OR, accepterar vilket som helst av flera crossover-villkor.BarsSince, räknar antalet barer sedan ett villkor, till exempel en korsning, var sant.