Erros, bugs, perguntas - página 2012

 
A100:

Outro erro é que a versão de 32 bits (tenho exactamente a mesma) não tem erros na execução. ponteiro inválido - apenas se a classe for aumentada com um membro, por exemplo int i

Deve ter sido testado no MT4, mas a construção é aí também mais baixa.

 
Kirill Belousov:

Bug.

O erro 4200 não é gerado quando se cria um objecto duplicado no GRÁFICO NÃO CORRENTE (que dá sobre o actual - [ver "GRÁFICO CORRENTE" no registo]) ,

bem como descobriram que encontrar um objecto no GRÁFICO RECENTE CARTA demora até 500 vezes mais tempo do que encontrar o actual.

а :) porque afinal não sou o único que tem isto

O objecto não é criado imediatamente na chamada de função. Um comando assíncrono é enviado para o gráfico. Para a nossa própria carta, temos a oportunidade de efectuar uma verificação preliminar. Para a carta de outra pessoa não existe tal possibilidade - ou melhor, existe, mas é muito cara.

Portanto, o código de retorno "sem erros" indica que este gráfico muito estranho foi encontrado e o comando de criação do objecto foi colocado com sucesso na sua fila de execução.

 
fxsaber:

Deve tê-lo testado no MT4, mas a construção é aí também mais baixa.

MT5\1653\32Win10 - o meu código chega à linha //Resultado: falso

Se também tiver 32 bits e um ponteiro inválido - então é um erro aleatório

O ServiceDesk escreve que: A função f está vazia e a chamada é cortada pelo optimizador, bem como a chamada do operador de cópia.

Mas se

        void f() { Print( __FUNCTION__ ); }

então Resultado:

2017.09.26 14:03:55.853 Demo (GBPUSD,M15) A::f
2017.09.26 14:03:55.853 Demo (GBPUSD,M15) falsa
essencialmente sem alterações

 
A100:

Se também tiver 32 bit - então algum erro aleatório

Não, eu estava a correr Win7x64.

O ServiceDesk diz isso: A função f está vazia e a chamada é cortada pelo optimizador, tal como a chamada do operador de cópia do passo 1.

Mas se

então nada muda

Encontrei onde os SDs respondem rapidamente sem verificação. E para 90% das aplicações isto é provavelmente correcto, uma vez que a maioria das aplicações provavelmente não se deve a bugs, mas sim a ignorância. Por favor, dê uma vista de olhos mais atenta - funciona.

 

Um bug de site com links.

Se uma mensagem do fórum tiver sido movida por um moderador para outro tópico, então na pesquisa do perfil "Todas as mensagens" esta mensagem está ligada ao antigo local. Consequentemente, não pode ser navegado até ele.

 
A100:

MT5\1653\32Win10 - Chego à linha //Resultado: falso

Se também tiver 32 bits e um ponteiro inválido - então é um erro aleatório.

O ServiceDesk escreve que: A função f está vazia e a chamada é cortada pelo optimizador, bem como a chamada do operador de cópia.

Mas se

então Resultado:

2017.09.26 14:03:55.853 Demonstração (GBPUSD,M15) A::f
2017.09.26 14:03:55.853 Demo (GBPUSD,M15) falso
essencialmente sem alterações

Acrescentarei que a função f não aborda campos de objectos, pelo que um ponteiro de objectos (isto) não é necessário para a função f.
O optimizador remove a desreferenciação desnecessária da pega (lembre-se, em MQL a pega é um ponteiro) para o ponteiro do objecto uma vez que este (o ponteiro) não é utilizado dentro de f

 
Ilyas:

Deixe-me acrescentar, a função f não contém endereçamento para campos de objectos, pelo que não precisa de ponteiro para objectos (isto) para a função f.
O optimizador remove a desreferenciação desnecessária da pega (recall, em MQL o ponteiro é uma pega) para o ponteiro do objecto, uma vez que este (o ponteiro) não é utilizado dentro de f

Claramente, trabalhar com f como com estática. Mas como explicar que uma corre e a outra interrompe?

 
Na verdade, pelo menos isto seria conveniente.
input string Value = _MarketWatch; // Выпадающий список (а-ля enum) символов из Обзора рынка

Fórum sobre comércio, sistemas comerciais automatizados e teste de estratégias comerciais

Lista de símbolos ENUM como um INPUT

Martin Nohejl, 2017.09.26 13:01

Olá, vou fazer o seguinte:

Quero ter o símbolo como parâmetro de entrada, por isso quero uma variável de entrada (enumeração) da qual escolherei o símbolo certo, como este:

Fi-lo através deste código:

enum ENUM_SYMBOL
   { 
    EURUSD=0, 
    GPBUSD=1, 
    USDCHF=2
   };

Isso funciona perfeitamente para mim. Mas gostaria de preencher o enum dinâmico com toda a lista de símbolos (SymbolsTotal(0);).

De alguma forma, provavelmente por código:

int a = SymbolsTotal(0);
for(int i=0; i!=a;i++){
....
}
 
fxsaber:

Claramente, trabalhar com f como com estática. Mas como explicar que um seja executado e o outro interrompido?

O mais provável é que comece a depuração (F5) e compilações A100 (F7) primeiro e depois os gráficos.

Ao compilar para depuração, o optimizador apenas remove explicitamente o código não utilizado, todas as outras optimizações não são executadas.
 
Ilyas:
O mais provável é começar a depurar (F5) e A100 compila primeiro (F7) e depois atira-o para o gráfico.

Ao compilar para depuração, o optimizador apenas remove explicitamente o código não utilizado, todas as outras optimizações não são realizadas.

Tive essa característica em conta imediatamente. Agora verifiquei-me duas vezes.

Libertação-versão:

Test (EURUSD,H1)        invalid pointer access in 'Test.mq5' (9,11)