CROSSES OVER
CROSSES OVER in ProBuilder geeft true op de bar waar de ene reeks van onder naar boven een andere beweegt, de standaardtrigger voor bullish crossoversignalen.
Syntaxis
a CROSSES OVER bParameters
| Naam | Type | Standaard | Beschrijving |
|---|---|---|---|
| a | numerieke reeks | verplicht | De reeks die op een opwaartse kruising wordt getest. |
| b | numerieke reeks of constante | verplicht | De reeks of het vaste niveau dat a moet opwaarts kruisen. |
Formule
a CROSSES OVER b is waar wanneer beide voorwaarden op dezelfde bar gelden:
a[1] <= b[1] and a > bOp de vorige bar a was op of onder b, en op de huidige bar a is strikt boven b.
Hoe het werkt
CROSSES OVER vergelijkt twee waarden over opeenvolgende bars en geeft een boolean. Hij gaat alleen af op de enkele bar waar de verhouding van onder naar boven omslaat. Op elke volgende bar waar a blijft simpelweg boven b, is de expressie false. Daarmee is het een gebeurtenisdetector in plaats van een toestandstest, en dat is het belangrijkste verschil met het schrijven van a > b.
Beide operanden kunnen elke numerieke expressie zijn: een indicatorcall, een prijsconstante zoals close, een gebruikersvariabele of een vast getal. Het kruisen van een constant niveau is gangbaar, bijvoorbeeld RSI[14](close) CROSSES OVER 50.
Omdat de test de huidige bar meeneemt, kan een signaal dat op een live, onafgeronde bar wordt geëvalueerd verschijnen en verdwijnen terwijl de koersen bewegen. Strategieën die alleen op bevestigde signalen mogen handelen testen doorgaans verschoven waarden, zoals a[1] CROSSES OVER b[1], zodat de kruising op afgeronde bars wordt gemeten.
Voorbeelden
Voorbeeld 1, EMA-crossoversignaal (Indicator)
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"De indicator plot 1 op de bar nadat een EMA over 20 periodes boven een EMA over 50 periodes kruist, en 0 overal elders. Door beide operanden één bar te verschuiven is het signaal alleen op gesloten data gebaseerd.
Voorbeeld 2, Long instap bij een kruising van moving averages (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 50De strategie koopt één contract op de bar waar het snelle gemiddelde boven het langzame gemiddelde kruist, op voorwaarde dat er nog geen long positie open is, en hangt er een stop van 50 punten aan.
Voorbeeld 3, RSI verlaat oversold gebied (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")De screener toont instrumenten waarvan de RSI over 14 periodes op de huidige bar boven het niveau 30 kruiste, met de RSI-waarde in de resultatenkolom.
Veelvoorkomende fouten en valkuilen
- Een kruising verwarren met een toestand.
a CROSSES OVER bis precies één bar waar. Code die verwacht dat het waar blijft terwijlablijft bovenbmoet gebruikena > bin plaats daarvan. - Repainting op de live bar. Geëvalueerd op de vormende bar kan de voorwaarde omslaan terwijl ticks binnenkomen. Testen van
a[1] CROSSES OVER b[1]bevestigt de cross op gesloten bars ten koste van één bar vertraging. - Aanraken zonder te kruisen. Als
astijgt tot exact gelijk aanben dan terugvalt, vuurt er geen crossover, omdat de waarde op de huidige bar strikt groter moet zijn. Signalen die aanrakingen moeten meenemen hebben een expliciete vergelijking nodig. - Vlakke reeksen kruisen nooit. Wanneer beide operanden identiek zijn of gelijk oplopen, bijvoorbeeld hetzelfde gemiddelde toegepast op dezelfde invoer, geeft de expressie nooit true. Controleer of de twee reeksen werkelijk verschillend zijn.
Gerelateerde instructies
CROSSES UNDER, de spiegeloperator voor neerwaartse 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 vaak in crossoversystemen wordt gebruikt.Average, enkelvoudig voortschrijdend gemiddelde, nog een veelgebruikte invoer voor kruisingen.AND, combineert een crossover met aanvullende filters.OR, accepteert elk van meerdere crossovervoorwaarden.BarsSince, telt het aantal bars sinds een voorwaarde zoals een kruising waar was.