Características del lenguaje mql4, sutilezas y técnicas - página 3

 

Al lanzar un script, un indicador o un Asesor Experto, los nombres de las variables se muestran en la pestaña de Parámetros de Entrada

extern int Период=10;


Si la directiva #property strict está presente, se muestra el comentario en lugar del nombre de la variable

#property strict
extern int Период=10;  // Период отображения информации

Esto es más informativo, IMHO

 
LRA:

Al lanzar un script, un indicador o un Asesor Experto, los nombres de las variables se muestran en la pestaña de Parámetros de Entrada


Si la directiva #property strict está presente, se muestra el comentario en lugar del nombre de la variable

En mi opinión, es más informativo.

Bueno, entonces especialmente para aquellos que no lo sabían. Mira la captura de pantalla, todo está claro allí.


 

Hay un fallo en MT4: Cuando el depósito es mayor que 999999, falta un dígito en el gráfico del informe detallado.

Si es superior a 999999, faltan dos dígitos. Sólo se muestran siempre los 5 primeros dígitos.


 
LRA:

Hay un fallo en MT4: Cuando el depósito es mayor que 999999, falta un dígito en el gráfico del informe detallado.

Si es superior a 999999, faltan dos dígitos. Sólo se muestran siempre los 5 primeros dígitos.


No te olvides de decir que tienes la escala de la fuente en el 125% en la configuración del sistema
 
void OnStart()
{
  Alert("Ордеров = ",OrdersHistoryTotal());
}   

¿Sabías que puedes fijar la duración de la historia? ¡Y afecta al tiempo de búsqueda!

Si se fija hoy, ¡habrá menos de todo! ¿A medianoche la historia estará vacía? En el mejor de los casos, los últimos 3 días.

A los desarrolladores: ¿cómo se puede establecer la profundidad del historial mediante programación?

 
A diferencia de MQL5, en MQL4 las matrices estáticas pueden cambiar de tamaño.
 
fxsaber:
A diferencia de MQL5, en MQL4 las matrices estáticas pueden cambiar su tamaño.

¿Hay algún error en la ayuda?

//+-------------------------------------------------------+
//| ArrayResize                                 PROBA.mq4 |
//+-------------------------------------------------------+
#property strict
void OnStart()
{
  int x[7];         int СтарыйРазмер=ArrayRange(x,0);
  ArrayResize(x,5); int МеньшийРазмер=ArrayRange(x,0);
  ArrayResize(x,9); int БольшийРазмер=ArrayRange(x,0);
  Alert("MQL4: СтарыйРазмер = ",СтарыйРазмер, "   МеньшийРазмер = ",МеньшийРазмер, "   БольшийРазмер = ",БольшийРазмер);
} 


//+-------------------------------------------------------+
//| ArrayResize                                 PROBA.mq5 |
//+-------------------------------------------------------+
#property strict
void OnStart()
{
  int x[7];         int СтарыйРазмер=ArrayRange(x,0);
  ArrayResize(x,5); int МеньшийРазмер=ArrayRange(x,0);
  ArrayResize(x,9); int БольшийРазмер=ArrayRange(x,0);
  Alert("MQL5: СтарыйРазмер = ",СтарыйРазмер, "   МеньшийРазмер = ",МеньшийРазмер, "   БольшийРазмер = ",БольшийРазмер);
}
 
LRA:

¿Hay algún error en el certificado?

No hay ningún error si se tiene en cuenta que no hay arrays estáticos en MQL4.
 
Sobre el tema de la estática, hay un punto sutil en ambos idiomas

Foro sobre comercio, sistemas de comercio automatizados y prueba de estrategias de comercio

mt4 build 1066

James Cater, 2017.04.28 16:53

He encontrado un error de regresión con el orden de inicialización de las variables estáticas dentro de las funciones

Esto funcionaba en la compilación 1065. He informado de esto al servicio de atención al cliente

#property strict
#property indicator_chart_window

int TestBrokenStatic()
{
   static int stInt = 101;
   
   stInt++;
   return stInt;
}

int OnInit()
{
   static int result = TestBrokenStatic();
   
   Print("TestStatic Expected result 102   - Actual result=", result);
   result = TestBrokenStatic();
   Print("TestStatic Expected result 103   - Actual result=", result);
   
   return INIT_SUCCEEDED;
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   return rates_total;
}


2017.04.28 15:42:30.941 TestStatic EURCHF,H1: TestStatic Resultado esperado 103 - Resultado real=102

2017.04.28 15:42:30.941 TestStatic EURCHF,H1: TestStatic Resultado esperado 102 - Resultado real=1


 
fxsaber:
Hay un momento sutil en ambos idiomas

Qué punto más sutil... ¿Lo escribiste en SD?
Razón de la queja: