POINTVALUE
POINTVALUE geeft de cashwaarde terug van een beweging van één punt voor het huidige instrument in ProBacktest en ProOrder, gebruikt voor risicosizing en winstconversie.
Syntaxis
POINTVALUEHoe het werkt
POINTVALUE is een alleen-lezen marktconstante. Hij neemt geen argumenten en geeft de geldwaarde terug, in de valuta van het instrument, van een prijsbeweging van één punt voor één contract, lot of aandeel van het instrument waarop de strategie loopt. In ProBuilder is hij synoniem met PIPVALUE.
De constante wordt bepaald door de contractspecificatie en verschilt sterk per markt. Eén punt op een index-CFD kan 1 valuta-eenheid per contract waard zijn terwijl één punt op een futurescontract 25 waard is, dus strategieën die tussen punten en cash omrekenen moeten POINTVALUE tijdens runtime uitlezen in plaats van een cijfer aan te nemen.
Twee omrekeningen dekken de meeste toepassingen. Cash naar punten: deel een winst of verlies door POINTVALUE (en door de position size wanneer het bedrag meerdere contracten betreft). Punten naar cash: vermenigvuldig een puntafstand met POINTVALUE en met het aantal contracten. Gecombineerd met POINTSIZE, dat meet hoe groot een punt is in prijseenheden, maakt dit rekenwerk met winst, risico en sizing portabel over instrumenten.
Voorbeelden
Voorbeeld 1, dagelijkse winst- en verliesbegrenzing in punten (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
endifElke verandering in de gerealiseerde winst wordt gedeeld door de position size en door POINTVALUE, waardoor cash in punten wordt omgezet. Traden wordt voor de rest van de dag uitgeschakeld zodra het lopende totaal in punten een van beide daglimieten raakt. Dit is het referentievoorbeeld uit de brondocumentatie met herschreven commentaar.
Voorbeeld 2, ongerealiseerde winst van de open positie (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"De afstand vanaf de gemiddelde instap wordt met POINTSIZE genormaliseerd naar punten, daarna met POINTVALUE omgezet in cash en geschaald met de position size met teken.
Voorbeeld 3, contracten dimensioneren op basis van een cash risicobudget (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 stopPointsHet geldrisico van één contract over de stopafstand is stopPoints * pointvalue, dus het budget delen door dat getal levert het aantal contracten op dat het risico vrijwel constant houdt over instrumenten heen.
Veelvoorkomende fouten en valkuilen
- Cijfer per contract. POINTVALUE beschrijft één contract. Voor het omrekenen van de winst van een positie met meerdere contracten moet je ook delen of vermenigvuldigen met de position size, zoals in het voorbeeld van de dagelijkse begrenzing hierboven.
- Waarde met grootte verwarren. POINTVALUE is cash, POINTSIZE is een prijsafstand. De een gebruiken waar de ander hoort levert resultaten op die er met de verhouding tussen die twee naast zitten, vaak meerdere ordes van grootte.
- De waarde van één instrument aannemen. Een constante die is afgestemd op een index-CFD is zinloos op een forexpaar. Elke hardgecodeerde puntwaarde breekt stilzwijgend de portabiliteit; lees in plaats daarvan het sleutelwoord uit.
- Beperking van het bereik. Het sleutelwoord compileert alleen in ProBacktest en ProOrder. Indicatoren en screeners hebben geen toegang tot contractspecificaties en moeten dergelijke waarden als gebruikersinputs nemen.
Gerelateerde instructies
PIPVALUE, synoniem van POINTVALUE, de cashwaarde van één pip.POINTSIZE, de grootte van één punt in prijseenheden.PIPSIZE, de grootte van één pip in prijseenheden.TICKSIZE, de kleinste verhandelbare prijsstap.STRATEGYPROFIT, gerealiseerde strategiewinst in cash.COUNTOFPOSITION, de grootte van de open positie met teken.POSITIONPRICE, de gemiddelde instapprijs van de open positie.GRAPH, plot een waarde in het grafiekpaneel van de backtest.