Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1358
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
Hallo!
Vielleicht weiß ja jemand Bescheid... Ich suche nach einer Lösung, um eine mit WebRequest erhaltene ZIP-Datei-Bytefolge in ein ZIP-Archiv zu konvertieren und mit MQL5-Tools auf die Festplatte zu entpacken.
Die Suche nach einer Lösung führte mich zu dem Artikel "Handling ZIP archives using MQL5 tools without third-party libraries" aus dem Jahr 2015 ( https://www.mql5.com/ru/articles/1971 ). Hier zeigte der Autor die Lösung und veröffentlichte die CZip-Klasse für die Arbeit mit ZIP-Archiven. Ich kann diese Lösung jedoch nicht anwenden - beim Kompilieren kann MetaEditor die ausführbare Datei nicht erstellen, da er Fehler in der CZip-Klassenbibliothek angibt.
Der Kern meiner Frage kann auf Folgendes reduziert werden: - Wie kann ich Methoden der CZip-Klasse, insbesondere CreateFromCharArray() und UnpackZipArchive(), separat verwenden, indem ich sie direkt in den Skriptcode einfüge?
Es gibt einen Dienst, der in regelmäßigen Abständen Dateien erstellt (ich schließe alles korrekt über FileClose).
Nach dem Start wird normalerweise die erste Datei normal erstellt, dann gibt FileOpen den Fehler 5001 zurück.
Aber all das ist zufällig - mal funktioniert es, mal nicht. Gleichzeitig habe ich das Problem nie bemerkt, wenn ich denselben Code in einem Skript oder Expert Advisor ausführe.
Wie kann dieses Verbot umgangen werden?
Lassen Sie mich meine Frage wiederholen.
Es gibt einen Dienst, der in regelmäßigen Abständen Dateien erstellt (ich schließe alles korrekt über FileClose).
Nach dem Start ist die erste Datei in Ordnung, und dann gibt FileOpen den Fehler 5001 aus.
Aber es ist zufällig - manchmal funktioniert es, manchmal nicht. Gleichzeitig habe ich das Problem nie bemerkt, wenn ich denselben Code in einem Skript oder Expert Advisor ausführe.
Wie kann dieses Verbot umgangen werden?
Möchten Sie, dass jemand einen ähnlichen Dienst mit den gleichen Fehlern wie den Ihren schreibt und Ihnen sagt, was behoben werden muss?
Möchten Sie, dass jemand einen ähnlichen Dienst mit den gleichen Fehlern wie den Ihren schreibt und Ihnen sagt, was behoben werden muss?
In der Dateisuchfunktion wurde die Suche nicht über FileFindClose() geschlossen.
Jedenfalls danke für die Antwort.
Habe angefangen, die Lishee auszuschneiden, um den Code zu posten und alles hat funktioniert ))
In der Dateisuchfunktion wurde die Suche nicht über FileFindClose() geschlossen.
Jedenfalls danke für die Antwort.
Ja, alles, was eine Datei verwendet, öffnet sie (öffnet den Zugriff auf die Datei) ))) Und das Schließen der Datei (Zugriff) ist erforderlich.
Wird eine Datei unnötigerweise geschlossen, wird -1 zurückgegeben, ohne dass dies Konsequenzen hat, aber eine vergessene offene Datei kann eine Menge Probleme verursachen)
Erinnern Sie mich daran, dass im Eingabeblock der Kommentar nicht in den Parametern des Roboters erscheinen darf?
damit die Parameter weiterhin MagicNumber statt MagicNumber anzeigen (dies ist ein Beispiel)
Erinnern Sie mich daran, dass im Eingabeblock der Kommentar nicht in den Parametern des Roboters erscheinen darf?
damit die Parameter weiterhin MagicNumber anstelle von MagicNumber anzeigen (dies ist ein Beispiel)
sinput' gibt einen Parameter aus, der aber nicht in die Optimierung einbezogen werden kann.
Variablen mit Sinput-Modifikator#
Variablenmit Eingabemodifikatorermöglichen nicht nur das Setzen von externen Parameterwerten beim Start von Programmen, sondern sind auch bei der Optimierung von Handelsstrategien im Tester notwendig. Jede im Expert Advisor deklarierte Eingabevariable, mit Ausnahme des Stringtyps, kann an der Optimierung teilnehmen.
Manchmal ist es notwendig, einige externe Programmparameter aus dem Bereich aller Durchläufe des Testers auszuschließen. Speziell für solche Fälle gibt es einen Speichermodifikatorsinput. sinput ist eine verkürzte Form der Deklaration einer statischen externen Variablen: sinput = static input. Das heißt, eine solche Erklärung im EA-Code
ist gleichbedeutend mit einer vollständigen Erklärung
Eine mit dem Modifikator sinput deklarierte Variable ist ein Eingabeparameter eines MQL5-Programms. Der Wert dieses Parameters kann beim Start des Programms geändert werden. Diese Variable nimmt jedoch nicht am Prozess der Optimierung der Eingangsparameter teil, d.h. ihre Werte werden bei der Suche nach dem besten Parametersatz anhand des vorgegebenen Kriteriums nicht berücksichtigt.
Die Abbildung zeigt, dass der Expert Advisor über 5 externe Parameter verfügt, von denen der Parameter "Number of Layers" alsSinputdeklariert wurdeund gleich 6 ist. Dieser Parameter kann nicht in der Optimierungsprozedur der Handelsstrategie geändert werden, aber der erforderliche Wert kann eingestellt werden, damit er verwendet wird. Die Felder Start, Schritt und Stopp sind für die Einstellung von Werten für eine solche Variable nicht verfügbar.
Indem wir also den Modifikator sinput für eine Variable setzen, verhindern wir, dass ein Benutzer diesen Parameter optimiert. Das bedeutet, dass ein Benutzer des Terminals im Strategietester keine Start- und Stoppwerte für die automatische Aufzählung innerhalb des angegebenen Bereichs während des Optimierungsprozesses festlegen kann.
Es gibt jedoch eine Ausnahme von dieser Regel: Sinput-Variablen können in Optimierungsaufgaben mit der FunktionParameterSetRange() variiert werden. Diese Funktion wurde speziell entwickelt, um den Bereich der verfügbaren Werte für eine beliebigeEingabevariable, einschließlich der alsstatische Eingabe(sinput)deklarierten, programmatisch zu steuern.Eine weitere Funktion,ParameterGetRange(), ermöglicht es, die Werte der Eingangsvariablen zu empfangen, wenn die Optimierung gestartet wird (imOnTesterInit()-Handler) und, falls erforderlich, einen Änderungsschritt und einen Bereich neu zu definieren, innerhalb dessen die optimierten Parameterwerte aufgezählt werden.
Die Kombination aus dem Sinput-Modifikator und zwei Funktionen zur Behandlung von Eingangsvariablen ermöglicht es also, flexible Regeln zur Definition von Optimierungsintervallen einiger Eingangsvariablen in Abhängigkeit von den Werten anderer Eingangsvariablen zu erstellen.
sinput Ich erinnere mich, die Frage ist über die Anzeige eines Kommentars, ist es möglich, den Variablennamen anstelle eines Kommentars, in EA-Parameter anzuzeigen?
ps der String mit sinput war nur ein Beispiel)
sinput ich mich erinnere, ist die Frage in der Kommentaranzeige, kann der Variablenname anstelle des Kommentars, in den EA-Parametern angezeigt werden?
ps sinput line war zufällig ein Beispiel)
Schreiben Sie einfach nichts nach ';'.
Beispiel - es gibt eine Beschreibung:
und entfernen Sie nun die Beschreibung:
und wir werden den Namen der Variablen sehen
Schreiben Sie einfach nichts nach ';'.
Das war die Frage, der Kommentar ist da, aber der Variablenname muss in den Parametern ausgegeben werden,
vielleicht gibt es da einen Trick....