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 504

 
niktron:

Olá!

Você pode me dizer como fazer uma condição -

se houver margem livre suficiente para abrir uma posição?

(Para que o erro 131 não apareça)...Obrigado!

Você precisa verificar o volume de posição permitido, não a margem. O 131º erro indica um lote incorreto
 

Necessidade de encontrar o valor máximo do indicador ao longo de 15 períodos. A busca em barras não é um problema, mas em um indicador?

Vou assumir que para isto você precisa fazer um loop de verificação, declarar um array e encontrar este valor nele. O loop está feito, mas eu não sei como declarar a matriz.

E então use a função ArrayMaximum para encontrar o valor? Você pode me dizer como realizar esta tarefa?

for(int i=0;i<=15;i++)
{
double indicator[];
ArrayInitialize(indicator,0);
double MA_2_t=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,i); 
}
 
niktron:

Olá!

Você pode me dizer como fazer uma condição -

se houver margem livre suficiente para abrir uma posição?

(Para que o erro 131 não apareça)...Obrigado!


https://docs.mql4.com/ru/account/accountfreemargincheck
 
Forexman77:

Necessidade de encontrar o valor máximo do indicador ao longo de 15 períodos. A busca em barras não é um problema, mas em um indicador?

Vou assumir que para isto você precisa fazer um loop de verificação, declarar um array e encontrar este valor nele. O loop está feito, mas eu não sei como declarar a matriz.

E então, vou usar a função ArrayMaximum para encontrar o valor. Por favor, informe como completar esta tarefa.

Você não precisa apenas de uma matriz, mas de um buffer indicador. No laço principal, preencha o buffer com valores indicadores e use ArrayMaximum() para este buffer.
 
Integer:
Você não precisa apenas de uma matriz, mas de um buffer indicador. No laço principal, preencha o buffer com valores indicadores e use ArrayMaximum() para este buffer.

A busca é necessária para o Expert Advisor. Um buffer indicador funcionará com ele?
 
Forexman77:
A busca é necessária para o Expert Advisor. Um buffer indicador funcionará com ele?


Não há um tampão indicador no EA.

Se na EA, então há duas opções:

1. Faça tudo no indicador, o EA chama o indicador e obtém um valor pronto.

2. Faça um loop no Expert Advisor. Mas, neste caso, o conjunto não é de todo necessário.

val=0;

for(i=1;i<=15;i++) {

    ind=iMA(...,i);

   if(ind>val) val=ind;

}
 
Integer:


O Expert Advisor não possui um buffer de indicadores.

Se na EA, então há duas opções:

1. Faça tudo no indicador, o EA chama o indicador e obtém um valor pronto.

2. Faça um loop no Expert Advisor. Mas, neste caso, o conjunto não é de todo necessário.

Será necessária uma matriz. Para encontrar o mínimo. O mínimo não será encontrado desta forma.
 
Forexman77:
Será necessária uma matriz. Para encontrar o mínimo. O mínimo não será encontrado desta forma.



Então você sabe exatamente e tem certeza absoluta? Não há necessidade de refutar sua opinião? Você preferiria ficar com ele?

 
niktron:

Olá!

Você pode me dizer como fazer uma condição -

se houver margem livre suficiente para abrir uma posição?

(Para que o erro 131 não apareça)...Obrigado!

talvez o lote esteja errado se 131?
 
Integer:



Então você sabe com certeza e tem certeza absoluta? Não há necessidade de refutar sua opinião? Você preferiria ficar por aqui?

Claro que sim! Bem, como você aplica esta construção para encontrar o mínimo? Eu não consigo entender)
E eu quero aprender como declarar uma matriz. Eu tentei desta maneira:

double massiv[];
int start()
  {
//----
for(int i=0;i<=33;i++)
{
double ind=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,i); 
massiv[33]=ind;
double minValueidx=ArrayMinimum(massiv,33,0);
Alert("minValueidx=",minValueidx);
}
//----
   return(0);
  }
Sai -1.