Erros, bugs, perguntas - página 2802

 
Mihail Matkovskij:

Ninguém o nega. É que existe um conceito em que há um ecrã como tela. Por sua vez, a mesma tela personalizada (um conjunto de pixels) é desenhada na tela da janela (o gráfico). Mais precisamente, é primeiro passado para o gráfico (copiado) usando ResourceCreate (em OBJ_BITMAP ou OBJ_BITMAP_LABEL). Na janela do gráfico, tudo é desenhado utilizando Win API (se não estou enganado). Embora, também pode ser feito utilizando outros API. Mas a classe CCanvas tem os seus próprios métodos de desenho sobre elementos da matriz m_pixels.

Acontece que, desenhando um pequeno rectângulo, ainda tem de passar muitos pixels usandoResourceCreate (poupa tempo apenas no desenho). E assim pode simplesmente moverOBJ_BITMAP_LABEL em torno do gráfico, sem processar a matriz m_pixels e depois copiá-la para OBJ_BITMAP_LABEL.

A questão é que a classe CCanvas não tem método de mover a tela, o que é muito estranho.
A classe iCanvas tem-no implementado.

ZZZ Lamento, ainda agora vi que a versão actual do iCanvas em KB não implementa este método, apenas a sua declaração. Vou corrigi-lo agora.

bool iCanvas::MoveCanvas(const int x,const int y) {
   if(ObjectSetInteger(m_chart_id,m_objname,OBJPROP_XDISTANCE,x) && ObjectSetInteger(m_chart_id,m_objname,OBJPROP_YDISTANCE,y))  return(true);
   else return(false);
}

Correcção


Arquivos anexados:
iCanvas.mqh  45 kb
Movement.mq5  2 kb
 
Nikolai Semko:

A questão é que a classe CCanvas não tem um método para mover a tela, o que é bastante estranho.
A classe iCanvas tem-no implementado.

ZZZ Lamento, acabei de ver que a versão actual do iCanvas em KB não implementa este método, apenas a sua declaração. Vou corrigi-lo agora.

Correcção


O facto de não haver movimento no CCanvas não é nada de especial. Qualquer utilizador cuidadoso pode compreender que a tela é movida movendo o seu objecto gráfico. E esta é uma função padrão. Por conseguinte, pode-se acrescentar os métodos em falta. Ou escrever os seus próprios métodos de desenho e outros... Qualquer coisa pode ser feita. O código fonte do CCanvas pode ser estudado.

 
Comentários não relacionados com este tópico foram transferidos para "Perguntas dos principiantes do MQL4 MT4 MetaTrader 4".
 

A versão portátil do MetaEditor deixou de funcionar (/portátil em propriedades de atalho). Aconteceu com a actualização de hoje. Removido /portável das propriedades, o editor começou, mas com configurações do terminal instalado e doMetaEditor. Além disso, não está a utilizar os directórios de trabalho da minha pasta com a versão portátil. O terminal parece começar normalmente com opção/portável, mas o MetaEditor também não começa quando eu carrego em F4. Continua a escrever no diário de bordo:

2020.07.14 20:00:17.560 Error MetaEditor not found

Como é que a versão portátil do terminal e o editor podem ser configurados para funcionar correctamente?

 
Mihail Matkovskij:

A versão portátil do MetaEditor deixou de funcionar (/portátil em propriedades de atalho). Aconteceu com a actualização de hoje. Removido /portável das propriedades, o editor começou, mas com configurações do terminal instalado e doMetaEditor. Além disso, não está a utilizar os directórios de trabalho da minha pasta com a versão portátil. O terminal parece começar normalmente com opção/portável, mas o MetaEditor também não começa quando eu carrego em F4. Continua a escrever no diário de bordo:

Como posso agora ajustar a versão portátil do terminal e do editor para funcionar correctamente?

Outra actualização está fora de questão. Decidi verificar oMetaEditor. Adicionei/portável às propriedades de atalho, corri e funcionou. Todas as configurações e directórios de trabalho estão no lugar, como era antes.

 

É possível fazer o seguinte por meios normais?


  1. Ver o registo via PCM->Ver. Utilizo aí um filtro.
  2. Neste resultado, encontro a linha necessária.
  3. Quero ver o que estava antes e depois desta linha no registo se desactivar o filtro.
Não tenho maneira de o fazer. Tenho de me lembrar do tempo e do conteúdo aproximado da linha e depois desactivar o filtro e procurá-lo manualmente.
 
fxsaber:

É possível fazer o seguinte por meios normais?


  1. Ver o registo via PCM->Ver. Utilizo aí um filtro.
  2. Neste resultado, encontro a linha necessária.
  3. Quero ver o que estava antes e depois desta linha no registo se desactivar o filtro.
Não tenho maneira de o fazer. Tenho de me lembrar do tempo e do conteúdo aproximado da linha e depois desactivar o filtro e procurá-lo manualmente.

O visualizador de registos incorporado é muito inconveniente (incluindo o caso de uso especificado), tenho de utilizar programas externos.

 
Por favor dê algumas dicas (links, sugestões) sobre como armazenar e actualizar o estado geral do algoritmo no modo de teste em matemática. A ideia do ficheiro comum parece pouco convincente. As molduras só vão num sentido (de agente para terminal).
 

Olá.

Algo está partido no autovalidador do mercado do mt4.

Tentou autovalidar 5-6 vezes com diferentes EAs.

Sempre este erro.

ь

Mesmo aquela EA que autovalidou ontem não pode autovalidar hoje

Aqui está uma mensagem sobre a validação bem sucedida ontem

т

Algo está realmente partido.

 
Denis Nikolaev:

Olá.

Algo está partido no autovalidador do mercado do mt4.

Tentou autovalidar 5-6 vezes com diferentes EAs.

Sempre este erro.

Mesmo aquela EA que autovalidou ontem não pode autovalidar hoje

Aqui está uma mensagem sobre a validação bem sucedida ontem


Algo está realmente errado.

Obrigado pela mensagem. Corrigido.