SET
SET in ProBacktest and ProOrder introduces order management commands such as SET TARGET PROFIT and SET STOP LOSS. Variants, syntax, and errors explained.
Syntax
SET TARGET PROFIT value
SET STOP LOSS valueParametrar
| Namn | Typ | Standard | Beskrivning |
|---|---|---|---|
value | tal | ingen | Avstånd från entrypriset där exiten utlöses, i den enhet som anges av nyckelordet efter STOP eller TARGET. Godtar literaler, variabler och uttryck. |
Så fungerar det
SET introduces the two families of exit declarations. SET STOP definierar var positionen stängs med förlust, och SET TARGET definierar var den stängs med vinst. Varje familj accepterar flera enhetsnyckelord: LOSS och PROFIT mäter avståndet i prisenheter, PLOSS och PPROFIT i punkter, %LOSS och %PROFIT i procent, $LOSS och $PROFIT i kontovaluta. Utöver fasta avstånd, SET STOP accepterar även de trailing-varianterna TRAILING, PTRAILING, %TRAILING och $TRAILING, och båda sidor accepterar BREAKEVEN.
En SET-deklaration är bestående. Den gäller den position som är öppen nu och varje position som öppnas därefter, till dess att ett annat SET-anrop på samma sida ersätter den. Det finns exakt två platser, en på stop-sidan och en på target-sidan; inom en plats vinner det senaste anropet. Skriven utan villkor i slutet av koden fungerar en deklaration som en permanent bracket på alla affärer. Skriven inne i IF-block justerar den exiten medan affären utvecklas, och det är så logik för breakeven och vinstlåsning uttrycks.
Värdena är avstånd från entrypriset, inte absoluta prisnivåer. För en long-position sträcker sig stoppavståndet under entryn och targetavståndet över den; en short-position speglar båda.
Exempel
Exempel 1, Permanent bracket på varje affär (ProBacktest)
// Standing exit bracket, applies to each position the strategy opens
SET TARGET PROFIT 120
SET STOP LOSS 100Varje affär har en take profit 120 prisenheter från entry och en stop 100 enheter från entry. Detta är exemplet från den officiella referensen.
Exempel 2, Procentbaserad 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 1Procentvarianterna håller bracketen proportionell mot instrumentets pris, vilket gör att samma kod kan återanvändas på marknader med olika prisnivåer.
Exempel 3, Dra åt stoppen medan affären går (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
ENDIFStop-platsen skrivs om varje bar, en fast stop på 20 punkter tidigt i affären, därefter en trailing stop på 10 punkter när positionen ligger 20 punkter i vinst. Det senaste SET-anropet på stop-sidan är alltid det aktiva.
Vanliga fel och fallgropar
- SET is not assignment. Variabler tilldelas med
=, som ia = 10. SET föregår endast nyckelord för orderhantering;SET a 10kompilerar inte, ochSTOP LOSS 100utan SET kompilerar inte heller. - Avstånd, inte prisnivåer.
SET STOP LOSS 100lägger stoppen 100 prisenheter från entry, inte vid priset 100. Absoluta nivåer måste först omvandlas till ett avstånd från TRADEPRICE. - En plats per sida, det sista anropet vinner. Två
SET STOPrader som båda exekveras på samma bar lämnar bara den andra aktiv. Överlappande IF-block är den vanliga källan till ett stop som i tysthet skiljer sig från det som var avsett. - Deklarationer lever längre än affären. Ett SET-anrop fortsätter att gälla för framtida positioner till det ersätts. En villkorad åtstramning som utlöses sent i en affär följer med till nästa affärs entrybar om inte koden återställer bracketen när den är utan position.
Relaterade instruktioner
STOP, stop loss-sidan av SET-instruktionen.TARGET, take profit-sidan av SET-instruktionen.BREAKEVEN, flyttar stoppen eller målet till entrypriset.TRAILING, trailing stop-avstånd i prisenheter.PTRAILING, trailing stop-avstånd i punkter.Set Stop Profit, stoporder placerad på ett vinstavstånd från entryn.Set Target Loss, targetorder placerad på ett förlustavstånd från entry.PROFIT, take profit-avstånd i prisenheter.LOSS, stop loss-avstånd i prisenheter.PPROFIT, take profit-avstånd i punkter.PLOSS, stop loss-avstånd i punkter.