Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 182
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
Ich lösche zum Beispiel alle Objekte auf meinem VDS. Ich möchte das Diagramm nur nicht überladen. Und dort werden sie nicht gebraucht. Ich verwende Globals. Es kommt also auf die jeweilige Situation an.
Es gibt einen Grund, warum ich sie nicht mag:
Es gibt einen Grund, warum ich sie nicht mag:
Nun, es ist nicht nötig, ihn zu lesen. Sie können GlobalVariableCheck verwenden, um zu prüfen, ob die Variable vorhanden ist oder nicht. Sie können dasselbe mit Objekten tun.
Sie müssen also nur eine Variable erstellen/prüfen/löschen.
Vladimir Simakov:
2. Verfügbarkeit von Variablen außerhalb des Programms.
kein Problem, alle Funktionen, die mit globalen Variablen arbeiten, haben einen Rückgabewert - das Ergebnis der Operation
es gibt ein Synchronisierungstoolhttps://www.mql5.com/ru/docs/globals/globalvariablesetoncondition , es ist nicht viel, aber verwenden Sie, was Sie angeboten werden
Aber der große Nachteil ist der Datentyp - nur double, ich mag double nicht, zumindest ulong wäre brauchbar gewesen, und die Organisation von Name / Wert ---> string / double macht Lust auf Tausch - Daten in string schreiben und Schlüssel in double - mehr für eine Operation kann geschrieben / gelesen werden
aber nachdem ich all dieses "Zeug" geschätzt habe Sie können sie in Binärdateien schreiben, d.h. völlige Freiheit und keine Unsicherheiten.
man muss wahrscheinlich wissen, wie man mit ihnen arbeitet
@fxsaber zeigte Beispiele für die Arbeit mit beliebigen Typenhttps://www.mql5.com/ru/forum/320395/page6#comment_12910394
Nun, es ist nicht nötig zu lesen. Sie können einfach GlobalVariableCheck verwenden, um zu prüfen, ob die Variable existiert oder nicht. Das Gleiche gilt für Objekte.
Sie müssen also nur die Variable erstellen/prüfen/löschen.
Ja, ein trivialer Namenskonflikt und der String im anderen Roboter
GlobalVariableDel(yourValueName);
wird Ihre Kaution verlieren))))
Sagen Sie, dass der Name einzigartig sein wird, dass der andere Roboter nie da sein wird, dass das Kind/die Frau/der Freund/die Säuferin nie in die Nähe des Kampfterminals kommen wird))) Einverstanden, aber die Wahrscheinlichkeit ist nicht Null, was bedeutet, dass der Code unzuverlässig wird.
Es handelt sich um einen trivialen Namenskonflikt und die Linie des anderen Roboters
wird Ihnen Ihre Einlage entziehen)))
Sie werden sagen, dass der Name einmalig sein wird, dass der andere Roboter nie da sein wird, dass das Kind/die Frau/die Freundin/die Betrunkenen selbst nie in die Nähe des Kampfterminals kommen werden))) Einverstanden, aber die Wahrscheinlichkeit ist nicht Null, was bedeutet, dass der Code unzuverlässig wird.
Schwachsinn und Fantasie
Ein EA auf Geld läuft IMMER von einem separaten Terminal aus, auf einem eigenen VDS (oder sogar Server), und niemand kommt jemals mit ihm in Berührung.
Schwachsinn und Fantasie
Ein EA auf dem Geld läuft IMMER von einem separaten Terminal aus, auf einem eigenen VDS (oder sogar Server), und niemand kommt jemals mit ihm in Berührung.
Was meinen Sie mit "IMMER"? Heute - immer, morgen können Sie anders rechnen. Und nicht jeder scheint mit Ihnen einverstanden zu sein.
Ich habe auf die wirkliche Gefahr der Verwendung globaler Variablen des Terminals hingewiesen. Das ist weder gut noch schlecht - es ist eine Gegebenheit, die uns von den Entwicklern mitgegeben wurde, wir müssen uns dessen nur bewusst sein und es in Betracht ziehen.
Die gleiche Zeichenfolge
GlobalVariablesDeleteAll();
...in einem beliebigen Skript erstellt und hoppla...
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Eigenheiten von mql5, Tipps und Tricks
Vladimir Simakov, 2020.05.24 17:02
Die gleiche Zeichenfolge
GlobalVariablesDeleteAll();
...in einem beliebigen Skript gemacht und ups.
Das Gleiche gilt für die grafischen Objekte.
ObjectsDeleteAll(...
Nur die EA-Ressourcen können von anderen Programmen nicht geändert werden.
Liebe Kolleginnen und Kollegen, bitte helfen Sie mir, ein Makro zu erstellen, wenn das möglich ist.
Ich muss ein zweidimensionales Array dynamisch deklarieren. Und auch die zweite Dimension muss verändert werden. Das ist in etwa diese Schleife:
Natürlich wird sich der Compiler dagegen sträuben:
Ich würde gerne ein Makro wie dieses sehen:
Statt einer Linie:
double d_array[][would_be_size2];
Ich danke Ihnen.
Liebe Kolleginnen und Kollegen, bitte helfen Sie mir, ein Makro zu erstellen, wenn das möglich ist.
Ich muss ein zweidimensionales Array dynamisch deklarieren. Und auch die zweite Dimension muss verändert werden. Das ist in etwa diese Schleife:
Natürlich wird sich der Compiler dagegen sträuben:
Ich würde gerne ein Makro wie das folgende sehen:
Statt einer Linie:
Ich danke Ihnen.
Aber die Erstellung eines Arrays von ausreichender (maximaler) Größe außerhalb der Schleife wird durch die Politik behindert ? :-)
Der obige Ansatz (das Array in der Schleife jedes Mal neu zu erstellen) bringt keine Vorteile in Bezug auf Geschwindigkeit oder Speicherverbrauch.
Ich würde gerne ein Makro sehen, das dem hier ähnelt:
Es wird nicht funktionieren.