Bli medlem idag
ProBacktest/probacktest · proorder

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

probuilder
TICKSIZE

Så 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)

probuilder
// On EUR/USD this yields 40 instead of the raw 0.0040
StopLossPIPS = (close - low) / TickSize

Avstå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)

probuilder
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
ENDIF

Ett 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)

probuilder
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
ENDIF

Att 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, och PIPSIZE kan 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 LOSS arbetar 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 TICKSIZE innan de används i order.
  • Fel omfattning. Konstanten tillhör handelsmotorn. Att klistra in strategikod som läser TICKSIZE i en indikator inte kompilerar måste omvandlingen ske inne i ProBacktest- eller ProOrder-koden.
  • 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.