Days
Days gibt die ganze Zahl der seit dem 1 January 1900 bis zu einem Bar verstrichenen Tage zurück. Days akzeptiert einen Klammer-Offset wie Days[1] und hilft, Datumsdifferenzen zu messen.
Syntax
Days[N]So funktioniert es
Days gibt eine einzelne monoton steigende Ganzzahl zurück: die Anzahl der Kalendertage vom Referenzdatum 1 January 1900 bis zum Datum des verarbeiteten Bars. Weil es das vollständige Datum auf eine Zahl reduziert, die nur steigt, ist es das natürliche Werkzeug, um den Abstand zwischen zwei Bars zu messen. Die Differenz Days[0] - Days[N] ist die Anzahl der Kalendertage, die den aktuellen Bar von dem Bar trennen N Positionen zurück.
Die Zählung umfasst jeden Kalendertag, Wochenenden und Feiertage gleichermaßen, sie misst also verstrichene Zeit statt Handelssitzungen. Das unterscheidet sie von einer einfachen Bar-Zählung, die die Tage überspringt, an denen der Markt geschlossen ist.
Der optionale Index N wählt einen Bar relativ zu dem gerade verarbeiteten aus. Days[0], oder einfach Days, ist die aktuelle Bar. Ein positiver N blickt zurück: Days[1] ist die vorherige Bar. Der Chart muss genügend Historie für den angeforderten Offset enthalten, sonst ist der Wert am linken Rand undefiniert.
Beispiele
Beispiel 1, Verstrichene Tage am aktuellen Bar (Indikator)
// Number of days since 1 January 1900 up to the current bar
myDays = Days[0]
RETURN myDaysDer Indikator zeichnet eine langsam steigende Linie, die um die Anzahl der Kalendertage zwischen aufeinanderfolgenden Bars zunimmt. Lücken über Wochenenden und Feiertage zeigen sich als größere Stufen.
Beispiel 2, Suche nach einem neuen Kalendertag (ProScreener)
// Match instruments whose latest bar is on a different calendar day from the previous bar
newDay = Days > Days[1]
SCREENER[newDay AND close > Average[20](close)] (close AS "Close")In einem Intraday-Chart Days > Days[1] ist nur auf dem ersten Bar eines neuen Kalendertages wahr, sodass der Screener den Eröffnungs-Bar der Session isoliert.
Beispiel 3, Filter für Tage im Trade (ProOrder)
// Close the position once it has been held for at least five calendar days
DEFPARAM CumulateOrders = false
IF NOT LONGONMARKET AND close CROSSES OVER Average[20](close) THEN
BUY 1 CONTRACT AT MARKET
entryDays = Days
ENDIF
IF LONGONMARKET AND (Days - entryDays) >= 5 THEN
SELL AT MARKET
ENDIFDie Strategie speichert den Days-Wert beim Einstieg und steigt aus, sobald fünf Kalendertage vergangen sind, wobei Wochenenden und Feiertage mitgezählt werden, da Days die verstrichene Kalenderzeit misst.
Häufige Fehler und Stolperfallen
- Referenzdatum ist 1 January 1900. Die absolute Zahl ist nur als Differenz aussagekräftig. Subtrahieren Sie zwei Days-Werte, um eine Spanne in Tagen zu erhalten.
- Kalendertage, keine Handelstage. Days zählt jeden Kalendertag, daher unterscheidet sich ein Montags-Bar nach einem Freitags-Bar um 3, nicht um 1. Es ist keine Bar-Zählung.
- Kein formatiertes Datum. Days ist ein laufender Zähler, kein Datum im Format YYYYMMDD. Für ein lesbares Datum verwenden Sie
Todayoder kombinierenDay,MonthundYear. - Offset jenseits der Historie.
Days[N]benötigtNBars Historie. Am linken Rand des Charts ist der Wert undefiniert.
Verwandte Befehle
Day, Tag des Monats jedes Bars, 1 bis 31.DayOfWeek, Wochentag jedes Bars, 1 für Montag bis 7 für Sonntag.Month, Monat jedes Bars.Year, vierstelliges Jahr jedes Bars.Timestamp, UNIX-Zeit des Schlusses jedes Bars, eine alternative monotone Uhr.TIME, Schlusszeit jedes Bars als HHMMSS-Ganzzahl.Yesterday, Datum des Tages vor einem Bar, in der Form YYYYMMDD.Today, Datum des aktuellen Bars in der Form YYYYMMDD.