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
Sie haben noch Zähler.
Siehe GumRai's Kommentar https://www.mql5.com/en/forum/151167/page2#954622
Vielen Dank für Ihre Beiträge.
Ich habe "Open" anstelle von "Time" verwendet, weil der Open-Wert eines Balkens, wenn er einmal eingetreten ist, für immer feststeht und sich nie mehr ändern wird. Es wird nicht nach zwei aufeinanderfolgenden Balken gesucht - es ist derselbe Balken und es wird gefragt, ob der Open des aktuellen Balkens, in dem der Tick gerade stattgefunden hat, mit dem in ThisBarOpen gespeicherten Open-Wert übereinstimmt. Außerdem hätte ich gedacht, dass Open unkomplizierter ist als Time, weil es sich um eine einfache Datenabfrage handelt, während Time möglicherweise auf etwas anderes verweisen und eine Art von Berechnung durchführen muss.
Re Counter--; Ich habe das nicht geändert, weil ein anderer EA nicht in der Lage wäre, eine Order zu schließen, weil der Code zuerst überprüft, ob die MagicNumber und das Symbol() gleich sind.
Ich verstehe natürlich den Punkt, dass ein Stromausfall den Inhalt von BuyTicket auslöscht, aber das ist während meiner Tests nicht passiert und mein Code läuft immer noch sehr langsam. Daher kann ich mir auch nicht vorstellen, dass das die Ursache sein könnte.
Meine Hauptfrage ist im Moment, warum es so lange dauerte, die EAs aus den Fenstern auf dem Terminal zu entfernen, die offene Positionen hatten, und überhaupt keine Zeit, sie aus dem Terminal zu entfernen, das keine offenen Positionen hatte. Vielleicht ist es Zufall - aber alle vier Fenster?
Ich weiß nicht, ob dies wirklich relevant für Ihr Problem ist, aber Sie beschränken Ihren Handel auf 1 Kauf, 1 Verkauf pro EA, warum also all dies tun?
Sie haben hier bereits Ihre Ticketnummer:
Wenn Sie diese zu einem statischen Wert machen, können Sie Ihren Auftrag explizit mit dieser Ticketnummer schließen, ohne den Auftragspool danach zu durchsuchen.
Vielen Dank für Ihre Beiträge.
Re Counter--; Ich habe das nicht geändert, weil ein anderer EA nicht in der Lage wäre, eine Order zu schließen, weil der Code zuerst überprüft, ob die MagicNumber und das Symbol() gleich sind.
Meine Hauptfrage ist im Moment, warum es so lange dauerte, die EAs aus den Fenstern auf dem Terminal zu entfernen, die offene Positionen hatten, und überhaupt keine Zeit, sie aus dem Terminal zu entfernen, das keine offenen Positionen hatte. Vielleicht ist es Zufall - aber alle vier Fenster?
Haben Sie verstanden, wie Schleifen funktionieren?
Angenommen, Sie haben 3 Aufträge offen
Beim ersten Durchlauf ist der Zähler = 0, also wird der Auftrag mit dem Index 0 ausgewählt.
Am Ende der Schleife verringern Sie den Zähler um 1, also Zähler== -1.
Bevor die Schleife erneut ausgeführt wird, wird der Zähler im Rahmen der for-Funktion um 1 erhöht. Also Zähler ==0
Beim nächsten Durchlauf der Schleife ist zähler==0 und so weiter und so fort.
Du steckst in einer Endlosschleife fest, die immer wieder den Ordnungsindex 0 überprüft.
Die einzige Möglichkeit, die Schleife zu beenden, ist, wenn es keine offenen Aufträge gibt, denn dann ist OrdersTotal - 1 gleich -1 und 0 ist nicht <= -1