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 1030

 
abeiks:

Olá.

Atualmente, estou tentando descobrir as variáveis globais. Agora há um problema e eu não consigo resolvê-lo. Se eu apagar uma variável global do indicador, o Expert Advisor continua obtendo essa variável. Como você resolve este problema?

como apagá-lo?

 
valenok2003:

Vocês podem me dizer qual é o erro nesta linha? antes compilado sem mensagens de erro, agora - '{' - expressão esperada

Obrigado de antemão

Arr_Tickets[MAX_NUM_ORDER][2] = {0,0, ,0,0};


Conte as vírgulas.
 
AlexeyVik:

Conte as vírgulas.
As vírgulas estão corretas, é a notação de que não importa quantos elementos a matriz contenha, todos eles serão preenchidos com zeros.
 
abeiks:

Olá.

Atualmente, estou tentando descobrir as variáveis globais. Agora há um problema e eu não consigo resolvê-lo. Se eu remover uma variável global do indicador, o Expert Advisor continua obtendo essa variável. Como posso resolver este problema?

Pressione F3 no terminal e apague manualmente esta variável. Ele é criado uma vez e está localizado no ambiente - o Expert Advisor o lê de lá. Ou talvez eu não o tenha entendido corretamente? Você acabou de apagar a criação de uma variável global do terminal no próprio código indicador, mas ela já foi criada por este indicador?
 
artmedia70:
Pressione F3 no terminal e apague manualmente esta variável. Ela é criada uma vez, e está no ambiente - é de onde a EA a lê.
Obrigado! Eu não sabia.
Como posso verificar e excluir isto no próprio Expert Advisor? Por exemplo, se eu fechar o indicador por engano, a EA sempre receberá essa última variável e se houver um sinal para abrir posições...
 
valenok2003:

como apagar?


Eu fiz isso, mas não está certo:

 if (!GlobalVariableCheck("Test_1"))
GlobalVariableDel("Test_1"); 
 
valenok2003:
As vírgulas estão corretas, é a anotação de que não importa quantos elementos uma matriz contenha, tudo será preenchido com zeros.
Bem, eu não sei, talvez em C++, que eu nunca estudei, mas o mql é apenas tipo C. E em segundo lugar, você não pode definir a dimensão da matriz para uma variável, embora em seu exemplo MAX_NUM_ORDER possa não ser uma variável...
 
valenok2003:

Vocês podem me dizer qual é o erro nesta linha? antes compilado sem mensagens de erro, agora - '{' - expressão esperada

Obrigado de antemão

Arr_Tickets[MAX_NUM_ORDER][2] = {0,0, ,0,0};

Uma linha e uma coluna da matriz são selecionadas, respectivamente, podemos escrever ali um valor em particular, ou seja, a entrada deve ser a mesma que para uma variável comum, mas para reiniciar todos os valores

ArrayInitialize(Arr_Tickets, 0);

 
abeiks:

Eu fiz isso, mas não está certo:

if (!GlobalVariableCheck("Test_1"))
GlobalVariableDel("Test_1"); 

O que diz?

Se não houver uma variável global chamada Test_1, exclua-a...

 
abeiks:
Obrigado! Eu não sabia.
E como fazer tal verificação e excluí-la no próprio Expert Advisor? Por exemplo, se eu fechar acidentalmente o indicador, o Expert Advisor receberá esta última variável o tempo todo e se houver um sinal para abrir posições lá...
Se a eliminação não intencional do código deve eliminar as variáveis globais criadas por este código, a eliminação destas variáveis globais deve ser prescrita na função OnDeinit() do código.
Ao mesmo tempo, você deve verificar se não se trata de uma mudança de horário, mas sim da eliminação do indicador do gráfico.
Razão: