Errori, bug, domande - pagina 2933

 
x572intraday:

Colto l'errore dopo tutto, citazione dal riferimento:

Stampato nel Journal - capito:

Cosa ne faccio ora, dove vado? Sono una cattiva mano o...?

Sei sicuro che debba essere un incarico

ArraySize(Arr)=0

e non un confronto?

ArraySize(Arr)==0
 
Vitaly Muzichenko:

Sicuramente dovrebbe essere un incarico

e non un confronto?

Quindi questo non è il codice del programma, ma il risultato della stampa nel log del terminale. Ed ecco il codice stesso:

   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;
   }
Quindi non sono io che ho mancato la portata dell'array, ma la storia di lunga data non è in qualche modo sempre presumibilmente caricata. Ho sempre pensato che la storia è caricata a sinistra e potrebbe mancare quando non è completamente caricata. Ma non c'è abbastanza storia sul lato destro (nuove barre) - questo non ha senso per me! Inoltre, ho ArraySetAsSeries=false, se ha importanza.
Документация по MQL5: Общие функции / Print
Документация по MQL5: Общие функции / Print
  • www.mql5.com
Print - Общие функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
x572intraday:

Quindi questo non è il codice del programma, ma il risultato della stampa nel log del terminale. Ed ecco il codice stesso:

Quindi non sono io che ho mancato la portata dell'array, ma la storia di lunga data non è in qualche modo sempre presumibilmente caricata. Ho sempre pensato che la storia è caricata sul lato sinistro e potrebbe non essere sufficiente quando non è completamente caricata. Ma non c'è abbastanza storia sul lato destro (nuove barre) - questo non ha senso per me! Inoltre, ho ArraySetAsSeries=false.

Legge un array vuoto con niente dentro?

ArraySize(Arr)

Prova questo

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

Legge un array vuoto con niente dentro?

Prova questo

Ho la stringa di outputArr[0] specificamente commentata (vedi sopra), perché quando provo a mandarla in output al Journal non arriva al messaggio di errore 4401, ma finisce per emettere un errore "array out of range".

...Fumeròhttps://www.mql5.com/ru/docs/series/timeseries_access per ora, ma gonfiare il mio codice con questo codice è inquietante...
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
  • www.mql5.com
Ошибки компиляции - Коды ошибок и предупреждений - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
x572intraday:

La mia stringa di outputArr[0] è appositamente commentata (vedi sopra), perché quando provo ad inviarla a Journal non arriva al messaggio di errore 4401, ma finisce con l'errore "array out of range".

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Bug, bug, domande

Vitaly Muzichenko, 2020.12.31 13:06

Legge un array vuoto con niente dentro?

ArraySize(Arr)

 
Vitaly Muzichenko:

Sì, l'array risulta essere vuoto, cioè nessuna nuova barra viene copiata in esso.

 
x572intraday:

Sì, l'array risulta essere vuoto, cioè nessuna nuova barra viene copiata in esso.

Questo è il caso della prima query

 
Vitaly Muzichenko:

Succede alla prima richiesta

La follia è chehttps://www.mql5.com/ru/docs/series/timeseries_access menziona Sleep() nell'articolo sul caricamento della storia nel codice. Ma l'aiuto per Sleep() dice: "La funzione Sleep() non può essere chiamata dagli indicatori personalizzati, perché gli indicatori sono eseguiti nel thread dell'interfaccia e non dovrebbe rallentarlo". Si scopre che ho bisogno di caricare la storia in un indicatore.

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

L'idiozia è chehttps://www.mql5.com/ru/docs/series/timeseries_access menziona Sleep() nell'articolo sul caricamento della storia nel codice, ma l'aiuto per Sleep() dice: "La funzione Sleep() non può essere chiamata dagli indicatori personalizzati, perché gli indicatori sono eseguiti nel thread dell'interfaccia e non devono rallentarlo". Si scopre che ho bisogno di caricare la storia nell'indicatore.

Bene, fare un'uscita se i dati non vengono copiati

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

Al prossimo tick tutto sarà copiato e il codice funzionerà correttamente

 

Ciao, sto testando il mio robot, dopo aver finito il test ho visto un sacco di campi con requotes nel Log, cosa significano queste pile di messaggi e cosa posso aggiungere al codice per evitare che appaiano? Grazie, felice anno nuovo!

File:
1.jpg  412 kb
Motivazione: