Errores, fallos, preguntas - página 1506

 
DV2010:

Por favor, perdone cualquier información incompleta.

1. la información se encuentra en la pestaña Log:

2. El indicador probado para la eliminación es el estándar de las Bandas de Bollinger:

- el archivo del indicador se encuentra en C:\NArchivos de Programa\Nde Alpari Limited MT5\MQL5\NIndicadores\NEjemplos\BB.ex5;

- El archivo compilado se añade a la carta manualmente;

- ambos archivos se adjuntan a este post.

3. Código completo del Asesor Experto que elimina el indicador y en el que se detecta el error:

   void OnInit(){
      ChartIndicatorDelete(0,0,"Bollinger Bands");
   } 

Resultado de la prueba:

Después de arrastrar tal "Asesor Experto" (en la aplicación - DeleteInd.ex5) en el gráfico

Las bandas de Bollinger añadidas manualmente al gráfico se eliminan, pero el gráfico no se escala después cuando el tamaño del gráfico cambia.

Gracias por una pregunta tan detallada y con tan buen formato (¡hace tiempo que nadie escribe así!).

Lo que tengo es esto:

  1. Agrego manualmente el indicador BB desde el archivo ...\MQL5\Indicators\Examples\BB.mq5.
  2. Ejecuto el Asesor Experto en el mismo gráfico. He añadido el propio Asesor Experto:
    //+------------------------------------------------------------------+
    //|                                                      ProjectName |
    //|                                      Copyright 2012, CompanyName |
    //|                                       http://www.companyname.net |
    //+------------------------------------------------------------------+
    void OnInit()
      {
       ResetLastError();
       if(!ChartIndicatorDelete(0,0,"Bollinger Bands"))
          Print("Error delete BB ",GetLastError());
      }
    //+------------------------------------------------------------------+
    Obtengo un error

    ERR_CHART_INDICATOR_CANNOT_DEL

    4115

    Error al borrar el indicador del gráfico


Este error se produce porque después de borrar el indicador del EA, la ventana del gráfico donde estaba el BB, aunque podemos verlo, pero en realidad ya está borrado. Para comprobarlo, después de ejecutar el Asesor Experto, cambie a otro perfil en el terminal y luego vuelva (al antiguo perfil) y compruebe que el gráfico se ha quedado como una vaca.

Mi configuración:

2016.02.11 18:47:04.915 Terminal        MetaTrader 5 x64 build 1241 started (MetaQuotes Software Corp.)
2016.02.11 18:47:04.915 Terminal        Windows 10 Pro (x64 based PC), IE 11.63, UAC, Intel Core i3-3120 M  @ 2.50 GHz, RAM: 785 / 3981 Mb, HDD: 68822 / 233310 Mb, GMT+02:00
2016.02.11 18:47:04.915 Terminal        C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\43 B472C43247368C5B97C7F22A1AE963
Archivos adjuntos:
DeleteInd.mq5  1 kb
 
Karputov Vladimir:

Gracias por una pregunta tan detallada y bien redactada (¡hace mucho tiempo que nadie escribe así!).

Esto es lo que ocurre:

  1. Agrego manualmente el indicador BB desde el archivo ...\MQL5\Indicators\Examples\BB.mq5.
  2. Estoy ejecutando el Asesor Experto en el mismo gráfico. He añadido algunos cambios al Asesor Experto:
    Obtengo un error

    ERR_CHART_INDICATOR_CANNOT_DEL

    4115

    Error al borrar el indicador del gráfico


Este error se produce porque después de eliminar el indicador del EA, la ventana del gráfico donde estaba el BB, aunque podemos verlo, pero en realidad ya está eliminado. Para comprobarlo, después de ejecutar el Asesor Experto, cambie a otro perfil en el terminal y luego vuelva (al antiguo perfil) y compruebe que el gráfico se ha quedado como una vaca.

Mi configuración:

Al ejecutar su código sólo obtengo:

2016.02.11 20:14:01.996    Experts    expert DeleteInd (XAUUSD,M1) loaded successfully

Pero después de cambiar a otro perfil y volver la ventana está ausente (aunque las cotizaciones en ella estaban cambiando después de añadir un Asesor Experto).

¿Significa esto que es un error? Según tengo entendido, la función ChartIndicatorDelete() no debería provocar un comportamiento tan anormal de un gráfico. ¿Es posible arreglarlo?

 
DV2010:

Cuando ejecuto tu código, sólo lo consigo en el libro de registro:

2016.02.11 20:14:01.996    Experts    expert DeleteInd (XAUUSD,M1) loaded successfully

Pero después de cambiar a otro perfil y volver la ventana está ausente (aunque las cotizaciones en ella estaban cambiando después de añadir el Asesor Experto).

¿Significa esto que es un error? Según tengo entendido, la función ChartIndicatorDelete() no debería provocar un comportamiento tan anormal de un gráfico. ¿Es posible arreglarlo?

Ya lo he comunicado al Servicio de Atención al Cliente.
 
Nos sugirieron que cambiáramos el modo del Asesor Experto entre Asesor Experto e Indicador para tener un solo archivo. El mismo producto se instalará en diferentes terminales.

Hice un cambio. Pero lo que ocurrió es lo siguiente: si compilo el archivo mq4 en la carpeta Experts, el programa funciona sólo como EA, como indicador (cuando lo copio a la carpeta Indicators) ni siquiera se fija en el gráfico. Pero si lo recompilo en esta carpeta, todo está bien. Lo mismo ocurre con el EA, no se instalará si se ha compilado en la carpeta de Indicadores. Por favor, dígame cuál es la razón de eso. El modo de compilación es estricto, no hay errores.

 

En la última versión de MT5 1241 la función ChartIndicatorDelete "desordena" el gráfico. El gráfico no se redibuja al cambiar de tamaño, el gráfico no se guarda al cerrar el terminal, etc.

Esto ya se ha arreglado. Por favor, espere a la siguiente construcción

 
Igor Ramensky:
La oficina aconseja que sólo haya un archivo,
¿Puede pedir un número de solicitud a servicedesk?
 
Estimados desarrolladores, ¿podrían decirme si la recursividad de funciones y métodos de clase está permitida en MQL? Hago una llamada a un método recursivo y obtengo un desbordamiento de pila.
 
coderex:
Estimados desarrolladores, ¿podrían aconsejarnos si la recursividad de las funciones y métodos de la clase está permitida en MQL? Estoy haciendo una llamada a un método recursivo y obtengo un desbordamiento de pila.

Por supuesto que está permitido. De lo contrario, no se produciría un desbordamiento de pila.

¿Y qué esperabas?

¿Controlas la profundidad de la recursión de alguna manera?

 
Slawa:

Por supuesto que está permitido. De lo contrario, no se produciría un desbordamiento de pila.

¿Qué esperabas?

¿Controlas la profundidad de la recursión de alguna manera?

Ya lo he resuelto :) Por supuesto, siento haberme tropezado, hace tiempo que no uso la recursión y me olvidé del control de la profundidad de la recursión...
 
¿Con qué frecuencia se pueden realizar las activaciones? O bien, después de una activación, ¿cuánto tiempo transcurre hasta la siguiente activación?