Fehler, Irrtümer, Fragen - Seite 2436

 
Slava:

Sie sollten das Lesen der Frames immer in OnTesterDeinit beenden. Es ist wie unser Vaterunser.

Und wozu?

Dann beschweren sie sich über fehlende Bilder.

Ich habe nichts verloren.


Eine mqd-Datei ist auch bei Verwendung eines solchen Expert Advisors perfekt geformt (ohne Verluste)

input int Range = 1; // 1..10

double OnTester()
{
  uchar Data[];
  
  FrameAdd(NULL, 0, 0, Data);
  
  return(0);
}


Danach habe ich es über die hinzugefügte Tabulatur in einem Rutsch gelesen.

 
fxsaber:

Warum?

Ich verliere nichts.


Die mqd-Datei ist perfekt geformt (ohne Verluste), sogar durch einen solchen Expert Advisor


Danach habe ich es über die hinzugefügte Tabla in einem Rutsch gelesen.

Selbst bei schnellen mathematischen Berechnungen fehlen Frames, wenn man sie nach der Optimierung nicht einliest.

Das Netz ist nicht perfekt
Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Большую часть времени современные компьютеры простаивают и не используют всех возможностей процессора. Мы предлагаем задействовать их с пользой. Вы можете сдавать мощности вашего компьютера другим участникам нашей сети для выполнения разнообразных...
 
Slava:

Frames verschwinden auch bei schnellen mathematischen Berechnungen, wenn Sie sie nach Abschluss der Optimierung nicht zu Ende lesen.

Das Netz ist nicht perfekt

Offenbar sind meine Vorstellungen von Rahmen falsch, denn Sie scheinen Unsinn zu reden.

Frames müssen nicht gelesen werden, um geschrieben zu werden. Sagen Sie mir dann, wie es tatsächlich funktioniert. Ich habe noch nicht mit Rahmen über die Cloud gearbeitet.

So wie ich es sehe, ist ein Frame nur verfügbar, wenn man ihn einer mqd-Datei hinzufügt.

 
fxsaber:

Offenbar sind meine Vorstellungen von Rahmen falsch, denn Sie scheinen Unsinn zu reden.

Sie brauchen die Rahmen nicht zu lesen, um sie aufzuschreiben. Sagen Sie mir dann, wie es tatsächlich funktioniert. Ich habe noch nicht mit Rahmen über die Cloud gearbeitet.

So wie ich es sehe, ist ein Frame nur verfügbar, wenn er der mqd-Datei hinzugefügt wird.

Das ist richtig. Der Rahmen ist verfügbar, sofern er der mqd-Datei hinzugefügt wird. Von dort aus wird er von den Rahmenfunktionen ausgelesen

 
Slava:

Das ist richtig. Ein Frame ist so lange verfügbar, wie er der mqd-Datei hinzugefügt wird. Von dort aus wird er von den Rahmenfunktionen ausgelesen

Wenn ich es richtig verstanden habe, sollten diejenigen, die einen Frame-Verlust beklagen, ihre Anwesenheit in OnTesterDeinit überprüfen.

Ich hatte kein solches Problem. Die Bibliothek wurde für den Zugriff auf die Frames im normalen Modus des Expert Advisors im Terminal geschrieben.


Ich habe nicht verstanden, wofür die letzten 16 Bytes zuständig sind.

struct FRAME
{
  ulong Pass;
  long ID;
  short String[64];
  double Value;
  int SizeOfArray;
  long Tmp[2];
 
Slava:

Sie sollten das Lesen der Frames immer in OnTesterDeinit beenden. Das ist wie unser Vaterland.

Dann beschweren sich die Leute über fehlende Bilder.

Das ist das erste Mal, dass ich von diesem "Vaterunser" höre. Wo steht das? Sollte OnTesterDeinit nicht aufgerufen werden, nachdem alle Frames im Terminal empfangen wurden? Oder kann es andere Ereignisse (insbesondere OnTesterPass), die sich in der Ereigniswarteschlange befinden, überspringen? Wenn ja, sollte dies in der Dokumentation erwähnt werden, da dies ein untypisches Verhalten ist.

Wenn Sie einen erzwungenen Abbruch der Prüfung durch einen Benutzer meinen, dann macht es keinen Sinn, von einem Verschwinden von Rahmen zu sprechen.

 
Alexey Navoykov:

Das ist das erste Mal, dass ich von diesem "Vaterunser" höre. Wo steht das? Sollte OnTesterDeinit nicht aufgerufen werden, nachdem alle Frames auf dem Terminal empfangen wurden? Oder kann es andere Ereignisse (insbesondere OnTesterPass) in der Ereigniswarteschlange überspringen? Wenn ja, sollte dies in der Dokumentation erwähnt werden, da es ein untypisches Verhalten ist.

Wenn Sie einen erzwungenen Abbruch des Tests durch einen Benutzer meinen, macht es keinen Sinn, von verschwindenden Rahmen zu sprechen.

OnTesterPass kann einfach am Ende eines Durchlaufs aufgerufen werden, aber zu diesem Zeitpunkt erreichen die Rahmendaten den Durchlauf möglicherweise nicht, weil das Netz unvollkommen ist.

Wenn Leute sagen, dass Frames verloren gehen, meinen sie oft, dass OnTesterPass nicht alles abfangen kann.

Sie können immer alles bei OnTesterDeinit abrufen, da der Optimierer auf der Terminalseite seine Arbeit nicht beendet, wenn die Agenten alles gezählt haben, sondern wenn er wartet, bis alle Frames da sind.

 
fxsaber:

OnTesterPass kann einfach am Ende eines Durchlaufs aufgerufen werden, aber die Daten des Durchlaufrahmens erreichen ihn zu diesem Zeitpunkt möglicherweise nicht, weil das Netz nicht ideal ist.

OnTesterPass wird also aufgerufen, ohne dass Frames vorhanden sind? Nun, dann ist das ein offensichtlicher Fehler. Dieses Ereignis bedeutet, dass ein Frame empfangen wird, nicht das Ende eines Durchgangs.

Alle Frames sollten bei OnTesterPass ankommen, bevor das Ereignis OnTesterDeinit aufgerufen wird. Das ist eine normale, gesunde Logik. Es sei denn, es handelt sich um eine erzwungene Testunterbrechung.

 
Alexey Navoykov:

OnTesterPass wird also aufgerufen, ohne dass Frames vorhanden sind? Nun, dann ist das ein offensichtlicher Fehler. Dieses Ereignis bedeutet, dass ein Frame empfangen wird, nicht das Ende eines Passes.

Alle Frames sollten bei OnTesterPass ankommen, bevor das Ereignis OnTesterDeinit aufgerufen wird. Das ist eine normale, gesunde Logik. Es sei denn, es handelt sich um eine erzwungene Testunterbrechung.

Offenbar habe ich mich geirrt. Ich dachte, das TesterPass-Ereignis sei das Eintreffen der Pass-Daten

Core 1  pass 0 returned result 100000.00 in 0:00:00.433
Core 1  pass 1 returned result 100000.00 in 0:00:00.001
Core 1  pass 2 returned result 100000.00 in 0:00:00.001
Core 1  pass 3 returned result 100000.00 in 0:00:00.001
 
Wer würde in das Opt-Format einsteigen...