Diskussion zum Artikel "Schrittweiser Leitfaden für Anfänger zum Schreiben eines Expert Advisors in MQL5" - Seite 30
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
Tester - "Nicht unterstützter Füllmodus"
Ich habe es bei 3 verschiedenen Brokern versucht. Wo liegt das Problem?
Versuchen Sie, SYMBOL_FILLING_FOK durch SYMBOL_FILLING_IOC zu ersetzen.
Mit freundlichen Grüßen, Vladimir.
Hallo an alle (besonders an den lieben Autor)
Ich habe bei diesem Artikel mitgeschrieben. Ich habe ihn sehr genossen und viel daraus gelernt.
Danke, dass Sie einen so informativen Artikel geschrieben haben.
Allerdings habe ich ein Problem. Mein EA hat keine Aufträge erteilt. Ich habe den Code des Autors heruntergeladen, aber es hat keine Aufträge zu platzieren.
Da der Artikel 13 Jahre alt ist, nehme ich an, dass der Code inzwischen veraltet ist. Kann mir jemand weiterhelfen?
Mein Code befindet sich in der Datei unten. Vielen Dank an alle im Voraus.
Besuchen Sie die nicht übersetzte englische Seite, die der richtige Download ist.
Download von dieser Seite: Schritt-für-Schritt Anleitung zum Schreiben eines Expert Advisors in MQL5 für Anfänger - MQL5 Artikel
https://www.mql5.com/en/articles/100
Liebe Leute;
Von diesem Artikel in der Unterseite, hat er den kompletten Code mlq5 zum Download.
Ich habe herunterladen, um Funktion zu überprüfen und festgestellt, dass das Programm falsche Algorithmus hat.
Setup ist EURUSD, M1, 100USD Start am 2025/01/01 bis 2025/01/31
Der erste Auftrag ist ein Verkaufsauftrag, dann später haben viele Kaufaufträge.
Das Konzept ist, dass es nur einen Auftrag geben sollte, der aber ab Zeile 165 auftritt.
Die Flagge, um zu prüfen, ob eine Order vorliegt oder nicht, ist in 2 Flaggenvariablen unterteilt (Buy_opned,Sell_opened).
Wenn jetzt bereits eine Verkaufsorder vorliegt, dann wird in Zeile 216 (Ordersend) eine neue Kauforder erstellt, auch wenn jetzt eine Verkaufsorder vorliegt.
Warten Sie auf die nächste Kerze Buy_open Flagge auf die Anweisung von Zeile 172 kann nicht wieder auf on.Why ? setzen. Weil der erste Auftrag ein Verkaufsauftrag ist, der zweite Auftrag ein Kaufauftrag.
Und ja, bei der nächsten Kerze wird wieder ein Kaufauftrag in Zeile 216 (Ordersend) erscheinen und weitergehen, viele Kaufaufträge werden erscheinen, bis kein Geld mehr da ist.
Siehe Chart hier.
Siehe Orderliste.
Dankeschön.
Niwath Jeamphue.
Liebe Leute;
Von diesem Artikel in der Unterseite, hat er den vollständigen Code mlq5 zum Download.
Ich habe herunterladen, um Funktion zu überprüfen und festgestellt, dass das Programm falsche Algorithmus hat.
Setup ist EURUSD, M1, 100USD Start am 2025/01/01 bis 2025/01/31
Der erste Auftrag ist ein Verkaufsauftrag, dann später haben viele Kaufaufträge.
Das Konzept ist sollte nur einen Auftrag haben, aber ist occour von Zeile 165
Das Flag zur Überprüfung, ob eine Bestellung vorliegt oder nicht, ist in 2 Flag-Variablen unterteilt (Buy_opned,Sell_opened).
Wenn jetzt bereits eine Verkaufsorder vorliegt, dann wird in Zeile 216 (Ordersend) eine neue Kauforder erstellt, auch wenn jetzt eine Verkaufsorder vorliegt.
Warten Sie auf die nächste Kerze Buy_open Flagge auf die Anweisung von Zeile 172 kann nicht wieder auf on.Why ? setzen. Weil der erste Auftrag ein Verkaufsauftrag ist, der zweite Auftrag ein Kaufauftrag.
Und ja, bei der nächsten Kerze wird wieder ein Kaufauftrag in Zeile 216 (Ordersend) erscheinen und weitergehen, viele Kaufaufträge werden erscheinen, bis kein Geld mehr da ist.
Siehe Chart hier.
Siehe Bestellliste.
Wir danken Ihnen.
Niwath Jeamphue.
Sie sollten PositionSelect(_Symbol) nicht verwenden, es sei denn, Sie verwenden ein Netting-Konto.
Bei einem Hedging-Konto müssen Sie Ihre Position korrekt auswählen, mit PositionGetTicket() oder PositionSelectByTicket(). Sehen Sie sich die Dokumentation an.
Sie sollten PositionSelect(_Symbol) nur verwenden, wenn Sie ein Netting-Konto verwenden.
Bei einem Hedging-Konto müssen Sie Ihre Position korrekt auswählen, mit PositionGetTicket() oder PositionSelectByTicket(). Sehen Sie sich die Dokumentation an.
Ich danke Ihnen für Ihren Kommentar. Ich möchte nur darauf hinweisen, dass der Quellcode aus der endgültigen Version dieses Artikels stammt.
https://www.mql5.com/de/articles/download/100/my_first_ea.mq5
Bitte versuchen Sie es mit sich selbst, wird mein Hauptpunkt zu verstehen sein.
Ich danke Ihnen.
Vielen Dank für Ihren Kommentar. Aber ich möchte nur jedem sagen, dass der Quellcode von der endgültigen vollständig von diesem Artikel ist.
https://www.mql5.com/de/articles/download/100/my_first_ea.mq5
Bitte versuchen Sie es mit sich selbst, wird mein Hauptpunkt zu verstehen.
Ich danke Ihnen.
Dieser Artikel stammt aus dem Jahr 2010, zu dieser Zeit waren ALLE Konten Netting-Konten auf MT5, auch für Forex.
Hedging-Konten wurden im Jahr 2016 eingeführt: https: //www.mql5.com/en/articles/2299
Niwath Jeamphue #:
Bitte probieren Sie es selbst aus, dann werden Sie meinen Standpunkt verstehen.
Ich danke Ihnen.
Hallo. Ich verstehe Ihren Standpunkt. In der angehängten Datei habe ich den Quellcode des Expert Advisors so geändert, dass nur eine Position eröffnet wird, unabhängig davon, welches Konto Sie verwenden - Netting oder Hedge.
Mit freundlichen Grüßen, Vladimir.
Hallo. Ich verstehe Ihre Sichtweise. In der angehängten Datei habe ich den Quellcode des Expert Advisors so geändert, dass nur eine Position eröffnet wird, egal welches Konto Sie verwenden - Netting oder Hedge.
Mit freundlichen Grüßen, Vladimir.
Hedge-Konto ,MrBrooklin . Ich danke Ihnen. Aber ich ziehe es vor, nur einen Auftrag zu erhalten, nicht so viele Aufträge.
Ich habe den Algorithmus vom Original geändert.
Buy und Sell open Flag löschen
Wenn (PositionSelect(_Symbol)==true)
Wenn festgestellt wird, dass es sich um eine Kaufposition handelt, wird das Flag Buy_opened gesetzt.
Else If found that is sell position then set Sell_opened flag
Zone1 : Versuch der Eröffnung eines Kaufauftrags unter der Bedingung und !Flagge Buy_opened
Zone2 : Versuch, eine Verkaufsorder zu öffnen und !flag Sell_opened
Zu New algo. und es funktioniert jetzt gut.
If (PositionsTotal() > 0) return
Buy und Sell open Flag löschen
Wenn festgestellt wird, dass es sich um eine Kaufposition handelt, wird das Flag Buy_opened gesetzt.
Else Wenn festgestellt, dass es sich um eine Verkaufsposition handelt, dann Sell_opened setzen
Zone1 : Versuch der Eröffnung eines Kaufauftrags unter der Bedingung und !Flag Buy_opened
Zone2 : Versuch, einen Verkaufsauftrag zu eröffnen und !Flagge Sell_opened