Bli medlem i dag
ProBacktest/probacktest · proorder

SET

SET in ProBacktest and ProOrder introduces order management commands such as SET TARGET PROFIT and SET STOP LOSS. Variants, syntax, and errors explained.

Syntaks

probuilder
SET TARGET PROFIT value
SET STOP LOSS value

Parametere

NavnTypeStandardBeskrivelse
valuetallingenAvstand fra inngangsprisen der utgangen utløses, i den enheten som nøkkelordet etter STOP eller TARGET innebærer. Godtar literaler, variabler og uttrykk.

Slik fungerer det

SET introduces the two families of exit declarations. SET STOP definerer hvor posisjonen lukkes med tap, og SET TARGET definerer hvor den lukkes med gevinst. Hver familie godtar flere enhetsnøkkelord: LOSS og PROFIT måler avstanden i prisenheter, PLOSS og PPROFIT i punkter, %LOSS og %PROFIT i prosent, $LOSS og $PROFIT i kontovaluta. Utover faste avstander, SET STOP godtar også de trailing-variantene TRAILING, PTRAILING, %TRAILING og $TRAILING, og begge sider godtar BREAKEVEN.

En SET-deklarasjon er vedvarende. Den gjelder for posisjonen som er åpen nå og for hver posisjon som åpnes etterpå, til et annet SET-kall på samme side erstatter den. Det finnes nøyaktig to plasser, én på stopsiden og én på målsiden; innenfor en plass vinner det nyeste kallet. Skrevet ubetinget på slutten av koden virker en deklarasjon som en stående bracket på alle handler. Skrevet inne i IF-blokker justerer den utgangen etter hvert som handelen utvikler seg, og det er slik logikk for breakeven og gevinstsikring uttrykkes.

Verdiene er avstander fra inngangsprisen, ikke absolutte prisnivåer. For en long-posisjon strekker stopavstanden seg under inngangen og målavstanden over den; en short-posisjon speiler begge.

Eksempler

Eksempel 1, Stående bracket på hver handel (ProBacktest)

probuilder
// Standing exit bracket, applies to each position the strategy opens
SET TARGET PROFIT 120
SET STOP LOSS 100

Hver handel har en take profit 120 prisenheter fra inngangen og en stop 100 enheter fra inngangen. Dette er eksempelet fra den offisielle referansen.

Eksempel 2, Prosentbasert bracket (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

IF NOT onmarket AND close CROSSES OVER Average[50](close) THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

// Exit at plus 2 percent or minus 1 percent from entry
SET TARGET %PROFIT 2
SET STOP %LOSS 1

Prosentvariantene holder bracketen proporsjonal med instrumentets pris, noe som gjør den samme koden gjenbrukbar på markeder med ulike prisnivåer.

Eksempel 3, Innsnevre stopen etter hvert som handelen går din vei (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

IF NOT onmarket AND close CROSSES OVER highest[20](high)[1] THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

// Initial stop, replaced by a tighter trailing stop once in profit
IF onmarket AND close - tradeprice < 20 * pointsize THEN
  SET STOP PLOSS 20
ELSIF onmarket THEN
  SET STOP PTRAILING 10
ENDIF

Stopplassen skrives om på hver bar, en fast stop på 20 punkter tidlig i handelen, deretter en trailing stop på 10 punkter når posisjonen er 20 punkter i gevinst. Det nyeste SET-kallet på stopsiden er alltid det aktive.

Vanlige feil og fallgruver

  • SET is not assignment. Variabler tilordnes med =, som i a = 10. SET står bare foran nøkkelord for ordrehåndtering; SET a 10 kompilerer ikke, og STOP LOSS 100 uten SET kompilerer heller ikke.
  • Avstander, ikke prisnivåer. SET STOP LOSS 100 plasserer stoppen 100 prisenheter fra inngangen, ikke på prisen 100. Absolutte nivåer må først konverteres til en avstand fra TRADEPRICE.
  • Én plass per side, siste kall vinner. To SET STOP linjer som begge kjøres på samme bar, etterlater bare den andre aktiv. Overlappende IF-blokker er den vanlige årsaken til en stop som stille avviker fra det som var ment.
  • Deklarasjoner lever lenger enn handelen. Et SET-kall fortsetter å gjelde for fremtidige posisjoner til det blir erstattet. En betinget innsnevring som utløses sent i én handel, overføres til inngangsbaren i neste handel med mindre koden nullstiller bracketen når den er ute av markedet.
  • STOP, stop loss-siden av SET-instruksjonen.
  • TARGET, take profit-siden av SET-instruksjonen.
  • BREAKEVEN, flytter stoppen eller målet til inngangsprisen.
  • TRAILING, trailing stop-avstand i prisenheter.
  • PTRAILING, trailing stop-avstand i punkter.
  • Set Stop Profit, stopordre plassert i en gevinstavstand fra inngangen.
  • Set Target Loss, målordre plassert i en tapsavstand fra inngangen.
  • PROFIT, take profit-avstand i prisenheter.
  • LOSS, stop loss-avstand i prisenheter.
  • PPROFIT, take profit-avstand i punkter.
  • PLOSS, stop loss-avstand i punkter.