Variáveis globais versus FileWrite - página 3

 

@deysmacro

Mas eu ainda estou lutando para ver qualquer razão por que as pessoas não querem usar ChartID()? Será que às vezes isso muda? Será que às vezes se duplica?

Caso contrário, por que eu reinventaria a roda adicionando linhas de código em vez de DoubleToStr(ChartID(),0)?

 

@angevoyageur

Mais uma vez, obrigado pela resposta.

Peço desculpas por não ter sido claro para todos.

Entendo o que são números mágicos, e entendo o que o ChartID() faz.

Estou apenas tentando encontrar a melhor maneira de criar um nome GV único que não será alterado, pode ser recuperado após um reinício de terminal e não precisa ser conhecido por nenhuma outra instância da EA.

ChartID() parece se encaixar na conta, mas as pessoas continuam sugerindo maneiras muito mais complicadas de fazer isso. É por isso que estou confuso.

 
toast:

Mais uma vez, obrigado pela resposta.

Peço desculpas por não ter sido claro para todos.

Entendo o que são números mágicos, e entendo o que o ChartID() faz.

Estou apenas tentando encontrar a melhor maneira de criar um nome GV único que não será alterado, pode ser recuperado após um reinício de terminal e não precisa ser conhecido por nenhuma outra instância da EA.

ChartID() parece se encaixar na conta, mas as pessoas continuam sugerindo maneiras muito mais complicadas de fazer isso. É por isso que estou confuso.


Tenha um gerador de nomes para GV e depois verifique se o nome único GV existia ou não. Isso é tudo.

Quando você usa ChartID(), você não está no controle, mas usando o gerador de nomes, você está no controle.

Se você ainda achar que o uso de ChartID() é bom, então, por favor, faça isso.

Estou colocando um ponto aqui.

 

Bem, obrigado pela sua ajuda de qualquer maneira.

Se eu gerasse o nome para o GV, como ele seria recuperado após um reinício do terminal? Teria que estar em outro GV, ou deduzido de entradas do usuário que podem ser alteradas...

Acho que irei com ChartID().

Todas essas outras opções parecem estar escrevendo código por causa disso.

Na ausência de qualquer razão real pela qual ChartID() é uma má idéia, eu vou ficar com ela.

 
toast:

Bem, obrigado pela sua ajuda de qualquer maneira.

Se eu gerasse o nome para o GV, como ele seria recuperado após um reinício do terminal? Teria que estar em outro GV, ou deduzido de entradas do usuário que podem ser alteradas...

Acho que irei com ChartID().

Todas essas outras opções parecem estar escrevendo código por causa disso.

Na ausência de qualquer razão real pela qual ChartID() é uma má idéia, eu vou ficar com ela.

ChartID() parece uma boa idéia para criar um nome único, você só tem que verificar se este ID é persistente no reinício do MT4. Eu nunca verifiquei isso.

Avise-nos.

 
angevoyageur:

ChartID() parece uma boa idéia para criar um nome único, você só tem que verificar se este ID é persistente em todo o reinício do MT4. Eu nunca verifiquei isso.

Avise-nos.



Sim, é. Eu verifiquei isso hoje cedo.

Primeira execução:

Depois do reinício do terminal:

 
se a tabela foi fechada e reaberta você perdeu sua tabela anterior()
 

Sim, se você tiver fechado essa tabela em particular (mantendo o resto do terminal aberto), a identificação é perdida.

Mas se a carta for fechada porque todo o terminal foi fechado, o ID permanecerá o mesmo quando o terminal for reaberto.

 

eu usaria o número de conta ou um número derivado dele. Eu não confiaria no ChartID, e se o usuário tiver que reinstalar o MT4 ou fechar acidentalmente o gráfico enquanto as negociações são abertas. O número da conta que tem as negociações abertas da EA é robusto.

 
SDC:

eu usaria o número de conta ou um número derivado dele. Eu não confiaria no ChartID, e se o usuário tiver que reinstalar o MT4 ou fechar acidentalmente o gráfico enquanto as negociações são abertas. O número da conta que tem as negociações abertas da EA é robusto.


Mas já disse para brindar para criar um gerador de nomes único.