Word nu lid
ProBacktest/probacktest · proorder

POINTSIZE

POINTSIZE geeft de grootte van één punt in prijseenheden terug voor het huidige instrument, gebruikt in ProBacktest en ProOrder om prijzen om te zetten in aantallen punten.

Syntaxis

probuilder
POINTSIZE

Hoe het werkt

POINTSIZE is een alleen-lezen marktconstante die geen argumenten neemt. Hij rapporteert de grootte van één punt voor het instrument waaraan de strategie is gekoppeld, uitgedrukt in de eigen prijseenheden van het instrument. Op een index die op 18000 wordt gequoteerd is een punt misschien 1.0, terwijl het op een forexpaar dat tot vijf decimalen wordt gequoteerd een kleine fractie is, dus de constante laat één strategie zich aanpassen aan elke quoteringsconventie.

De hoofdtaak is eenheidsconversie. Op prijs gebaseerde reeksen zoals close of AverageTrueRange staan in prijseenheden, terwijl instructies zoals SET STOP PLOSS en winstdrempels worden vaak in punten uitgedrukt. Een prijsafstand delen door POINTSIZE maakt er punten van, en een aantal punten vermenigvuldigen met POINTSIZE maakt er weer een prijsafstand van die met koersen kan worden vergeleken.

POINTSIZE beschrijft alleen afstand. De cashwaarde van een beweging van één punt is een aparte constante, POINTVALUE. Een volledige cashberekening gebruikt doorgaans beide, door een prijsbeweging eerst te normaliseren naar punten en punten daarna om te zetten in geld.

Voorbeelden

Voorbeeld 1, ongerealiseerde winst van de open positie (ProBacktest)

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

De afstand tussen de huidige prijs en de gemiddelde instap wordt geschaald met de cashwaarde van een punt, vermenigvuldigd met de position size en genormaliseerd door POINTSIZE, wat de ongerealiseerde winst in cash oplevert. Dit is het referentievoorbeeld uit de brondocumentatie met herschreven commentaar.

Voorbeeld 2, verplaatsing naar breakeven na een vaste winst in punten (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

10 vermenigvuldigen met POINTSIZE zet het puntendoel om in een prijsafstand die direct kan worden vergeleken met het verschil tussen de high en de gemiddelde instapprijs.

Voorbeeld 3, ATR-stop omgezet in hele punten (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 is een prijsafstand, dus delen door POINTSIZE levert het aantal punten dat SET STOP PLOSS verwacht, met afronding en een minimum van één punt om de waarde geldig te houden.

Veelvoorkomende fouten en valkuilen

  • POINTSIZE is niet POINTVALUE. POINTSIZE is een afstand in prijseenheden, POINTVALUE is de cashwaarde van die afstand. Ze verwisselen verpest stilzwijgend elke risicoberekening, omdat het beide gewone getallen zijn en de compiler de fout niet kan opmerken.
  • Punt en pip kunnen verschillen. Op instrumenten die met fractionele stappen worden gequoteerd, zijn PIPSIZE en POINTSIZE mogelijk niet gelijk. Code die ze als onderling verwisselbaar behandelt, gedraagt zich anders op forexparen dan op indices; controleer beide constanten voor de doelmarkt.
  • Hardgecodeerde omrekeningen. POINTSIZE vervangen door een literal zoals 0.0001 bindt de strategie aan één quoteringsconventie. Dezelfde code levert dan verkeerde stopafstanden op elk ander instrument.
  • Beperking van het bereik. De constante compileert alleen in ProBacktest en ProOrder. Code voor indicatoren of screeners die rekenwerk met punten nodig heeft, moet in plaats daarvan vaste parameterinputs gebruiken.
  • POINTVALUE, de geldwaarde van een beweging van één punt.
  • PIPSIZE, de grootte van één pip in prijseenheden.
  • PIPVALUE, de cashwaarde van één pip, synoniem van POINTVALUE.
  • TICKSIZE, de kleinste verhandelbare prijsstap.
  • POSITIONPRICE, de gemiddelde instapprijs van de open positie.
  • COUNTOFPOSITION, de grootte van de open positie met teken.
  • BREAKEVEN, verplaatst de stop of het target naar de instapprijs.
  • PLOSS, stop loss uitgedrukt in punten.