Erros, bugs, perguntas - página 2616

 
Igor Makanu:

Vejo, ou seja, resolve-se o problema perene do intercâmbio de dados entre terminais

Não. É necessário receber dados do Testador a partir do qual o Expert Advisor está a funcionar. Sei como o fazer em 90% dos casos.

 
fxsaber:

Preciso de um EA a funcionar no Agente para poder obter a pega do Terminal a partir do qual foi enviado para funcionar no Agente.

Não posso dizer sobre Agentes. não verificou, mas o cabo do Terminal pode ser recuperado via PID, como esperado:

#define    READ_CONTROL   0x00020000
#define    bInheritHandle true

#include <WinAPI\processthreadsapi.mqh>
int OnInit()
  {
   uint process_id = GetCurrentProcessId();
   Print("process_id = ",process_id);
   HANDLE handle = OpenProcess(READ_CONTROL,bInheritHandle,process_id);	// https://docs.microsoft.com/ru-ru/windows/win32/api/processthreadsapi/nf-processthreadsapi-openprocess?redirectedfrom=MSDN
   Print("handle = ",handle);
   return(INIT_SUCCEEDED);
  }

2019.12.09 21:05:36.259 tst_Wapi (EURUSD,H1) process_id = 9280

2019.12.09 21:05:36.259 tst_Wapi (EURUSD,H1) handle = 2276

Verifiquei o PID no Gestor de Tarefas e é o mesmo


 
Igor Makanu:

Não posso dizer sobre os agentes. Não verifiquei, mas o cabo do terminal, como presumi, pode ser obtido através do PID:

2019.12.09 21:05:36.259 tst_Wapi (EURUSD,H1) process_id = 9280

2019.12.09 21:05:36.259 tst_Wapi (EURUSD,H1) handle = 2276

PID verificado em jogos de gestão de tarefas

Este código é bom para o Serviço, mas não para o Consultor Especialista em Agente.

 
Igor Makanu:

Não posso dizer sobre os agentes. Não verifiquei, mas o cabo do terminal, como presumi, pode ser obtido através do PID:

2019.12.09 21:05:36.259 tst_Wapi (EURUSD,H1) process_id = 9280

2019.12.09 21:05:36.259 tst_Wapi (EURUSD,H1) handle = 2276

Verifiquei o PID no Gestor de Tarefas e é o mesmo

Resolveu o problema, Obrigado.

 
Pode por favor dizer-me, em metatrader5 na pasta MQL5/logs, que os registos dos últimos 7 dias são guardados. Isto é alterado algures nas definições ou é um erro terminal?
 

Aqui estão 2 sugestões.

1- Faça uma opção (botão) para parar a optimização e mudar para a optimização progressiva.

Ou seja, era suposto ser uma calculadora rápida. Mas conta e conta. E também estou interessado em avançar, tenho de esperar.

Às vezes preciso de contar um pouco mais, e às vezes preciso de o fazer breve.

Preciso de 2 botões - prolongar a optimização e parar a optimização, com uma mudança para a frente.

2- As barras de ferramentas deslizaram novamente em 2 níveis! A minha filha era pequena, disse uma vez "deslizar e deslizar - deslizar!")

Também aqui, os painéis continuam a deslizar para dentro e para fora da 2ª fila. Já farto de os mover para trás (para a mesma fila). Arranjem-no já! Quanto espaço está a ser desperdiçado!

 

Por favor, verifique por si mesmo o seguinte erro. O pedido tem um indicador especial minimalista cuja única tarefa é ler o estado da chave "capslock". É afixado no diário de bordo e no comentário.

A sequência de acções é a seguinte.

  1. Compilar indicador, colocá-lo no gráfico e certificar-se de que o 0 ("capslock" não está activado) está impresso.
  2. Mudar para ME, activar CapsLock e recompilar. Regresso ao terminal. Verifique os registos para se certificar de que o indicador antigo é descarregado e o novo é carregado. No entanto, o estatuto "CapsLock" ainda é devolvido como 0.
  3. Se removermos o indicador do gráfico e o carregarmos novamente, o capslock é reconhecido normalmente - exibe 1.

O que é o milagre? Ao reiniciar por compilação, algumas variáveis ambientais não são limpas ou outra coisa qualquer?

Arquivos anexados:
CapsLock.mq5  1 kb
 
Stanislav Korotky:

Por favor, verifique por si mesmo o seguinte erro. O pedido tem um indicador especial minimalista cuja única tarefa é ler o estado da chave "capslock". É afixado no diário de bordo e no comentário.

A sequência de acções é a seguinte.

  1. Compilar indicador, colocá-lo no gráfico e certificar-se de que o 0 ("capslock" não está activado) está impresso.
  2. Mudar para ME, activar CapsLock e recompilar. Regresso ao terminal. Verifique os registos para se certificar de que o indicador antigo é descarregado e o novo é carregado. No entanto, o estado CapsLock ainda é devolvido como 0.
  3. Se removermos o indicador do gráfico e o carregarmos novamente, o capslock é reconhecido normalmente - exibe 1.

O que é o milagre? Ao reiniciar por compilação, algumas variáveis ambientais não são limpas ou outra coisa qualquer?

E se assim for?

void OnDeinit(const int reason)
{
  if (ind != INVALID_HANDLE)
  {
    IndicatorRelease(ind);
  }
}
 
Vitaly Muzichenko:

E que tal isto?

O que é que isto tem a ver com isto? Eu não crio um indicador a partir do código MQL. É articulado na tabela manualmente. Preciso dele para que no processo de desenvolvimento, quando a recompilação de programas ocorre frequentemente, não percam a sua funcionalidade devido a erros com o contexto/sistema de ambiente guardado. Neste momento, depois de recompilar, tenho de desinstalar e reinstalar um indutor para o fazer apanhar o estado actual do teclado.

 
Stanislav Korotky:

Quando se reinicia a compilação, será que algumas variáveis de ambiente não estão limpas ou algo assim?

Sim, é um insecto. Indicador ou EA - não faz qualquer diferença.