Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1549
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
Es ist gut zu reden, wenn man weiß, was zu tun ist...
mir mit Ratschlägen zu helfen, wie man "so viele nützliche Informationen wie möglich herausbekommt".
Ich habe alles ganz klar gesagt. Lassen Sie mich eine Frage an Sie persönlich richten.
Hier sind zwei Funktionen, die beide durch historische Aufträge gehen
Zwei Zyklen für dieselben Aufträge. Sie können nicht alles, was diese Funktionen zurückgeben, in einem Zyklus erhalten, richtig?
Guten Tag!
Ich versuche, der Eule eine Handelsumkehr hinzuzufügen. Ich mache es wie in der Anleitung beschrieben: https://www.mql5.com/ru/forum/128200
Ich habe keine Fehler beim Kompilieren, aber mein Tester funktioniert nicht mit flip.
Das Protokoll gibt einen Fehler aus:
2021.07.29 20:06:34.316 2015.01.08 22:10:00 SMA mit Flip Through Code AUDUSD,M5: OrderSend Fehler 130
2021.07.29 20:06:34.316 2015.01.08 22:05:45 SMA mit Umkehrung über AUDUSD,M5: OrderSend Fehler 4107
2021.07.29 20:06:34.316 2015.01.08 22:05:45 SMA mit Flip über AUDUSD,M5: ungültiger Stoploss für OrderSend-Funktion
Können Sie mir bitte sagen, was hier das Problem ist?
Ich selbst bin der Meinung, dass die Variablen, die in
int ReversOrderSend (string symbol,int cmd,double volume,double price,int slippage,double stoploss,double takeprofit,string comment,int magic=0,datetime expiration=0,color arrow_color=CLR_NONE)Sie stehen in keinem Zusammenhang mit dem Hauptcode.
Ich habe es mit verschiedenen Terminals, 4 und 5 Zeichen ausprobiert.
Hier ist der gesamte Code:
Ich habe es schon deutlich genug gesagt. Ich werde Ihnen eine persönliche Frage stellen.
Hier sind zwei Funktionen, die beide historische Aufträge durchlaufen
Es gibt zwei Schleifen für dieselben Aufträge. Sie können nicht alles, was diese Funktionen zurückgeben, in einem Zyklus erhalten, richtig?
Alexej, ich habe bereits geschrieben, dass du ein guter Programmierer bist!
Aber ich bin kein Programmierer, und was für Sie "klar genug" ist, ist für mich nicht so klar...
Was die beiden Schleifen betrifft, so ist für mich"In einer Schleife alles holen" nicht möglich, da sie unterschiedliche Datentypen zurückgeben.
Alexey, ich habe schon geschrieben, ich weiß, dass du ein guter Programmierer bist!
Aber ich bin kein Programmierer und was für Sie "klar genug" ist, ist für mich ein dunkler Wald...
Was die beiden Schleifen betrifft, so ist es für mich nicht möglich,"alles in einer Schleife zu erhalten" , da sie unterschiedliche Datentypen zurückgeben.
Die zurückgegebenen Typen haben damit nichts zu tun. Wenn es 2 Schleifen über dieselben Daten mit unterschiedlichen Prüfungen und Filtern gibt, kann man immer alles in eine Schleife packen, aber der Code liest sich dann nicht so klar, aber es sollte schneller gehen. Es ist einfacher, Fehler in anderen Programmen zu finden.
Alexey, ich habe schon geschrieben, ich weiß, dass du ein guter Programmierer bist!
Aber ich bin kein Programmierer und was für Sie "klar genug" ist, ist für mich ein dunkler Wald...
Was die beiden Schleifen betrifft, so ist es für mich nicht möglich,"in einer Schleife alles zu erhalten" , da sie unterschiedliche Datentypen zurückgeben.
Ich habe zwei Varianten.
Ich habe einen Konflikt zwischen anhängigen Aufträgen.
Erstes Ergebnis: Es gibt einen Konflikt zwischen Währungspaaren und EA hat einen Konflikt bei der Platzierung von Pending Orders. Zum Beispiel habe ich eine Pending Order für EURUSD platziert, EA hat den Algorithmus befolgt (Kauf bei 1.18901, offene Position, EA hat Stop bei 1.18751 gesetzt, Take Profit bei 1.19051 und Verkaufsorder bei 1.18751), alles ist in Ordnung wie geplant.
Aber jetzt ist es an der Zeit, ein Geschäft mit GBPUSD zu eröffnen, wo die Preise anders sind und der EA alles richtig macht, außer eine Pending Order zu setzen. Eine Verkaufsorder bei 1,39393 wurde ausgelöst, und der EA versuchte, sie zu öffnen, einen Stopp bei 1,39633 zu setzen und 1,39153 zu nehmen, aber die Kauforder bei 1,39633 wurde vom EURUSD dupliziert und die Verkaufsorder wurde bei 1,18751 gesetzt)
Ich habe soeben ein weiteres Problem entdeckt: ein Stop bei 1,18751 und ein schwebender Verkaufsauftrag bei 1,18901 und Take 1,18595 wurden für EURUSD eröffnet. Der Expert Advisor hat den ausgelösten Stop, der in der Historie steht, nicht hinzugefügt.
Das sind die Probleme.
Guten Tag!
Ich versuche, die Eule mit einer Umdrehung des Gewerbes zu versehen.
Wie meinen Sie das? Eine bestimmte Preisspanne, ab der Sie kaufen/verkaufen?
Guten Tag. Hilfe mit dem EA. Nach der Strategie, wenn ein Stop ausgelöst, dann sollte der EA hinzufügen (die Anzahl der Punkte), um die nächste Reihe takeaway
aus der Geschichte von ID, aber es tut es nicht aus irgendeinem Grund.
Was ist an dem Code falsch?
Makar hat korrekt auf OrderMagicNumber() verwiesen, aber den Fehler missverstanden. Lesen Sie die Dokumentation für die Syntax dieser Funktion... es sollte entweder der Index in der Liste der Bestellungen oder das Ticket einer bestimmten Bestellung sein, aber nicht eine Magie. Und OrderTicket() wird hier nicht helfen. Versuchen Sie nicht, sie dort zu platzieren.
Wie meinen Sie das? Eine bestimmte Preisspanne, ab der Sie kaufen/verkaufen?
Soweit ich weiß, hat der Autor des Codes Folgendes vorgeschlagen:
Wenn Eule ein Kaufgeschäft mit Stopp und Take eröffnet, dann eröffnet sein Code zur gleichen Zeit an der gleichen Stelle (unter Berücksichtigung des Spreads) ein Verkaufsgeschäft ebenfalls mit Stopp und Take anstelle eines Kaufgeschäfts.
Somit ändert sich die Logik der Suche nach einem Einstiegspunkt des EA nicht, und nur die Richtung mit berücksichtigtem Spread ändert sich.
das ist genau das, was ich brauche
Beschreiben Sie kurz und bündig, was Sie von diesem EA erwarten (die Logik der Funktionsweise),
Ich glaube, Sie haben eine Menge unnötiger Dinge in Ihrem Code oder ich verstehe etwas nicht.
Eulen sollten Geschäfte nach ihrem eigenen Algorithmus eröffnen
wenn der Stopp, der nächste Handel mit einem Martin, und so weiter, bis die Anzahl der Multiplikationen, die ich angegeben (Funktion -OrdersClose = .....;).
Wenn die Eule zusammen mit dem Terminal deaktiviert ist, drücken Sie einfach die Taste "Auto-Trading" mit einer anderen Eule, dann wird der nächste Handel mit dem Startlot beginnen, nicht mit dem letzten, der durch ein Martingal erhöht wurde.
Es wäre auch schön, einen Zeitplan damit zu verbinden, aber diese Idee ist mir erst jetzt gekommen.
Zum Beispiel: Am Montag wurde es um 10-00 Uhr mit dem Startlos aktiviert, dann wurde es im Laufe des Tages abgeschaltet, als ein bestimmtes Ergebnis erzielt wurde, und am Dienstagmorgen wurde es um 10-00 Uhr aktiviert und wieder mit dem Startlos gestartet.
Alles.