PROFIT
SET TARGET PROFIT in ProBacktest and ProOrder places a take profit a fixed number of price units from entry. PROFIT syntax, examples, and common errors.
Syntax
SET TARGET PROFIT xParametrar
| Namn | Typ | Standard | Beskrivning |
|---|---|---|---|
x | tal | ingen | Avstånd mellan entrypriset och take profit, uttryckt i instrumentets prisenheter. Accepterar literaler, variabler och uttryck. |
Så fungerar det
SET TARGET PROFIT deklarerar en väntande take profit-order i förhållande till positionens entrypris. För en long-position ligger exitnivån x prisenheter över entryn; för en short-position ligger den x enheter under. När priset når nivån stängs positionen automatiskt.
Deklarationen är bestående. När den körts förblir den aktiv för den aktuella positionen och för positioner som öppnas senare, till dess att en annan SET TARGET anropet ersätter det. Att placera instruktionen på en egen rad i slutet av koden, utanför varje IF-block, är det vanliga mönstret för ett fast mål som gäller varje affär. Att svepa in den i villkor gör att målet kan ändras under pågående affär, och då är det senaste anropet som definierar den aktiva nivån.
Avståndet mäts i prisenheter, där en enhet är instrumentets POINTSIZE. För procentbaserade eller kontantbaserade mål, använd %PROFIT och $PROFIT varianterna istället för att konvertera manuellt.
Exempel
Exempel 1, MACD-entry med mål på 50 enheter (ProBacktest)
myMACD = MACD[12,26,9](close)
long = myMACD crosses over 0
IF NOT LongOnMarket AND long THEN
BUY 1 CONTRACTS AT MARKET
ENDIF
// Close the position once it gains 50 price units
SET TARGET PROFIT 50En long öppnas när MACD-linjen korsar över noll, och take profit stänger den 50 prisenheter över entryt. Detta är exemplet från den officiella referensen.
Exempel 2, Fast bracket med mål och stop (ProOrder)
DEFPARAM CumulateOrders = false
IF NOT onmarket AND close CROSSES OVER Average[50](close) THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Fixed exit bracket around the entry price
SET TARGET PROFIT 120
SET STOP LOSS 60Varje position har samma bracket, en take profit 120 enheter över entryt och en stop 60 enheter under. Båda deklarationerna ligger utanför entryblocket så att de gäller för alla affärer.
Exempel 3, Volatilitetsskalat mål (ProOrder)
atr = AverageTrueRange[14](close)
IF NOT onmarket AND RSI[14](close) < 30 THEN
BUY 1 CONTRACT AT MARKET
// Target distance adapts to recent volatility
SET TARGET PROFIT ROUND(2 * atr)
ENDIFMålavståndet räknas om vid entry som två gånger aktuell ATR, så lugna marknader får tätare mål än volatila.
Vanliga fel och fallgropar
- Prisenheter, inte punkter eller procent.
SET TARGET PROFITmäter dess avstånd i instrumentets prisenheter. För punkter användSET TARGET PPROFIT, för procentSET TARGET %PROFIT, för kontovalutaSET TARGET $PROFIT. Att blanda ihop enheten ger mål som är vilt för snäva eller för vida. - PROFIT läser inte av vinst. Nyckelordet förekommer bara inuti SET-instruktionen. För att läsa det löpande resultatet av en strategi eller position, använd STRATEGYPROFIT eller POSITIONPERF; att skriva
IF profit > 0kompilerar inte. - Avstånd, inte nivå. Värdet är en förskjutning från entrypriset, inte ett absolut pris.
SET TARGET PROFIT 12000på ett index som handlas vid 12050 skapar ett mål 12000 enheter bort, inte ett mål vid 12000. - Det sista anropet gäller. Konsekutiva
SET TARGETanrop skriver över varandra, bara den senaste deklarationen är aktiv. Villkorsblock som utlöses på samma bar kan tyst ersätta ett avsett mål.
Relaterade instruktioner
PPROFIT, take profit-avstånd i punkter.%PROFIT, take profit-avstånd i procent.$PROFIT, take profit-avstånd i kontovalutan.SET, prefix för alla deklarationer för orderhantering.TARGET, take profit-sidan av SET-instruktionen.LOSS, stop loss-avstånd i prisenheter.Set Target Loss, targetorder placerad på ett förlustavstånd från entry.STRATEGYPROFIT, strategins realiserade vinst i kontovalutan.POSITIONPERF, den öppna positionens utveckling.TRADEPRICE, entrypriset för den nuvarande positionen.