Una pregunta para los expertos en MQL - página 17

 

¿Quién te ha dicho que esto es un error?

La captura de pantalla muestra claramente que su Asesor Experto utiliza la función ErrorDescription con el tipo string

No hay ningún error. La nueva compilación acaba de añadir una característica conveniente - ahora puedes ver qué funciones son utilizadas por el EA desde la dll y las bibliotecas.

 
Rita:

Ambas carpetas (Incloud y Libraries) contienen fuentes stdlib. Por si acaso, he añadido-copiado de la carpeta de Incloud.

Pero el error descrito anteriormente sigue apareciendo en la pestaña "dependencias". Tal vez cambiar de alguna manera la llamada de estas funciones: En lugar de:

¿Poner la llamada de alguna otra manera?

¿O será imposible utilizar las funciones de I.Kim en la última versión de mt4 ahora?


1) Abra el archivo stdlib.mq4 en la carpeta Librerías

2) compilarlo

3) debería funcionar sin errores

 

Gracias a todos por sus respuestas y recomendaciones. Otra pequeña pregunta.

Según he entendido, los nombres de las variables globales aparecen ahora resaltados en rojo en el código. Sin embargo, mi código tiene nombres compuestos, algunos de los cuales coinciden con los globales. Y esta parte que coincide, por alguna razón, también está resaltada en rojo.

¿Puede tener un impacto negativo en el funcionamiento de la EA? ¿O no hay nada de malo en ese resaltado parcial?

 
Rita:

Gracias a todos por sus respuestas y recomendaciones. Otra pequeña pregunta.

Según he entendido, los nombres de las variables globales aparecen ahora resaltados en rojo en el código. Sin embargo, en mi código hay nombres compuestos, algunos de los cuales coinciden con los globales. Y esta parte que coincide, por alguna razón, también está resaltada en rojo.

¿Puede tener un impacto negativo en el funcionamiento de la EA? ¿O no hay nada de malo en ese resaltado parcial?


No hay ningún problema, pero debería ponerse en contacto con el ServiceDesk para que lo corrijan.
 
No he oído hablar de ese servicio. Por favor, dame un enlace.
 
Rita:
No he oído hablar de ese servicio. Por favor, dame un enlace.

Tienes que registrarte en el foro de mql5.com, habrá un enlace en tu perfil.
 
El idioma ruso está iluminado en rojo y lo que tienes globalmente está iluminado un poco diferente, no hay problema para ti ....
 

¡Buenos días!

Después de actualizar MT4 - el indicador que funcionaba normalmente antes dejó de dibujar su línea. Y se descubrió que de alguna manera el código del indicador afecta fuertemente el trabajo del procesador en versiones antiguas de MT4 con un meta-editor forzosamente actualizado. Pero sobre eso más adelante.

Después de la actualización, cuando instalo el indicador en el gráfico, la línea establecida se dibuja de forma irregular y errónea (basada en la diferencia de precio de cierre de 2 símbolos especificados). Al cambiar de línea de tiempo desaparece en absoluto (ventana vacía), y aparece la inscripción en el registro:

y después de varios cambios de marco de tiempo (o reiniciar mt4) el indicador desaparece del gráfico por completo:

2014.02.25 10:22:38.640 Indicador personalizado Spread-I-env #GCJ4,M30: eliminado

Por favor, indíqueme cuál puede ser la razón. ¿Qué es este extraño error?

2014.02.25 10:21:07.437Violación de acceso leída a 0x000003E5 en 'C:\NProgram Files\InstaTrader\MQL4\indicators\Spread-I-env- mod1.ex4'

 

¡Hola!

¿Podríais decirme cómo encontrar el color de fondo del gráfico en las nuevas construcciones?

En los antiguos lo encontré así:

#importar "user32.dll"

int GetWindowDC(int h);

int ReleaseDC(int h, int hDC);

bool GetWindowRect(int h, int& pos[4]);

#importar

#importar "gdi32.dll"

int GetPixel(int hDC, int x, int y);

#importar

//+------------------------------------------------------------------+

//| función de inicio del programa de script |

//+------------------------------------------------------------------+

void start()

{

int col = getBackgroundColor();

if (col==-1) MessageBox("Ninguna esquina de la ventana es visible");

else MessageBox("Color de fondo: " + col);

}

//+------------------------------------------------------------------+

int getBackgroundColor()

{

int h = WindowHandle(Symbol(), Period());

int hDC = GetWindowDC(h);

int col = GetPixel(hDC, 2, 2);

if(col==-1) {

// la esquina superior izquierda no es visible

int rect[4];

GetWindowRect(h, rect);

int wW = rect[2] - rect[0]; // ancho de la ventana

int wH = rect[3] - rect[1]; // altura de la ventana

col = GetPixel(hDC, wW-3, wH-3); // esquina inferior derecha

if(col==-1) col = GetPixel(hDC, 2, wH-3); // BOW

if(col==-1) col = GetPixel(hDC, wW-3, 2); // LNT

}

ReleaseDC(h, hDC);

return(col);

}

No funciona en los nuevos.

 

Gracias, eso aclara la cuestión. Lo he descubierto yo mismo.

Color = ChartGetInteger( 0, CHART_COLOR_BACKGROUND, 0 );