Fehler, Irrtümer, Fragen - Seite 2986

 
Andrey Dik:

und folglich stellt sich eine weitere Frage: sollte ich die MqlTick-Struktur auf korrekte Werte überprüfen, nachdem ich sie mit der Funktion SymbolInfoTick () gefüllt habe? - Denn die Werte von Ask und Bid können beliebig sein, auch negativ. Oder reicht es aus, von SymbolInfoTick () den Wert true zu erhalten?

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Neuer MetaTrader 5 Build 2755: Verbesserungen im Kursfenster und Debugger

fxsaber, 2021.02.15 03:02

Nullpreis COPY_TICKS_INFO-tic ist ein Fehler?

void OnStart()
{
  MqlTick Ticks[];
  
  CopyTicksRange("GBPUSD", Ticks, COPY_TICKS_INFO, D'2020.10.02 23:54:54' * 1000, D'2020.10.05 00:07:01' * 1000);
    
  ArrayPrint(Ticks);
  Print(AccountInfoString(ACCOUNT_SERVER));
}


Ergebnis.

                         [time]   [bid]   [ask] [last] [volume]    [time_msc] [flags] [volume_real]
        [0] 2020.10.02 23:54:54 1.29378 1.29385 0.0000        0 1601682894091       4       0.00000
        [1] 2020.10.02 23:54:54 1.29377 1.29383 0.0000        0 1601682894404     134       0.00000
        [2] 2020.10.02 23:54:54 1.29375 1.29379 0.0000        0 1601682894471     134       0.00000
        [3] 2020.10.02 23:54:55 1.29375 1.29381 0.0000        0 1601682895248       4       0.00000
        [4] 2020.10.05 00:06:14 0.00000 1.29313 0.0000        0 1601856374091       6       0.00000
        [5] 2020.10.05 00:07:00 1.29271 1.29332 0.0000        0 1601856420497     134       0.00000
        [6] 2020.10.05 00:07:00 1.29271 1.29331 0.0000        0 1601856420497       4       0.00000
        RannForex-Server
 
inwinterborn:

Können Sie mir sagen, warum Haltepunkte während des Debuggens zur nächsten Funktion wechseln, sowohl im Verlauf als auch online (Strg+F5, F5)?

Ich habe es mehrmals überprüft. Alle Erklärungen finden Sie in den beigefügten Screenshots.

Ist dies ein Fehler?


Erläuterung:

1. Ich habe manuell 2 Haltepunkte gesetzt: 1) Series.mqh Zeile 81; 2) TimeSeries.mqh Zeile 48
2. Ich gehe zur Datei ExpertMACD.mq5
3. Starten Sie die Fehlersuche an historischen oder realen Daten
4. Der Debugger stoppt in der Datei Series.mqh in der Zeile 94, die keinen Haltepunkt hat. Die Zeile ist der Beginn der nächsten Funktion nach meinem manuellen Haltepunkt, der ab Zeile 81 verschwunden oder verschoben ist.
5. Ich überprüfe meinen zweiten manuellen Haltepunkt in TimeSeries.mqh und sehe, dass er sich ebenfalls von Zeile 48 nach Zeile 63 verschoben hat, wiederum die nächste Funktion nach meinem früheren Haltepunkt.


Können Sie mir bitte sagen, was das Problem sein könnte?

 
inwinterborn:


Erläuterung:

1. Ich habe manuell 2 Haltepunkte gesetzt: 1) Series.mqh Zeile 81; 2) TimeSeries.mqh Zeile 48
2. Ich gehe zur Datei ExpertMACD.mq5
3. Starten Sie die Fehlersuche an historischen oder realen Daten
4. Der Debugger stoppt in der Datei Series.mqh in der Zeile 94, die keinen Haltepunkt hat. Die Zeile ist der Beginn der nächsten Funktion nach meinem manuellen Haltepunkt, der ab Zeile 81 verschwunden oder verschoben ist.
5. Ich überprüfe meinen zweiten manuellen Haltepunkt in TimeSeries.mqh und sehe, dass er sich ebenfalls von Zeile 48 nach Zeile 63 verschoben hat, wiederum die nächste Funktion nach meinem früheren Haltepunkt.


Können Sie mir bitte sagen, was das Problem sein könnte?

Überprüfen Sie die Einstellungen im Editor - schalten Sie die Optimierung aus:

 
Vladimir Karputov:

Überprüfen Sie die Einstellungen im Editor - deaktivieren Sie die Optimierung:

Danke für die Antwort, aber sie hilft nicht weiter.

Die Option war tatsächlich aktiviert.

Deaktivieren Sie es. Wiederholte es. Das Ergebnis ist dasselbe wie oben beschrieben.

Terminal und Editor mit neuer Einstellunggeschlossen.

Ich habe es wieder geöffnet. Wiederholt. Das Ergebnis ist das gleiche.

Woran könnte es noch liegen?


 
inwinterborn:

Danke für die Antwort, aber sie hilft nicht weiter.

Die Option war tatsächlich aktiviert.

Deaktiviert. Wiederholte es. Das Ergebnis ist dasselbe wie oben beschrieben.

Terminal und Editor mit neuer Einstellunggeschlossen.

Ich habe es wieder geöffnet. Wiederholt. Das Ergebnis ist das gleiche.

Woran könnte es noch liegen?


Versuchen Sie Version 2833 - vielleicht hat sich etwas geändert...

 
Vladimir Karputov:

Versuchen Sie Version 2833 - vielleicht hat sich etwas geändert ...

Es gab ein automatisches Upgrade auf 2834.

Das Ergebnis ist unverändert. Die Haltepunkte verschieben sich.

 
fxsaber:

In Ihrem Code wird der Rückgabewert der Funktion nicht überprüft, so dass es unmöglich ist, die Korrektheit des Inhalts der Ticks-Struktur zu beurteilen.

Und wenn beim Aufruf vonCopyTicksRange keine Fehler auftreten, dann sollten wir Nullwerte der Struktur als normal betrachten, denn wem können wir sonst vertrauen? Welche Preise können überhaupt als normal angesehen werden (wir meinen nicht einmal 0,0-Preise, sondern !beliebige" Preise)? Wer beschwert sich im Falle falscher Preise beim Sportlotto? Der Broker wird den MQs die Schuld geben und die MQs dem Broker. Das Problem ist ernster als es scheinen mag.

 
Andrey Dik:

In Ihrem Code wird der Rückgabewert der Funktion nicht überprüft, so dass es unmöglich ist, die Korrektheit des Inhalts der Ticks-Struktur zu beurteilen.

Und wenn beim Aufruf vonCopyTicksRange keine Fehler auftreten, dann sollten wir Nullwerte der Struktur als normal betrachten, denn wem können wir sonst vertrauen? Welche Preise können überhaupt als normal angesehen werden (wir meinen nicht einmal 0,0-Preise, sondern !beliebige" Preise)? Wer beschwert sich im Falle falscher Preise beim Sportlotto? Der Broker wird MQ die Schuld geben und MQ dem Broker. Das Problem ist ernster als es scheinen mag.

Der Code zeigt, wie hoch die Preise sein können. Ich habe mir meine eigenen Codes angeschaut. Machen Sie diese und andere dumme Kontrollen nicht. Ich habe definitiv mehr als eine Million Trades an verschiedenen Orten allein auf MT5 gemacht. Die Frage ist sehr weit von der Praxis entfernt.

 
fxsaber:

Der Code zeigt, wie hoch die Preise sein können. Ich habe mir meine eigenen Codes angeschaut. Machen Sie diese und andere dumme Kontrollen nicht. Ich habe definitiv mehr als eine Million Trades an verschiedenen Orten allein auf MT5 gemacht. Die Frage ist sehr weit von der Praxis entfernt.

Und? Das ist die Sache, Preise können alles sein, also welche sind Ihrer Meinung nach richtig? Sie machen diese und andere dumme Kontrollen nicht, aber Sie machenebenso dumme, aber viel teurere 0,0-Wert-Kontrollen?

 
inwinterborn:

Können Sie mir sagen, warum Haltepunkte beim Debuggen sowohl im Verlauf als auch online (Strg+F5, F5) zur nächsten Funktion wechseln?

Ich habe es mehrmals überprüft. Alle Erklärungen finden Sie in den beigefügten Screenshots.

Ist dies ein Fehler?

DerHaltepunkt wird verschoben - wie in CSeries::BufferResize geht der Experte überhaupt nicht hinein.