![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Was ist der Unterschied?
Was ist der Unterschied?
Was ist der Unterschied?
Buchstäblich anders.
Wie lautet die Frage?
1. Nehmen Sie das Skript, das in den Beitrag gedreht wurde, und führen Sie es im Diagramm aus. Das Skript sollte eine bestimmte Anzahl von Balken kopieren und die 20 ältesten Balken abwickeln.
Diese Methode wird verwendet (ich verstehe, dass es keine Prüfungen und alle Arten von Fehlerfallen gibt, aber trotzdem)
Also mit diesen Parametern, die ich angegeben (Anzahl der Bars und M1) das Skript läuft, aber manchmal weigert es sich, NORMAL zu arbeiten. Dies geschieht ab einer bestimmten Anzahl von Balken (ich habe mehr als 368700).
Bei 368800 werden viel weniger Balken angezeigt (aber immer eine andere Zahl - 368732 / 368735 / 368736 oder etwas in dieser Richtung).
Aber selbst bei 360000 funktioniert es nicht immer korrekt, es gab Fälle, in denen nur 10000 Balken kopiert wurden.
2. Die Variante, bei der zwei Datumsangaben gemacht werden, hat mich wirklich schockiert: Nicht nur, dass 0 nicht als erstes Datum akzeptiert wird (was meiner Meinung nach sinnvoll ist), sondern es werden auch bis zu 10000 kopiert.
Obwohl mit 0 als int als start_time ist es verständlich (ich habe Erfahrung), es ist alles über Funktionen überladen und Compiler "nicht verstehen" bestimmte Dinge. Aber deshalb sind 10000 Barren eine separate Frage, die "in einer Million" genannt wird.
Die 10.000-Minuten-Balken, so wie wir sie verstehen, werden nicht über 2011 hinausgehen, wenn ich es richtig verstehe, werden sie nicht über den Februar hinausgehen (und wie aus all dem oben Gesagten deutlich wird, sind mindestens 360000 mit Sicherheit geladen).
PS
Gleichzeitig unterscheidet sich die Geschwindigkeit von normal und "buggy" (wenn das Skript nur 10000 Takte kopiert) um ein Vielfaches.
PPS
Achten Sie bitte darauf, dass Sie bestimmte Abschnitte der Hilfe (bzw. deren Beispiele) zu einem logischen Schluss bringen, um Unklarheiten und andere "dumme" Situationen zu vermeiden.
Es sollten zusätzlich Schecks ausgestellt werden, usw. Außerdem gibt es in diesem Fall keine Querverweise in den Parameterbeschreibungen (zumindest im Zeitrahmen) und es ist nicht klar, welchen Typ start_time und start_pos haben.Ich vermute, dass datetime (warum sonst würde der Compiler auf 0 als start_timeschwören ).
Ist das ein Fehler oder meine mangelnde Fähigkeit?
Das Diagramm ruckelt beim Navigieren von der Nullleiste aus. Ich habe absichtlich Zettel zwischen Navigation und Aktualisierung eingefügt, um das Problem hervorzuheben. Aber der Fehler existiert auch ohne Zettel. Es stellt sich heraus, dass ChartNavigate() das Diagramm zunächst auf Null setzt und dann zurückbewegt. Außerdem tut er dies nicht jedes Mal.
Zumindest die Tatsache, dass der Fehler nicht jedes Mal auftritt, wenn Sie ChartNavigate() aufrufen, sondern wenn Sie es ohne Slips ausführen.
Ist das ein Fehler oder meine mangelnde Fähigkeit?
Das Diagramm ruckelt beim Navigieren von der Nullleiste aus. Ich habe absichtlich Zettel zwischen Navigation und Aktualisierung eingefügt, um das Problem hervorzuheben. Aber der Fehler existiert auch ohne Zettel. Es stellt sich heraus, dass ChartNavigate() das Diagramm zunächst auf Null setzt und dann zurückbewegt. Außerdem tut er dies nicht jedes Mal.
Zumindest die Tatsache, dass der Fehler nicht jedes Mal auftritt, wenn Sie ChartNavigate() aufrufen, sondern wenn Sie es ohne Slips ausführen.
Versuchen Sie das Beispiel aus dem Zweig ChartNavigate Funktion funktioniert nicht, Bitte helfen Sie
Was ist also an diesem Beispiel so grundlegend anders als an meinem Code?
Es ist nur so, dass in Ihrem Code die Navigation nur einmal aufgerufen wird, während ich das Diagramm die ganze Zeit auf dem gewünschten Balken halten muss (unabhängig von Benutzeraktionen).
Ich habe Ihr Beispiel ausprobiert und meinen Code ohne Diagrammaktualisierung ausgeführt (obwohl das für mich wichtig ist, weil das Programm viele grafische Transformationen verwendet), aber es hat auch nicht funktioniert. Der Ruck bleibt. Ich navigiere immer noch zu demselben Punkt und dann zur Nullleiste.
Auch die Navigation über den aktuellen Balken halte ich für inakzeptabel, da der Benutzer das Diagramm bei laufendem Programm versehentlich verschieben kann.
Ist die Geschichte in der Schublade?
Was ist also an diesem Beispiel so grundlegend anders als an meinem Code?
Es ist nur so, dass in Ihrem Code die Navigation einmal aufgerufen wird, während ich das Diagramm die ganze Zeit auf dem gewünschten Balken halten muss (unabhängig von den Aktionen des Benutzers).
Nachdem ich mir Ihr Beispiel angesehen habe, habe ich meinen Code ohne Diagrammaktualisierung ausgeführt (obwohl das für mich wichtig ist, da das Programm auch eine Reihe von Grafikkonvertierungen verwendet), aber auch das hat nicht geholfen. Der Ruck bleibt. Ich navigiere immer noch zu demselben Punkt und dann zur Nullleiste.
Auch die Navigation über den aktuellen Balken halte ich für inakzeptabel, da der Benutzer das Diagramm bei laufendem Programm versehentlich verschieben kann.