Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1237

 
ANDREY:

Entendo corretamente, que agora em mql4 as arrays devem ser inicializadas apenas usando a função

Não necessariamente, mas é melhor verificar tais questões com scripts de teste:

void OnStart()
{
   int arr_1[10] = {123};
   int arr_2[10] = {0,1,2,3,4,5,6,7,8,9};
   int arr_3[10];
   ArrayInitialize(arr_3,777);
   ArrayPrint(arr_1);   // 123   0   0   0   0   0   0   0   0   0
   ArrayPrint(arr_2);   // 0 1 2 3 4 5 6 7 8 9
   ArrayPrint(arr_3);   // 777 777 777 777 777 777 777 777 777 777
}
ANDREY:

O tutorial de Kovalev diz que você pode inicializar uma matriz simultaneamente com sua declaração (como eu fiz), sem nenhuma função especial.

Sua variante em meu exemplo arr_1 - para que você possa inicializá-la com um valor nulo! - e se outro, então o primeiro elemento da matriz será um valor de inicialização, e todo o resto será nulo.

Acho que o tutorial aconselhou você a rubricar como no meu exemplo arr_2

 

Boa tarde.

Você precisa visualizar em sua EA os valores do indicador utilizado nela. Não é preciso desenhá-la exatamente como ela parece. Basta marcar o valor do ponto do indicador em cada candelabro. Eu tentei fazê-lo através do objeto OBJ_ARROW e descobri que o ponto de ancoragem não pode estar no centro do objeto. É maior ou menor do que o objeto. Como resultado, os pontos não coincidem com os valores reais do indicador. Você pode sugerir uma solução para este problema?

exibição do indicador via OBJ_ARROW

 
Oleg Remizov:

Boa tarde.

Você precisa visualizar em sua EA os valores do indicador utilizado nela. Não é preciso desenhá-la exatamente como ela parece. É suficiente para marcar o valor do ponto do indicador em cada castiçal. Tentei fazer isso através do objeto OBJ_ARROW e descobri que o ponto de ancoragem não pode estar no centro do objeto. É maior ou menor do que o objeto. Como resultado, os pontos não coincidem com os valores reais do indicador. Sugerir uma solução para este problema.

Crie um modelo com todos os indicadores necessários e salve-o com o testador de nomes ou com o nome do Expert Advisor.

 
Alexey Viktorov:

Crie um modelo com todos os indicadores desejados e salve-o com o testador de nomes ou com o nome da EA.

Infelizmente, o modelo não vai funcionar para mim. É necessário ativar/desativar a função para exibir os indicadores nas configurações, e o desenho deve ser feito diretamente da EA. A EA deve poder ser transferida em um único arquivo.

 
Oleg Remizov:

Infelizmente, o modelo não vai funcionar para mim. A função de exibição do indicador deve ser ligada/desligada nos ajustes, e o desenho deve ser feito diretamente da EA. Quero ser capaz de transferir a EA em um arquivo.

Estes são desejos estranhos. Se você quiser que seu EA funcione, apenas trabalhe, então é suficiente anexá-lo como um recurso e ele não precisará de nenhuma exibição e funcionará sem o arquivo do indicador. E se você quiser exatamente a exibição, qual é o objetivo de não dar o arquivo indicador?

 
Alexey Viktorov:

Este é um pedido estranho. Se você quiser que o EA funcione, basta trabalhar, então é suficiente anexá-lo como um recurso e ele funcionará sem o arquivo indicador. Se você quer ver o mapeamento exato, qual é o objetivo de não dar o arquivo indicador?

Não é que eu não queira dar um arquivo indicador. Um Expert Advisor que requer arquivos adicionais não pode ser publicado no mercado. Na verdade, é conveniente ter tudo o que você precisa para seu trabalho em um único arquivo.

Além disso, nem sempre preciso mostrar todos os amortecedores indicadores se houver alguns deles. Por exemplo, eu tenho um indicador para Ishimoku. Ela tem 5 linhas, mas apenas uma delas deve ser selecionada para uso em um Expert Advisor. Quero exibir apenas um deles em vez de todo o indicador.

 
Igor Makanu:

não necessariamente, mas é melhor verificar tais questões com scripts de teste:

Sua variante em meu exemplo arr_1 - para que você possa inicializar com um valor nulo! - e se o outro, então o primeiro elemento da matriz será um valor de inicialização e todos os outros serão nulos.

Acho que o tutorial aconselhou você a inicializar como no meu exemplo arr_2

Obrigado pelas informações valiosas para mim.

 
Oleg Remizov:

Não é que eu não queira dar um arquivo indicador. Um Expert Advisor que requer arquivos adicionais não pode ser publicado no mercado. E em geral, é conveniente ter tudo o que você precisa para trabalhar em um único arquivo.

Além disso, nem sempre preciso mostrar todos os amortecedores indicadores se houver alguns deles. Por exemplo, eu tenho um indicador para Ishimoku. Ela tem 5 linhas, mas apenas uma delas deve ser selecionada para uso em um Expert Advisor. Este é o único que queremos exibir e não o indicador completo.

Bem, os indicadores são utilizados como um recurso para o Mercado. Mas para que o usuário precisa disso? Ninguém está interessado nos princípios pelos quais as posições são abertas. Se desejar, você pode descrever toda a estratégia na descrição. Alguém precisa disso?

 
Igor Makanu:


Acho que o livro didático o aconselhou a inicializar como no meu exemplo arr_2

Aqui está o que o livro de Kovalev diz sobre a inicialização de uma matriz ao mesmo tempo em que a declara

8.4.4 Inicialização da matriz

Uma matriz só pode ser inicializada com constantes do tipo apropriado. As matrizes unidimensionais e multidimensionais são inicializadas com uma seqüência unidimensional de constantes listadas separadas por vírgulas. A seqüência é encerrada por um aparelho de amarrar:

int Mas_i[3][4] = { 0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22, 23 }

double Mas_d[2][3] = { 0,1, 0,2, -0,3, -10,2, 1,5, 7,0 };

bool Mas_b[5] = { falso, verdadeiro, falso, verdadeiro, verdadeiro }

Uma ou mais constantes podem ser puladas na seqüência inicializadora.

Parece-me do livro didático que quando uma matriz é declarada, a matriz completa é inicializada com todos os dados, e não apenas com o primeiro elemento da matriz.
Se eu entendi mal o tutorial, gostaria que me dissesse o que eu entendi mal.

 
Alexey Viktorov:

Bem, é isso que eles utilizam os indicadores como um recurso para o mercado. Mas por que os usuários precisam deles? Ninguém está interessado nos princípios pelos quais as posições são abertas. Se desejar, você pode descrever toda a estratégia na descrição. Alguém precisa disso?

E de acordo com minhas observações, os usuários gostam quando o Expert Advisor exibe várias informações na tela: desenha setas, linhas, canais, etc. para demonstrar a vigorosa atividade da "inteligência artificial").

De acordo com os indicadores, o Consultor Especialista fornece o rastreamento. Quero visualizar este processo para que o usuário possa ver a linha tracejada com o StopLoss.