[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 450
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Ja, aber der Punkt der Frage ist, dass die vorherige Order mit einem Minus geschlossen wurde. Die Funktion hat keine Zeit, dies anzuzeigen, zuerst wird die Order nach ein paar Ticks geöffnet und erst dann zeigt die Funktion den letzten Verlust an, aber die Order wurde bereits geöffnet.
Warum verwenden Sie nicht den Parameter "Expiration pending order"?
Es besteht natürlich die Möglichkeit, dass dieser Parameter nicht verwendet werden kann.
Auf einigen Handelsservern kann die Verfallszeit von schwebenden Aufträgen verboten sein. In diesem Fall wird ein Fehler 147 (ERR_TRADE_EXPIRATION_DENIED) erzeugt, wenn versucht wird, einen Wert ungleich Null im Ablaufparameter zu setzen.
Das ist natürlich die einzige Möglichkeit...
Ich habe die Zeile wie von Ihnen vorgeschlagen geändert und der Expert Advisor funktioniert nicht mehr...
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+PreisAbstand*Punkt,3,Ask+PreisAbstand*Punkt-StopLoss*Punkt,Ask+PreisAbstand*Punkt+TakeProfit*Punkt, "PD",1,TimeCurrent()+10*60,Green);
Gleichzeitig weiß ich mit Sicherheit, dass es kein Verbot gibt.
Bitte teilen Sie uns mit, wo der Fehler liegen könnte.
Ich habe so noch einmal sagen, hat keine Zeit zu überprüfen, zuerst geht es, als ob es keine Elche öffnet ein Geschäft und dann kommt es zu ihm, dass es ein Elch war
Ich habe Änderungen an der Zeile vorgenommen, wie Sie vorgeschlagen haben, und der Expert Advisor funktioniert nicht mehr...
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+PreisAbstand*Punkt,3,Ask+PreisAbstand*Punkt-StopLoss*Punkt,Ask+PreisAbstand*Punkt+TakeProfit*Punkt, "PD",1,TimeCurrent()+10*60,Green);
Gleichzeitig weiß ich mit Sicherheit, dass es kein Verbot gibt.
Bitte teilen Sie uns mit, wo der Fehler liegen könnte.
Es ist unwahrscheinlich, dass es nicht mehr funktioniert, aber Ihre Kriterien sind wahrscheinlich lahm. Ohne den Code ist es schwer, einen Grund zu finden, warum der EA nicht funktioniert...
Hier ist alles, was ich bis jetzt gekritzelt habe:
extern double TakeProfit = 50;// das Ende.
So funktioniert es.... Aber dementsprechend öffnet sich der Handel auf unbestimmte Zeit, die Schlingpflanze.
Vielen Dank im Voraus!
Hier ist alles, was ich bis jetzt gekritzelt habe:
extern double TakeProfit = 50;// das Ende.
So funktioniert es.... Aber dementsprechend öffnet sich der Handel auf unbestimmte Zeit, die Schlingpflanze.
Vielen Dank im Voraus!
Lernen Sie, wie man Code einfügt - lesen Sie alles.
Lernen Sie, wie man Code einfügt - lesen Sie alles.
Roman, vielen Dank für die Antwort!
Was ich tun muss, ist, den Roboter für die Zeit ab dem Moment, in dem sie automatisch geöffnet werden, zu öffnen.
Zum Beispiel eröffnet der Roboter einen TARGET-Handel, stellt automatisch die Ablaufzeit +600 Sekunden von der aktuellen ein und das war's....
In diesem Fall ist die Option, wenn er entfernt sie selbst nicht passen, da TC, auf dem ich "trainieren" gibt es Einschränkungen bei der Änderung der schwebenden Aufträge, wenn der Preis näher als 10 Punkte + Spread auf den Eröffnungskurs kam, einschließlich der noch nicht offen Ordnung.
Außerdem geht es darum, dass ein bereits offener Auftrag nicht gelöscht werden sollte, sondern dass er "durchgespielt" werden und scheitern darf. Und wenn wir orderdelite setzen, schließt die Funktion auch die Aufträge, die bereits ausgelöst wurden. (?)
Was das Lehrbuch angeht - nun, ich bin kein Programmierer von Natur aus, ich bin ein brillanter Menschenfreund - ich zeichne, modelliere, komponiere und spitze nicht für irgendetwas anderes).
Ich habe versucht, mich in gutem Glauben darauf einzulassen. Manches davon war sinnvoll, manches nicht.
Deshalb bin ich hier.....
Roman, vielen Dank für die Antwort!
Es geht nur darum, den Roboter dazu zu bringen, den Handel pünktlich zu eröffnen, sobald er automatisch eröffnet wird.
Zum Beispiel eröffnet der Roboter einen TARGET-Handel, stellt automatisch die Ablaufzeit +600 Sekunden von der aktuellen ein und das war's....
In diesem Fall ist die Option, wenn er entfernt sie selbst nicht passen, da TC, auf dem ich "trainieren" gibt es Einschränkungen bei der Änderung der schwebenden Aufträge, wenn der Preis näher als 10 Punkte + Spread auf den Eröffnungskurs kam, einschließlich der noch nicht geöffnet, um.
Außerdem geht es darum, dass ein Auftrag, der bereits offen ist, nicht gelöscht werden sollte, sondern dass wir ihn "durchspielen" und bis zu seinem "Tod" sprudeln lassen sollten. Und wenn wir orderdelite setzen, schließt die Funktion auch die Aufträge, die bereits ausgelöst wurden. (?)
Was das Lehrbuch angeht - nun, ich bin kein Programmierer von Natur aus, ich bin ein brillanter Menschenfreund - ich zeichne, modelliere, komponiere, und spitze für nichts anderes).
Ich habe versucht, mich in gutem Glauben darauf einzulassen. Manches davon war sinnvoll, manches nicht.
Deshalb bin ich hier.....
Versuchen Sie, mit Worten zu beschreiben, was Sie hier geschrieben haben:
Für mich persönlich stellte sich Ihre Idee auf den ersten Blick als Rätsel heraus: Wenn eins nicht gleich eins ist, dann schließe die Bestellung...
Danach habe ich den Rest nicht mehr gesehen...
ZS und versuchen Sie es nicht, denken Sie nicht einmal, dass es möglich ist, einen normalen EA in einem Zyklus zu schreiben...
...Und wenn Sie orderdelite eingeben, schließt die Funktion auch Aufträge, die bereits ausgelöst wurden. (?)
...
Nein. Schauen Sie genauer hin. Ein ausgelöster schwebender Auftrag wird zu einem Marktauftrag - diese Funktion hat damit nichts zu tun.
"Löscht einen zuvor eingestellten schwebenden Auftrag. Gibt TRUE zurück, wenn die Funktion erfolgreich abgeschlossen wurde. Rückgabe FALSE
wenn die Funktion nicht erfolgreich abgeschlossen wurde. Rufen Sie GetLastError() auf, um Fehlerinformationen zu erhalten."