Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich habeTimeCurrent() nur als einen Spezialfall.
Ich habe diese Anmerkung zur Funktion Bars() jetzt genauer gelesen:
"Bei der Abfrage der Anzahl der Takte in einem bestimmten Datumsbereich werden nur die Takte berücksichtigt, deren Öffnungszeit in diesen Bereich fällt. Wenn der aktuelle Wochentag beispielsweise Samstag ist, gibt die Funktion bei der Abfrage der Anzahl der wöchentlichen Balken mit start_time=lastTuesday und stop_time=lastFriday den Wert 0 zurück, da die Eröffnungszeit des wöchentlichen Zeitrahmens immer auf einen Sonntag fällt und kein wöchentlicher Balken in den angegebenen Bereich fällt.
Da TimeCurrent() fast immer später als die Eröffnungszeit des aktuellen Balkens ist, gibt die Funktion Bars() den Wert 0 zurück. Wenn wir also als Parameter start_time die Zeit 02:05 auf dem stündlichen Zeitrahmen übergeben und den um 2 Uhr begonnenen Balken validieren wollen, müssen wir die Eröffnungszeit des Balkens (02:00:00) über CopyTime() ermitteln. Andernfalls wird die Funktion Balken() diesen Balken ignorieren.
D.h., wenn die Zeit 3:30 ist, verstehe ich, dass die Zeit 2:05 im stündlichen Zeitrahmen sich auf den Balken mit dem Index 1 bezieht. Keine der Funktionen auf der 2. Seite wird diesen Index zurückgeben. Mit dieser Korrektur ergab die Funktion von Renat Akhtyamov das, was ich erwartet hatte.
Ich füge ein Skript mit 4 Optionen für Indexnachschlagefunktionen bei, das ich als Test verwendet habe.
Ich habe die vorgestellte Funktion ausprobiert, es stellt sich heraus, dass sie um einen Balken lügt, wenn sie nach einem Balken mit einer Zeit fragt, die nicht im Diagramm steht. Z.B. wenn wir den ersten Takt des Tages wissen wollen und nach der Zeit "28.03.2018 00:00" fragen aber es gibt keinen Balken mit dieser Zeit, erhalten wir den Index des letzten Balkens des Vortages.
Oder war das so gewollt?
Ich habe die vorgestellte Funktion ausprobiert und es stellt sich heraus, dass sie um einen Balken lügt, wenn ein Balken mit einer Zeit angefordert wird, die nicht im Diagramm enthalten ist. Z.B. wenn wir den ersten Takt des Tages wissen wollen und nach der Uhrzeit "28.03.2018 00:00" fragen. aber es gibt keinen Balken mit dieser Zeit, erhalten wir den Index des letzten Balkens des Vortages.
Oder war das so gewollt?
Wie vertreibt man sich die Zeit: mit Schnüren?
Ich habe es sowohl mit einer Zeichenkette als auch mit dem zuvor geposteten Code versucht.
Ich habe es sowohl mit einer Zeichenkette als auch mit dem zuvor geposteten Code versucht.
in seinem Code.
Deshalb ist es nicht ganz klar, ob es eine falsche
und wenn ja:
?Bislang habe ich mich für diesen Code entschieden, der schnell zu funktionieren scheint:
Hat jemand irgendwelche Nachteile in diesem Code entdeckt, oder gibt es eine schnellere Möglichkeit?
Der einzige Nachteil ist, wenn Sie einen Balken anfordern, der noch nicht im Diagramm enthalten ist, z.B. mit der heutigen Uhrzeit: ..... Vielleicht gibt es auch dafür eine Lösung? Hier wäre es nur sinnvoll, den letzten bekannten Takt zurückzugeben. Dies könnte für die Arbeit mit Algorithmen relevant sein, die mit der aktuellen Zeit arbeiten.
hat er dasselbe.
daher ist das Vorhandensein von falsch nicht ganz klar
false - für die Standardisierung, es hat keinen Einfluss auf irgendetwas :) Um ehrlich zu sein, weiß ich nicht, warum dieses False in einigen Funktionen überhaupt benötigt wird?
Bislang habe ich mich für diesen Code entschieden, der schnell zu funktionieren scheint:
Hat jemand irgendwelche Nachteile in diesem Code entdeckt, oder gibt es eine schnellere Möglichkeit?
Der einzige Nachteil ist, wenn Sie einen Balken anfordern, der noch nicht im Diagramm enthalten ist, z.B. mit der heutigen Uhrzeit: ..... Vielleicht gibt es auch dafür eine Lösung? Hier wäre es nur sinnvoll, den letzten bekannten Takt zurückzugeben. Dies könnte für die Arbeit mit Algorithmen relevant sein, die mit der aktuellen Zeit arbeiten.
die Rückgabe einer nicht existierenden Strichnummer ist nicht gut
es ist einfacher, -1 zurückzugeben
false - zur Vereinheitlichung, hat keine Auswirkungen :) Um ehrlich zu sein, weiß ich nicht, warum dieses False in einigen Funktionen überhaupt benötigt wird?
die Rückgabe einer nicht existierenden Strichnummer ist nicht gut
ist es einfacher, -1 zurückzugeben
Nein, es sollte nur den letzten bekannten Balken zurückgeben, d.h. mit Index 0, aber jetzt dauert es sehr lange, um herauszufinden, was dort zurückgegeben werden soll.
Hier ist der Code, der um einen Balken falsch ist und den richtigen Balken - Null - zurückgibt.
Oder meinen Sie, wenn in der Geschichte nach einer Zeitleiste gefragt wird, die es nicht gibt? Dann denke ich, dass die meisten oft Sie brauchen, um die Bar am nächsten zu unserer Zeit von denen, die verfügbar sind, und der Code gibt in diesem Fall bar mit Offset -1 auf Geschichte, aber es funktioniert richtig, wenn es keine weitere Geschichte - es gibt schnell Null bar.
Nein, es sollte nur den letzten bekannten Balken zurückgeben, d.h. mit Index 0, aber jetzt dauert es sehr lange, um herauszufinden, was dort zurückgegeben werden soll.
Der um einen Balken falsche Code liefert den richtigen Balken - Null.
Oder meinen Sie, wenn in der Geschichte nach einer Zeitleiste gefragt wird, die es nicht gibt? Dann denke ich, dass die meisten oft sollten wir die Bar, die am nächsten zu unserer Zeit von denen, die verfügbar sind, und der Code gibt in diesem Fall bar mit Offset -1 auf Geschichte, aber es funktioniert richtig, wenn es keine weitere Geschichte - es gibt Null bar schnell.
-1 ist ein Minus (ich kläre auf), und der von der Funktion zurückgegebene Fehler ist, dass es keinen solchen Balken gibt
Das heißt, meine Funktion.
Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests
Analog von iBarShift
Renat Akhtyamov, 2017.06.08 01:19
Dies ist auch möglich
muss ebenfalls verbessert werden
obwohl...
Dokumentation:
"Hinweis.
Wenn die Daten für die Zeitreihe mit den angegebenen Parametern beim Aufruf der Funktion Bars() noch nicht im Terminal generiert wurden oder die Daten der Zeitreihe zum Zeitpunkt des Funktionsaufrufs nicht mit dem Handelsserver synchronisiert sind, dann wird die Funktion den Wert Null zurückgeben. "
====
Wenn res==0, fangen wir -1 von der Funktion ab, so wie sie ist.
===
Es funktioniert also alles, verwenden Sie es nach Belieben!