Bli medlem i dag
ProBacktest/probacktest · proorder

POINTVALUE

POINTVALUE returnerer kontantverdien av en bevegelse på ett poeng for det gjeldende instrumentet i ProBacktest og ProOrder, brukt til risikosizing og gevinstkonvertering.

Syntaks

probuilder
POINTVALUE

Slik fungerer det

POINTVALUE er en skrivebeskyttet markedskonstant. Den tar ingen argumenter og returnerer pengeverdien, i instrumentets valuta, av en prisbevegelse på ett poeng for én kontrakt, lot eller aksje av instrumentet strategien kjører på. I ProBuilder er den synonym med PIPVALUE.

Konstanten er definert av kontraktspesifikasjonen og varierer mye mellom markeder. Ett poeng på en indeks-CFD kan være verdt 1 valutaenhet per kontrakt, mens ett poeng på en futureskontrakt er verdt 25, så strategier som konverterer mellom poeng og kontanter må lese POINTVALUE under kjøring i stedet for å anta et tall.

To konverteringer dekker de fleste bruksområder. Kontanter til poeng: del en gevinst eller et tap på POINTVALUE (og på position size når beløpet dekker flere kontrakter). Poeng til kontanter: multipliser en poengavstand med POINTVALUE og antallet kontrakter. Kombinert med POINTSIZE, som måler hvor stort ett poeng er i prisenheter, gjør dette aritmetikken for gevinst, risiko og sizing portabel på tvers av instrumenter.

Eksempler

Eksempel 1, Daglig gevinst- og tapsvakt i poeng (ProOrder)

probuilder
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
endif

Hver endring i realisert gevinst deles på position size og på POINTVALUE, slik at kontanter omregnes til poeng. Trading deaktiveres for resten av dagen så snart den løpende poengsummen treffer en av de daglige grensene. Dette er referanseeksempelet fra kildedokumentasjonen med omskrevne kommentarer.

Eksempel 2, Urealisert gevinst for den åpne posisjonen (ProBacktest)

probuilder
// 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"

Avstanden fra gjennomsnittlig inngang normaliseres til poeng med POINTSIZE, konverteres deretter til kontanter med POINTVALUE og skaleres med fortegnsmerket position size.

Eksempel 3, Beregne antall kontrakter fra et kontantrisikobudsjett (ProOrder)

probuilder
// 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 stopPoints

Kontantrisikoen for én kontrakt over stoppavstanden er stopPoints * pointvalue, så å dele budsjettet på dette tallet gir det antall kontrakter som holder risikoen nær konstant på tvers av instrumenter.

Vanlige feil og fallgruver

  • Tall per kontrakt. POINTVALUE beskriver én kontrakt. Å konvertere gevinsten for en posisjon med flere kontrakter krever at man også deler eller multipliserer med position size, som i eksempelet med den daglige vakten ovenfor.
  • Å forveksle verdi med størrelse. POINTVALUE er kontanter, POINTSIZE er en prisavstand. Å bruke den ene der den andre hører hjemme gir resultater som er feil med forholdet mellom de to, ofte flere størrelsesordener.
  • Å anta verdien til ett instrument. En konstant som er tilpasset en indeks-CFD, er meningsløs på et valutapar. Enhver hardkodet poengverdi ødelegger stille portabiliteten; les nøkkelordet i stedet.
  • Begrensning i omfang. Nøkkelordet kompilerer bare i ProBacktest og ProOrder. Indikatorer og screenere har ikke tilgang til kontraktspesifikasjoner og må ta slike verdier som brukerinndata.
  • PIPVALUE, synonym for POINTVALUE, kontantverdien av én pip.
  • POINTSIZE, størrelsen på ett punkt i prisenheter.
  • PIPSIZE, størrelsen på én pip i prisenheter.
  • TICKSIZE, det minste omsettelige prissteget.
  • STRATEGYPROFIT, realisert strategigevinst i kontanter.
  • COUNTOFPOSITION, størrelsen på den åpne posisjonen med fortegn.
  • POSITIONPRICE, den gjennomsnittlige inngangsprisen for den åpne posisjonen.
  • GRAPH, plotter en verdi i backtest-grafpanelet.