Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 648

 
O problema parece ser que quando você muda o prazo, o Expert Advisor é pré-inicializado, o que leva a um monte de variáveis vazias. E se eles estiverem vazios, significa que supostamente não há negócios e que temos que abrir novos negócios.
 
intrade:
O problema parece ser que quando você muda o prazo, o Expert Advisor é pré-inicializado, o que leva a um monte de variáveis vazias. E se eles estiverem vazios, significa que supostamente não há negócios e que temos que abrir novos negócios.

Portanto, não crie variáveis vazias. E verifique o que já foi aberto pelo símbolo, pelo mágico, e se necessário - por prazo. Mas não há telepatas aqui, não há nada a dizer sem o código.
 
intrade:
O problema parece ser que quando você muda o prazo, o Expert Advisor é pré-inicializado, o que leva a um monte de variáveis vazias. E se eles estiverem vazios, significa que supostamente não há negócios e que temos que abrir novos negócios.

A questão é por que precisamos mudar o prazo quando o Expert Advisor está em funcionamento? Você deve definir um tabu - coloque o EA, esqueça o gráfico, se precisar ver alguma coisa, abra um novo gráfico e faça com ele o que quiser.
 
intrade:
O problema parece ser que quando você muda o cronograma, o Expert Advisor se pré-inicia, o que leva a uma série de variáveis vazias. E se eles estiverem vazios, significa que supostamente não há negócios e que temos que abrir novos.


Use temporizadores como, por exemplo:

iClose

Retorna o preço de fechamento da barra (especificado pelo parâmetro de deslocamento) do gráfico correspondente.

duploiClose(
símbolo de corda,// símbolo
intprazo,// período
intturno// turno
);

E mude o cronograma o quanto quiser! Veja no Doc, está tudo lá para você!

 
As impressões atrasam a otimização da EA ou não são processadas?
 
ClanVi:
As impressões desaceleram a otimização da EA ou não são processadas?

Sim, qualquer linha de código leva tempo de CPU, e o código que faz mensagens ou funciona com objetos gráficos retarda consideravelmente a execução do programa...
 
ClanVi:
As impressões desaceleram a otimização da EA ou não são tratadas?


Isto é muito fácil de evitar! Quando o código tiver sido testado no testador, coloque-o antes de Imprimir ou Comentar

  if(!IsOptimization() || !IsTesting()) 

E não vai costurar!

 
VOLDEMAR:

Sim, qualquer linha de código leva tempo de CPU e código que faz as mensagens ou funciona com objetos gráficos atrasa consideravelmente a execução do programa...
Os objetos gráficos são ignorados no otimizador e no testador se não no modo visual, mas as impressões são interessantes para mim...
 
Boa tarde a todos. Cavalheiros aconselham o que fazer com o erro "Erro 6" nenhuma conexão com o servidor, mas os ticks vão e tudo está como deveria.... Corujas no teste... hoje me levantei e aqui está..... há 4 corujas 5M 15M 30M 1H tal erro foi jogado fora em logs em M5 M15 M30 todos em horários e preços diferentes.... Quem tem experiência com este tipo de coisa, por favor, ajude. Obrigado.
 

O depurador não funciona - o que está errado?

Os melhores votos a todos os membros do fórum!

Ninguém respondeu à minha pergunta colocada de volta na página 644. Devo ter perguntado errado, por isso vou perguntar novamente. Portanto,

Metatrader Bild 646, Editor Bild 934. Aqui está um indicador simples:

class CDebuggerFix { } ExtDebuggerFix; //Это заклинание, исправляющее известный баг.
void start()                     
  {
   int i=10,                           
       k3;
   string k2;
  
     while(i>=1)                      
     {
      k2=Symbol();
    
      if (k2=="EURUSD") k3=3;
      if (k2=="USDCHF") k3=4;
      if ((k2=="EURUSD"||k2=="USDCHF")!=True) k3=5;
       Alert("k2=",k2,"\n","k3=",k3);
       
          i--;                         
      }
  return;
  }

Eu o executo no gráfico EURUSD, M1, e isto é o que eu recebo:


Ou seja, tudo é como deveria ser.

E agora eu faço um ponto de parada antes de Alertar e executar o Debugger:


O gráfico USDCHF,H1 aparece. De onde ele vem? Somente aEURUSD ,M1 estava aberta.

Pressiono OK e é isto que vejo:


Isto é, o indicador retira dados exatamente deste USDCHF,H1. Qual é o problema aqui?

A segunda pergunta. O Editor não coloca o script escrito na pasta Scripts mas na pasta MQL4 e coloca o arquivo compilado lá também. Tenho que arrastar e soltar manualmente o código fonte para a pasta Scripts, depois compilá-lo e o script aparecerá no Navigator somente então. Os indicadores não têm esse problema, eles vão direto para sua pasta. Estou fazendo algo errado ou o Editor está cometendo um erro?

Boa sorte a quem quer que me responda.