Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 795

 
Alexey Viktorov:
Sind Sie sicher, dass der Indikator während der while-Schleife neu berechnet wird?
Ja, ich habe den Kommentar auf den Bildschirmgebracht, oder ist das noch kein Beweis dafür, dass die Neuberechnung stattgefunden hat?
 
007yurik:
Ja, geben Sie den Kommentar auf dem Bildschirm an. Oder beweist es noch nicht, dass die Neuberechnung erfolgt ist?

Wir müssen uns Value[]-Werte im Debug-Modus ansehen

In Comment kann sich außerhalb der Schleife ändern. Ich habe diese Situation nicht erlebt und überprüft, aber irgendetwas sagt mir, dass sie nicht neu berechnet wird und die Werte unverändert bleiben. Und folglich werden Sie nie aus der Schleife herauskommen.

 
Alexey Viktorov:

Im Debug-Modus, siehe Value[]-Werte.

In Comment kann sich außerhalb der Schleife ändern. Ich habe diese Situation nicht erlebt und überprüft, aber irgendetwas sagt mir, dass sie nicht neu berechnet wird und die Werte unverändert bleiben. So bleiben Sie immer auf dem Laufenden.

Dies ist etwas Absurdes. Beim Debuggen sind die Werte korrekt, aber die Schleife wird unabhängig von der Erfüllung der Bedingung immer einmal ausgeführt. Ich denke, ich gebe While auf.
 
007yurik:
Das macht keinen Sinn. Beim Debuggen sind die Value[]-Werte korrekt, aber die Schleife läuft immer einmal, unabhängig davon, ob die Bedingung erfüllt ist. Ich denke, ich werde While aufgeben.

Und wie stellen Sie fest, dass dieWerte imValue[]- Arraykorrekt sind? Wie füllt man sie aus?

 
Vladimir Karputov:

Und wie stellen Sie fest, dass dieWerte imValue[]- Arraykorrekt sind? Wie füllt man sie?

Mit einem Indikatorgriff, wenn ich Sie richtig verstehe.)
 
007yurik:
Wenn ich Sie richtig verstehe, verwende ich den Indikatorgriff, um Sie daran zu erinnern, dass mein Kenntnisstand in diesem Bereich dem eines Dummkopfes entspricht.)

Ich denke, man sollte in umgekehrter Reihenfolge vorgehen: Zuerst füllt man das Value-Array aus, und dann vergleicht man, was darin steht.

 
007yurik:
Das ist doch Unsinn. Bei der Fehlersuche ist Value korrekt, aber die Schleife läuft immer einmal, unabhängig davon, ob die Bedingung erfüllt ist. Ich werde While wahrscheinlich aufgeben.

Alles ist genau so, wie es im Programm steht

 bool pravda=false;

   if(pravda || Ind[0]<=-0.7)
   pravda=true;
   
   {   
      
      while(Value[2]<Value[1])
         {
         if(CopyBuffer(InpInd2_Handle,1,SignalBar,3,Value)<=0) {Recount=true; return;}                 
          }
          
         if(BuyPosOpen) BUY_Open=true;     
                                                  
         if(SellPosClose) SELL_Close=true;
         UpSignalTime=datetime(SeriesInfoInteger(Symbol(),InpInd_Timeframe,SERIES_LASTBAR_DATE))+TimeShiftSec;
         }

Wenn der CopyBuffer mit einem Fehler ausgeführt wird, setzen Sie Recount auf true und verlassen die Schleife.

Es war also nicht die ... Schleife.

 

Erklären Sie es einem Dummkopf, bitte.
Die Aufgabe besteht darin, eine Nulllinie in das Unterfenster zu zeichnen. Eine einfache durchgehende weiße Linie.

Wenn ich es nicht tue, wird es gestreift. Ich habe die Ebenen und die Indikatorlinie eingestellt und bereits ein grafisches Objekt eingefügt - und trotzdem wird es gestreift.
Der Grund ist klar: Die gestreifte Gitterlinie wird von oben angezeigt. Aber hier ist das Seltsame: nur die horizontale Null-Gitterlinie ist oben, während die vertikalen Gitterlinien unter den Indikatoren sind.

Wie zeichnet man nun eine einfache weiße Null-Linie in das Unterfenster?

 
Und "wenn ihr nicht antwortet, schreiben wir an Sportlotto"!
 
User_mt5:

Erklären Sie es einem Dummkopf, bitte.
Die Aufgabe besteht darin, eine Nulllinie in das Unterfenster zu zeichnen. Eine einfache durchgehende weiße Linie.

Wenn ich es nicht tue, wird es gestreift. Ich habe die Ebenen und die Indikatorlinie eingestellt und bereits ein grafisches Objekt eingefügt - und trotzdem wird es gestreift.
Der Grund ist klar: Die gestreifte Gitterlinie wird von oben angezeigt. Aber hier ist das Seltsame: nur die horizontale Null-Gitterlinie ist oben, während die vertikalen Gitterlinien unter den Indikatoren sind.

Wie zeichnet man nun eine einfache weiße Null-Linie in das Unterfenster?

Kann ich einen Screenshot des jetzigen Zustands bekommen?