IntradayBarIndex
IntradayBarIndex in ProBuilder zählt die seit Beginn des Handelstages gebildeten Bars, beginnend bei 0, und akzeptiert einen Offset, um frühere Sessions zu lesen.
Syntax
IntradayBarIndex
IntradayBarIndex[N]Parameter
| Name | Typ | Standard | Beschreibung |
|---|---|---|---|
| N | Ganzzahl | 0 | Optionaler Bar-Versatz. IntradayBarIndex[1] liest den Wert, wie er einen Bar zuvor war. |
So funktioniert es
IntradayBarIndex numeriert die Bars jeder Handelssession. Der erste Bar nach der Tageseröffnung trägt den Index 0, der nächste Bar 1 und so weiter bis zum Ende der Session, an dem der Zähler für den nächsten Tag neu beginnt. Beim 50. Bar des Tages ist der Wert 49.
Die Zählung hängt von der Zeiteinheit des Charts ab. In einem 5-Minuten-Chart eines Marktes, der 8 Stunden geöffnet ist, läuft der Index von 0 bis 95; in einem 1-Stunden-Chart desselben Marktes läuft er von 0 bis 7. Code, der Verhalten an einen bestimmten Index koppelt, enthält daher eine Annahme über die Zeiteinheit, die man in einem Kommentar festhalten sollte.
Der optionale Offset in Klammern folgt der üblichen Serienkonvention und liest den Wert eines vorherigen Bars. Während BarIndex die Bars seit Beginn der geladenen Daten zählt und nie zurückgesetzt wird, ist IntradayBarIndex das session-relative Gegenstück und damit das natürliche Werkzeug für Logik, die an die Eröffnung gebunden ist, etwa das Überspringen der volatilen ersten Bars des Tages oder das Messen der Position innerhalb der Session.
Beispiele
Beispiel 1, Anzeige der Bar-Anzahl der Session (Indikator)
// Index of the current bar within today's session, first bar = 0
RETURN IntradayBarIndexDie Darstellung steigt mit jedem Bar des Tages um eins und fällt auf 0 zurück, wenn eine neue Session beginnt, wodurch die Session-Grenzen auch auf einen Blick sichtbar werden.
Beispiel 2, Die ersten Bars des Tages überspringen (ProOrder)
// 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
ENDIFDie äußere Bedingung blockiert Einstiege während der ersten vier Bars nach der Eröffnung, eine gängige Methode, um die erratische Kursbewegung um den Session-Start zu vermeiden.
Beispiel 3, Jede Session-Eröffnung markieren (Indikator)
// Draw a vertical line on the first bar of every trading day
IF IntradayBarIndex = 0 THEN
DRAWVLINE(BarIndex) COLOURED(128, 128, 128)
ENDIF
RETURNDie Prüfung auf Index 0 identifiziert den ersten Bar des Tages, und DRAWVLINE markiert ihn im Chart, was ein visuelles Raster der Session-Grenzen erzeugt.
Häufige Fehler und Stolperfallen
- Nullbasierte Zählung. Der erste Bar des Tages ist 0, nicht 1. Eine Bedingung wie
IntradayBarIndex = 1löst auf dem zweiten Bar der Sitzung aus. - Von der Zeiteinheit abhängige Werte. Derselbe Index verweist auf verschiedenen Zeiteinheiten auf unterschiedliche Uhrzeiten. Wird ein Skript von einem 5-Minuten- auf einen 15-Minuten-Chart übertragen, ändert sich unbemerkt, was
IntradayBarIndex >= 4bedeutet. - Verwechslung mit BarIndex. BarIndex zählt vom Beginn der geladenen Historie an und wird nie zurückgesetzt; IntradayBarIndex wird täglich zurückgesetzt. Werden sie verwechselt, entstehen Bedingungen, die entweder fast immer oder fast nie wahr sind.
- Nicht-Intraday-Charts. Auf Tages- oder höheren Zeiteinheiten ist jeder Bar der erste Bar seines Tages, daher ist der Wert nicht sinnvoll. Beschränken Sie die Verwendung auf Intraday-Zeiteinheiten.
Verwandte Befehle
BarIndex, Bar-Anzahl seit Beginn der geladenen Daten, ohne täglichen Reset.BarsSince, Anzahl der Bars, seit eine Bedingung zuletzt wahr war.TIME, Zeit des aktuellen Bars, eine alternative Möglichkeit, Intraday-Logik zu verankern.CurrentTime, Uhrzeit des Rechners, auf dem die Plattform läuft.CurrentHour, Stundenkomponente der aktuellen Zeit.Today, Datumskonstante für den aktuellen Tag.OpenTime, Eröffnungszeit des aktuellen Bars.