Hier habe ich gerade gestern angedeutet, wie die Schleifen durch die Positionen aussehen müsste: https://www.mql5.com/de/forum/439759#comment_44374813
Und bitte KEINE Doppelposts!
Mehrere TP verwalten
- 2023.01.14
- www.mql5.com
Moin, ich handle im Moment mit dem ProRealTrader, eigentlich ok, kann jedoch etwas für mich wichtiges nicht...
Das mit den zehn Tagen ist hoffentlich nur ein Beispiel, da zahlst Du ja mehr Swap als Du rausholst...
Tobias Johannes Zimmer #:
Das mit den zehn Tagen ist hoffentlich nur ein Beispiel, da zahlst Du ja mehr Swap als Du rausholst...
Das ist erstmal nicht ganz richtig. Das kommt auf den Trade an. Wenn man 10 Tage hält sind die Gewinne ja auch grösser als mit dem selben Volumen nur eine Stunde. Wie teuer ein SWAP ist hängt auch vom Produkt ab usw. Aber das Thema hier ist ja ein anderes :-)
Das mit den zehn Tagen ist hoffentlich nur ein Beispiel, da zahlst Du ja mehr Swap als Du rausholst...
Ja, hier ist ein einfaches Beispiel-Code in MQL5:
void CloseOldPositions() { int total_positions = PositionsTotal(); for (int i = 0; i < total_positions; i++) { PositionInfo pi; if (PositionGet(pi, i)) { if (TimeCurrent() - pi.time_opened > 10 * 24 * 60 * 60) { OrderClose(pi.ticket, pi.volume, pi.bid, 10); } } } }Dieser Code überprüft jede offene Position und schließt jene, die älter als 10 Tage sind ( TimeCurrent() - pi.time_opened > 10 * 24 * 60 * 60 ). Die Schließung erfolgt mit einem Marktpreisauftrag ( OrderClose(pi.ticket, pi.volume, pi.bid, 10) ).
void CloseOldPositions() { int total_positions = PositionsTotal(); for (int i = 0; i < total_positions; i++) { int ticket = PositionGetTicket(i); int time_opened = PositionGetInteger(POSITION_TIME, ticket); if (TimeCurrent() - time_opened > 10 * 24 * 60 * 60) { OrderClose(ticket, PositionGetDouble(POSITION_VOLUME), Bid, 10); } } }Jetzt sollte der Code korrekt sein und kompilierbar sein.
Nein da ist immer noch ein Fehler drin.
void CloseOldPositions() { int total_positions = PositionsTotal(); for (int i = 0; i < total_positions; i++) { int ticket = PositionGetTicket(i); int time_opened = PositionGetInteger(POSITION_TIME, ticket); if (TimeCurrent() - time_opened > 10 * 24 * 60 * 60) { PositionClose(ticket); } } }Jetzt sollte der Code korrekt sein und kompilierbar sein. Vergessen Sie bitte nicht, dass der Code nur ein Beispiel ist und Sie ihn entsprechend Ihren Anforderungen anpassen müssen.
super vielen dank
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
Hallo zusammen,
ich würde gerne im MT5 offene Trades nach einer gewissen Haltedauer von XX Tage schliessen.
D.h. ich loop die offenen Trades und wenn die Haltedauer 10 Tage ist, werden alle Trades die 10 Tage offen sind gesschlossen.
Jemand ne Idee wie der Loop aussehen könnte?
Danke im voraus