Erros, bugs, perguntas - página 418

 

Já trabalho com o MT5 há alguns dias e reparei que as paragens e os lucros podem agora ser editados com o rato, o que é bom, mas há um pequeno bug nele. Quando movo o rato para a paragem, o seu ponteiro muda para mostrar que a paragem está activa para edição, mas o ponteiro também muda quando se usa a ferramenta "Crosshair", o que significa que se eu quiser medir a distância da paragem, não é muito conveniente, porque o segundo ponto está atrás do ponteiro e não consigo ver para onde o estou a levar. Eu queria fazer PrintScreen, mas não tira uma fotografia do rato.

Conclusão: não é conveniente medir com "Crosshair" a partir da paragem.

 
mql5:
O erro é corrigido.
A verificação do interruptor "fetch" foi discutida e não podemos implementar um controlo correcto/corrector.
O valor da expressão do interruptor pode ser qualquer coisa, por exemplo:

OK, estou a ver. O compilador não pode controlar o valor da expressão do interruptor em vez do programador.

Como pergunta secundária, esta construção é utilizada no exemplo acima:

enum EV { v1, v2, };
...
   switch(EV(3))

Significa que é aceitável tratar dados de um tipo enumerado não só com constantes nomeadas (v1, v2, etc.) mas também especificando o seu número ordinal na enumeração ( EV(n) )?

...Fiz tais construções para resolver tal questão - mas aqui pode ser muito mais simples.

 
Yedelkin:

Isto significa que é aceitável fazer referência a dados de um tipo enumerado não só com constantes nomeadas (v1, v2, etc.) mas também especificando o seu número ordinal numa enumeração ( EV(n) )?

Neste caso, aplica-se apenas a conversão padrão do tipo int para EV. Em notação funcional.

Há duas formas sintácticas possíveis de conversão de tipo em mql5 que são equivalentes em resultado: (Nome_tipo) Valor e Nome_tipo(Valor).

Não é uma característica especial relacionada com enumerações, é apenas uma conversão de tipo normal.

 
Jhonny:

Já trabalho com o MT5 há alguns dias e reparei que as paragens e os lucros podem agora ser editados com o rato, o que é bom, mas há um pequeno bug nele. Quando movo o rato para a paragem, o seu ponteiro muda para mostrar que a paragem está activa para edição, mas o ponteiro também muda quando se usa a ferramenta "Crosshair", o que significa que se eu quiser medir a distância da paragem, não é muito conveniente, porque o segundo ponto está atrás do ponteiro e não consigo ver para onde o estou a levar. Eu queria fazer PrintScreen, mas não tira uma fotografia do rato.

Conclusão: não é conveniente medir com "Crosshair" a partir da paragem.

Concordo, é uma boa observação, mas não é um insecto.

Felicidades para MT5

 
MetaDriver:

Neste caso, apenas foi aplicada uma conversão padrão int para EV. Em notação funcional.

Há duas formas sintácticas possíveis de conversão de tipo em mql5, que são iguais em resultado: (Nome_tipo) Valor e Nome_tipo(Valor).

Não é uma característica especial relacionada com enumerações, é apenas uma conversão de tipo normal.

Fixe! Vou tentar digeri-lo. Mas pelo que disse, a resposta à minha pergunta é positiva. Isso é bom! Obrigado! (Risos)
 

Não é possível iniciar o teste em modo de visualização. O visualizador em si começa, mas o teste não começa. Isto é o que diz no diário de bordo:

2011.06.16 21:25:47 EURUSD: símbolo sincronizado, 2904 bytes de informação do símbolo recebido
2011.06.16 21:25:47 símbolo EURUSD erro de sincronização
2011.06.16 21:25:47 não pode obter história EURUSD,M1
2011.06.06.16 21:25:47 log file "C:\Program Files\MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20110616.log" escrito
2011.06.16 21:25:48 tester agent shutdown

 

Desenvolvedores.

O testador visual é realmente assim tão lento ou estou apenas a imaginar coisas?

 
molotkovsm:

Não é possível iniciar o teste em modo de visualização. O visualizador em si começa, mas o teste não começa. Isto é o que está escrito no diário de bordo:

2011.06.16 21:25:47 EURUSD: símbolo sincronizado, 2904 bytes de informação do símbolo recebido
2011.06.16 21:25:47 Erro de sincronização do símbolo EURUSD
2011.06.16 21:25:47 não consegue ter história EURUSD,M1
2011.06.16 21:25:47 ficheiro de log "C:{Arquivos de Programas\MetaTrader 5\Tester\Agent-127.0.0.1-3000\logs\20110616.log" escrito
2011.06.16 21:25:48 agente testador encerrado

O mesmo problema. O registo de agente não pode ser aberto através de um caminho especificado.

2011.06.16 22:40:52     tester agent shutdown
2011.06.16 22:40:52     log file "C:\Program Files\MetaTrader 5 - 64\Tester\Agent-127.0.0.1-3000\logs\20110616.log" written
2011.06.16 22:40:52     cannot get history EURUSD,M1
2011.06.16 22:40:52     symbol EURUSD synchronization error
2011.06.16 22:40:52     EURUSD: symbol synchronized, 2904 bytes of symbol info received
2011.06.16 22:40:51     Pentium Dual-Core  T4300 @ 2.10 GHz, 3001 MB
2011.06.16 22:40:51     13 Kb of total initialization data received
2011.06.16 22:40:51     successfully initialized
2011.06.16 22:40:51     expert file added: Experts\Тест.ex5. 2958 bytes loaded
2011.06.16 22:40:51     346 bytes of selected symbols loaded
2011.06.16 22:40:51     196 bytes of input parameters loaded
2011.06.16 22:40:51     1490 bytes of tester parameters loaded
2011.06.16 22:40:51     3788 bytes of group info loaded
2011.06.16 22:40:51     login (build 468)
2011.06.16 22:40:51     initialization finished
2011.06.16 22:40:51     MetaTester 5 started on 127.0.0.1:3000
2011.06.16 22:40:51     MetaTester 5 x64 build 468 (16 Jun 2011)


 
Por favor, forneça o código.
 
Renat:
Por favor, dê-me o código.

Boa noite, eu estava a pensar se neste código

  if(B >= spred && IND == true && proverka()==true)

após verificar B>spred, que é "FALSO", o resto dos valores são verificados

Aumenta o tempo de execução do teste, pelo que tenho de modificar o código da seguinte forma

   if(B >= bar)
    {
     if (IND == true) 
      {
       if (proverka)==true)
        {
         .......

E o mais demorado em termos de cálculos ( proverka() - cópia de valores tampão de um indicador)

Coloco em último lugar, mas não verifica o último. Pergunto-me.

E porquê assim ????

Ou não verifica o último:

 if(B >= bar) if (IND == true) if (proverka()==true)