Bli medlem idag
ProBacktest/probacktest · proorder

POINTSIZE

POINTSIZE returnerar storleken på en punkt i prisenheter för det aktuella instrumentet, används i ProBacktest och ProOrder för att omvandla priser till antal punkter.

Syntax

probuilder
POINTSIZE

Så fungerar det

POINTSIZE är en skrivskyddad marknadskonstant som inte tar några argument. Den rapporterar storleken på en enskild punkt för det instrument strategin är kopplad till, uttryckt i instrumentets egna prisenheter. På ett index som noteras vid 18000 kan en punkt vara 1.0, medan den på ett forexpar som noteras med fem decimaler är en liten bråkdel, så konstanten låter en och samma strategi anpassa sig till vilken noteringskonvention som helst.

Dess huvudsakliga uppgift är enhetsomvandling. Prisbaserade serier såsom close eller AverageTrueRange anges i prisenheter, medan instruktioner som SET STOP PLOSS och vinsttrösklar uttrycks ofta i punkter. Att dividera ett prisavstånd med POINTSIZE omvandlar det till punkter, och att multiplicera ett antal punkter med POINTSIZE omvandlar det tillbaka till ett prisavstånd som kan jämföras med kurser.

POINTSIZE beskriver endast avstånd. Kontantvärdet av en rörelse på en punkt är en separat konstant, POINTVALUE. En fullständig kontantberäkning använder vanligen båda, först genom att normalisera en prisrörelse till punkter, sedan genom att omvandla punkter till pengar.

Exempel

Exempel 1, flytande vinst för den öppna positionen (ProBacktest)

probuilder
// Unrealized gain of the open trade in account currency
floatingprofit = (((close - positionprice) * pointvalue) * countofposition) / pointsize
GRAPH floatingprofit AS "Floating profit"

Avståndet mellan det aktuella priset och den genomsnittliga entryn skalas med kontantvärdet av en punkt, multipliceras med position size och normaliseras med POINTSIZE, vilket ger den orealiserade vinsten i pengar. Detta är referensexemplet från källdokumentationen med omskrivna kommentarer.

Exempel 2, flytt till breakeven efter en fast punktvinst (ProOrder)

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

Att multiplicera 10 med POINTSIZE omvandlar punktmålet till ett prisavstånd som kan jämföras direkt med gapet mellan högsta och det genomsnittliga entrypriset.

Exempel 3, ATR-stop omvandlad till hela punkter (ProBacktest)

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

ATR är ett prisavstånd, så division med POINTSIZE ger det antal punkter som SET STOP PLOSS förväntar sig, med avrundning och ett golv på en punkt för att hålla värdet giltigt.

Vanliga fel och fallgropar

  • POINTSIZE är inte POINTVALUE. POINTSIZE är ett avstånd i prisenheter, POINTVALUE är kontantvärdet av det avståndet. Att byta plats på dem förstör tyst varje riskberäkning, eftersom båda är vanliga tal och kompilatorn inte kan fånga felet.
  • Punkt och pip kan skilja sig. På instrument som noteras med bråkdelssteg kan PIPSIZE och POINTSIZE vara olika. Kod som behandlar dem som utbytbara beter sig olika mellan forexpar och index; kontrollera båda konstanterna för målmarknaden.
  • Hårdkodade omvandlingar. Att ersätta POINTSIZE med ett literalvärde såsom 0.0001 binder strategin till en enda noteringskonvention. Samma kod ger då felaktiga stoppavstånd på varje annat instrument.
  • Begränsning av omfattning. Konstanten kompilerar endast i ProBacktest och ProOrder. Indikator- eller screenerkod som behöver punktaritmetik måste använda fasta parameterindata i stället.
  • POINTVALUE, kontantvärdet av en rörelse på en punkt.
  • PIPSIZE, storleken på en pip i prisenheter.
  • PIPVALUE, kontantvärdet av en pip, synonym till POINTVALUE.
  • TICKSIZE, det minsta handelsbara prissteget.
  • POSITIONPRICE, det genomsnittliga entrypriset för den öppna positionen.
  • COUNTOFPOSITION, storleken på den öppna positionen med tecken.
  • BREAKEVEN, flyttar stoppen eller målet till entrypriset.
  • PLOSS, stop loss uttryckt i punkter.