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

HighestBars

HighestBars in ProBuilder geeft de offset in bars naar de hoogste waarde van een reeks over een periode, waarbij 0 betekent dat de huidige bar de hoogste waarde bevat.

Syntaxis

probuilder
HighestBars[Period](source)

Parameters

NaamTypeStandaardBeschrijving
Periodegeheel getalverplichtAantal bars uit het verleden om te scannen, inclusief de huidige bar.
bronnumerieke reeksverplichtDe reeks waarin wordt gezocht, zoals close, high, volume, of een indicator.

Formule

Voor een venster van Period bars die eindigen op de huidige bar:

code
HighestBars[Period](x) = offset k in [0, Period - 1]
                         where x[k] is the maximum of the window

Als er binnen het venster geen maximum kan worden bepaald, geeft de functie -1 terug.

Hoe het werkt

HighestBars bepaalt de positie van het maximum in plaats van het maximum zelf. Waar Highest[20](close) antwoordt "wat was de hoogste close van de laatste 20 bars", HighestBars[20](close) beantwoordt "hoe lang geleden is het gebeurd". Het resultaat is een bar-offset die terugwaarts vanaf de huidige bar wordt geteld, zodat het direct in serie-indexering past: close[HighestBars[20](close)] leest de hoogste close van het venster.

De offset begint bij nul. Een retourwaarde van 0 betekent dat de huidige bar de hoogste waarde heeft, wat zelf een nuttig signaal is en nieuwe highs binnen het venster markeert. Als meerdere bars dezelfde maximumwaarde hebben, geeft de functie het eerste voorkomen dat wordt gevonden bij terugzoeken vanaf de huidige bar, dus het meest recente.

De waarde wordt op elke bar bijgewerkt. Terwijl het venster vooruitschuift, valt een oude top uiteindelijk uit het venster en springt de functie naar de offset van de volgende hoogste bar die er nog in zit.

Voorbeelden

Voorbeeld 1, Het hoogste slot labelen (Indicator)

probuilder
myHighest = HighestBars[10](close)
IF myHighest > 0 THEN
  // Place a label on the bar that holds the highest close of the window
  DRAWTEXT("Highest close in last 10 bars", barindex - myHighest, close[myHighest])
ENDIF

HighestBars vindt hoeveel bars terug de hoogste close van de laatste 10 bars plaatsvond, en DRAWTEXT ankert een label op die bar. De controle myHighest > 0 slaat bars over waar de huidige close zelf het maximum is.

Voorbeeld 2, Bars sinds de high over 50 bars (Indicator)

probuilder
// Plot the age of the highest high inside a 50-bar window
RETURN HighestBars[50](high) AS "bars since 50-bar high"

De geplotte lijn valt naar 0 zodra er een nieuwe high over 50 bars wordt gezet en klimt met één op elke bar die daar niet boven komt, een compacte maat voor hoe oud de huidige high is.

Voorbeeld 3, Alleen instappen op nieuwe highs (ProOrder)

probuilder
recency = HighestBars[20](close)
// An offset of 0 means this bar set the highest close of the window
IF recency = 0 AND NOT ONMARKET THEN
  BUY 1 CONTRACT AT MARKET
ENDIF
SET STOP PLOSS 40

De strategie koopt alleen op bars die een nieuwe slot-high over 20 bars neerzetten, waarbij de offset nul als breakout-bevestiging wordt gebruikt.

Veelvoorkomende fouten en valkuilen

  • Offset, niet waarde. HighestBars geeft een aantal bars terug, geen prijs. Het tekenen alsof het de piekwaarde was levert een zaagtand tussen 0 en Period op. Gebruik Highest voor de waarde zelf.
  • Nulgebaseerde telling. 0 verwijst naar de huidige bar, dus de grootst mogelijke retourwaarde is Period - 1. Logica die is geschreven alsof het tellen bij 1 begint, mist nieuwe highs volledig.
  • Het geval -1. Als het venster geen maximum kan opleveren, geeft de functie -1 terug. Die waarde direct in een reeksindex stoppen zoals close[-1] is ongeldig, dus beveilig het resultaat voordat je indexeert.
  • Bij gelijke waarden valt de keuze op de meest recente bar. Bij dubbele maxima in het venster wint de kleinste offset. Berekeningen die uitgaan van het oudste voorkomen zitten ernaast met het verschil tussen de duplicaten.
  • Highest, de hoogste waarde zelf over een periode.
  • Lowest, de laagste waarde over een periode.
  • LowestBars, offset naar de laagste waarde, het spiegelbeeld van HighestBars.
  • BarsSince, aantal bars verstreken sinds een willekeurige conditie waar was.
  • BarIndex, absoluut barnummer, gebruikt om offsets om te zetten naar posities op de grafiek.
  • DRAWTEXT, tekent een label bij een bar die met de teruggegeven offset wordt bepaald.
  • Summation, aggregatie van een reeks over een vast venster.