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
PipSizeSå 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)
// desired stop distance expressed in pips
MyStopLoss = 10
SET STOP LOSS MyStopLoss * PipSizeMed 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)
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
ENDIFBracketen 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)
// 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
ENDIFBufferten ö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 10placerar en stop 10 prisenheter bort, inte 10 pip. På ett par med fem decimaler är det avståndet 100,000 pip. Antingen multiplicera medPipSizeeller använd den punktbaseradeSET STOP PLOSSvariant. - 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,
PipSizegö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ändaPipValue, intePipSize. - 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
PipSizeinnan du antar läroboksdefinitionen.
Relaterade instruktioner
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.