Erros, bugs, perguntas - página 1631

 
fxsaber:
mt5, 1375, aconteceu após a actualização. vinhp32

Actualizações sobre o quê e sobre o quê? Por favor, se estiver a apontar uma possível falha - não guarde a sua tinta e diga as circunstâncias com o maior detalhe possível.

Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos

Erros, bugs, perguntas

Karputov Vladimir, 2016.08.07 14:11

  1. Qual é a construção do MetaEditor?
  2. Corre-o a partir do MT4 ou MT5?
  3. Já abriu ficheiros neste MetaEditor antes?
  4. Qual é a situação dos direitos ao ficheiro do MetaEditor?
  5. Aconteceu recentemente ou imediatamente após a instalação do terminal?
  6. Em que sistema operativo se inicia (Windows, em Wine)?

 

Erro na execução

Sequência de operações:

1. Executar o Test.ex5 expert, que exibe o mesmo tipo de texto no gráfico linha a linha até que ocorra um erro

2. No mesmo gráfico, executar o guião simplificado demonstrando o erro

//Test.ex5 //Проверочный скрипт void OnStart() {         string text1 = NULL;                        ::ChartGetString( 0, CHART_COMMENT, text1 ); //(1)         string text2 = ::ChartGetString( 0, CHART_COMMENT ); //(2)         if ( text1 != text2 )                 Print( ::StringLen( text1 ), "-", ::StringLen( text2 ));         else                 Print( "OK" ); }

Obtemos o resultado

2016.08.08 02:21:25.979 Teste (EURUSD,M15) 120-136

... e deve ser "OK".

Arquivos anexados:
Test.ex5  13 kb
 
A100:

Erro na execução

Sequência de operações:

1. Executar o Test.ex5 expert, que exibe o mesmo tipo de texto no gráfico linha a linha até que ocorra um erro

2. No mesmo gráfico, executar o guião simplificado demonstrando o erro

Obtemos o resultado

2016.08.08 02:21:25.979 Teste (EURUSD,M15) 120-136

... e deve ser "OK".

Não vejo um erro, entre as chamadas ChartGetString, o comentário do gráfico foi alterado, é por isso que existe uma diferença de 16 caracteres entre as linhas, apenas o tamanho da linha adicionada ao comentário do gráfico.
 
Ilyas:
Não vejo qualquer erro, entre as chamadas de ChartGetString, o comentário do gráfico foi alterado, por isso existe uma diferença de 16 caracteres entre as linhas, apenas para o tamanho da linha adicionada ao comentário do gráfico.

O perito é descarregado (ou seja, já não pode afectar o gráfico). Carregar o guião de teste (10 linhas). Pergunta: qual de determinadas linhas muda de comentário no gráfico?

Não há código entre chamadas de ::ChartGetString()

Arquivos anexados:
Test.ex5  6 kb
 

O que há de errado com a versão móvel do fórum?

Quando carrego em "Responder", aparece uma citação com crocodilos de código htlm. E não se consegue tirar o cursor de dentro dele.

Android 2.3.4


 
A100:

O perito é descarregado (ou seja, já não pode afectar o gráfico). Carregar o guião de teste (10 linhas). Pergunta: qual de determinadas linhas muda de comentário no gráfico?

Não há código entre chamadas de ::ChartGetString()

Por acção (para operações de gráficos são sincrónicos/sequenciais, a EA e o trabalho de guião nos seus próprios fios):

  1. o guião chama o primeiro ChartGetString
  2. o Conselheiro Especialista chama ChartSetString
  3. o Conselheiro Especialista termina
  4. o guião chama o segundo ChartGetString
 
Ilyas:
Por acções (para um gráfico, as operações são sincronizadas/sequenciais, o Expert Advisor e o trabalho de guião nos seus threads):

  1. o script chama primeiro ChartGetString
  2. chamadas de peritos ChartSetString
  3. Acabamentos especializados
  4. o guião chama o segundo ChartGetString

O perito Test.ex5 não pode chamar nada (ponto 2), uma vez que, quando o guião é executado, já foi descarregado de antemão,

ou seja, o passo 3 é obviamente anterior ao passo 1

Abaixo está o resultado do guião Test.ex5

2016.08.08 02:21:25.979 Teste (EURUSD,M15) 120-136

...e deve estar "OK".

 
A100:

O perito Test.ex5 não pode chamar nada (ponto 2), porque quando o guião é executado, já está descarregado de antemão,

ou seja, o passo 3 é obviamente anterior ao passo 1

Abaixo está o resultado do guião Test.ex5

2016.08.08 02:21:25.979 Teste (EURUSD,M15) 120-136

...e deve estar "OK".

ExpertRemove não remove o Expert Advisor do gráfico instantaneamente, mas apenas após a conclusão do OnTick. E não é análogo à função de saída()

A citação no registo ilustra apenas o facto de chamar a função ExpertRemove(). O facto de remover o Expert Advisor será reflectido no registo do terminal do cliente como "perito removido".

Mostrar o código fonte do Consultor Especialista

 
Slawa:

A citação no registo ilustra apenas o facto de chamar a função ExpertRemove(). O perito foi removido" será afixado no diário terminal do cliente

Sequência detalhada de acções:

  1. Abrir um novo gráfico
  2. Run Test.ex5 no gráfico do Expert Advisor (em poucos segundos aparecerá a seguinte mensagem no separador Experts (Peritos): '2016.08.08 15:40:47.267 Teste (EURUSD,M15) Função ExpertRemove() chamada' e a EA é descarregada do gráfico
  3. Certifique-se de que o separador Registo exibe uma mensagem do seguinte formulário: '2016.08.08 15:40:47.286 Teste de perito (EURUSD,M15) removido
  4. Executar script Script1.ex5 no mesmo gráfico (o nome do script aqui não corresponde ao nome do Expert Advisor)

Como resultado, uma mensagem da seguinte forma aparecerá no separador Especialistas: '2016.08.08.08 15:52:43.173 Scripts1 (EURUSD,M15) 120-136
Deveria ser:'2016.08.08 15:52:43.173 Scripts1 (EURUSD,M15) OK''.

//Script1.mq5
void OnStart()
{
        string text1 = NULL;
                       ChartGetString( 0, CHART_COMMENT, text1 ); //(*)
        string text2 = ChartGetString( 0, CHART_COMMENT );
        if ( text1 != text2 )
                Print( StringLen( text1 ), "-", StringLen( text2 ));
        else
                Print( "OK" );
}
Arquivos anexados:
Test.ex5  13 kb
Script1.ex5  7 kb
 
A100:

Deveria ser:'2016.08.08 15:52:43.173 Scripts1 (EURUSD,M15) OK''.

Isto pode ser facilmente visto substituindo a linha (*) no Script1.mq5 por

               text1 = ChartGetString( 0, CHART_COMMENT );
Razão: