[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 52

 
first_may:
Gibt es eine Beispielfunktion für die Arbeit mit Datumsangaben, z.B. um die Differenz zwischen zwei Datumsangaben zu bestimmen, ist sie größer als Null oder nicht?

und was ist ein Datum in Ihrem Verständnis und im Verständnis von MQL?
 

Leute, helft mir, den Code zu verstehen. Die Hauptaufgabe besteht darin, einen schwebenden Auftrag zu löschen, wenn ein bestimmtes Niveau erreicht ist.

if (OrdersTotal()!=0 && Bid == Delete_Level)
   {
   for (int i=1; i<=OrdersTotal(); i++) //Cycle for all orders..
      { 
         if(OrderSelect(i-1,SELECT_BY_POS)==true)//If there is the next one
            { 
               if(OrderType()>1) 
                  {
                  if(OrderDelete(OrderTicket())==true)
                  {
                  Alert ("Ордера удалены");
                  }
                  }
            } 
      }
   }

Der Delete_Level wird durch die Position des MA 30 auf 3 Balken bis zum aktuellen Moment bestimmt.

double MA3 = iMA(NULL, 0, MA_Period_2, 0, MODE_SMA, PRICE_CLOSE, 2); //определение уровня MA

double Delete_Level = MA3;// Определение значения переменной

Der Auftrag wird aber auf dieser Delete_Level nicht gelöscht. Helfen Sie mir zu verstehen, was mein Fehler ist.

 
Wohin reicht der Algorithmus? Drucken Sie den Code aus und überprüfen Sie ihn.
 
Was meinen Sie mit "wohin geht der Algorithmus"?
 
vovan-gogan:
Was meinen Sie mit "wohin geht der Algorithmus"?

Sie sagen, es wird nicht gelöscht, was bedeutet, dass es nicht in OrderDelete geht.

Die Frage ist also, wohin sie fließt und welcher Zustand sie blockiert.

 
sergeev:

Sie sagen, dass er nicht gelöscht wird, was bedeutet, dass er nicht zu OrderDelete gelangt.

Die Frage ist, wohin sie reicht und welche Bedingungen sie blockieren.


Ich verstehe die Logik. Ich werde versuchen, das Problem jetzt zu beheben.
 

Etwas hat sich geklärt. Aber ich kann immer noch nicht herausfinden, wie ich das Problem lösen kann. Mit Alert kann ich feststellen, dass die Bedingung

if (OrdersTotal()!=0 && Bid == Delete_Level)

nicht erfüllt ist. Nur "if(OrdersTotal()!=0" separat ja, aber nicht zusammen mit "Bid == Delete_Level". Was ist der Grund dafür? Warum wird der schwebende Auftrag nicht gelöscht, wenn das Delete_Level erreicht ist? Bitte machen Sie einen Vorschlag oder schlagen Sie eine alternative Lösung vor, um einen schwebenden Auftrag zu löschen, wenn er den Delete_Level erreicht.

 
vovan-gogan:

Etwas hat sich geklärt. Aber ich kann immer noch nicht herausfinden, wie ich das Problem lösen kann. Mit Alert kann ich feststellen, dass die Bedingung

nicht erfüllt ist. Nur "if(OrdersTotal()!=0" separat ja, aber nicht zusammen mit "Bid == Delete_Level". Was ist der Grund dafür? Warum wird der schwebende Auftrag nicht gelöscht, wenn das Delete_Level erreicht ist? Bitte machen Sie einen Vorschlag oder schlagen Sie eine alternative Lösung vor, um einen schwebenden Auftrag zu löschen, wenn er den Delete_Level erreicht.


Normalisieren Sie diese Variablen, "bringen Sie sie auf einen gemeinsamen Nenner" - verwenden Sie z. B. eine gewisse Toleranz (+/-) für den Wert der Variablen Delete_Level, da es keine exakte Gleichheit gibt, wie Sie sie jetzt haben - Bid == Delete_Level.
 
vovan-gogan:

Etwas hat sich geklärt. Aber ich kann immer noch nicht herausfinden, wie ich das Problem lösen kann. Mit Alert kann ich feststellen, dass die Bedingung

nicht erfüllt ist. Nur "if(OrdersTotal()!=0" separat ja, aber nicht zusammen mit "Bid == Delete_Level". Was ist der Grund dafür? Warum wird der schwebende Auftrag nicht gelöscht, wenn das Delete_Level erreicht ist? Bitte machen Sie einen Vorschlag oder schlagen Sie eine alternative Lösung vor, um einen schwebenden Auftrag zu löschen, wenn er den Delete_Level erreicht.


Zum Beispiel,
if(Bid-MarketInfo(Symbol(),MODE_SPREAD)*Point< Delete_Level && Bid+MarketInfo(Symbol(),MODE_SPREAD)*Point > Delete_Level) - считать за 
if( Bid == Delete_Level )  
 

Tut mir leid, aber könnten Sie es sich leicht machen?) Helfen Sie mir, den Fehler in

Bid == Delete_Level