Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1110
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
Gibt manchmal den Fehler 4108 zurück - falsches Ticket für OrderClose. Ist es möglich, dass OrderTicket() nicht mit dem Ticket in OrderSelect übereinstimmt? Die Variable Ticket kann gleich Null sein.
Es dauert lange, bis ich den Fehler reproduzieren kann, es ist einfacher zu fragen.Gibt manchmal den Fehler 4108 zurück - falsches Ticket für OrderClose. Ist es möglich, dass OrderTicket() nicht mit dem Ticket in OrderSelect übereinstimmt? Die Variable Ticket kann gleich Null sein.
Es dauert lange, bis ich den Fehler reproduzieren kann, es ist einfacher zu fragen.Sie wählen eine Bestellung per Ticket aus. Sind Sie sicher, dass der ausgewählte Auftrag nicht bereits abgeschlossen ist? Aber Sie versuchen, sie wieder zu schließen ... Überprüfen Sie nach erfolgreicher Auswahl des Tickets die Schließzeit.
Sie wählen die Reihenfolge auf dem Ticket aus. Und Sie sind sicher, dass der ausgewählte Auftrag nicht bereits abgeschlossen ist? Aber Sie versuchen, sie wieder zu schließen. Überprüfen Sie die Schließzeit nach einer erfolgreichen Auswahl auf dem Ticket.
Ich werde das überprüfen, wenn ich den Fehler reproduziere. Ich habe alle Tickets in globalen Variablen gespeichert. Wenn der Auftrag abgeschlossen ist, werden sie gelöscht. Vor OrderSelect() wird das Ticket aus globalen Variablen entnommen. Wenn das Ticket nicht in den Variablen enthalten ist, wird diese Variable auf 0 gesetzt, so dass die Bestellung nicht ausgewählt werden sollte und OrderSelect() false zurückgibt. Aber im Allgemeinen lohnt es sich, das zu überprüfen. Ich danke Ihnen.
Ich werde das überprüfen, wenn ich den Fehler reproduziere. Ich habe alle Tickets in globalen Variablen gespeichert. Wenn der Auftrag abgeschlossen ist, werden sie gelöscht. Vor OrderSelect() wird das Ticket aus globalen Variablen entnommen. Wenn das Ticket nicht in den Variablen enthalten ist, wird diese Variable auf 0 gesetzt, so dass die Bestellung nicht ausgewählt werden sollte und OrderSelect() false zurückgibt. Aber im Allgemeinen lohnt es sich, das zu überprüfen. Ich danke Ihnen.
Es ist Standard, den Schlusskurs zu prüfen, wenn ein Auftrag per Ticket ausgewählt wird. Auf andere Weise würden Sie nicht wissen, ob der Auftrag geschlossen und aus der Liste der geschlossenen Aufträge ausgewählt ist oder ob er noch offen ist und aus der Liste der Marktaufträge ausgewählt wurde.
Am kurzsichtigsten ist es, Tickets in globalen Variablen zu speichern. Sie sollten dem Handelsumfeld entnommen werden - die aktuellen Informationen sind dort vorhanden.
Es ist Standard, den Schlusskurs zu prüfen, wenn ein Auftrag per Ticket ausgewählt wird. Auf andere Weise können Sie nicht feststellen, ob der Auftrag geschlossen und aus der Liste der geschlossenen Aufträge ausgewählt ist oder ob er noch offen ist und aus der Liste der marktgängigen Aufträge ausgewählt wurde.
Am kurzsichtigsten ist es, Tickets in globalen Variablen zu speichern. Sie sollten dem Handelsumfeld entnommen werden - die aktuellen Informationen sind dort vorhanden.
Wenn ich wie folgt auswähle: OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES), wird das Problem dadurch teilweise gelöst? Ich speichere Tickets aus anderen Gründen in globalen Variablen, auch in diesem Fall habe ich sie verwendet.
Wenn ich wie folgt auswähle: OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES), wird das Problem dadurch teilweise gelöst? Ich speichere Tickets aus anderen Gründen in globalen Variablen, und ich habe sie auch in diesem Fall verwendet.
Nein, das wird es nicht - der Pool (MODE_TRADES) wird bei der Auswahl per Ticket ignoriert.
Gibt manchmal den Fehler 4108 zurück - falsches Ticket für OrderClose. Ist es möglich, dass OrderTicket() nicht mit dem Ticket in OrderSelect übereinstimmt? Die Variable "Ticket" kann gleich Null sein.
Es dauert lange, bis ich den Fehler reproduzieren kann, es ist viel einfacher, nachzufragen.In der Regel reicht es aus, nach Marktaufträgen zu suchen:
OrderCloseTime() == 0 //Order ist offen
OrderCloseTime() > 0 //der Auftrag ist geschlossen
bei Limit-Aufträgen sollten Sie auch den Schlusskurs überprüfen; ist dieser gleich 0, wurde der Limit-Auftrag storniert
Hallo!
Teilen Sie den Code mit der Methode PositionClosePartial, wenn Sie können.
Theoretisch verstehe ich, wie es funktioniert, aber ich würde gerne einen funktionierenden Code sehen.
Oder beraten Sie mich, wo ich suchen soll.
Ich danke Ihnen im Voraus.
Hallo!
Teilen Sie den Code mit der Methode PositionClosePartial, wenn Sie können.
Theoretisch verstehe ich, wie es funktioniert, aber ich würde gerne einen funktionierenden Code sehen.
Oder beraten Sie mich, wo ich suchen soll.
Ich danke Ihnen im Voraus.
Eigentlich ist es nur eine einzige Codezeile. Aber dafür muss man das Positionsticket bekommen. Hier ist der Expert Advisor von OnInit, der eine Position mit 0,2 Lot eröffnet und die Hälfte der Position in OnTick schließt.
Oder hier ist der vollständige Code der Klasse CTrade