Errori, bug, domande - pagina 572

 
Interesting:

Dove e come viene generato MarketWatch?

come ho capito questo blocco sta cercando di aggiungere un simbolo alla lista, con controllo del risultato.

Ma se Expert Advisor è una coppia di valute multiple (che non è ovvio dall'esempio precedente).

Questo codice è in un ciclo di coppie di valute, Exp_Symbol in ogni passaggio, tranne il primo, è una coppia di valute "straniera". Se ci sono cinque coppie di valute, SymbolSelect(Exp_Symbol, true) sarà chiamato cinque volte per cinque simboli diversi.

La chiamata alle funzioni SymbolSelect(), SymbolIsSynchronized(), CopyRates() nel mio codice da simboli "alieni" (la storia dovrebbe essere aggiornata di conseguenza). Al primo test ci sono dati, ma al secondo test non ci sono dati e Expert Advisor si blocca nel tester.

 
Konstantin83:

Questo codice è in un ciclo di coppie di valute, Exp_Symbol in ogni passaggio tranne il primo è una coppia di valute "aliena". Ho una chiamata alle funzioni SymbolSelect(), SymbolIsSynchronized(), CopyRates() da simboli "alieni" (quindi la storia dovrebbe essere scambiata). Al primo test ci sono dati, ma al secondo test non ci sono dati e Expert Advisor si blocca nel tester.


Puoi inviare a servicedesk un esperto e la descrizione delle impostazioni di ottimizzazione/test?
 
alexvd:
Puoi inviare un esperto e una descrizione delle impostazioni di ottimizzazione/test a servicedesk?
Creato.
 
Proprio ora, le quotazioni si bloccano di nuovo nel conto demo. C'è comunicazione ma nessun movimento.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 

Voglio scaricare i dati di gennaio 2009. Ho scaricato i dati per 15 minuti e un'ora, ma non posso scaricare i dati per 5 minuti, dice che non c'è storia. Perché non si scarica la storia di 5 minuti?

void OnStart()
  {
   int size = 25;
   datetime dateFrom;
   datetime dateTo;
   MqlRates rates[];
   MqlDateTime stDate;
   int FileHandle;
  
   stDate.day  = 1;
   stDate.hour = 0;
   stDate.mon  = 1;
   stDate.year = 2009;
   dateFrom    = StructToTime( stDate );
   stDate.day  = 31;
   dateTo      = StructToTime( stDate );
  
  
   ArraySetAsSeries(rates,true);
  
   int copied=CopyRates(Symbol(), PERIOD_M5, dateFrom, dateTo, rates);
   for(int i=0;i<100;i++)
     {
      if(GetLastError()!=0)
       {
        Sleep(5000);
        copied=CopyRates(Symbol(), PERIOD_M5, dateFrom, dateTo, rates);
       }
      else
       {
        break;
       }
      Print("Нет истории, проход № " + i);
     }
   if(copied>0)
     {
      Print("Скопировано баров: "+IntegerToString(copied));
      //string format="open = %G, high = %G, low = %G, close = %G, volume = %d";
      string out;
      size = ArraySize(rates);
      ResetLastError();
     
      FileHandle=FileOpen("Data.csv",FILE_WRITE|FILE_CSV);
      if(FileHandle==INVALID_HANDLE)
        {
         Print("Ошибка " + IntegerToString((GetLastError())));
        }
      for(int i=size-1;i>=0;i--)
        {
         FileWrite(FileHandle, TimeToString(rates[i].time), DoubleToString(rates[i].open, _Digits), DoubleToString(rates[i].high, _Digits), DoubleToString(rates[i].low, _Digits), DoubleToString(rates[i].close, _Digits));
        }
     
      Print("size = " + FileSize(FileHandle));
      FileFlush(FileHandle);
      FileClose(FileHandle);
     }
   else
    {
     Print("Не удалось получить исторические данные по символу ",Symbol());
     Print("Ошибка " + GetLastError());
    }
  }

 

Ho deciso di controllare come funziona la funzione ArrayResize con tutti i parametri. Compila senza problemi, l'auto-trading è abilitato ovunque, ma l'Expert Advisor si scarica dal grafico senza nemmeno andare in OnInit.

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Print(__FUNCTION__);
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   Print(__FUNCTION__);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick() {
   double ZZ[][2];
//==============================================   
   Print(__FUNCTION__);
   
   ResetLastError();
   ArrayResize(ZZ,5,5);
   for(int i=0;i<10;i++) {
      ZZ[i][0]=i;
      Print("i=",i,"; ZZ=",ZZ[i][0]);
      Print(GetLastError());
   }
   return;
}
//+------------------------------------------------------------------+

Qual è il problema, non riesco a capirlo.

1

2

 
Talex:

Ho deciso di controllare come funziona la funzione ArrayResize con tutti i parametri. Compila senza problemi, l'auto-trading è abilitato ovunque, ma l'Expert Advisor si scarica dal grafico senza nemmeno andare in OnInit.

Qual è il problema, non riesco a capirlo.


Banale fuori portata, controllare nella scheda "Esperti
Riservare non è un'allocazione, il vostro array è ancora di cinque elementi, anche se la memoria è allocata per 10.

 
mql5:

Banale fuori portata, guarda la scheda "Esperti".
Riservare non è allocare, il vostro array è ancora di cinque elementi, anche se avete allocato memoria per 10.

Bene, grazie. Stavo guardando la scheda sbagliata, sono malato, deve avere un effetto su di me.
 
Talex:

Ho deciso di controllare come funziona la funzione ArrayResize con tutti i parametri. Compila senza problemi, l'auto-trading è abilitato ovunque, ma l'Expert Advisor si scarica dal grafico senza nemmeno andare in OnInit.

In generale, lo screenshot qui sopra mostra il log del terminale. E quello che stai cercando è nella scheda Esperti.
 

Salve,

Io, dopo aver testato e abilitato l'ottimizzazione, ottengo questo:

Core 1 genetic pass (127, 1195) testato con errore "critical runtime error

Il test è normale.