POINTVALUE
POINTVALUE returnerar kontantvärdet av en rörelse på en punkt för det aktuella instrumentet i ProBacktest och ProOrder, används för riskdimensionering och vinstomvandling.
Syntax
POINTVALUESå fungerar det
POINTVALUE är en skrivskyddad marknadskonstant. Den tar inga argument och returnerar penningvärdet, i instrumentets valuta, av en prisrörelse på en punkt för ett kontrakt, en lot eller en aktie av det instrument strategin körs på. I ProBuilder är den synonym med PIPVALUE.
Konstanten definieras av kontraktsspecifikationen och varierar kraftigt mellan marknader. En punkt på en index-CFD kan vara värd 1 valutaenhet per kontrakt medan en punkt på ett terminskontrakt är värd 25, så strategier som omvandlar mellan punkter och pengar måste läsa POINTVALUE vid körning i stället för att anta en siffra.
Två omvandlingar täcker de flesta användningarna. Pengar till punkter: dividera en vinst eller förlust med POINTVALUE (och med position size när beloppet omfattar flera kontrakt). Punkter till pengar: multiplicera ett punktavstånd med POINTVALUE och antalet kontrakt. I kombination med POINTSIZE, som mäter hur stor en punkt är i prisenheter, gör detta vinst-, risk- och storleksaritmetik portabel mellan instrument.
Exempel
Exempel 1, daglig vinst- och förlustspärr i punkter (ProOrder)
once MaxProfit = 50 // daily profit objective in points
once MaxLoss = 40 // daily loss limit in points
// Reset the daily counter on a new day
if day <> day[1] then
strategyprofitpoint = 0
endif
// Convert each realized profit change into points
if (strategyprofit <> strategyprofit[1]) then
pnl = strategyprofit - strategyprofit[1]
size = max(1, abs(countofposition[1]))
onepos = pnl / size
pointprofit = onepos / pointvalue
strategyprofitpoint = strategyprofitpoint + pointprofit
endif
allowtrading = 1
if (strategyprofitpoint >= MaxProfit or strategyprofitpoint <= -MaxLoss) then
allowtrading = 0
endifVarje förändring i realiserad vinst divideras med position size och med POINTVALUE, vilket omvandlar pengar till punkter. Handeln stängs av för resten av dagen så snart den löpande punktsumman når någon av de två dagliga gränserna. Detta är referensexemplet från källdokumentationen med omskrivna kommentarer.
Exempel 2, flytande vinst för den öppna positionen (ProBacktest)
// Unrealized profit converted from points into cash
IF onmarket THEN
floatingProfit = ((close - positionprice) / pointsize) * pointvalue * countofposition
ELSE
floatingProfit = 0
ENDIF
GRAPH floatingProfit AS "Open position profit"Avståndet från den genomsnittliga entryn normaliseras till punkter med POINTSIZE, omvandlas sedan till pengar med POINTVALUE och skalas med den tecknade position size.
Exempel 3, dimensionera kontrakt utifrån en kontantriskbudget (ProOrder)
// Size the trade so a 40 point stop risks about 150 in cash
riskCash = 150
stopPoints = 40
contracts = max(1, floor(riskCash / (stopPoints * pointvalue)))
IF NOT onmarket AND close CROSSES OVER average[20](close) THEN
BUY contracts CONTRACTS AT MARKET
ENDIF
SET STOP PLOSS stopPointsKontantrisken för ett kontrakt över stoppavståndet är stopPoints * pointvalue, så att dividera budgeten med den siffran ger det antal kontrakt som håller risken nästan konstant mellan instrument.
Vanliga fel och fallgropar
- Siffra per kontrakt. POINTVALUE beskriver ett kontrakt. Att omvandla vinsten för en position med flera kontrakt kräver att man även dividerar eller multiplicerar med position size, som i exemplet med den dagliga spärren ovan.
- Att förväxla värde med storlek. POINTVALUE är pengar, POINTSIZE är ett prisavstånd. Att använda den ena där den andra hör hemma ger resultat som är fel med förhållandet mellan de två, ofta flera tiopotenser.
- Att utgå från ett instruments värde. En konstant som är anpassad för en index-CFD är meningslös på ett forexpar. Varje hårdkodat punktvärde bryter tyst portabiliteten; läs nyckelordet i stället.
- Begränsning av omfattning. Nyckelordet kompilerar endast i ProBacktest och ProOrder. Indikatorer och screeners kan inte komma åt kontraktsspecifikationer och måste ta sådana värden som användarindata.
Relaterade instruktioner
PIPVALUE, synonym till POINTVALUE, kontantvärdet av en pip.POINTSIZE, storleken på en punkt i prisenheter.PIPSIZE, storleken på en pip i prisenheter.TICKSIZE, det minsta handelsbara prissteget.STRATEGYPROFIT, realiserad strategivinst i pengar.COUNTOFPOSITION, storleken på den öppna positionen med tecken.POSITIONPRICE, det genomsnittliga entrypriset för den öppna positionen.GRAPH, ritar ett värde i backtestets grafpanel.