Erros, bugs, perguntas - página 163

 
stringo:
Pode praticamente justificar a expressão x = x+++; O que quer dizer? Porque não usar incremento sem atribuição subsequente de x++; Como é normalmente usado.
Saiu por acidente - não é todos os dias que se escreve em línguas tipo C, esqueci-me que só há x+++. Eu estava à espera de x = x + 1. O resultado é engraçado...
 
GODZILLA:

Não, não é! Não há dados, voltei a perguntar... Recebi-o no quinto pedido e fui, mas é silencioso e pronto!!!

Para Consultores Especialistas e indicadores personalizados é melhor utilizar omodelo de processamentoorientado por eventos. Se o processamento de eventos OnTick() ou OnCalculate() não tiver conseguido obter todos os dados necessários, deverá abandonar o manipulador de eventos, esperando ter acesso aos dados da próxima vez que o manipulador for chamado.

Também li isto e pensei que sim, mas eis o que este código dá, por exemplo:

int handle;
datetime inittime;
void OnInit(){

  
  handle = iCustom( "GBPUSD", PERIOD_M2, "examples\ATR", 14 );
  Print("Handle=", handle);
  inittime = TimeCurrent();
}
bool isfirst = true;
void OnTick()
  {
    double val[1];
    int start_pos = 1;
    if( isfirst || TimeCurrent()-5*60 > inittime ){
      int n = CopyBuffer( handle, 0, start_pos , 1, val );
      Print("Получено n=", n, 
        (n==-1)?" ошибка при получении данных из индикатора, ":" нет ошибки при получении данных из индикатора",
        " значение ", val[0] );
    }
    isfirst = false; 
  }

Espero 5 minutos, depois disso recebo o valor do indicador em cada tick (corto parte dos logs):

2010.10.14 15:47:09 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:47:03 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:47:02 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:47:02 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:47:01 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:47:01 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:46:59 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:46:59 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:46:58 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:46:58 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:45:11 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:45:11 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:45:10 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:45:05 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:45:03 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:45:03 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:45:02 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:45:01 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:45:00 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor indicador 0.0006792857142856462
2010.10.14 15:44:58 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:44:56 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:44:56 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:44:54 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:44:08 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:44:05 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:44:05 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:43:27 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:43:25 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:43:24 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:43:23 23 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:43:04 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:43:01 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:42:59 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:42:58 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:42:58 tstincl (EURJPY,M1) n=1 não recebeu nenhum erro ao receber dados do valor do indicador 0,0006792857142856462
2010.10.14 15:42:51 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:42:47 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:42:43 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:42:04 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0006792857142856462
2010.10.14 15:41:25 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007028571428570865
2010.10.14 15:41:22 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007028571428570865
2010.10.14 15:41:05 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007028571428570865
2010.10.14 15:41:05 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007028571428570865
2010.10.14 15:41:01 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007028571428570865
2010.10.14 15:40:59 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007028571428570865
2010.10.14 15:40:57 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007028571428570865
2010.10.14 15:40:54 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007028571428570865
2010.10.14 15:40:41 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007028571428570865
2010.10.14 15:40:40 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007028571428570865
2010.10.14 15:40:38 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007028571428570865
2010.10.14 15:40:36 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007028571428570865
2010.10.14 15:40:26 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007028571428570865
2010.10.14 15:40:21 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007028571428570865
2010.10.14 15:40:21 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007028571428570865
2010.10.14 15:40:18 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:40:14 tstincl (EURJPY,M1) n=1 não recebeu nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:40:13 tstincl (EURJPY,M1) n=1 não recebeu nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:40:07 tstincl (EURJPY,M1) n=1 não recebeu nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:40:04 tstincl (EURJPY,M1) n=1 não recebeu nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:40:02 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:40:02 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:39:59 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:39:56 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:39:54 tstincl (EURJPY,M1) n=1 não recebeu nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:39:52 tstincl (EURJPY,M1) n=1 não recebeu nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:39:51 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:39:50 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:39:49 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:39:46 tstincl (EURJPY,M1) n=1 não recebeu nenhum erro ao receber dados do valor do indicador 0,000736364285714285289
2010.10.14 15:39:45 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:39:45 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:39:43 tstincl (EURJPY,M1) n=1 não recebeu nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:39:42 tstincl (EURJPY,M1) n=1 não recebeu nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:39:40 tstincl (EURJPY,M1) n=1 não recebeu nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:39:40 tstincl (EURJPY,M1) n=1 não recebeu nenhum erro ao receber dados do valor do indicador 0.0007364285714285289
2010.10.14 15:39:39 tstincl (EURJPY,M1) n=1 não recebeu nenhum erro ao receber dados do indicador o valor 0.0007364285714285289
2010.10.14 15:34:38 tstincl (EURJPY,M1) Recebido n=1 nenhum erro ao receber dados do valor do indicador 0.0007357142857142544
2010.10.14 15:34:35 tstincl (EURJPY,M1) Cabo=10

