Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 504

 
niktron:

¡Hola!

¿Puede decirme cómo hacer una condición -

si hay suficiente margen libre para abrir una posición?

(Para que no aparezca ese error 131)... ¡Gracias!

Hay que comprobar el volumen de posición permitido, no el margen. El error 131 indica un lote incorrecto
 

Necesidad de encontrar el valor máximo del indicador a lo largo de 15 períodos. Buscar en los bares no es un problema, pero ¿en un indicador?

Asumiré que para esto necesitas hacer un bucle de comprobación, declarar un array y encontrar este valor en él. El bucle está hecho, pero no sé cómo declarar el array.

¿Y luego usar la función ArrayMaximum para encontrar el valor? ¿Pueden decirme cómo llevar a cabo esta tarea?

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:

¡Hola!

¿Puede decirme cómo hacer una condición -

si hay suficiente margen libre para abrir una posición?

(Para que no aparezca ese error 131)... ¡Gracias!


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

Necesidad de encontrar el valor máximo del indicador a lo largo de 15 períodos. Buscar en los bares no es un problema, pero ¿en un indicador?

Asumiré que para esto necesitas hacer un bucle de comprobación, declarar un array y encontrar este valor en él. El bucle está hecho, pero no sé cómo declarar el array.

Y luego, usaré la función ArrayMaximum para encontrar el valor. Por favor, aconséjeme cómo completar esta tarea.

No sólo necesitas un array, sino un buffer de indicadores. En el bucle principal, llene el buffer con los valores del indicador y utilice ArrayMaximum() a este buffer.
 
Integer:
No sólo necesitas un array, sino un buffer de indicadores. En el bucle principal, llene el buffer con los valores de los indicadores y utilice ArrayMaximum() para este buffer.

La búsqueda es necesaria para el Asesor Experto. ¿Funcionará un búfer indicador con él?
 
Forexman77:
La búsqueda es necesaria para el Asesor Experto. ¿Funcionará un búfer indicador con él?


No hay un buffer de indicadores en el EA.

Si en el EA, entonces hay dos opciones:

1. Haz todo en el indicador, el EA llama al indicador y obtiene un valor listo.

2. Haga un bucle en el Asesor Experto. Pero en este caso, la matriz no es necesaria en absoluto.

val=0;

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

    ind=iMA(...,i);

   if(ind>val) val=ind;

}
 
Integer:


El Asesor Experto no tiene un buffer de indicadores.

Si en el EA, entonces hay dos opciones:

1. Haz todo en el indicador, el EA llama al indicador y obtiene un valor listo.

2. Haga un bucle en el Asesor Experto. Pero en este caso, la matriz no es necesaria en absoluto.

Se necesitará una matriz. Para encontrar el mínimo. El mínimo no se encontrará de esta manera.
 
Forexman77:
Se necesitará una matriz. Para encontrar el mínimo. El mínimo no se encontrará de esta manera.



¿Así que lo sabe exactamente y está absolutamente seguro? ¿No es necesario refutar su opinión? ¿Prefieres quedarte con él?

 
niktron:

¡Hola!

¿Puede decirme cómo hacer una condición -

si hay suficiente margen libre para abrir una posición?

(Para que no aparezca ese error 131)... ¡Gracias!

¿tal vez el lote está mal si 131?
 
Integer:



¿Así que lo sabe con certeza y está absolutamente seguro? ¿No es necesario refutar su opinión? ¿Preferirías quedarte con él?

¡Claro que sí! Bien, ¿cómo se aplica esta construcción para encontrar el mínimo? No me entra en la cabeza)
Y quiero aprender a declarar un array. Lo intenté de esta manera:

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);
  }
Sale -1.
Razón de la queja: