Fehler, Irrtümer, Fragen - Seite 2933

 
x572intraday:

Habe den Fehler doch noch gefunden, Zitat aus der Referenz:

Im Logbuch ausgedruckt - verstanden:

Was mache ich jetzt damit, wohin soll ich gehen? Bin ich eine schlampige Hand oder...?

Sind Sie sicher, dass es ein Auftrag sein soll?

ArraySize(Arr)=0

und nicht ein Vergleich?

ArraySize(Arr)==0
 
Vitaly Muzichenko:

Sicherlich sollte es eine Aufgabe sein

und nicht ein Vergleich?

Es handelt sich also nicht um den Programmcode, sondern um das Ergebnis des Ausdrucks im Terminalprotokoll. Und hier ist der Code selbst:

   int c=CopyTime(_Symbol,tf,0,1,Arr);
   if(c<1)
   {
      Print("ArraySize(Arr)=",ArraySize(Arr),
            "; copied=",c,
            "; TF=",EnumToString((ENUM_TIMEFRAMES)tf)
            //"; Arr[0]=",Arr[0]
           );
      Print("Error Code = ",GetLastError());
      ResetLastError();
      return;
   }
Es liegt also nicht an mir, dass ich die Reichweite des Feldes verpasst habe, sondern die langwierige Geschichte ist irgendwie nicht immer vermeintlich geladen. Ich dachte immer, dass der Verlauf auf der linken Seite geladen wird und vielleicht fehlt, wenn er nicht vollständig geladen ist. Aber nicht genug Geschichte auf der rechten Seite (neue Balken) - das ist für mich Unsinn! Außerdem habe ich ArraySetAsSeries=false, wenn es überhaupt eine Rolle spielt.
Документация по MQL5: Общие функции / Print
Документация по MQL5: Общие функции / Print
  • www.mql5.com
Print - Общие функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
x572intraday:

Es handelt sich also nicht um den Programmcode, sondern um das Ergebnis des Ausdrucks im Terminalprotokoll. Und hier ist der Code selbst:

Es liegt also nicht an mir, dass ich die Reichweite des Feldes verpasst habe, sondern an der leidgeprüften Geschichte, die irgendwie nicht immer geladen werden soll. Ich dachte immer, dass der Verlauf auf der linken Seite geladen wird und möglicherweise nicht ausreicht, wenn er nicht vollständig geladen ist. Aber nicht genug Geschichte auf der rechten Seite (neue Balken) - das ist für mich Unsinn! Außerdem habe ich ArraySetAsSeries=false.

Liest ein leeres Array, das nichts enthält?

ArraySize(Arr)

Versuchen Sie dies

Print("ArraySize(Arr)=",Arr[0],
 
Vitaly Muzichenko:

Liest ein leeres Array, das nichts enthält?

Versuchen Sie dies

Ich habe die AusgabezeichenfolgeArr[0] speziell auskommentiert (siehe oben), denn wenn ich versuche, es an das Journal auszugeben, kommt es nicht zur 4401-Fehlermeldung, sondern endet mit der Ausgabe eines Fehlers "array out of range".

...Ich rauche erst einmalhttps://www.mql5.com/ru/docs/series/timeseries_access, aber meinen Code mit diesem Code aufzublähen ist gruselig...
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
  • www.mql5.com
Ошибки компиляции - Коды ошибок и предупреждений - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
x572intraday:

Mein AusgabestringArr[0] ist speziell auskommentiert (siehe oben), denn wenn ich versuche, ihn an Journal auszugeben, kommt es nicht zur Fehlermeldung 4401, sondern endet mit dem Fehler "array out of range".

 
Vitaly Muzichenko:

Ja, das Array erweist sich als leer, d. h. es werden keine neuen Balken hineingekopiert.

 
x572intraday:

Ja, das Array erweist sich als leer, d. h. es werden keine neuen Balken hineingekopiert.

Dies ist der Fall bei der ersten Abfrage

 
Vitaly Muzichenko:

Dies geschieht bei der ersten Anfrage

Das Verrückte ist, dasshttps://www.mql5.com/ru/docs/series/timeseries_access in dem Artikel über das Laden der Historie im Code Sleep() erwähnt, aber in der Hilfe zu Sleep() steht: "Die Funktion Sleep() kann nicht von benutzerdefinierten Indikatoren aufgerufen werden, da die Indikatoren im Interface-Thread ausgeführt werden und dieser nicht verlangsamt werden sollte". Es stellt sich heraus, dass ich die Historie in einen Indikator laden muss.

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Организация доступа к данным - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
x572intraday:

Das Blöde ist, dasshttps://www.mql5.com/ru/docs/series/timeseries_access in dem Artikel über das Laden der Historie im Code Sleep() erwähnt, aber in der Hilfe zu Sleep() steht: "Die Funktion Sleep() kann nicht von benutzerdefinierten Indikatoren aufgerufen werden, da Indikatoren im Interface-Thread ausgeführt werden und diesen nicht verlangsamen dürfen". Es stellt sich heraus, dass ich die Historie in den Indikator laden muss.

Wenn die Daten nicht kopiert werden, gibt es einen Exit.

int c=CopyTime(_Symbol,tf,0,1,Arr);
if(c<1) return;

Beim nächsten Häkchen wird alles kopiert und der Code funktioniert korrekt.

 

Hallo, ich teste meinen Roboter, nachdem ich den Test beendet habe, sah ich viele Felder mit Requotes im Log, was bedeuten diese Nachrichtenstapel und was kann ich zum Code hinzufügen, um zu verhindern, dass sie erscheinen? Vielen Dank und ein frohes neues Jahr!

Dateien:
1.jpg  412 kb
Grund der Beschwerde: