Variáveis globais versus FileWrite - página 2

 
toast:

Obrigado pela resposta.

Sim, eu concordo.

Mas o problema será o seguinte:

Um comércio é aberto com o número mágico 123.

Ao administrar este comércio, a EA estará procurando o GV com o nome 123xxxxxx

Agora o usuário muda a configuração do EA para número mágico para 789, enquanto o comércio ainda está ativo.

Agora a EA está procurando GV com o nome 789xxxxx (que não existe).

Essencialmente, estou procurando por uma convenção de nomes GV que não pode ser modificada pela entrada do usuário.


Não esconda o número mágico.

A maneira simples é dizer a seus usuários o que é o número mágico, eles saberão como lidar com ele.

 
angevoyageur:
Não permita a mudança do número mágico se ainda houver negócios em aberto com magia antiga.


Tal como quando não há ordens em aberto, então a mudança terá efeito. Se ainda houver negócios em aberto, o usuário ainda pode mudar, mas não terá efeito.


Essa lógica pode ser feita de forma bastante fácil.

 

Obrigado pela resposta.

Acho que isso é possível, mas um pouco confuso? A única maneira que posso pensar em fazer isso é fazer um loop através das ordens e verificar que não há ordens em aberto. Se este for o caso, então aplique a entrada no MagicNumber à entrada no NewMagic.

Ou há uma maneira mais fácil?

O ChartID() parece muito mais fácil, há algum problema em usá-lo?

 

Acho que eu estava postando ao mesmo tempo que alguns outros...

@fxMeter - se eles quiserem usar o EA em vários gráficos, então eu preciso de alguma forma para continuar mudando o número mágico sem correr para duplicatas. O que nos leva de volta aos GVs novamente.

@deysmacro - acho que estávamos pensando na mesma solução

Mas novamente - tudo isso parece dar muito trabalho se o ChartID() puder ser usado?

 
toast:

Acho que eu estava postando ao mesmo tempo que alguns outros...

@fxMeter - se eles quiserem usar o EA em vários gráficos, então eu preciso de alguma forma para continuar mudando o número mágico sem correr para duplicatas. O que nos leva de volta aos GVs novamente.

@deysmacro - acho que estávamos pensando na mesma solução

Mas novamente - tudo isso parece dar muito trabalho se o ChartID() puder ser usado?


Muito trabalho no início. Depois pouco trabalho a fazer, uma vez implementado.

A codificação é sempre assim :)

 
Concordo que pode ser feito, mas mais uma vez me pergunto por que as pessoas são contra o uso de ChartID()? Há algo de errado com ele?
 
toast:
Concordo que pode ser feito, mas mais uma vez me pergunto por que as pessoas são contra o uso de ChartID()? Há algo de errado com ele?

https://forum.mql4.com/62102
 

Obrigado pelo link, mas não creio que esse problema se aplique a mim - não estou olhando para comunicar o ChartID a nenhuma outra instância da EA.

Só quero saber se o ChartID() é um identificador confiável e único do gráfico atual a ser usado como nome GV?

 
toast:

Obrigado pelo link, mas não creio que esse problema se aplique a mim - não estou olhando para comunicar o ChartID a nenhuma outra instância da EA.

Só quero saber se o ChartID() é um identificador confiável e único do gráfico atual a ser usado como nome GV?


É melhor ter um identificador incorporado em sua ea. A partir daí você pode fazer muitas coisas e isso é confiável.
 
toast:

Obrigado pelo link, mas não creio que esse problema se aplique a mim - não estou olhando para comunicar o ChartID a nenhuma outra instância da EA.

Só quero saber se o ChartID() é um identificador confiável e único do gráfico atual a ser usado como nome GV?


número mágico e ChartID() são coisas totalmente diferentes. a magia é registrada com seu comércio no lado do servidor. ChartID() é apenas para identificar um gráfico em sua instância atual do terminal.