Indikatoren: Der ZoomPrice Tick-Indikator - Seite 4

 
ascerdfg:

Ich habe mql5.com/de/code/download/16753.zip entpackt und mit intakter Ordnerstruktur kopiert.

Beim Kompilieren von ZoomPrice.mq5 in MetaEditor 5.0 build 2715 tritt ein Fehler auf:

Die Zip-Dateien in der Codebasis wurden bei der Aktualisierung der Quellen lange Zeit nicht aktualisiert. Laden Sie jede Datei einzeln herunter.

 

1. In der Datei Ticks.mqh gibt es folgenden Code

AmountTicks = this.GetFreshTicks(NewTicks, COPY_TICKS_INFO, (uint)MathMax((this.To - this.LastTime) >> 5, 2000)); ~2000 Ticks/Minute

Gleichzeitig gibt es in GetFreshTicks eine Prüfung

if ((NewAmount > 0) && (this.Count < NewAmount))

Mit anderen Worten, wenn die letzten Ticks gelesen werden, wird GetFreshTicks das Array NewTicks nicht verändern. Es wird aber nicht bereinigt, und das alte Array mit alten Werten wird verarbeitet. Alternativ kann dies durch Verschieben der Deklaration MqlTick NewTicks[] gelöst werden;

    TICK Tick;

    int AmountTicks = 1;

    while (AmountTicks > 0)
    {
      MqlTick NewTicks[];
      AmountTicks = this.GetFreshTicks(NewTicks, COPY_TICKS_INFO, (uint)MathMax((this.To - this.LastTime) >> 5, 2000)); ~2000 Ticks/Minute


2. Einige Tippfehler

Количество тиков в последенем запросе


Bis jetzt kann ich aufgrund dieses Fehlers https://www.mql5.com/ru/forum/363680/page9#comment_21182494 nicht sagen, ob alles normal ist oder etwas anderes nicht funktioniert.

 

Пока из-за этого бага https://www.mql5.com/ru/forum/363680/page9#comment_21182494 не могу сказать, всё ли дальше нормально или ещё что не работает.

Forum zum Thema Handel, automatische Handelssysteme und Testen von Handelsstrategien

Benutzerdefinierte Symbole. Fehler, Bugs, Fragen, Anregungen.

fxsaber, 2020.07.01 17:34

Ich kann den Fehler in 2509 bestätigen.

Diese Variante scheint nicht zu versagen.

int size = CopyTicksRange(_Symbol, array, COPY_TICKS_ALL, cursor);

Vielleicht ist es sinnvoll, auf CopyTicksRange umzustellen.

 
traveller00:

Es könnte sinnvoll sein, zu CopyTicksRange zu wechseln.

Der Indikator ist uralt. Damals hatte er diese Funktion noch nicht. Um richtig zu funktionieren, müssen Sie natürlich Änderungen vornehmen.

 
traveller00:

Es könnte sinnvoll sein, zu CopyTicksRange zu wechseln.

Es scheint eine funktionierende Option zu sein.


3. Es gibt eine void SetAutoScroll( void ) Funktion. Wenn das Diagramm automatisch zum rechten Rand gescrollt wird, wird die Zeit für ZoomTicks basierend auf der tatsächlichen aktuellen Zeit über this.Ticks.GetNowTime() berechnet. Aber benutzerdefinierte Zeichen erzeugen keine neuen Ticks. Infolgedessen werden From und To mit Werten aus der aktuellen Zeit gefüllt, es werden keine Ticks für sie abgeholt (es gibt keine neuen Ticks), das Bild der Ticks wird schließlich die alte zeigen, aber in this.SetTextCross wird es die aktuelle Zeit anzeigen.


4. Die Ticks werden vom linken Rand des Intervalls angefordert. Wenn das Intervall von 01:00:00:00-01:01:00:00 geht und der erste Tick, der in das Intervall eintritt, um 01:00:30 ist, entsteht ein Loch in der linken Hälfte.

 
traveller00:

4. Die Tick-Anforderung kommt vom linken Rand des Intervalls. Wenn das Intervall von 01:00:00:00-01:01:00:00 geht und der erste Tick, der in das Intervall eintritt, um 01:00:30 ist, gibt es ein Loch in der linken Hälfte.

Dieses war ursprünglich vorhanden. Ich habe es nicht absichtlich eingebaut.

 
fxsaber:

Das war von Anfang an so. Ich habe nicht absichtlich Regeln aufgestellt.

Wozu war das Loch da, wenn es kein Geheimnis ist?

 
traveller00:

Wozu diente das Loch, wenn es kein Geheimnis ist?

Ich sehe sofort, dass es links keinen Haken gab.

 
ascerdfg:

Und ich erhalte die gleichen Fehler.

Ich habe noch eine funktionierende Version des Indikators, es funktioniert immer noch für mich).

 
ZoomPreis