TICKSIZE
TICKSIZE returnerar det minsta prissteget för det aktuella instrumentet i ProBacktest och ProOrder, används för att omvandla prisavstånd till ticks eller pips.
Syntax
TICKSIZESå fungerar det
Varje instrument prissätts i diskreta steg. På EUR/USD kan ett steg vara 0.0001, på ett indexterminskontrakt kan det vara 0.5 punkter. TICKSIZE returnerar det minsta steget för det instrument strategin körs på, så att koden kan anpassas till valfri marknad utan hårdkodade magiska tal.
Den huvudsakliga användningen är enhetskonvertering. Ett rått prisavstånd som close - low uttrycks i prisenheter, som varierar kraftigt mellan instrument. Division med TICKSIZE omvandlar avståndet till ett antal tick, ett tal som är jämförbart mellan marknader och som stämmer med hur många traders tänker om stop och mål. Att multiplicera ett antal tick med TICKSIZE går andra vägen och ger en prisförskjutning som alltid är ett giltigt steg.
TICKSIZE är relaterad till, men skild från, POINTSIZE och PIPSIZE. Punktstorleken är värdet av en punkt i plattformens prisvisning, pip-storleken är den konventionella pip-enheten på forexpar, och tick-storleken är börsens minsta inkrement. På många instrument sammanfaller några av dessa, på andra skiljer de sig, vilket är precis därför de tre konstanterna finns separat.
Exempel
Exempel 1, Omvandla ett prisavstånd till pips (ProBacktest)
// On EUR/USD this yields 40 instead of the raw 0.0040
StopLossPIPS = (close - low) / TickSizeAvståndet mellan stängningen och low divideras med tick size, vilket förvandlar en rå prisskillnad till ett antal ticks eller pips som läses naturligt.
Exempel 2, Avrunda ett stoppavstånd till ett giltigt steg (ProOrder)
atr = AverageTrueRange[14](close)
// Snap the ATR-based distance to a whole number of ticks
stopDistance = ROUND(1.5 * atr / TICKSIZE) * TICKSIZE
IF NOT onmarket AND close crosses over average[20](close) THEN
BUY 1 CONTRACT AT MARKET
SET STOP LOSS stopDistance / pointsize
ENDIFEtt ATR-baserat avstånd är sällan en jämn multipel av det minsta inkrementet. Avrundning via TICKSIZE garanterar att den resulterande nivån är en som marknaden faktiskt kan kvotera.
Exempel 3, Breakout-order en tick över föregående high (ProOrder)
IF NOT onmarket THEN
// Enter as soon as price prints a single tick above yesterday's high
BUY 1 CONTRACT AT DHigh(1) + TICKSIZE STOP
ENDIFAtt lägga till exakt en TICKSIZE till föregående dags högsta placerar buy stop på det första pris som bekräftar en breakout, på vilket instrument som helst.
Vanliga fel och fallgropar
- Tick size är inte punktstorlek.
TICKSIZE,POINTSIZE, ochPIPSIZEkan alla skilja sig på samma instrument. Att blanda ihop dem förskjuter varje beräknad nivå med en konstant faktor. Kontrollera vilken enhet en instruktion förväntar sig,SET STOP LOSSarbetar till exempel i punkter. - Instrumentberoende värde. Samma kod returnerar olika värden på olika marknader. En strategi som trimmats med ett hårdkodat steg går sönder när den flyttas till ett annat instrument, vilket är problemet
TICKSIZEär avsett att lösa. - Oavrundade nivåer. Aritmetik på priser ger ofta värden mellan ticks. Ordrar på sådana nivåer justeras eller avvisas. Rikta in beräknade förskjutningar till en multipel av
TICKSIZEinnan de används i order. - Fel omfattning. Konstanten tillhör handelsmotorn. Att klistra in strategikod som läser
TICKSIZEi en indikator inte kompilerar måste omvandlingen ske inne i ProBacktest- eller ProOrder-koden.
Relaterade instruktioner
PIPSIZE, pip-enheten för det aktuella instrumentet.PIPVALUE, penningvärdet av en pip.POINTSIZE, punktenheten för det aktuella instrumentet.POINTVALUE, penningvärdet av en punkt.ROUNDEDUP, avrundar en orderkvantitet uppåt.ROUNDEDDOWN, avrundar en orderkvantitet nedåt.TRADEPRICE, entrypriset för den nuvarande positionen.STOP, stop loss-konfiguration vars avstånd uttrycks i punkter.