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

 
¿Hay alguna manera de comprobar desde el código en qué modo se está ejecutando la prueba -
todos los ticks, los precios abiertos o los puntos de prueba?
 
¿Por qué no puedo añadir amigos?
 
Hola. Estoy tratando de aprender el alojamiento compartido siguiendo las instrucciones, pero el EA no se abre.
 

¿Puede decirme cuál de los pilares del AT clásico es el autor de este cuadro?

Esta imagen está en"Stock Market Fundamentals " de Elder. De hecho, me interesa la misma imagen, pero con las CONVERGENCIAS, si es que existen.


 

Ayuda, por favor. Un simple script y no funciona. No puedo entender por qué.

int awd1[];
void OnStart()
  {
   for(int i=0;i<=5;i++)
   {
   awd1[i]=i+10;
   }
   Alert("первый=");
  }

El bucle tiene que iterar 6 veces. En cada iteración, se debe asignar un valor al array awd1. Una vez terminado el bucle, debería aparecer una ventana con la entrada "first=". Pero no aparece. ¿Qué ocurre?

 
silachara:

Ayuda, por favor. Un simple script y no funciona. No puedo entender por qué.

int awd1[];
void OnStart()
  {
   for(int i=0;i<=5;i++)
   {
   awd1[i]=i+10;
   }
   Alert("первый=");
  }

El bucle tiene que desplazarse 6 veces. En cada iteración, se debe asignar un valor al array awd1. Cuando el bucle termine, debería aparecer un cuadro con la entrada "first=". Pero no aparece. ¿Qué ocurre?

Esto también ayudará a deshacerse de los siguientes mensajes en la terminal: array out of range in ...:

#property strict
#define  ARRAY_SIZE  6
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 int j=0, awd1[];
   ArrayResize(awd1,ARRAY_SIZE,ARRAY_SIZE+1);
//---
   for(int i=0;i<ARRAY_SIZE;i++)
     {
      j=i+10;
      //j=j+10;//или, к примеру, такой вариант вместо строки выше, чтобы вы посмотрели, что присваиваться будет
      awd1[i]=j;
     }
   Alert("первый = ");
  }
//+------------------------------------------------------------------+


P./S.: Aquí hay una variante con un cheque:

#property strict
#define  ARRAY_SIZE  6
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 int j=0, count=0, awd1[];
   ArrayResize(awd1,ARRAY_SIZE,ARRAY_SIZE+1);
//---
   for(int i=0;i<ARRAY_SIZE;i++)
     {
      j=i+10;
      //j=j+10;//или, к примеру, такой вариант вместо строки выше, чтобы вы посмотрели, что присваиваться будет
      awd1[i]=j;
      count++;
      Print("count = ",count,", awd1[",i,"] = ",awd1[i],", j = ",j);
     }
   Alert("первый = ");
  }
//+------------------------------------------------------------------+
 
silachara:
Se han corregido ligeramente los códigos anteriores para que no salga el mismo valor awd1[i].
 
DiPach:
He corregido ligeramente los códigos anteriores para evitar el mismo valor awd1[i].

Gracias.

¿Así que había que declarar el array especificando el número de celdas que contiene? ¿Apareció este requisito después de que MT4 pasara a la compilación 600? ¿O era así antes?

Y tengo un problema más: no encuentro el archivo donde se escribe la información de Print(). Por favor, aconséjeme el camino. He buscado en todos los directorios de MT4, pero no lo he encontrado.

 
silachara:

Gracias.

¿Así que había que declarar el array especificando el número de celdas que contiene? ¿Apareció este requisito después de que MT4 pasara a la compilación 600? ¿O era así antes?

La función para establecer el tamaño de una matriz dinámica ArrayResize también existía antes de la compilación 600.

Y así... con el lenguaje MQL4 actualizado el compilador se ha vuelto más estricto. Si lo desea, puede ver la interesante información "de primera mano", en lugar de la narración con posible distorsión intencionada, incluida la presentación incompleta, aquí. Puedes verlo en la "Tabla de diferencias entre compiladores" de los lenguajes MQL4 anteriores y actualizados (la tabla está al final de la primera página de este hilo) o utilizar una búsqueda. Según recuerdo, había mucho material sobre la transición al lenguaje MQL4 actualizado.

 

silachara:

Y un problema más: no encuentro el archivo donde se escribe la información de Print(). Por favor, dime el camino. He buscado en todos los directorios de MT4, pero no lo he encontrado.

Una forma rápida: Ve a la pestaña"Expertos" del terminal -> haz clic con el botón derecho en la pestaña -> haz clic en"Abrir" en el menú que aparece.

Esto abrirá una carpeta con los archivos de registro que contienen las entradas de esta pestaña, incluyendo las salidas a través de Print(). A continuación se muestra una imagen (recordé, que tengo esta información en forma de visualización):


P./S.: De la misma manera puede abrir rápidamente una carpeta en su ordenador con los archivos de registro de los registros desde la pestaña"Log" del terminal (están en otra carpeta).