Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 05.02.24
Alex60 Alex60 ist offline
Neues Mitglied
 
Registriert seit: Jul 2019
Beiträge: 14
Alex60 befindet sich auf einem aufstrebenden Ast
Standard Probleme mit Ausführung im Code

Hi,

ich habe einen Code geschrieben. Es soll jeden Tag um 17.30 ein trade eröffnet werden buy. Dieser soll am nächsten Tag um 8.50 Uhr geschlossen werden.
Im Backtest wird mir jedoch nur ein Trade eröffnet in nem Zeitraum von 2 Monaten und nicht geschlossen am nächsten Tag
Kann da mal wer über den Code schauen?

Code:
// Handelszeiten
input int      openHour = 17;
input int      openMinute = 30;
input int      closeHour = 8;
input int      closeMinute = 50;

// Globale Variable für die Handelsaktivität
bool canOpenTrade = true;

int start() {
    // Überprüfe, ob es Zeit ist, einen Trade zu eröffnen
    if (canOpenTrade && Hour() == openHour && Minute() == openMinute) {
        // Eröffne einen Kauf-Trade
        int ticket = OrderSend(Symbol(), OP_BUY, lotSize, Ask, 3, 0, 0, "Buy Order", 0, 0, Green);
        if (ticket > 0) {
            canOpenTrade = false; // Setze die Variable auf false, um weitere Trades zu verhindern
            Print("Kauf-Trade erfolgreich eröffnet. Ticket: ", ticket);
        } else {
            Print("Fehler beim Öffnen des Kauf-Trades. Fehlercode: ", GetLastError());
        }
    }

    // Überprüfe, ob es Zeit ist, den Trade zu schließen
    if (!canOpenTrade && Hour() == closeHour && Minute() == closeMinute) {
        // Schließe alle offenen Trades
        for (int i = OrdersHistoryTotal() - 1; i >= 0; i--) {
            if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderSymbol() == Symbol() && OrderMagicNumber() == 0) {
                bool closed = OrderClose(OrderTicket(), OrderLots(), Bid, 3, Red);
                if (closed) {
                    canOpenTrade = true; // Setze die Variable auf true, um am nächsten Tag einen neuen Trade zu ermöglichen
                    Print("Trade erfolgreich geschlossen.");
                } else {
                    Print("Fehler beim Schließen des Trades. Fehlercode: ", GetLastError());
                }
            }
        }
    }

    return 0;
}
Mit Zitat antworten