Nueva versión de la plataforma MetaTrader 5 build 3280: Mejoras y correcciones según los comentarios de los tráders - página 2

 

Puedo sugerir una mejora... Es lo siguiente: Ejecutando el siguiente código de script

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart() 
{ 
  
        ENUM_TIMEFRAMES time = PERIOD_D1;
        string szSymbol = "EURUSD";
        long id = ChartOpen(szSymbol, time);
        ChartRedraw(id);

        ChartIndicatorAdd(id, 0, iCustom(szSymbol, time, "Media Movel.ex5"));
}

en cualquier ventana, tendremos una nueva ventana abierta con el símbolo EURUSD y podremos añadir un indicador personalizado en la ventana recién creada .... PERFECTO... Sin embargo, si convertimos este mismo script en un servicio como se muestra a continuación:

#property service
//+------------------------------------------------------------------+
void OnStart()
{
        ENUM_TIMEFRAMES time = PERIOD_D1;
        string szSymbol = "EURUSD";
        long id = ChartOpen(szSymbol, time);
        ChartRedraw(id);

        ChartIndicatorAdd(id, 0, iCustom(szSymbol, time, "Media Movel.ex5"));
}

el comportamiento ya será diferente, la ventana se creará como se esperaba, pero aún teniendo el valor del ID de la ventana no podemos añadir ningún indicador en la ventana, devuelve el 4802 error ....

Estaría MUY BIEN que un servicio pudiera añadir un indicador, ya que podemos utilizar los servicios para estar haciendo un trabajo extra, sin sobrecargar un EA por ejemplo, pero aunque no fuera posible hacer esto, es la sugerencia de quien sabe, permitir que un servicio ejecute un script, de todas formas ayudaría mucho...

Y si no es mucho abusar... también sería genial que el lenguaje MQL5 tuviera un EXIT() para permitir una forma rápida de salir del código recursivo cuando genera un fallo, pero no en lugar de tener una salida abrupta, podemos tratar el error y terminar completamente la ejecución del programa a través de la llamada EXIT()... al igual que lo que sucede cuando llamamos a ExpertRemove() para terminar un EA ... de todos modos GRACIAS POR LA ATENCIÓN ... 😁👍

 

He instalado MT5 varias veces para el modo /portbale. Actualmente hay tres en marcha en paralelo, dos están en el canal de lanzamiento mientras se comercializan y uno en el canal beta.

Lamentablemente, la ventana que pregunta si se debe actualizar ahora o más tarde para una nueva actualización no indica qué versión se puede actualizar: Liberación o Beta:


Estaría bien que esta ventana dijera simplemente:" Se ha descargado laactualización de la versión (o las actualizaciones beta)". Oportunamente ... "

De este modo, el usuario sabría si quiere actualizar durante la semana (FX está abierto) o, mejor aún, sólo el fin de semana.

Quizás también se podría distinguir entre las actualizaciones de la versión y las de la beta por el color. Eso podría ayudar a evitar errores.

 
MetaQuotes:

El viernes 29 de abril de 2022 se lanzará una versión actualizada de la plataforma MetaTrader 5. En ella hemos realizado algunas adiciones y correcciones menores basadas en los comentarios recibidos tras la publicación de la versión 3270.

La actualización incluye los siguientes cambios:

  1. Terminal: Corregido el relleno de los niveles de Trailing Stop estándar en el menú contextual de las órdenes y posiciones abiertas.
  2. Terminal: Traducciones actualizadas de la interfaz de usuario.
  3. Correcciones para los registros cruzados.

La actualización estará disponible a través del sistema Live Update.

Dado que se trata de correcciones tan "pequeñas", les pido que incluyan en la próxima versión una corrección para este error: la eliminación de la información sobre el volumen de los ticks cuando se copian los ticks de un símbolo fuente Time$Sale a uno personalizado, utilizando la funcionalidad estándar de la plataforma MT5.

Este es un pequeño, pero muy molesto error para aquellos que trabajan con instrumentos bursátiles, porque este error lleva a que en los futuros "continuos" personalizados, construidos en MT5, ¡es imposible aplicar indicadores que trabajen con el historial de ticks bursátiles!

NQ continuo

 
¿No es redundante esta advertencia del compilador?
void OnStart()
{
  Print(DEAL_REASON_TP == ORDER_REASON_TP); // implicit conversion from 'enum ENUM_ORDER_REASON' to 'enum ENUM_DEAL_REASON'
}
 

Error del compilador con la conversión de enum.

ENUM_DEAL_REASON Reason() { return(DEAL_REASON_CLIENT); }

void OnStart()
{
  ENUM_ORDER_REASON Reason1 = Reason();                    // 'Reason' - cannot convert enum
  ENUM_ORDER_REASON Reason2 = (ENUM_ORDER_REASON)Reason(); // OK
}

Cadena de búsqueda:Oshibka 040.

 
fxsaber #:

Error del compilador con la conversión de enum.

Cadena de búsqueda:Oshibka 040.

Parece que no hay ningún error. Cada enum es un tipo propio. Sólo se puede pasar de uno a otro mediante una conversión explícita. El compilador se bloqueará en la implícita.

 
Stanislav Korotky #:

No parece haber ningún error. Cada enum es un tipo propio. Sólo se puede pasar de uno a otro mediante una conversión explícita. El compilador jura el implícito.

Error en lugar de Advertencia.

'Reason' - cannot convert enum
1 errors, 0 warnings            
 
fxsaber #:

Error en lugar de Advertencia.

¿Y qué?

 
Stanislav Korotky #:

¿Y qué?

Pues entonces no compilemos ese código.

void OnStart()
{
  double d = 0;
  int i = d;
}
 
fxsaber #:

Error en lugar de Advertencia.

Según la documentación: enumse refiere a un conjunto limitado de datos. En este sentido, la comparación y la asignación no son fundamentalmente diferentes: en ambos casos debe haber Advertencia o Error. Y el hecho de que se pueda comparar y no se pueda asignar es una tontería