Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 493
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
Könnten Sie bitte mitteilen, ob die Funktion zum Schließen aller vom EA geöffneten Aufträge nach Symbol korrekt implementiert ist?
Die Architektur selbst ist korrekt. Die Fehler liegen im Fehlen von Kontrollen und in der Verwendung einiger Funktionen:
Die Architektur selbst ist korrekt. Die Fehler liegen im Fehlen von Kontrollen und in der Verwendung einiger Funktionen:
Danke, das Hauptproblem war wahrscheinlich, dass ich einfach den gleichen Preis verwendet habe.
Aus der OrderSelect-Hilfe: " Wenn Aufträge mit dem Parameter SELECT_BY_POS sequentiell ausgewählt werden, werden die Informationen in der Reihenfolge angegeben, in der sie vom Handelsserver kommen. Eine Sortierung der erhaltenen Bestellliste ist nicht gewährleistet".
Wenn wir glauben, dass dieser Satz umsonst in die Hilfe aufgenommen wurde, ist das in Ordnung. Wenn wir glauben, dass es einen Grund dafür gibt, sollten wir diese Liste während des Durchlaufs der Schleife durch die Liste der Aufträge nicht ändern. Wie die Aufträge geordnet werden, nachdem einer von ihnen auf dem Server gelöscht wurde und eine neue, aktuelle Liste mit einer kleineren Auftragssumme vorliegt, ist unbekannt. Es ist zuverlässiger, ohne zu löschen, die gleiche unveränderte Kopie der Liste zu durchlaufen und (in einem Array) alle Ticketnummern der zu löschenden Gewerke zu sammeln. Vergessen Sie dann diese Liste und löschen Sie die Gewerke, indem Sie sie nach Tickets auswählen.
Man würde natürlich gerne glauben, dass die Ordnung in der veränderbaren Liste erhalten bleibt, und sei es nur für diesen Fall des Entfernens mehrerer Aufträge am Ende einer ungeordneten Liste, aber die Entwickler sind dagegen... Jetzt funktioniert es, und wenn ein neues Build herauskommt - "wir haben gewarnt".
Aus der OrderSelect-Hilfe: " Wenn Aufträge mit dem Parameter SELECT_BY_POS sequentiell ausgewählt werden, werden die Informationen in der Reihenfolge angegeben, in der sie vom Handelsserver kommen. Eine Sortierung der erhaltenen Bestellliste ist nicht gewährleistet".
Wenn wir glauben, dass dieser Satz umsonst in die Hilfe aufgenommen wurde, ist das in Ordnung. Wenn wir glauben, dass es einen Grund dafür gibt, sollten wir diese Liste während des Durchlaufs der Schleife durch die Liste der Aufträge nicht ändern. Wie die Aufträge geordnet werden, nachdem einer von ihnen auf dem Server gelöscht wurde und eine neue, aktuelle Liste mit einer kleineren Auftragssumme vorliegt, ist unbekannt. Es ist zuverlässiger, ohne zu löschen, die gleiche unveränderte Kopie der Liste zu durchlaufen und (in einem Array) alle Ticketnummern der zu löschenden Gewerke zu sammeln. Vergessen Sie dann diese Liste und löschen Sie die Gewerke, indem Sie sie nach Tickets auswählen.
Man würde natürlich gerne glauben, dass die Ordnung in der veränderbaren Liste erhalten bleibt, und sei es nur für diesen Fall des Entfernens mehrerer Aufträge am Ende einer ungeordneten Liste, aber die Entwickler sind dagegen... Jetzt funktioniert es, und wenn ein neues Build herauskommt - "wir haben gewarnt".
Dieses "Amerika" gibt es seit etwa dreihundert Jahren :)
Diese Art von "Amerika" gibt es seit etwa dreihundert Jahren :)
Ich glaube nicht, dass die Leute, die hier im Namen von Neuankömmlingen Fragen stellen, dies bereits selbst entdeckt haben. Deshalb schreibe ich es ja auch. Nicht für die Moderatoren, sondern für die Fragesteller. Sehen Sie sich den Namen des Threads an.
P.S. Ich habe nachgesehen, woher dieses Interesse kommt. Wie sich herausstellte, stammt es aus dem https://www.mql5.com/ru/forum/215783/page8 Zweig "Organisation des Auftragszyklus". Wie sich im Oktober 2017 herausstellt, sind diese dreihundert Jahre noch nicht vorbei, es gibt immer noch Neues.
Ich glaube nicht, dass die Leute, die hier im Namen von Neuankömmlingen Fragen stellen, dies bereits selbst entdeckt haben. Das ist der Grund, warum ich schreibe. Nicht für die Moderatoren, sondern für die Fragesteller. Sehen Sie sich den Namen des Threads an.
P.S. Ich habe nachgesehen, woher dieses Interesse kommt. Wie sich herausstellte, stammt es aus dem https://www.mql5.com/ru/forum/215783/page8 Zweig "Organisation des Auftragszyklus". Wie sich herausstellt, sind diese dreihundert Jahre im Oktober 2017 noch nicht vorbei, es gibt immer noch Neues.
Wieder falsch :) Vor dreihundert Jahren begann es auf mql4.com - es gab eine Zeit, in der es dort aktiv diskutiert wurde. Und es gab sogar die Momente, die Sie in "Jetzt funktioniert es, und ein neues Build wird herauskommen - "wir haben Sie gewarnt" beschrieben haben. Nur ohne Warnungen, und das gleich mehrfach - es kommt darauf an, es kommt nicht auf die Sortierung an...
Und ja, es gibt einen speziellen Thread für solche Antworten:
Aus der OrderSelect-Hilfe: " Wenn Aufträge mit dem Parameter SELECT_BY_POS sequentiell ausgewählt werden, werden die Informationen in der Reihenfolge angegeben, in der sie vom Handelsserver kommen. Eine Sortierung der erhaltenen Bestellliste ist nicht gewährleistet".
Wenn wir glauben, dass dieser Satz umsonst in die Hilfe aufgenommen wurde, ist das in Ordnung. Wenn wir glauben, dass es einen Grund dafür gibt, sollten wir diese Liste während des Durchlaufs der Schleife durch die Liste der Aufträge nicht ändern. Wie die Aufträge geordnet werden, nachdem einer von ihnen auf dem Server gelöscht wurde und eine neue, aktuelle Liste mit einer kleineren Auftragssumme vorliegt, ist unbekannt. Es ist zuverlässiger, ohne zu löschen, dieselbe unveränderte Kopie der Liste zu durchlaufen und (in einem Array) alle Ticketnummern der zu löschenden Gewerke zu sammeln. Vergessen Sie dann diese Liste und löschen Sie die Gewerke, indem Sie sie nach Tickets auswählen.
Ich würde natürlich gerne glauben, dass die Reihenfolge in der änderbaren Liste zumindest für diesen Fall des Löschens mehrerer Aufträge am Ende einer ungeordneten Liste erhalten bleibt, aber die Entwickler sind dagegen... Jetzt funktioniert es, und wenn ein neues Build herauskommt, "haben wir gewarnt".
Als gute Idee (wenn man bedenkt, dass mehrere Expert Advisors + Trader parallel auf dem Konto arbeiten können), können Sie überhaupt keine Trades in einer Schleife durchführen. Der erforderliche Auftrag geht ein, die Operation wird ausgeführt, das gesamte OnTick() wird erneut ausgeführt (nicht unbedingt mit Eintreffen eines neuen Ticks). Und so weiter, bis alle notwendigen Vorgänge ausgeführt sind.
Die Bildung eines Arrays zum Löschen von Aufträgen ist also gleichbedeutend mit dem Löschen von Aufträgen in der Schleife.
Es gibt eine Schaltfläche "Stopp", wie ändere ich ihren Text in "Start", wenn sie gedrückt wird?
Siehe mein Expertenbeispiel
Sehen Sie sich mein Expert Advisor Beispiel an
Danke, genau das, was ich brauchte.
Es könnte hilfreich sein zu wissen, dass es einen Fehler bei fehlenden Positionen gibt--- ToFile EURUSD,H1: Nullteilung in 'ToFile.mq4' (62,39)
Der Text ändert sich im Testgerät nicht, gibt es keine solche Option?