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.
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.
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 den Stop Loss später ändern.
Jose Francisco Casado Fernandez: 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.
Jose Francisco Casado Fernandez: 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.
Und dannprüfen SieORDER_POSITION_IDgleichDEAL_POSITION_ID, dann prüfen SieDEAL_ENTRY,wennOUT,erhalten SieHystoryDealGetDouble(ticket,DEAL_PRICE).
Ok, jetzt habe ich es verstanden, Sie haben Recht.
Ok, und wissen Sie, warum, wenn Sie den Stop Loss später ändern, der neue Auftrag, der dafür generiert wird, nicht die gleiche POSITION_ID anzeigt? Das wäre die perfekte Lösung für diese Angelegenheit. Ist das ein Fehler???. Vielen Dank!
Roberto Jacobs: Und dann,prüfen SieORDER_POSITION_IDgleichDEAL_POSITION_ID, dann prüfen SieDEAL_ENTRY,wennOUT,bekommenHystoryDealGetDouble(ticket,DEAL_PRICE).
Ja, das ist es, was ich sagen wollte. Ich habe es so gemacht, und es hat funktioniert, aber wenn man den anfänglichen Stop Loss ändert, wird ein neuer Auftrag OHNE dieselbe POSITION_ID erzeugt. Ich weiß nicht, warum. Ich denke, es ist ein Fehler. Mit freundlichen Grüßen,.
Es istnicht nötig, aufSlippagezu achten,da der Auftrag bereits geschlossenwurdeund der SchlusskursaufHystoryDealGetDouble(ticket,DEAL_PRICE)steht. Wenn derAuftrag nichtin derNähe gewesen,undSiemachen einen Auftragzuschließen,dann sollten Sie überlegen, wie vielSchlupf,so dass keinFehlerrequotes.
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.