Perguntas de um "boneco" - página 188

 
Karlson:
Ainda não o experimentei, mas compreendo a ideia de o reunir num único ficheiro, por isso talvez os programadores possam apontar uma opção - comoligar dados inalterados de uma pasta.
E vai directamente para o CD com esta sugestão: ligue dados imutáveis de uma pasta.
 

Boa tarde!

Aqui está uma função que escrevi. Calcula o rácio da taxa de câmbio actual em relação à taxa do início de 2010.

double CalcKorr()
{
   double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); 

   double OtkrVal[1]; 

   datetime time=D'2010.01.01 00:00:00';

   if (CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) != 1) return(0);

   return(Bid / OtkrVal[0]);

}

Funciona correctamente se eu fizer um teste para 2011 ou períodos anteriores, mas devolve 0 se eu testar para 2012 :(

Por favor, informe qual poderá ser o problema.

O Expert Advisor está a funcionar em 10 minutos, estou a utilizar servidor e conta do Campeonato 2012 para testes.

 
MegaVoin:

Boa tarde!

Aqui está uma função que escrevi. Calcula o rácio da taxa de câmbio actual em relação à taxa do início de 2010.

double CalcKorr()
{
   double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); 

   double OtkrVal[1]; 

   datetime time=D'2010.01.01 00:00:00';

   if (CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) != 1) return(0);

   return(Bid / OtkrVal[0]);

}

Funciona correctamente se eu fizer um teste para 2011 ou períodos anteriores, mas devolve 0 se eu testar para 2012 :(

Por favor, informe qual poderá ser o problema.

O Expert Advisor está a funcionar em 10 minutos, estou a utilizar servidor e conta do Campeonato 2012 para testes.

Colocar uma impressão do erro - vamos ver.
 
Yedelkin:
Sim, não sei qual é a lógica do programa, mas o período de 10 min é denotado de forma um pouco diferente.

Tudo o resto funciona em 10 minutos, tal como isto:

CopyHigh(_Symbol, _Period, 0, 2, MaxVal ) 

Apenas esta função tenta obter dados do mês.

E como imprimir o erro? Compreendo que CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) retorna -1 em vez de 1.

 
MegaVoin:

E como imprimir o erro? Compreendo que CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) retorna -1 em vez de 1. Mas porque é que isto acontece, é possível emitir um erro?

double CalcKorr()
{
   double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); 
   double OtkrVal[1]; 
   datetime time=D'2010.01.01 00:00:00';
   ResetLastError();
   if (CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) != 1) 
     {
      Print("error = ",_LastError);
      return(0);
     }
   return(Bid / OtkrVal[0]);
}
 
Yedelkin:
Colocar uma impressão do erro - vamos ver.

erro = 4401

Não consigo encontrar nenhuma descodificaçãode códigos de erro em Metatrader...

Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений - Документация по MQL5
 
MegaVoin:

erro = 4401

Não consigo encontrar nenhuma descodificaçãode códigos de erro em Metatrader...

https://www.mql5.com/ru/docs/constants/errorswarnings/errorcodes
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения - Документация по MQL5
 
MegaVoin: erro = 4401

OK, "História solicitada não encontrada". Isto é, Janeiro de 2010 não é encontrado em 2012, certo?

E na conta de demonstração (não no testador) o que é que mostra?

 
Yedelkin:

OK, "História solicitada não encontrada". Isto é, Janeiro de 2010 não é encontrado em 2012, certo?

E na conta de demonstração (não no testador) o que é que mostra?

Uh-huh, não é detectado.

Criei uma nova conta de demonstração (não de campeonato). Muito mais de 5 são agora pulados se eu testar para 2011, mas há o mesmo erro para 2012.

Acho que tenho de definir em algum lugar quanta história é acessível antes do período de teste. E por defeito deve ser de 2 anos... Apenas onde está configurado...

 
MegaVoin: Criou uma nova conta de demonstração (não de campeonato). Muito mais de 5 são agora ignorados se os testes para 2011, mas ainda o mesmo erro para 2012.

Então, este erro também ocorre numa conta de demonstração(não no testador)?

MegaVoin : Acho que tenho de definir em algum lugar quanta história está disponível antes do período de teste. A configuração por defeito é provavelmente de 2 anos... Apenas onde está definido...

Prefiro ler sobre a história dos testes na secção "Teste de estratégias comerciais".

Razão: