Bli medlem i dag
Instruksjoner/probuilder · probacktest · proorder · proscreener

CROSSES UNDER

CROSSES UNDER i ProBuilder returnerer sann på baren der én serie går fra over til under en annen, standardtriggeren for bearish kryssignaler.

Syntaks

probuilder
a CROSSES UNDER b

Parametere

NavnTypeStandardBeskrivelse
anumerisk seriepåkrevdSerien som testes for et kryss nedover.
bnumerisk serie eller konstantpåkrevdSerien eller det faste nivået som a må krysse under.

Formel

a CROSSES UNDER b er sann når begge betingelsene gjelder på samme bar:

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

På forrige bar a var på eller over b, og på gjeldende bar a er strengt under b.

Slik fungerer det

CROSSES UNDER sammenligner to verdier over påfølgende barer og returnerer en boolsk verdi. Uttrykket er sant bare på den ene baren der forholdet snur fra over til under. På senere barer der a holder seg kun under b, returnerer den false. Den oppdager derfor selve krysningshendelsen, i motsetning til tilstandssammenligningen a < b, som forblir true så lenge betingelsen holder.

Begge operander kan være et numerisk uttrykk av alle slag: indikatorutdata, en priskonstant som close, en variabel eller et vanlig tall. Kryssing av faste nivåer er et vanlig mønster, for eksempel Stochastic[14,3](close) CROSSES UNDER 80.

Siden gjeldende bar deltar i testen, kan en nedadgående kryssing oppdaget på en levende bar forsvinne hvis prisene henter seg inn før baren lukkes. Testing av forskjøvede verdier, som a[1] CROSSES UNDER b[1], begrenser sjekken til fullførte barer og gir stabile signaler én bar senere.

Eksempler

Eksempel 1, EMA-kryss på nedsiden (Indikator)

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"

Indikatoren skriver -1 på baren etter at 20-periodes EMA faller under 50-periodes EMA, og 0 ellers. Begge operandene er forskjøvet én bar slik at testen bruker lukkede data.

Eksempel 2, Lukke en long-posisjon (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 fungerer som utgangstrigger: long-posisjonen som ble åpnet på det bullish krysset, lukkes på baren der det raske gjennomsnittet faller tilbake under det langsomme.

Eksempel 3, Stochastic forlater overkjøpt område (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")

Screeneren returnerer instrumenter der stochastic %K krysset under nivået 80 på gjeldende bar, et vanlig utgangsmønster for overkjøpt.

Vanlige feil og fallgruver

  • Hendelse på én bar, ikke en tilstand. Uttrykket er sant bare på krysningsbaren. Logikk som trenger "er fortsatt under" må teste a < b separat, ellers forsvinner signalet stille på neste bar.
  • Ustabilitet på den løpende baren. På en bar som dannes kan krysset utløses og deretter forsvinne igjen før lukkingen. Bruk a[1] CROSSES UNDER b[1] når bare bekreftede kryssinger skal telle.
  • Streng ulikhet er påkrevd. En serie som faller til nøyaktig nivået til b uten å bevege seg under den utløser ikke betingelsen, fordi sammenligningen på gjeldende bar er streng.
  • Omvendt rekkefølge på operandene. a CROSSES UNDER b og b CROSSES UNDER a beskriver motsatte hendelser. Å bytte om operandene ved et uhell inverterer signalet uten noen kompilatoradvarsel.
  • CROSSES OVER, speiloperatoren for kryss oppover.
  • IF, betinget blokk som vanligvis omslutter en kryssingstest.
  • THEN, påkrevd mellom betingelsen og blokkinnholdet.
  • ExponentialAverage, EMA-serie som ofte kombineres i kryssystemer.
  • Average, enkelt glidende gjennomsnitt, en annen vanlig inngangsverdi for kryssinger.
  • AND, kombinerer krysset med posisjons- eller filterbetingelser.
  • NOT, negerer en boolsk verdi, nyttig for posisjonssjekker sammen med kryss.
  • BarsSince, teller barer gått siden en betingelse som en kryssing var sann.