que deve mudar de dois em dois minutos, como se pode ver a partir de cerca de 45 minutos não estão disponíveis novos bares em m2, nem depois do primeiro, nem depois do segundo ou depois da décima chamada para eles.

Talvez tenha algo semelhante?

Pergunta aos programadores: Como chamar correctamente a CopyBuffer? Cada vez antes da sua chamada para sincronizar as séries cronológicas? Então precisa de saber que séries cronológicas e que caracteres se referem ao iniciador da maçaneta, para saber isto, precisa de algum lugar para armazenar e transmitir esta informação para todos os lugares onde chama CopyBuffer: o código fica complicado e desorganizado.

 

Pergunta sobre o provador.

Com que frequência são guardados os resultados dos passes do testador?

O registo mostra que se os resultados forem armazenados na cache, são tirados de lá sem novo cálculo, poupando tempo. Enfrentei uma situação em que um computador falhou durante uma longa operação de optimização (a razão não é importante). A optimização seguinte, realizada com o mesmo Expert Advisor e os mesmos parâmetros, revelou que nada foi poupado - o tempo tinha sido desperdiçado. É claro que existe uma medida de segurança - parar e reiniciar a optimização de vez em quando, mas não é muito conveniente. Construir 342.

 
Ashes:

Pergunta sobre o provador.

Com que frequência são guardados os resultados dos passes do testador?

O registo mostra que se os resultados forem armazenados na cache, são tirados de lá sem novo cálculo, poupando tempo. Enfrentei uma situação em que um computador falhou durante uma longa operação de optimização (a razão não é importante). A optimização seguinte, realizada com o mesmo Expert Advisor e os mesmos parâmetros, revelou que nada foi poupado - o tempo tinha sido desperdiçado. É claro que existe uma medida de segurança - parar e reiniciar a optimização de vez em quando, mas não é muito conveniente. Construir 342.

Os resultados da optimização são escritos no ficheiro após a conclusão da optimização. Em caso de paragem de emergência, os resultados não são lembrados.

Vamos considerar o que pode ser feito.

Документация по MQL5: Файловые операции / FileWrite
Документация по MQL5: Файловые операции / FileWrite
  • www.mql5.com
Файловые операции / FileWrite - Документация по MQL5
 
stringo:

Os resultados da optimização são escritos num ficheiro quando a optimização está completa. Os resultados não são lembrados em caso de paragem de emergência.

Vamos considerar o que pode ser feito.

Seria uma boa ideia.

A propósito, gostaria de guardar os resultados da optimização de alguma forma utilizável, e não apenas fotografias. Ou talvez eu não tenha encontrado o botão certo?

 
Ashes:

Isto seria uma boa ideia.

A propósito, gostaria de guardar os resultados da optimização de alguma forma adequada para o processamento, e não apenas fotografias. Ou talvez eu não tenha encontrado o botão certo?

testador\cache\cache\\a_nome>.<símbolo>.<período>.< modo>.xml
 
Ashes:

Isto seria uma boa ideia.

A propósito, gostaria de guardar os resultados da optimização de alguma forma adequada para o processamento, e não apenas fotografias. Ou talvez eu não tenha encontrado o botão certo?

E também tenho uma pergunta, como continuar a optimização após uma paragem forçada, não encontrei nada sobre isso na ajuda.
 

sergey1294:
и у меня вопрос тоже есть, как продолжить оптимизацию после принудительного останова, в справке что-то не нашел по этому поводу ни чего.

Basta premir o botão de arranque.
 
stringo:
testador\cache\cache\\a_nome>.<símbolo>.<período>.<modo>.xml

E outro artigo da MQL5: Expert Advisor Testing and Optimization Guide:

Após a optimização estar completa, pode procurar na pasta "MQL5\Tester\cache" onde encontrará o ficheiro cci_ma_ea.EURUSD.H1.2.xml que contém valores numéricos de todos os parâmetros e características obtidos como resultado da optimização.

Os resultados da optimização são guardados em ficheiro: ExpertName.SYMBOL.PERIOD.GenerationMode.xml, onde:

  • ExpertName - nome do Expert Advisor a ser optimizado;
  • SÍMBOLO - símbolo;
  • PERÍODO - calendário (M1,H1,...);
  • GenerationMode - modo de geração de carraças (0 - "Cada carraça", 1 - "OHLC na M1", 2 - "Apenas preços de abertura".

Este ficheiro pode ser aberto em Excel para uma análise mais aprofundada.

 
stringo:
Basta premir o botão de arranque.
Então o testador deve carregar automaticamente a lista de execuções passadas para o separador"Resultados da optimização" e continuar a optimizar de onde parou?