[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 275
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
Die Frage ist.
Wie bekommt man eine Zahl ohne Minus, wenn es sich herausstellt, dass Open[1] < Close[1] und wenn Sie subtrahieren Open[1]-Close[1] Ich erhalte den Wert mit einem Minus, wie man es war immer ein positiver Wert, ich brauche, um den Abstand zwischen Open und Close vielleicht gibt es einen anderen Weg zu berechnen?
Ich danke Ihnen.
Die Frage ist.
Wie bekommt man eine Zahl ohne Minus, wenn es sich herausstellt, dass Open[1] < Close[1] und wenn Sie subtrahieren Open[1]-Close[1] Ich erhalte den Wert mit einem Minus, wie man es war immer ein positiver Wert, ich brauche, um den Abstand zwischen Open und Close vielleicht gibt es einen anderen Weg zu berechnen?
>> Danke.
https://docs.mql4.com/ru/math/MathAbs
https://docs.mql4.com/ru/math/MathAbs
;) >> Vielen Dank!
Guten Tag!
Beim Schreiben eines EAs für MT4 bestand die Notwendigkeit, programmatisch (d.h. im Code des EAs selbst) zu ermitteln, ob mindestens eine Order dieses EAs geöffnet wurde oder nicht. Können Sie mitteilen, ob es eine solche Funktion gibt? Wenn ja, würde es vielleicht so aussehen
Bool (wurde ein EA-Auftrag mit dieser magischen Zahl eröffnet)
{Antwort= Richtig/Falsch}
?
Experten - bitte helfen Sie uns - wir zerbrechen uns bereits den Kopf
P.S.- die Option mit den Bestellnummern ausprobiert - hat nicht funktioniert
Guten Tag!
Beim Schreiben eines EAs für MT4 bestand die Notwendigkeit, programmatisch (d.h. im Code des EAs selbst) festzustellen, ob mindestens eine Order dieses EAs geöffnet wurde oder nicht. Wissen Sie, ob es eine solche Funktion gibt?
Wird diese Funktion funktionieren?
Anwendungsbeispiel: Wir setzen diese Funktion ganz ans Ende unseres Codes und prüfen sie, wenn wir eine Position eröffnen:
Wenn wir nicht nach Positionen, sondern nach schwebenden Aufträgen suchen, können wir diese Funktion verwenden
Funktion NumberOfOrders().
Diese Funktion gibt die Anzahl der Aufträge zurück. Sie können die Liste der zu prüfenden Aufträge mit Hilfe der Funktionsparameter einschränken:
sy - Name des Instruments. Wenn wir diesen Parameter setzen, wird die Funktion nur die Aufträge des angegebenen Instruments prüfen. NULL bedeutet aktuelles Instrument, und "" (standardmäßig) bedeutet ein beliebiges Instrument.
op - Art des schwebenden Auftrags. Gültige Werte: OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT, OP_SELLSTOP oder -1. Der Standardwert von -1 bedeutet eine beliebige Reihenfolge.
mn - Kennung der Bestellung (MagicNumber). Der Standardwert von -1 bedeutet eine beliebige MagicNumber.
https://www.mql5.com/ru/forum/107476/page12
Bitte erläutern Sie, was die Dateien enthalten:
Wenn möglich, auf eine einfache Art und Weise.
Ich danke Ihnen.
Bitte erläutern Sie, was die Dateien enthalten:
Wenn möglich, auf eine einfache Art und Weise.
Ich danke Ihnen.
es handelt sich um sogenannte "bibliotheksdateien". in diesen dateien sind häufig verwendete funktionen gespeichert. sie werden verwendet, um das laden des quelltextes zu vermeiden. wenn die bibliotheksdatei "deklariert" ist, können die funktionen aus der deklarierten datei so verwendet werden, als wären sie im quelltext enthalten.
Erläutern Sie bitte, was uns die Akten sagen:
Wenn möglich, halten Sie es bitte einfach.
Ich danke Ihnen.
Bei der Verwendung (Aufruf) einer Funktion aus diesen Dateien (bereits anfänglich in mt4 eingebaut) können wir, im Falle eines fehlerhaften Betriebs des EA, im Log die Nummer des Fehlers sehen, den wir im Code gemacht haben.
Zum Beispiel rufen wir die Funktion GetLastError() auf:
In diesem Fall, wenn wir einen Fehler im Code gemacht oder falsche externe Parameter gesetzt haben, sehen wir die Nummer dieses Fehlers im Protokoll.
Zum Beispiel, 130.
Und die Entschlüsselung der Nummer finden Sie unter -https://book.mql4.com/ru/appendix/errors
Und wir brauchen nicht den ganzen Code durchzugehen, denn wir wissen bereits, wo der Fehler liegt!
Wird diese Funktion funktionieren?
Verwendungsbeispiel: Die Funktion selbst wird ganz am Ende des Codes (außerhalb der START-Funktion) eingefügt und beim Öffnen einer Position überprüft:
Wenn wir nicht nach Positionen, sondern nach schwebenden Aufträgen suchen, können wir
Funktion NumberOfOrders().
Diese Funktion gibt die Anzahl der Aufträge zurück. Sie können die Liste der zu prüfenden Aufträge mit Hilfe der Funktionsparameter einschränken:
sy - Name des Instruments. Wenn Sie diesen Parameter angeben, prüft die Funktion nur die Aufträge für das angegebene Instrument. NULL bedeutet aktuelles Instrument, und "" (standardmäßig) bedeutet ein beliebiges Instrument.
op - Art des schwebenden Auftrags. Gültige Werte: OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT, OP_SELLSTOP oder -1. Der Standardwert -1 steht für eine beliebige Reihenfolge.
mn - Kennung der Bestellung (MagicNumber). Der Standardwert -1 bedeutet eine beliebige MagicNumber.
https://www.mql5.com/ru/forum/107476/page12
Vielen Dank für den Tipp, wir haben es versucht, aber es hat nicht funktioniert, bitte prüfen Sie, ob irgendwo im Code ein Fehler ist:
Wenn wir prüfen wollen, ob eine Verkaufs- oder Kaufbedingung vorliegt und wir keinen Auftrag geöffnet oder geschlossen haben, wird in diesem Fall nur die erste Bedingung funktionieren. Und wenn der EA in der Vergangenheit bereits Orders eröffnet hat, dann sollten beim Eröffnen einer Order die erste + zweite Bedingung ausgelöst werden.
Ich sah durch den Link von Ihnen zur Verfügung gestellt, vielleicht die ExistOrders(); ist besser geeignet?
(aber ich konnte es ehrlich gesagt nicht zuordnen, da mir im Moment offenbar die Fähigkeit dazu fehlt).
Sie haben die Funktion nicht korrekt aufgerufen.
Ihre Funktion wird folgendermaßen aufgerufen: if (NumberOfPositions(NULL,Magic)> 1)
Sie sollte folgendermaßen aussehen:
Fühlen Sie den Unterschied (Sie haben "-1" weggelassen) ! und ERHALTEN Sie Ihren CODE.
Um dies zu kontrollieren, können Sie einen Kommentar auf das Diagramm drucken. Zum Beispiel so (am Anfang der Funktion START).
Was Ihre zweite Bedingung betrifft, so würde ich ("ohne zu viel nachzudenken") einen anderen Magier und eine separate Funktion Open_Buy_2() einstellen, um Positionen durch die zweite Bedingung zu öffnen!Der Code der zweiten Bedingung würde wie folgt aussehen