Word nu lid
Instructies/probuilder · probacktest · proorder · proscreener

IntradayBarIndex

IntradayBarIndex in ProBuilder telt de bars die sinds het begin van de handelsdag zijn weergegeven, beginnend bij 0, en accepteert een offset om eerdere sessies uit te lezen.

Syntaxis

probuilder
IntradayBarIndex
IntradayBarIndex[N]

Parameters

NaamTypeStandaardBeschrijving
Ngeheel getal0Optionele baroffset. IntradayBarIndex[1] leest de waarde zoals die één bar eerder was.

Hoe het werkt

IntradayBarIndex nummert de bars van elke handelssessie. De eerste bar na de dagopening krijgt index 0, de volgende bar 1, enzovoort tot de sessie eindigt, waarna de teller opnieuw begint voor de volgende dag. Op de 50e bar van de dag is de waarde 49.

De telling hangt af van het tijdframe van de grafiek. Op een 5-minutengrafiek van een markt die 8 uur open is, loopt de index van 0 tot 95; op een 1-uursgrafiek van dezelfde markt loopt hij van 0 tot 7. Code die gedrag laat afhangen van een specifieke index bevat daarmee een aanname over het tijdframe, die het waard is om in een commentaar te vermelden.

De optionele offset tussen blokhaken volgt de gebruikelijke reeksconventie en leest de waarde van een eerdere bar. Waar BarIndex de bars telt sinds het begin van de geladen data en nooit reset, is IntradayBarIndex de sessie-relatieve tegenhanger, wat hem het natuurlijke hulpmiddel maakt voor logica die aan de opening is gekoppeld, zoals het overslaan van de volatiele eerste bars van de dag of het meten van de positie binnen de sessie.

Voorbeelden

Voorbeeld 1, Het aantal bars van de sessie weergeven (Indicator)

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

De plot loopt met één op per bar van de dag en valt terug naar 0 wanneer een nieuwe sessie begint, waardoor sessiegrenzen ook in één oogopslag zichtbaar worden.

Voorbeeld 2, De eerste bars van de dag overslaan (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

De buitenste voorwaarde blokkeert instappen tijdens de eerste vier bars na de opening, een gangbare manier om de onregelmatige prijsbeweging rond de sessiestart te vermijden.

Voorbeeld 3, Elke sessieopening markeren (Indicator)

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

Testen op index 0 identificeert de eerste bar van de dag, en DRAWVLINE markeert die op de grafiek, wat een visueel raster van sessiegrenzen oplevert.

Veelvoorkomende fouten en valkuilen

  • Telling vanaf nul. De eerste bar van de dag is 0, niet 1. Een voorwaarde als IntradayBarIndex = 1 vuurt op de tweede bar van de sessie.
  • Tijdframe-afhankelijke waarden. Dezelfde index verwijst op verschillende tijdframes naar verschillende kloktijden. Een script van een 5-minutengrafiek naar een 15-minutengrafiek verplaatsen verandert stilzwijgend wat IntradayBarIndex >= 4 betekent.
  • Verwarring met BarIndex. BarIndex telt vanaf het begin van de geladen historie en reset nooit; IntradayBarIndex reset dagelijks. Ze verwisselen levert voorwaarden op die bijna altijd of bijna nooit waar zijn.
  • Niet-intraday grafieken. Op dagelijkse of hogere tijdframes is elke bar de eerste bar van zijn dag, dus is de waarde niet zinvol. Beperk het gebruik tot intraday-tijdframes.
  • BarIndex, aantal bars sinds het begin van de geladen data, zonder dagelijkse reset.
  • BarsSince, aantal bars verstreken sinds een voorwaarde voor het laatst waar was.
  • TIME, tijd van de huidige bar, een alternatieve manier om intraday-logica te ankeren.
  • CurrentTime, kloktijd van de machine waarop het platform draait.
  • CurrentHour, uurcomponent van de huidige tijd.
  • Today, datumconstante voor de huidige dag.
  • OpenTime, openingstijd van de huidige bar.