Bli medlem idag
Instruktioner/probuilder · probacktest · proorder · proscreener

IntradayBarIndex

IntradayBarIndex i ProBuilder räknar de barer som skrivits ut sedan handelsdagens början, med start på 0, och tar emot en offset för att läsa tidigare sessioner.

Syntax

probuilder
IntradayBarIndex
IntradayBarIndex[N]

Parametrar

NamnTypStandardBeskrivning
Nheltal0Valfri barförskjutning. IntradayBarIndex[1] läser värdet som det var en bar tillbaka.

Så fungerar det

IntradayBarIndex numrerar barerna i varje handelssession. Den första baren efter den dagliga öppningen har index 0, nästa bar 1, och så vidare till sessionen slutar, varpå räknaren startar om för nästa dag. På dagens 50:e bar är värdet 49.

Antalet beror på diagrammets tidsram. I ett 5-minutersdiagram för en marknad som är öppen i 8 timmar löper indexet från 0 till 95; i ett 1-timmesdiagram för samma marknad löper det från 0 till 7. Kod som villkorar beteende på ett specifikt index bygger därför in ett antagande om tidsramen, vilket är värt att ange i en kommentar.

Den valfria offseten i hakparentes följer den vanliga seriekonventionen och läser värdet från en tidigare bar. Där BarIndex räknar barer sedan starten av inläst data och aldrig nollställs är IntradayBarIndex den sessionsrelativa motsvarigheten, vilket gör den till det naturliga verktyget för logik kopplad till öppningen, som att hoppa över dagens volatila första barer eller mäta positionen inom sessionen.

Exempel

Exempel 1, Visa sessionens barantal (Indikator)

probuilder
// Index of the current bar within today's session, first bar = 0
RETURN IntradayBarIndex

Kurvan stiger med ett för varje bar under dagen och faller tillbaka till 0 när en ny session börjar, vilket också gör sessionsgränserna synliga med en blick.

Exempel 2, Hoppa över dagens första barer (ProOrder)

probuilder
// Only trade once 4 bars of the session have completed
IF IntradayBarIndex >= 4 AND NOT ONMARKET THEN
  IF close CROSSES OVER Average[20](close) THEN
    BUY 1 CONTRACT AT MARKET
  ENDIF
ENDIF

Det yttre villkoret blockerar entries under de fyra första barerna efter öppningen, ett vanligt sätt att undvika den ojämna prisrörelsen kring sessionsstarten.

Exempel 3, Markera varje sessionsöppning (Indikator)

probuilder
// Draw a vertical line on the first bar of every trading day
IF IntradayBarIndex = 0 THEN
  DRAWVLINE(BarIndex) COLOURED(128, 128, 128)
ENDIF
RETURN

Ett test mot index 0 identifierar dagens första bar, och DRAWVLINE markerar den i diagrammet, vilket ger ett visuellt raster av sessionsgränser.

Vanliga fel och fallgropar

  • Nollbaserad räkning. Dagens första bar är 0, inte 1. Ett villkor som IntradayBarIndex = 1 utlöses på sessionens andra bar.
  • Tidsramsberoende värden. Samma index motsvarar olika klocktider på olika tidsramar. Att flytta ett skript från ett 5-minutersdiagram till ett 15-minutersdiagram ändrar tyst vad IntradayBarIndex >= 4 betyder.
  • Förväxling med BarIndex. BarIndex räknar från starten av den inlästa historiken och nollställs aldrig; IntradayBarIndex nollställs dagligen. Att byta dem mot varandra ger villkor som antingen nästan alltid eller nästan aldrig är sanna.
  • Diagram som inte är intraday. På dags- eller högre tidsramar är varje bar den första baren för sin dag, så värdet är inte meningsfullt. Begränsa användningen till intraday-tidsramar.
  • BarIndex, antal barer sedan starten av inläst data, utan daglig nollställning.
  • BarsSince, antal barer sedan ett villkor senast var sant.
  • TIME, aktuell bars tid, ett alternativt sätt att ankra intraday-logik.
  • CurrentTime, klocktiden på maskinen som kör plattformen.
  • CurrentHour, timkomponenten i den aktuella tiden.
  • Today, datumkonstant för den aktuella dagen.
  • OpenTime, öppningstiden för den aktuella baren.