Fragen von einem "Dummy" - Seite 229

 
Rosh:

Die Eigenschaft #property tester_file ist genau dafür gedacht, um zu vermeiden, dass irgendwo etwas von Hand eingetragen wird.

tester_datei

String

Dateiname für den Tester, mit Angabe der Erweiterung und in Anführungszeichen (als konstante Zeichenfolge). Die angegebene Datei wird an den Prüfer zur Bearbeitung weitergeleitet. Eingabedateien für Tests, falls erforderlich, sollten immer angegeben werden


Wenn eine datafile .csv-Datei für den Programmablauf benötigt wird und sich diese im terminal_directory\MQL5\Files befindet, wird die Datei automatisch vom Tester in dastesting_agent_directory\MQL5\Files verschoben (dafür muss die #property tester_file datafile.csv angegeben werden).

Dasselbe gilt, wenn sich eine Testdatei im gemeinsamen Terminalordner befindet?

Wenn ich Zeile hinzufügen:

#property tester_file "Test.txt"

...erhalte ich eine Fehlermeldung wie diese:


//---

Ich möchte eine Datei vom freigegebenen Terminalordner in die Cloud übertragen. Wie kann ich das tun?

 
tol64:

Gilt das auch, wenn sich die Testdatei im gemeinsamen Ordner des Terminals befindet?

Wenn ich die Zeile hinzufüge:

...erhalte ich eine Fehlermeldung wie diese:


//---

Ich möchte eine Datei vom freigegebenen Terminalordner in die Cloud übertragen. Wie kann ich das tun?

Ich glaube, dies wurde bereits diskutiert und es wurde festgestellt, dass die Dateien vorerst nicht in die Cloud übertragen werden können.
 
lazarev-d-m:


Ich glaube, dies wurde bereits diskutiert und es wurde festgestellt, dass Dateien vorläufig nicht in die Cloud übertragen werden können.

Dann brauchen Sie einen Link zu einer Diskussion über dieses Thema. Wo wurde dies diskutiert?

Ich selbst stütze mich auf einige frühere Diskussionen und den Artikel: MQL5 Cloud Network beschleunigt die Berechnungen, aber etwas funktioniert nicht.

Sie drücken die Schaltfläche "Start" und der Optimierungsprozess wird gestartet. Das Terminal bereitet die Aufgabe für die Prüfer vor, die Folgendes umfasst

  • Ich habe eine kompilierte Datei von meinem Expert Advisor als EX5;
  • Indikatoren und EX5-Bibliotheken, die durch die Direktiven #property tester_indicator und #property tester_library verbunden sind (DLLs sind in der Cloud definitiv verboten)
  • Datendateien, die für das Testen benötigt werden und die mit der Direktive #property tester_file verbunden werden;
  • Test-/Optimierungsbedingungen (Sicherheitsname, Testintervall, Simulationsmodus usw.)
  • Handelsumfeld (Symboleigenschaften, Handelsbedingungen usw.)
  • eine Reihe von Expert Advisor-Parametern, die alle notwendigen Durchgänge bilden - Aufgaben.

Das MetaTrader 5-Terminal kommuniziert mit den Knoten des MQL5-Cloud-Netzwerks und gibt jedem Knoten einen separaten Stapel von Aufgaben für die Ausführung bestimmter Durchgänge. Jeder Knoten ist eigentlich ein Proxy, da er eine Aufgabe und ein Aufgabenpaket (einzelne Pässe) erhält und dann damit beginnt, diese Aufgaben an die mit ihm verbundenen Agenten zu verteilen. In diesem Fall werden die Expert Advisor-, Indikator-, Bibliotheks- und Datendateien selbst nicht auf den Festplatten der MQL5 Cloud Network-Server gespeichert.

//---

Ich habe die Optimierungsdatei vorerst in den lokalen Ordner des Terminals verschoben. Der oben genannte Fehler tritt in diesem Fall nicht auf. Die Tests in allen Modi und die Optimierung laufen gut, aber wenn ich versuche, die Optimierung in der Cloud zu aktivieren, füllt sich das Protokoll mit Meldungen wie diesen:

//---

Und gelegentlich gibt es Null-Optimierungsergebnisse. Ziemlich langes Warten (etwa zehn Minuten), aber nichts passiert.

//---

Schließlich fand heraus, dass für viele Zeichen die Optimierung in der Wolke "nicht verfügbar" ist (EA ist mehrwährungsfähig). Ich habe versucht, die Symbolliste manuell zu ändern, und es stellte sich heraus, dass die Optimierung nicht startet, wenn ich diese Symbole hinzufüge (von 2010 bis zum aktuellen Tag):

NZDUSD,GBPUSD,EURJPY,EURGBP

Sobald ich sie aus der Liste gestrichen habe, funktioniert alles wieder. Aber ich habe mich zu früh gefreut. Sobald ich den Umfang des Verlaufs erhöhe, sehe ich wieder die gleiche Situation (null Ergebnisse). Mein Expert Advisor verbraucht so viel Speicher:

//---

Wo soll man suchen, was soll man tun?

 
tol64:

Dann brauchen Sie einen Link zu einer Diskussion über dieses Thema. Wo wurde dies diskutiert?

Ich selbst stütze mich auf einige frühere Diskussionen und den Artikel: MQL5 Cloud Network beschleunigt die Berechnungen, aber etwas funktioniert nicht.

//---

Ich habe die Optimierungsdatei vorerst in den lokalen Ordner des Terminals verschoben. Der oben genannte Fehler tritt in diesem Fall nicht auf. Die Tests in allen Modi und die Optimierung laufen gut, aber wenn ich versuche, die Optimierung in der Cloud zu aktivieren, füllt sich das Protokoll mit Meldungen wie diesen:

//---

Und gelegentlich gibt es Null-Optimierungsergebnisse. Ziemlich lange Wartezeiten (etwa zehn Minuten), aber nichts passiert.

//---

Schließlich fand heraus, dass für viele Zeichen die Optimierung in der Wolke "nicht verfügbar" ist (EA ist mehrwährungsfähig). Ich habe versucht, die Symbolliste manuell zu ändern, und es stellte sich heraus, dass die Optimierung nicht beginnt, wenn ich diese Symbole hinzufüge (von 2010 bis zum aktuellen Tag):

NZDUSD,GBPUSD,EURJPY,EURGBP

Sobald ich sie aus der Liste gestrichen habe, funktioniert alles wieder. Aber ich habe mich zu früh gefreut. Sobald ich den Umfang des Verlaufs erhöhe, sehe ich wieder die gleiche Situation (null Ergebnisse). Expert Advisor verbraucht sehr viel Speicher:

//---

Wo soll man suchen, was soll man tun?

Verstehe ich das richtig, dass Sie es irgendwie schaffen, die Terminaldatei und die Ordner an andere Computer zu senden, um sie für die Arbeit des EA zu verwenden?
 
lazarev-d-m:
Verstehe ich das richtig, dass Sie es irgendwie schaffen, die Terminaldatei und die Ordner an andere Computer zu senden, um sie für die Arbeit des EA zu verwenden?
Ja, wenn sich die Datei nicht im gemeinsamen Ordner des Terminals befindet, kann sie in der Cloud verwendet werden.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5
 
tol64:

... Die Tests in allen Modi und die Optimierung laufen gut, aber wenn ich versuche, die Optimierung in der Cloud zu aktivieren, füllt sich das Protokoll mit Meldungen wie dieser:

...

Ein Fehler beim Senden der Historie blinkte im Protokoll auf: Fehler beim Senden der Historie

Mit der Geschichte stimmt etwas nicht. Was sollte ich in diesem Fall tun? Ich möchte die Parameter ab dem Jahr 2000 um mehrere Zeichen optimieren.

 
lazarev-d-m:

Nehmen Sie die Variablendeklaration hinter der OnInit-Funktion und weisen Sie einen bool-Wert zu - bei mir funktionierte alles sofort im Tester und beim Debuggen

Geben Sie in dieser Rubrik oft solche "nützlichen" Ratschläge? Und wenn ich ein Anfänger wäre, würde er ein halbes Jahr nach diesem Ratschlag nach einem Problem suchen :)

Der Typ bool ist für die Speicherung der logischen Werte true oder false vorgesehen , die numerisch 1 bzw. 0 darstellen.

Das bedeutet, dass man absichtlich eine Variable entweder auf 0 oder auf 1 setzt und sie dann mit einer negativen Zahl vergleicht und daraus schließt, dass alles funktioniert.

Die Frage ist, warum dieser Code im Testprogramm nicht funktioniert:

int OnInit()
  {
int cl_ctx;
if((cl_ctx=CLContextCreate(CL_USE_ANY))==-1)
  {
    Print("OpenCL not found! Err: ", GetLastError());
    return(-1);
  }
Print("Ok!!!");
return(0);
  }

void OnTick() {} 
 
MigVRN: Warum dieser Code im Testgerät nicht funktioniert:

Welche Art von Fehler wird zurückgegeben?

Ich weiß nichts über OpenCL, aber ich habe schon einmal einen Thread über OpenCL und den Tester gesehen. Vielleicht unterstützt das Testgerät diese Funktion einfach nicht? Werfen Sie einen Blick auf das Thema OpenCL: interne Implementierungstests in MQL5

 
Yedelkin:
Welche Art von Fehler wird zurückgegeben?

Bei dieser Variante - 0 :)

OpenCL nicht gefunden! Err: 0
 
Yedelkin:

Ich kenne mich mit OpenCL nicht aus, aber irgendwie bin ich auf einen Thread über OpenCL und einen Tester gestoßen. Vielleicht unterstützt das Testgerät diese Funktion einfach nicht? Sehen Sie sich das Thema OpenCL: interne Implementierungstests in MQL5 an

Hier soll es funktionieren.