Jetzt beitreten
Befehle/probuilder · probacktest · proorder · proscreener

HighestBars

HighestBars gibt in ProBuilder den Offset in Bars zum höchsten Wert einer Reihe über eine Periode zurück, wobei 0 bedeutet, dass der aktuelle Bar den höchsten Wert hält.

Syntax

probuilder
HighestBars[Period](source)

Parameter

NameTypStandardBeschreibung
PeriodeGanzzahlerforderlichAnzahl der zu durchsuchenden vergangenen Bars, einschließlich des aktuellen Bars.
Quellenumerische ReiheerforderlichDie zu durchsuchende Serie, wie close, high, volume, oder ein Indikator.

Formel

Für ein Fenster von Period Bars, die bei der aktuellen Bar enden:

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

Wenn innerhalb des Fensters kein Maximum bestimmt werden kann, gibt die Funktion -1 zurück.

So funktioniert es

HighestBars ermittelt die Position des Maximums statt des Maximums selbst. Wo Highest[20](close) beantwortet "Was war der höchste Schlusskurs der letzten 20 Bars", HighestBars[20](close) beantwortet die Frage "wie lange ist es her". Das Ergebnis ist ein Bar-Offset, rückwärts vom aktuellen Bar gezählt, und lässt sich daher direkt zur Indexierung von Serien verwenden: close[HighestBars[20](close)] liest den höchsten Close des Fensters.

Der Offset ist nullbasiert. Ein Rückgabewert von 0 bedeutet, dass der aktuelle Bar den höchsten Wert trägt, was selbst ein nützliches Signal ist und neue Hochs des Fensters markiert. Teilen mehrere Bars denselben Maximalwert, meldet die Funktion das erste Vorkommen, das beim Rückwärtssuchen ab dem aktuellen Bar gefunden wird, also das jüngste.

Der Wert wird auf jedem Bar aktualisiert. Während das Fenster vorwärts gleitet, fällt ein altes Hoch irgendwann aus dem Fenster heraus, und die Funktion springt zum Offset des nächsthöchsten Bars, der noch darin liegt.

Beispiele

Beispiel 1, Den höchsten Close beschriften (Indikator)

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 ermittelt, wie viele Bars zurück der höchste Close der letzten 10 Bars auftrat, und DRAWTEXT verankert eine Beschriftung an diesem Bar. Die Prüfung myHighest > 0 überspringt Bars, bei denen der aktuelle Schlusskurs selbst das Maximum ist.

Beispiel 2, Bars seit dem 50-Bar-Hoch (Indikator)

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

Die gezeichnete Linie fällt auf 0, sobald ein neues 50-Bar-Hoch ausgebildet wird, und steigt auf jedem Bar, der es nicht übertrifft, um eins, ein kompaktes Maß dafür, wie alt das aktuelle Hoch ist.

Beispiel 3, Einstieg nur bei frischen Hochs (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

Die Strategie kauft nur auf Bars, die ein neues 20-Bar-Schlusskurshoch ausbilden, und verwendet den Offset Null als breakout-Bestätigung.

Häufige Fehler und Stolperfallen

  • Offset, nicht Wert. HighestBars gibt eine Anzahl von Bars zurück, keinen Kurs. Es als Hochpunktwert zu plotten erzeugt einen Sägezahn zwischen 0 und Period. Verwenden Sie Highest für den Wert selbst.
  • Nullbasierte Zählung. 0 bezeichnet den aktuellen Bar, der größtmögliche Rückgabewert ist also Period - 1. Logik, die so geschrieben ist, als würde die Zählung bei 1 beginnen, verpasst neue Hochs vollständig.
  • Der Fall -1. Wenn das Fenster kein Maximum liefern kann, gibt die Funktion -1 zurück. Diesen Wert direkt in einen Reihenindex wie close[-1] ist ungültig, sichern Sie das Ergebnis daher vor dem Indexieren ab.
  • Gleichstände werden zum jüngsten Bar aufgelöst. Bei mehrfach vorkommenden Maxima im Fenster gewinnt der kleinste Offset. Berechnungen, die vom ältesten Auftreten ausgehen, weichen um den Abstand zwischen den Duplikaten ab.
  • Highest, der höchste Wert selbst über eine Periode.
  • Lowest, der niedrigste Wert über eine Periode.
  • LowestBars, Offset zum niedrigsten Wert, das Gegenstück zu HighestBars.
  • BarsSince, Anzahl der Bars seit dem Zutreffen einer beliebigen Bedingung.
  • BarIndex, absolute Bar-Nummer, verwendet, um Offsets in Chartpositionen umzurechnen.
  • DRAWTEXT, zeichnet eine Bezeichnung an einem Bar, der über den zurückgegebenen Offset bestimmt wird.
  • Summation, Aggregation einer Reihe über ein festes Fenster.