![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Guten Tag zusammen.
Frage zur Funktion
Ich habe ein Gegenstück in mehreren Währungen. Die Paare werden in externen Parametern festgelegt. Mit eigenem Zauberer (für jedes Paar).
Unter den Einstiegsbedingungen für jedes Instrument gibt es diese:ODER (für das zweite Paar)
Was passiert ist, ist, dass ich beide Symbole gestern geladen - EURUSD, und heute Morgen fand ich, dass nur ein Handel geöffnet, obwohl es schien, um Signale in beiden Fällen.
Und dann fiel es mir ein. Dass die Funktion
Zunächst wird geprüft, ob für ein Symbol eine offene Position besteht. Und dann alles andere.Mit anderen Worten, wenn ich eine offene Position mit dem EA für das Instrument EIRUSD habe, wird die zweite Position auch mit einem anderen Magier nach einem anderen Algorithmus nicht geöffnet.
Bitte sagen Sie mir, ob es wahr ist oder nicht?
Oder liege ich mit meinen Überlegungen falsch? Oder wertet die Funktion alle Kriteriennacheinander aus ...
Ich verwende diese Funktion oft, sie gibt alles entsprechend den Eingabeparametern zurück. Die Elemente, die die Funktion durchläuft, werden der Reihe nach nach den Parametern sortiert. Überzeugen Sie sich selbst.
Es bedeutet also, dass mein EA nicht in der Lage sein wird, eine zweite EURUSD-Position zu eröffnen, auch nicht mit einem anderen Magier, solange die erste Position offen ist?
Offensichtlich ja. Denn selbst im Testgerät scheint es keine überlappenden Positionen zu geben.
//--------------------------------------------------------
Es bedeutet also, dass mein EA nicht in der Lage sein wird, die zweite EURUSD-Position zu öffnen, auch wenn er einen anderen Magier hat, während die erste Position offen ist?
Genau das Gegenteil :)) Das bedeutet, dass die Funktion Ihre Symbole und magischen Zahlen separat zählt. Das heißt, wenn es eine offene Position auf EURUSD c Magic_1 gibt, dann ist NumberOfPositions("EURUSD", -1, Magic_2)==0; es sei denn, es gibt eine andere Position auf EURUSD mit Magic_2, natürlich.
Im Allgemeinen zählt die Funktion offene Positionen gemäß (sy && op && mn), d.h. Positionen werden genau mit diesen Parametern gezählt. Wenn mindestens ein Parameter nicht übereinstimmt, wird der Auftrag von dieser Funktion nicht berücksichtigt und ist nicht sichtbar.
Drucken Sie die Werte der Funktion in Kommentar aus und Sie können in Echtzeit die Anzahl der Aufträge sehen und ob die Funktion korrekt funktioniert. Höchstwahrscheinlich liegt der Grund für die Fehlfunktion des Algorithmus im EA-Code.
Das Hinzufügen einer Bindung an das Symbol im Funktionsaufruf ist nicht hilfreich. Warum wird der Gewinn für jede Position einzeln gezählt (Bild oben)?
Nein, ich würde dir lieber meine Zeichnung anbieten...
...und ein Drehbuch...
Nein, ich würde dir lieber meine Zeichnung anbieten...
...und ein Drehbuch...
Ich habe gemerkt, dass ich ein Narr bin... Durch die Zugabe von Rindfleisch und Milch kann man keine Euter bekommen.
Angela, der Compiler hat nicht erwartet, meine Funktionsdefinition genau an dieser Stelle zu finden. Das bedeutet, dass irgendwo oberhalb des Codes etwas fehlt. Es kann ein Semikolon oder eine schließende geschweifte Klammer sein. Prüfen Sie den Code auf jeden Fall sorgfältig.
Ich habe es herausgefunden, ich habe nur Ihre Funktion innerhalb von int start() eingefügt, wenn ich sie außerhalb von int start() einfüge, wird alles kompiliert. Das Problem ist anders, im Indikator im Visualisierungsmodus im Tester bekommt diese Funktion keine Daten vom EA zum Indikator.
Lucky$ & KimIV
http://www.kimiv.ru
Hallo Igor!
Ich benutze Ihre Expert Advisor, es ist sehr gut, ich habe versucht, Indikator, um es durch iCustom gestern anhängen, aber es sah es nicht, wie man es durch iCustom verschreiben? Ich frage mich, welche eingebauten Funktionen wie iHigh, iLow es ohne Probleme sehen, aber es weigert sich, schwebende Aufträge über den Indikator zu platzieren.
Ich habe es so für iHigh und iLow des Tagesbalkens gesetzt . Diese Funktion funktioniert wie erwartet, platziert Pending Orders, will aber keine Pending Orders mit Indikator(((.... Ich möchte das Code-Fragment zeigen, wie man schwebende Aufträge durch den Indikator in diesem EA platzieren? Der Indikator kann alles andere als ein Aufruf der iCustom-Funktion sein .
Wenn Sie etwas Zeit haben, danke.