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 1031

 
artmedia70:
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.
Deve-se verificar se não se trata de uma chave de tempo, mas sim da eliminação do indicador do gráfico.
Obrigado!
 
artmedia70:
Pressione F3 no terminal, e apague manualmente esta variável. É criado uma vez e está localizado no ambiente - a EA 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 foi criada por este indicador antes?

Artem, por favor, ajude-me a entender o que está errado. Aqui https://www.mql5.com/ru/code/10237 é o código do Consultor Especialista que notifica (ou melhor, utilizado para notificar) sobre todos os eventos comerciais no terminal. Este código tem funcionado corretamente. Estive ausente do site por um longo tempo. Algumas mudanças no mql4 ocorreram e agora este código se compila com um erro, ao compilar as linhas de inicialização da matriz. Se você conseguir encontrar tempo, por favor, dê uma olhada.

Cumprimentos.

ps se alguém mais puder ver qual é o problema, eu apreciaria.

 
AlexeyVik:
Bem, eu não sei, talvez em C++, que eu nunca estudei, mas o mql é apenas tipo C. E, em segundo lugar, a dimensão da matriz não pode ser definida para uma variável, embora em seu exemplo MAX_NUM_ORDER possa não ser uma variável...
veja aqui sobre inicialização de array https://book.mql4.com/ru/variables/arrays
 
SunnYtheDreamer:

Uma linha e uma coluna da matriz são selecionadas, respectivamente, um determinado valor pode ser inserido ali, ou seja, a entrada deve ser como para uma variável comum, e para redefinir todos os valores

ArrayInitialize(Arr_Tickets, 0);



a referência do item terá o seguinte aspecto -Arr_Tickets[MAX_NUM_ORDER,2] =0;

Tenho-o aqui -Arr_Tickets[MAX_NUM_ORDER][2] = {0,0, ,0,0};

 
valenok2003:
ver aqui sobre a inicialização da matriz https://book.mql4.com/ru/variables/arrays
Sim, acho que a matriz é declarada globalmente, por isso estou ficando esperto...
 
valenok2003:

a referência do item terá o seguinte aspecto -Arr_Tickets[MAX_NUM_ORDER,2] =0;

Tenho-o escrito -Arr_Tickets[MAX_NUM_ORDER][2] = {0,0, ,0,0};

Arr_Tickets[MAX_NUM_ORDER,2] - referência a um elemento da matriz

Arr_Tickets[MAX_NUM_ORDER][2] - referência do elemento da matriz

O compilador não jura, no entanto você o escreve e espera por um valor em particular, não por outra coisa. Eu verifiquei especialmente.
E uma confirmação do mesmo a partir do link, que você deu a outro membro do fórum: a forma de especificar índices, quando cada um dos índices está entre parênteses rectos, também é aceitável

 
SunnYtheDreamer:

Arr_Tickets[MAX_NUM_ORDER,2] - referência a um elemento da matriz

Arr_Tickets[MAX_NUM_ORDER][2] - referência a um item de array

O compilador não jura, no entanto você o escreve e espera por um valor em particular, não por outra coisa. Eu verifiquei especialmente.
E uma confirmação do mesmo a partir do link, que você deu a outro membro do fórum: a forma de especificar índices, quando cada um dos índices está entre parênteses rectos, também é aceitável

Vou reformular a pergunta, - Costumava compilar e funcionar bem, alguém pode explicar o que está causando isso? Os códigos que não funcionavam não eram permitidos dentro da kodobase.

A propósito, o erro aparece nas linhas 53 e 54 do código. Na linha 54, o que está errado? E então, como iniciar um conjunto de cordas?

Procurei no livro didático, mas não encontrei nada sobre arrays de cordas, há informações apenas sobre arrays numéricos. Talvez eu não tenha procurado muito? Por favor, me forneça o link.

 
valenok2003:

Artem, por favor, me ajude a entender o que está errado. Aqui https://www.mql5.com/ru/code/10237 é o código do Consultor Especialista que notifica (ou melhor, utilizado para notificar) sobre todos os eventos comerciais no terminal. Este código tem funcionado corretamente. Estive ausente do site por um longo tempo. Algumas mudanças no mql4 ocorreram e agora este código se compila com um erro, ao compilar as linhas de inicialização da matriz. Se você conseguir encontrar tempo, por favor, dê uma olhada.

Cumprimentos.

ps se alguém olhar para qual é o problema, eu ficaria grato.

Primeira inserção #propriedade estrita no início do código e compilação.

Foi assim:

#property copyright "Copyright © valenok2003@mail.ru"
#property link      "http://bluedream.ucoz.ru"

fazer isso:

#property copyright "Copyright © valenok2003@mail.ru"
#property link      "http://bluedream.ucoz.ru"
#property strict

Depois disso, você já precisa olhar para os erros que ele dá.

 
artmedia70:

Primeiro, insira #propriedade rigorosa no início do código e compile.

foi assim:

fazer isso:

Depois disso, é preciso olhar para os erros que ele revela.

Inserido, nada mudou.

Suponha que eu possa substituir a linha Arr_Tickets[MAX_NUM_ORDER][2] = {0,0,,0,0}; eu também posso substituí-la porArrayInitialize(Arr_Tickets,0);

O que fazer com a string Arr_Order_Symbol[MAX_NUM_SYMBOL] = {",",};? Quando tento inicializar uma string array através deArrayInitialize(Arr_Order_Symbol,"), diz "meu você não entende...", não há nenhum objeto adequado para ser processado por esta função...

 
valenok2003:

Inserido, nada mudou.

Suponha que eu possa substituir a linha Arr_Tickets[MAX_NUM_ORDER][2] = {0,0,,0,0}; eu ainda posso substituí-la porArrayInitialize(Arr_Tickets,0);

O que fazer com a string Arr_Order_Symbol[MAX_NUM_SYMBOL] = {",",};? Quando tento inicializar uma string array através deArrayInitialize(Arr_Order_Symbol,"), diz "meu você não entende...", não há nenhum objeto adequado para ser processado por esta função...

Bem, zero esta matriz: ZeroMemory()
Razão: