POINTSIZE
POINTSIZE returnerer størrelsen på ett poeng i prisenheter for det gjeldende instrumentet, brukt i ProBacktest og ProOrder til å konvertere priser til antall poeng.
Syntaks
POINTSIZESlik fungerer det
POINTSIZE er en skrivebeskyttet markedskonstant som ikke tar noen argumenter. Den rapporterer størrelsen på ett enkelt poeng for instrumentet strategien er knyttet til, uttrykt i instrumentets egne prisenheter. På en indeks som noteres på 18000 kan ett poeng være 1.0, mens på et valutapar som noteres med fem desimaler er det en liten brøkdel, så konstanten gjør at én strategi kan tilpasse seg hvilken som helst noteringskonvensjon.
Hovedoppgaven er enhetskonvertering. Prisbaserte serier som close eller AverageTrueRange ligger i prisenheter, mens instruksjoner som SET STOP PLOSS og gevinstterskler uttrykkes ofte i punkter. Å dele en prisavstand på POINTSIZE gjør den om til punkter, og å multiplisere et antall punkter med POINTSIZE gjør det tilbake til en prisavstand som kan sammenlignes med kurser.
POINTSIZE beskriver bare avstand. Kontantverdien av en bevegelse på ett poeng er en egen konstant, POINTVALUE. En fullstendig kontantberegning bruker vanligvis begge, først ved å normalisere en prisbevegelse til poeng, deretter ved å konvertere poeng til penger.
Eksempler
Eksempel 1, Urealisert gevinst for den åpne posisjonen (ProBacktest)
// Unrealized gain of the open trade in account currency
floatingprofit = (((close - positionprice) * pointvalue) * countofposition) / pointsize
GRAPH floatingprofit AS "Floating profit"Avstanden mellom gjeldende pris og gjennomsnittlig inngang skaleres med kontantverdien av et poeng, multipliseres med position size og normaliseres med POINTSIZE, noe som gir den urealiserte gevinsten i kontanter. Dette er referanseeksempelet fra kildedokumentasjonen med omskrevne kommentarer.
Eksempel 2, Flytting til breakeven etter en fast poenggevinst (ProOrder)
// Move the stop to entry once the long is 10 points in profit
IF longonmarket AND (high - positionprice) >= 10 * pointsize THEN
SET STOP BREAKEVEN
ENDIFÅ multiplisere 10 med POINTSIZE konverterer poengmålet til en prisavstand som kan sammenlignes direkte med forskjellen mellom høyden og gjennomsnittlig inngangspris.
Eksempel 3, ATR-stop konvertert til hele poeng (ProBacktest)
// Express a two-ATR stop distance as an integer point count
atr = AverageTrueRange[14](close)
stopPoints = max(1, round((2 * atr) / pointsize))
IF NOT onmarket AND close > average[50](close) THEN
BUY 1 CONTRACTS AT MARKET
ENDIF
SET STOP PLOSS stopPointsATR er en prisavstand, så å dividere med POINTSIZE gir det antall punkter som SET STOP PLOSS forventer, med avrunding og en nedre grense på ett poeng for å holde verdien gyldig.
Vanlige feil og fallgruver
- POINTSIZE er ikke POINTVALUE. POINTSIZE er en avstand i prisenheter, POINTVALUE er kontantverdien av den avstanden. Å bytte om på dem ødelegger stille hver risikoberegning, fordi begge er vanlige tall og kompilatoren ikke kan fange opp feilen.
- Poeng og pip kan være forskjellige. På instrumenter som noteres med brøkdelsøkninger, er PIPSIZE og POINTSIZE kanskje ikke like. Kode som behandler dem som utbyttbare, oppfører seg ulikt på tvers av valutapar og indekser; sjekk begge konstantene for målmarkedet.
- Hardkodede konverteringer. Å erstatte POINTSIZE med en litteral som 0.0001 binder strategien til én noteringskonvensjon. Samme kode gir da feil stop-avstander på alle andre instrumenter.
- Begrensning i omfang. Konstanten kompilerer bare i ProBacktest og ProOrder. Indikator- eller screener-kode som trenger poengaritmetikk må bruke faste parameterinndata i stedet.
Relaterte instruksjoner
POINTVALUE, kontantverdien av en bevegelse på ett punkt.PIPSIZE, størrelsen på én pip i prisenheter.PIPVALUE, kontantverdien av én pip, synonym for POINTVALUE.TICKSIZE, det minste omsettelige prissteget.POSITIONPRICE, den gjennomsnittlige inngangsprisen for den åpne posisjonen.COUNTOFPOSITION, størrelsen på den åpne posisjonen med fortegn.BREAKEVEN, flytter stoppen eller målet til inngangsprisen.PLOSS, stop loss uttrykt i punkter.