
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
Könnten Sie bitte nur antworten, wenn Sie wissen, wovon Sie sprechen?
Dies ist ein Thema über MT5/mql5, ich werde alle irrelevanten Beiträge entfernen.
Es gibt keinen Stoploss-Kurs in der Geschichte auf MT5.
Das Hauptproblem in mql5 (Hedging-Konto) besteht darin, den Stop-Loss-Kurs zu kennen, wenn eine Position geschlossen wird, da es keine Positionshistorie gibt. Sie können HistorySelectByPosition() verwenden, um Ihren anfänglichen Stop Loss zu finden (Stop Loss der ursprünglichen Order), aber wenn Sie diesen Stop Loss später geändert haben, werden neue Orders generiert, die nicht dieselbe POSITION_ID haben und daher nicht von der Funktion HistorySelectByPosition() ausgewählt werden, so dass es sehr schwierig wird, den letzten von Ihnen platzierten Stop Loss zu kennen.
Ich weiß nicht, ob dies als Fehler angesehen werden kann, aber wenn nicht, sollte es so sein.
Mit freundlichen Grüßen.
Das Hauptproblem in mql5 (Hedging-Konto) besteht darin, den Stop-Loss-Kurs zu kennen, wenn eine Position geschlossen wird, da keine Positionshistorie vorhanden ist. Sie können HistorySelectByPosition() verwenden, um Ihren anfänglichen Stop Loss zu finden (Stop Loss der ursprünglichen Order)...
Nein, das können Sie nicht, oder ich habe Sie missverstanden.
Der aktuelle Stoploss ist nirgends in der Historie zu finden.
Nein, das können Sie nicht, oder ich habe Sie missverstanden.
Stoploss steht nirgendwo in der Geschichte.
.das Problem ist, wenn Sie den Stop Loss später ändern.
Sie können HistorySelectByPosition() verwenden, mit Ihrer POSITION_ID, und dann können Sie die erste Order mit dieser POSITION_ID finden, und den Stop Loss dieser Order überprüfen (HistoryOrderGetDouble(ticket, ORDER_SL). Das hat bei mir funktioniert, aber
.das Problem ist, wenn Sie den Stop Loss später ändern.
Ok, jetzt verstanden, Sie haben Recht.
Sie können HistorySelectByPosition() verwenden, mit Ihrer POSITION_ID, und dann können Sie die erste Order mit dieser POSITION_ID finden und den Stop Loss dieser Order überprüfen (HistoryOrderGetDouble(ticket, ORDER_SL). Bei mir hat das funktioniert, aber
.das Problem ist, wenn Sie diesen Stop Loss später ändern.
dann prüfen Sie DEAL_ENTRY, wenn OUT, erhalten Sie HystoryDealGetDouble(ticket,DEAL_PRICE).
Wenn DEAL_PRICE gleich HistoryOrderGetDouble(ticket,ORDER_SL) ist, dann bedeutet dies , dass die Order aufgrund von Stop Lossgeschlossen wurde.
Hier ist meine Meinung.
Ok, jetzt habe ich es verstanden, Sie haben Recht.
Wenn DEAL_PRICE gleich HistoryOrderGetDouble(ticket,ORDER_SL) ist, dann bedeutet dies , dass die Order aufgrund von Stop Lossgeschlossen wurde.
Und dann, prüfen Sie ORDER_POSITION_ID gleich DEAL_POSITION_ID,
dann prüfen Sie DEAL_ENTRY, wenn OUT, bekommen HystoryDealGetDouble(ticket,DEAL_PRICE).
Wenn DEAL_PRICE gleich HistoryOrderGetDouble(ticket,ORDER_SL) ist, dann bedeutet dies , dass die Order aufgrund von Stop Lossgeschlossen wurde.
Hier ist meine Meinung.
Was ist mit Slippage?
Es istnicht nötig, auf Slippagezu achten, da der Auftrag bereits geschlossen wurde und der Schlusskurs auf HystoryDealGetDouble(ticket, DEAL_PRICE) steht.
Wenn der Auftrag nicht in der Nähe gewesen, und Sie machen einen Auftrag zu schließen, dann sollten Sie überlegen , wie viel Schlupf, so dass kein Fehler requotes.