Bli medlem idag
ProBacktest/probacktest · proorder

PIPSIZE

PIPSIZE returnerar pip-storleken för det aktuella instrumentet i ProBacktest och ProOrder. Använd den för att omvandla pip-avstånd till prisenheter för stoppar och targets.

Syntax

probuilder
PipSize

Så fungerar det

Varje instrument noteras i diskreta steg. Ett större valutapar med fem decimaler rör sig i steg om 0.0001, en indextermin kan röra sig i steg om 0.5 eller 1. PipSize exponerar det steget som ett skrivskyddat värde, bestämt av det instrument strategin körs på. I ProRealTime™ beter det sig identiskt med PointSize, de två namnen är utbytbara.

Dess huvuduppgift är enhetsomvandling. Riskparametrar uttrycks naturligt i pips eller punkter, "en stop på 10 pip", men flera instruktioner, SET STOP LOSS bland dem, tar avstånd i råa prisenheter. Att multiplicera antalet pip med PipSize binder ihop de två: 10 * PipSize är 0.0010 på ett par vars pip är 0.0001, och 10 på ett index vars minsta steg är 1.

Eftersom värdet anpassas till instrumentet automatiskt är kod skriven med PipSize överförs mellan marknader utan ändringar. Ett stopp uttryckt som 20 * PipSize är alltid 20 steg brett, oavsett om strategin körs på ett valutapar, ett index eller en råvara. Hårdkodade prisavstånd måste däremot skrivas om för varje kvoteringsformat.

För att omvandla en kursrörelse till kontovaluta istället för kursenheter finns de kompletterande värdena PipValue och PointValue ger det monetära värdet av ett steg per kontrakt.

Exempel

Exempel 1, omvandla en pip-baserad stop till prisenheter (ProOrder)

probuilder
// desired stop distance expressed in pips
MyStopLoss = 10
SET STOP LOSS MyStopLoss * PipSize

Med en pip-storlek på 0.0001 blir stoppavståndet 10 * 0.0001 = 0.0010 prisenheter. Omvandlingen behåller det avsedda avståndet på 10 pips oavsett hur instrumentet är noterat.

Exempel 2, pip-baserad stop och target vid entry (ProBacktest)

probuilder
stopPips   = 25
targetPips = 50

IF NOT OnMarket AND close crosses over Average[50](close) THEN
  BUY 1 LOT AT MARKET
  // both distances converted from pips to price units
  SET STOP LOSS stopPips * PipSize
  SET TARGET PROFIT targetPips * PipSize
ENDIF

Bracketen definieras en gång i pip och konverteras vid ordertillfället. Att byta marknad kräver inga kodändringar eftersom PipSize justeras automatiskt.

Exempel 3, breakout-entry ett fast antal pips över rangen (ProOrder)

probuilder
// pending entry 5 pips above the highest high of the last 20 bars
rangeTop   = highest[20](high)
entryLevel = rangeTop + 5 * PipSize

IF NOT OnMarket THEN
  BUY 1 CONTRACT AT entryLevel STOP
  SET STOP PLOSS 30
ENDIF

Bufferten över breakout-nivån anges i pips och omvandlas till en prisförskjutning. Den väntande stopordern ligger då exakt 5 steg över rangens topp på vilket instrument som helst.

Vanliga fel och fallgropar

  • Att glömma omvandlingen. SET STOP LOSS 10 placerar en stop 10 prisenheter bort, inte 10 pip. På ett par med fem decimaler är det avståndet 100,000 pip. Antingen multiplicera med PipSize eller använd den punktbaserade SET STOP PLOSS variant.
  • Att hårdkoda 0.0001. Pip-storleken skiljer sig mellan instrument, JPY-par använder vanligen 0.01 och index använder hela punkter. Kod med en literal 0.0001 går i tysthet sönder när den flyttas till en annan marknad, PipSize gör det inte.
  • Pip-storlek är inte pip-värde. PipSize är ett prissteg, PipValue är det penningmässiga värdet av det steget per kontrakt. Formler för position size som behöver valutabelopp måste använda PipValue, inte PipSize.
  • Mäklares pip-konventioner. Vissa dataflöden anger bråkdelar av pip, så plattformens steg kan vara en tiondel av en traditionell pip. Verifiera instrumentets faktiska PipSize innan du antar läroboksdefinitionen.
  • POINTSIZE, synonym som returnerar instrumentets minsta prissteg.
  • PIPVALUE, penningvärdet av en pip per kontrakt.
  • POINTVALUE, penningvärdet av en punkt per kontrakt.
  • TICKSIZE, instrumentets minsta tick.
  • LOSS, stop loss uttryckt i prisenheter.
  • PLOSS, stop loss uttryckt i punkter.
  • TRADEPRICE, entrypriset för den nuvarande positionen.
  • BUY, öppnar eller utökar en long-position.