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
SET TARGET PROFIT value
SET STOP LOSS valueParametere
| Navn | Type | Standard | Beskrivelse |
|---|---|---|---|
value | tall | ingen | Avstand 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)
// Standing exit bracket, applies to each position the strategy opens
SET TARGET PROFIT 120
SET STOP LOSS 100Hver 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)
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 1Prosentvariantene 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)
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
ENDIFStopplassen 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 ia = 10. SET står bare foran nøkkelord for ordrehåndtering;SET a 10kompilerer ikke, ogSTOP LOSS 100uten SET kompilerer heller ikke. - Avstander, ikke prisnivåer.
SET STOP LOSS 100plasserer 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 STOPlinjer 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.
Relaterte instruksjoner
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.