Jetzt beitreten
Befehle/probuilder · probacktest · proorder · proscreener

LowestBars

LowestBars in ProBuilder gibt den Versatz in Bars zum tiefsten Wert einer Reihe über eine Periode zurück, wobei 0 bedeutet, dass der aktuelle Bar den tiefsten Wert hält.

Syntax

probuilder
offset = LowestBars[Period](source)

Parameter

NameTypStandardBeschreibung
PeriodGanzzahlerforderlichAnzahl der in die Suche einbezogenen vergangenen Bars, einschließlich des aktuellen Bars.
sourceReiheerforderlichDie zu durchsuchende Datenreihe, etwa close, low, high, oder jede berechnete Reihe.

So funktioniert es

LowestBars durchsucht die letzten Period Bars der angegebenen Serie und gibt die Position des Minimums als Offset vom aktuellen Bar zurück. Die Zählung ist nullbasiert: 0 ist der aktuelle Bar, 1 ist ein Bar zurück. Die zugehörige Funktion Lowest gibt den Minimalwert selbst zurück, während LowestBars zurückgibt, wo dieses Minimum liegt, was eine Timing-Logik normalerweise benötigt.

Wenn mehrere Bars denselben Minimalwert haben, meldet die Funktion das Vorkommen, das dem aktuellen Bar am nächsten liegt, also den kleinsten Versatz. Hält der Chart weniger Bars als Period, umfasst die Suche einfach die Bars, die verfügbar sind.

Der Offset fließt natürlich in bar-indizierte Ausdrücke ein. Zum Beispiel, close[LowestBars[20](low)] liest den Close des Bars, auf dem das tiefste Low über 20 Bars entstand. Das Ergebnis dient auch als Maß für die Aktualität: Ein kleiner Versatz bedeutet, dass der Markt sein Periodentief vor kurzem gesetzt hat, ein großer Versatz, dass das Tief altert und viele Bars lang nicht angegriffen wurde.

Gemäß dem Verhalten der Quelle gibt die Funktion -1 zurück, wenn innerhalb des angeforderten Bereichs kein tieferer Wert ermittelt werden kann, sodass Code, der das Ergebnis als Index verwendet, gegen negative Werte abgesichert werden sollte.

Beispiele

Beispiel 1, Das tiefste Tief der letzten 20 Bars lokalisieren (Indikator)

probuilder
// Offset in bars to the lowest low of the last 20 bars
a = LowestBars[20](low)
RETURN a

Der gezeichnete Wert fällt auf 0, sobald der aktuelle Bar ein neues 20-Bar-Tief setzt, und steigt dann auf jedem Bar, der es nicht durchbricht, um eins.

Beispiel 2, Nur einsteigen, wenn das Tief alt ist (ProOrder)

probuilder
// The 50-bar lowest low must be at least 20 bars old,
// meaning no fresh low has printed recently
lowAge = LowestBars[50](low)

IF lowAge >= 20 AND close crosses over average[20](close) THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

SET STOP %LOSS 2

LowestBars wirkt als Stabilisierungsfilter: Die Strategie kauft nur, wenn das jüngste Periodentief mindestens 20 Bars zurückliegt.

Beispiel 3, Screening auf ein frisches Periodentief (ProScreener)

probuilder
// Flag instruments that printed their 100-bar low within the last 3 bars
recentLow = LowestBars[100](low)

SCREENER[recentLow <= 3 AND recentLow >= 0] (recentLow AS "Bars since low")

Der Screener listet Märkte auf, die auf oder nahe einem frischen 100-Bar-Tief notieren, und zeigt, wie viele Bars zurück dieses Tief aufgetreten ist.

Häufige Fehler und Stolperfallen

  • Versatz mit Wert verwechselt. LowestBars gibt eine Anzahl von Bars zurück, keinen Kurs. Um das Minimum selbst zu lesen, verwenden Sie Lowest[Period](source), oder indexieren Sie die Serie mit dem Offset.
  • Nullbasierte Zählung. Ein Ergebnis von 0 bezieht sich auf den aktuellen Bar. Wer 0 als "kein Tief gefunden" behandelt, verwirft stillschweigend den wichtigsten Fall, ein frisches Tief auf dem gerade ausgewerteten Bar.
  • Negatives Ergebnis als Index verwendet. Wenn die Funktion keinen niedrigeren Wert ermitteln kann, gibt sie -1 zurück, und Ausdrücke wie low[LowestBars[20](low)] und indexieren dann einen negativen Offset. Prüfen Sie das Ergebnis, bevor Sie es als Index verwenden.
  • Gleichstände werden zum nächstgelegenen Bar aufgelöst. Wenn zwei Bars genau dasselbe Minimum aufweisen, gewinnt der kleinere Versatz. Logik, die das älteste Auftreten erwartet, liest flache oder lückenhafte Reihen falsch.
  • Lowest, gibt den tiefsten Wert einer Reihe über eine Periode zurück.
  • Highest, gibt den höchsten Wert einer Reihe über eine Periode zurück.
  • HighestBars, Versatz in Bars zum höchsten Wert, die Spiegelfunktion.
  • BarsSince, zählt die Bars seit der letzten Erfüllung einer Bedingung.
  • BarIndex, nullbasierte Position des aktuellen Bars in der geladenen Historie.
  • Summation, summiert eine Reihe über eine Periode.
  • DRAWTEXT, gibt Werte auf dem Chart aus, nützlich zum Überprüfen von Versätzen.