Erros, bugs, perguntas - página 572

 
Interesting:

Onde e como é gerado o MarketWatch?

como entendi este bloco está a tentar adicionar um símbolo à lista, com verificação do resultado.

Mas se o Expert Advisor for um par de moedas múltiplas (o que não é óbvio a partir do exemplo acima).

Este código está num loop de par de moedas, Exp_Symbol em cada passe, excepto o primeiro, é um par de moedas "estrangeiras". Se houver cinco pares de moedas, SymbolSelect(Exp_Symbol, true) será chamado cinco vezes para cinco símbolos diferentes.

A chamada para SymbolSelect(), SymbolIsSynchronized(), CopyRates() funciona no meu código por símbolos "alienígenas" (o histórico deve ser actualizado em conformidade). No primeiro teste há dados, mas no segundo teste não há dados e o Expert Advisor cai no testador.

 
Konstantin83:

Este código está em loop de par de moedas, Exp_Symbol em cada passe, excepto que o primeiro é um par de moedas "alienígenas". Tenho uma chamada para SymbolSelect(), SymbolIsSynchronized(), CopyRates() funciona por símbolos "alienígenas" (por isso o histórico deve ser trocado). No primeiro teste há dados, mas no segundo teste não há dados e o Expert Advisor cai no testador.


Pode enviar ao servicedesk um perito e uma descrição das definições de optimização/teste?
 
alexvd:
Pode enviar um perito e uma descrição dos parâmetros de optimização/teste ao servicedesk?
Criada.
 
Ainda agora, as citações estão de novo penduradas na conta de demonstração. Há comunicação mas não há movimento.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 

Quero descarregar os dados para Janeiro de 2009. Descarreguei dados durante 15 minutos e hora, mas não consigo descarregar os dados durante 5 minutos, diz que não há histórico. Porque não está a descarregar o histórico de 5 minutos?

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());
    }
  }

 

Decidi verificar como funciona a função ArrayResize com todos os parâmetros. Compila sem problemas, a auto-comercialização é permitida em todo o lado, mas o Expert Advisor descarrega do gráfico sem sequer ir ao 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 é o problema, não consigo resolvê-lo.

1

2

 
Talex:

Decidi verificar como funciona a função ArrayResize com todos os parâmetros. Compila sem problemas, a auto-comercialização é permitida em todo o lado, mas o Expert Advisor descarrega do gráfico sem sequer ir ao OnInit.

Qual é o problema, não consigo resolvê-lo.


Banal fora de alcance, verificar no separador "Peritos".
Reservar não é uma atribuição, a sua matriz ainda é de cinco itens, embora a memória seja atribuída por 10.

 
mql5:

Banal fora de alcance, ver o separador "Especialistas".
Reservar não é atribuição, a sua matriz ainda é cinco itens, apesar de ter atribuído memória para 10.

Certo, obrigado. Estava a olhar para o separador errado, estou doente, deve estar a afectar-me.
 
Talex:

Decidi verificar como funciona a função ArrayResize com todos os parâmetros. Compila sem problemas, a auto-comercialização é permitida em todo o lado, mas o Expert Advisor descarrega do gráfico sem sequer ir ao OnInit.

De um modo geral, a imagem acima mostra o registo terminal. E o que se procura está no separador Especialistas.
 

Olá,

Eu, depois de testar e permitir a optimização, obtenho isto:

Passe genético Core 1 (127, 1195) testado com erro "critical runtime error

O teste é normal.