Warum steckt das in einer Schleife?
Seite 1 von 572 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Warum steckt das in einer Schleife?

  1. #1
    OrderModify in dieser Schleife ist mit ERR_NO_RESULT fehlgeschlagen. Aber ich kann nicht aus der while-Schleife ausbrechen. Es läuft einfach unendlich lange.

    Kann mir jemand helfen, das herauszufinden?

    TIA! (Danke im Voraus).

    Eingefügter Code void ModifyThisOrder (int Ticket, doppelter Preis, doppelter StopLoss, doppelter TakeProfit, int MaxTry) {string Commentary =; int TryCount = 0; bool OrderLoop = false; Farbe OrderColor = Schwarz; if (OrderType () == OP_BUY) {OrderColor = Blau;} if (OrderType () == OP_SELL) {OrderColor = Rot;} while (! OrderLoop) {RefreshRates (); while (IsTradeContextBusy ()) {Schlaf (10); } if (OrderSelect (Ticket, SELECT_BY_TICKET)) {OrderModify (Ticket, OrderOpenPrice (), StopLoss, TakeProfit, 0, OrderColor); } int Err = GetLastError (); switch (Err) {//---- Erfolgsfall ERR_NO_ERROR: {OrderLoop = true; break;}/---- Fehler bei Wiederholungsfehler ERR_INVALID_STOPS: {Print (Ungültige Stopps); Ruhezustand (1000);} Fall ERR_SERVER_BUSY: {Print (Server Busy); Ruhezustand (1000);} Fall ERR_NO_CONNECTION: {Drucken (keine Verbindung); Ruhezustand (1000);} Fall ERR_INVALID_PRICE: {Print (Ungültiger Preis); Schlaf (1000);} Fall ERR_OFF_QUOTES: Fall ERR_BROKER_BUSY: Schlaf (1000); case ERR_TRADE_CONTEXT_BUSY: {TryCount ; break;) case ERR_PRICE_CHANGED: case ERR_REQUOTE: fortsetzen;/---- Fatal bekannt Fehlerfall ERR_INVALID_TRADE_VOLUME: {OrderLoop = true; Drucken (Kommentar ungültige Lots); break;) case ERR_MARKET_CLOSED: {OrderLoop = true; Drucken (Kommentar Marktabschluss); break;) case ERR_TRADE_DISABLED: {OrderLoop = true; Print (Kommentar Handel deaktiviert); break;) case ERR_NOT_ENOUGH_MONEY: {OrderLoop = true; Drucken (Kommentar Nicht genug Geld); break;) case ERR_TRADE_TOO_MANY_ORDERS: {OrderLoop = true; Drucken (Kommentar zu viele Bestellungen); break;} Fall 149: {OrderLoop = true; Drucken (Kommentar Absicherung ist verboten); break;}/---- Fatal Unknown Fehlerfall ERR_NO_RESULT: {OrderLoop = true; Drucken (Kommentar Kein Ergebnis); break;} default: {OrderLoop = true; Drucken (unbekannter Fehler - Err); break;}/----}/Endschalter if (TryCount gt; MaxTry) {OrderLoop = true; }}/Ende während Rückkehr (0); }

  2. #2

    Zitat Zitat von ;
    Sind Sie sicher, dass es sich in der Funktion befindet? Haben Sie eine andere Schleife, die diese Funktion aufruft?
    Danke, dass Sie den Kopf eines alten Mannes getreten haben (ich habe es gebraucht!). gefunden: Eingefügter Code int i = 0; for (int j = 0; ilt; OrdersTotal (); j ) Nun, ich werde es bis ins hohe Alter setzen!

  3. #3

    Zitat Zitat von ;
    OrderModify in dieser Schleife schlägt mit ERR_NO_RESULT fehl. Aber ich kann nicht aus der while-Schleife ausbrechen. Es läuft einfach unbestimmt weiter. [code] void ModifyThisOrder (int Ticket, doppelter Preis, doppelter StopLoss, doppelter TakeProfit, int MaxTry) {bool OrderLoop = false; Farbe OrderColor = Schwarz; if (OrderType () == OP_BUY) {OrderColor = Blau;} if (OrderType () == OP_SELL) {OrderColor = Rot;} while (! OrderLoop) {RefreshRates (); while (IsTradeContextBusy ()) {Schlaf (10); } ...
    Verwenden Sie eine if-Bedingung anstelle von while-Schleife, um IsTradeContextBusy () zu testen. Warum muss es eine while-Schleife sein?

  4. #4

    Zitat Zitat von ;
    Verwenden Sie eine if-Bedingung anstelle von while-Schleife, um IsTradeContextBusy () zu testen. Warum muss es eine while-Schleife sein?
    Weil ich X-mal bei bestimmten Fehlern erneut versuchen möchte.

  5. #5

    Zitat Zitat von ;
    Weil ich X-mal bei bestimmten Fehlern erneut versuchen möchte.
    Sollten dann nicht all diese Fehler, die Sie abzufangen versuchen, in die while-Schleife aufgenommen werden?

  6. #6

    Zitat Zitat von ;
    Sollten dann nicht all diese Fehler, die Sie abzufangen versuchen, in die while-Schleife aufgenommen werden?
    Sie sind alle in der while-Schleife.

  7. #7

    Zitat Zitat von ;
    Sie sind alle in der while-Schleife.
    Ja, sie sind alle im ersten, aber nicht im zweiten.

  8. #8

    Zitat Zitat von ;
    Ja, sie sind alle im ersten, aber nicht im zweiten.
    Aber ich suche nicht, dass sie sich während der Schleife im Tradecontext befinden. Nur der Orderloop dabei.

  9. #9

    Zitat Zitat von ;
    Aber ich suche nicht, dass sie sich während der Schleife im Tradecontext befinden. Nur der Orderloop dabei.
    Sind Sie sicher, dass dies die korrekte Verwendung von IsTradeContextBusy () ist?
    http://forum.mql4.com/48326

  10. #10

    Zitat Zitat von ;
    Sind Sie sicher, dass dies die korrekte Verwendung von IsTradeContextBusy () ist?
    Ja.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Die tradingintuitive Webseite verwendet Cookies
Wir nutzen Cookies, um Ihnen das Webseitenerlebnis bestmöglich anbieten zu können. Durch weitere Nutzung der Webseite erlauben Sie die Nutzung von Cookies. Für weitere Details und wie Sie ggf. diese Einstellungen verändern können, lesen Sie bitte unsere Datenschutzbestimmung. Lesen Sie mehr