Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1229
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
Meines Erachtens handelt es sich dabei um eine regelmäßige Überprüfung der Verfügbarkeit. (Gibt es EURUSD? und gibt es eine Order mit dem angegebenen Magic?) Wenn eine der Bedingungen fehlt, eröffnen wir eine Position. Nur wenn beide Bedingungen erfüllt sind, eröffnen wir eine Position.
In Schritt 2 werden wir dann gefragt. Angenommen, wir haben einen Auftrag manuell eröffnet. Dann ist die erste Bedingung erfüllt (wir haben dasselbe Symbol) und die zweite Bedingung wird nicht erfüllt, da dieser Auftrag keine Magie enthält. Und wenn eine der Bedingungen nicht zutrifft, sollte der Code den Auftrag öffnen. Genau das tut der Code. Aber beim nächsten Ticken öffnet er die dritte, vierte und fünfte Bestellung.....
Warum wird eine dritte Bestellung eröffnet?
Es gibt jedoch zwei Aufträge, die beide Bedingungen insgesamt erfüllen. Es sollte eine Prüfung erfolgen (Wechsel zu return(0)), nicht eine Öffnung. und nicht die Eröffnung.
Gute Nacht zusammen! Können Sie mir sagen, ob Sie einen Code in mql5 schreiben können, der eine Linie auf dem Diagramm zeichnet (Bild im Anhang) und alle Koordinaten dieser Linie in der Datei aufzeichnet? Wenn Sie eine Linie zeichnen und sie mit den Koordinaten füllen wollen, müssen Sie die Linie einfach nachzeichnen.
Alles steht in der Dokumentation.
Alles steht in der Dokumentation.
Danke für den Tipp, vielleicht können Sie mir helfen, so etwas zu bauen, natürlich kostenlos.
Danke für den Tipp, aber vielleicht können Sie mir helfen, so ein Ding zu bauen, natürlich nicht umsonst.
Nicht umsonst - das ist für Sie)))
Meines Erachtens handelt es sich dabei um eine regelmäßige Überprüfung der Verfügbarkeit. (Gibt es EURUSD? und gibt es eine Order mit dem angegebenen Magic?) Wenn eine der Bedingungen fehlt, eröffnen wir eine Position. Nur wenn diese beiden Bedingungen erfüllt sind, eröffnen wir eine Position.
In Schritt 2 werden wir dann gefragt. Angenommen, wir haben einen Auftrag manuell eröffnet. Dann ist die erste Bedingung erfüllt (wir haben dasselbe Symbol) und die zweite Bedingung wird nicht erfüllt, da dieser Auftrag keine Magie enthält. Und wenn eine der Bedingungen nicht zutrifft, sollte der Code den Auftrag öffnen. Genau das tut der Code. Aber beim nächsten Ticken öffnet er die dritte, vierte und fünfte Bestellung.....
Warum wird eine dritte Bestellung eröffnet?
Es gibt jedoch zwei Aufträge, die beide Bedingungen insgesamt erfüllen. Es sollte eine Prüfung erfolgen (Wechsel zu return(0)), nicht eine Öffnung. aber nicht die Eröffnung.
== - wenn es gleich ist != - wenn es nicht gleich ist. Kontinuität - Ende einer Schleifeniteration und Beginn einer neuen Schleifeniteration. Breaking - Beendigung des Zyklus und Übergang zum nächsten Operator nach dem Zyklus, Return - Beendigung der Funktion, in Ihrem Fall Onstart und Warten auf einen neuen Tick. Und wenn ein Auftrag mit Ihrer Magie offen ist, sollte er die Funktion beenden und auf einen neuen Tick warten.
Frage: Wenn Sie einen Auftrag im aktuellen Fenster öffnen wollen, warum müssen Sie das Werkzeug explizit angeben, oder wollen Sie Aufträge aus dem Fenster eines anderen Werkzeugs öffnen? Es ist auch nicht klar, wie viele Aufträge Sie eröffnen wollen. Laut Ihrem Code kann nur eine Bestellung geöffnet werden, und erst wenn diese geschlossen ist, wird die zweite eröffnet. Sie haben einen Magier und ein Werkzeug zum Öffnen von Fenstern. Außerdem werden die Ordereröffnungsbedingungen für das aktuelle Instrument und nicht für die Eurobucks geprüft.
== - wenn gleich != - wenn nicht gleich. Kontinue - bricht die Schleifeniteration ab und beginnt eine neue Schleifeniteration. Break - beendet die Schleife und geht zum nächsten Operator, der der Schleife folgt, return - beendet die Funktion, in Ihrem Fall OnStart und wartet auf einen neuen Tick. Und wenn ein Auftrag mit Ihrer Magie offen ist, sollte er die Funktion beenden und auf einen neuen Tick warten.
Frage: Wenn Sie einen Auftrag im aktuellen Fenster öffnen wollen, warum müssen Sie das Werkzeug explizit angeben, oder wollen Sie Aufträge aus dem Fenster eines anderen Werkzeugs öffnen? Es ist auch nicht klar, wie viele Aufträge Sie eröffnen wollen. Laut Ihrem Code kann nur eine Bestellung geöffnet werden, und erst wenn diese geschlossen ist, wird die zweite eröffnet. Sie haben einen Magier und ein Werkzeug zum Öffnen von Fenstern. Außerdem werden die Ordereröffnungsbedingungen für das aktuelle Instrument und nicht für die Eurobucks geprüft.
- Ja, ich möchte im aktuellen Fenster öffnen;
- Eine Bestellung. Der nächste Auftrag wird erst eröffnet, wenn der vorherige Auftrag abgeschlossen ist.
"Außerdem werden die Ordereröffnungsbedingungen für das aktuelle Instrument und nicht für die Eurobucks geprüft" - also ?
- Ja, ich möchte im aktuellen Fenster öffnen;
- Eine Bestellung. Der nächste Auftrag wird erst eröffnet, wenn der vorherige Auftrag abgeschlossen ist.
"Auch die Ordereröffnungsbedingungen werden für das aktuelle Instrument und nicht für die Eurobucks geprüft " - also ?
Und was dann, zum Beispiel, haben Sie ein Fenster offen nicht Eurobucks, aber die Eurofunt, vergleichen Sie die ausgewählte Reihenfolge Symbol mit Eurobucks, wenn es wahr ist, dann gibt es einen Auftrag auf Eurobucks und wenn unsere Magie, dann returnee aus der OnStart-Funktion, und wenn nicht, dann setzen wir einen Auftrag auf Eurobucks, aber Kloz, High, Ask, Bid wird ein Fehler bei der Eröffnung von Aufträgen, weil Bid und Ask für diese instuents sind unterschiedlich. Und Symbol() wird das Symbol des aktuellen Fensters zurückgeben und es wird kein Fehler auftreten.
Sie können eine Vorlage aus dem Meta-Editor verwenden. Oben links gibt es eine Schaltfläche Neu. Die Funktion OnStart wird immer noch verwendet, aber das ist nicht richtig, und OnStart ist für Skripte. Die richtige Vorlage.
Korrekter Code. Ihr Bestellkommentar fehlt, und der Magier ist in Ihrem Code nicht berücksichtigt. In den Warnungen zur Eröffnungszeile beachten Sie Implizite Typkonvertierung einer Zahl in einen String!!!
Ihr Beispiel enthält viele Fehler
sollte es geben:
hier sind die Preise nicht normalisiert OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-SL*Point,Bid+TP*Point,"Mein Auftrag",MagicNumber,0,clrGreen);
Hier verstehe ich die Logik nicht, warum der Ausstieg aus OnTick() notwendig ist, wenn die Bedingung falsch ist.
vielleicht sollten wir mit der Schleife fortfahrenund einfach berechnen, wie viele Aufträge es gibt
Ihr Beispiel ist von der Logik her sehr einfach und es wäre schwierig, es für andere Aufgaben zu ändern... vielleicht würde er gerne einen Nachsatz hinzufügen