confusão sobre o comportamento das variáveis - página 7

 

refez o Expert Advisor para o teste do fim de semana sem início()

1. ir para a tabela

2. parâmetros de mudança

3. O registro mostra que a corda (azul) recebe valores errôneos de uma variável externa, ao contrário do int (verde)

extern string ValueString = "DDD";
extern int    ValueInt    = 10;  
     
string tempString="val";
int    tempInt   =0;

bool   firsttime=true;
       
int init() {  
   if(firsttime) {     // значение присваевается тольо ОДИН раз   
      Print("иницилизация глобальных переменных");
      Print("tempString = ",tempString);
      Print("tempInt    = ",tempInt);
      
      Print("однократное присваение внешних значений глобальным переменным");
      tempString=ValueString; 
      tempInt   =ValueInt; 
      firsttime =false; 
      Print("ValueString: ",ValueString," < >","  tempString: ",  tempString);
      Print("ValueInt:     ",ValueInt,  " < >","  tempInt:      ",tempInt);
   } else {
      Print("меняем входные параметры");
      Print("ValueString: ",ValueString," < >","  tempString: ",  tempString);
      Print("ValueInt:     ",ValueInt,  " < >","  tempInt:      ",tempInt);
   }                          
}

int start() {}





Arquivos anexados:
testinit.mq4  1 kb
 
wlad:

refez o Expert Advisor para o teste do fim de semana sem início()

1. ir para a tabela

2. parâmetros de mudança

3. O registro mostra que a corda (azul) recebe valores errôneos de uma variável externa, ao contrário do int (verde)





E há de fato um bug....Variáveis definidas no nível externo não são iniciadas quando a EA é reiniciada, mas pegue algumas porcarias de reinícios anteriores...Graças a Wlad por sua paciência)))))
 

E há um tema aqui também... um indicador simples no qual há

#indicador de propriedade_cores1 Vermelho
и

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,3,Aqua);

A cor permanece vermelha com sua espessura... Até que você apague à força o indicador e o reinicie, ou seja, a simples recompilação não ajuda. Acontece que os parâmetros são puxados de alguns troncos.... Mentira, é claro, mas a wlad chegou a isso))))

 
Aparentemente está relacionado, notei por muito tempo, às vezes você muda o código EA, compila-o, mas o código anterior funciona, até que você recarregue o terminal. Mesmo reiniciar o Expert Advisor não ajuda. Mas este nem sempre é o caso, por isso, vou com calma. Bem, ele está lá... Não parece me incomodar muito.
 

Sim,

seria bom se os desenvolvedores pudessem consertá-lo

ou é inútil escrever aqui e ir direto para o help desk?

A propósito, aonde posso ir?

 
Sepulca:
Э... me parabenizar, sou meio avô, não realmente, mas as crianças admitem......))))

Parabéns! Quantos anos tem o avô?
 

Favor informar

Como posso entrar em contato com o calibrador?

não pode ser encontrado em nenhum lugar

 
wlad:

Favor informar

Como posso contatar o paquímetro?

não pode ser encontrado em nenhum lugar

Você não pode fazer isso diretamente do quarto fórum. Você pode, a partir do quinto fórum. Veja o link "Service Desk" em seu perfil mql5.com (à esquerda, na coluna com a lista de serviços de perfil).
 
MetaDriver:
Você não pode fazer isso diretamente do quarto fórum. Você pode, a partir do quinto fórum. Veja o link "Service Desk" em seu perfil mql5.com (à esquerda, na coluna com a lista de serviços de perfil).
Obrigado, vou dar uma olhada.
 
wlad:

refez o Expert Advisor para o teste do fim de semana sem início()

1. ir para a tabela

2. parâmetros de mudança

3. O registro mostra que a corda (azul) recebe valores errôneos de uma variável externa, ao contrário do int (verde)



Ela não é reproduzível nonovo compilador. Ninguém jamais mudará o antigo.

extern string ValueString = "DDD";
extern int    ValueInt    = 10;  
     
string tempString="val";
int    tempInt   =0;

bool   firsttime=true;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(firsttime) 
     {     // значение присваевается тольо ОДИН раз   
      Print("иницилизация глобальных переменных");
      Print("tempString = ",tempString);
      Print("tempInt    = ",tempInt);

      Print("однократное присваение внешних значений глобальным переменным");
      tempString=ValueString;
      tempInt   =ValueInt;
      firsttime =false;
      Print("ValueString: ",ValueString," < >","  tempString: ",tempString);
      Print("ValueInt:     ",ValueInt," < >","  tempInt:      ",tempInt);
        } else {
      Print("меняем входные параметры");
      Print("ValueString: ",ValueString," < >","  tempString: ",tempString);
      Print("ValueInt:     ",ValueInt," < >","  tempInt:      ",tempInt);
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+
Razão: