Discusión sobre el artículo "Procesando los eventos de transacciones en el Expert Advisor por medio de la función OnTrade()"

 

Artículo publicado Procesando los eventos de transacciones en el Expert Advisor por medio de la función OnTrade():

MQL5 introdujo infinidad de soluciones innovadoras, incluyendo el trabajo con distintos tipos de eventos (eventos de reloj, eventos sobre transacciones, eventos personalizados, etc.). La capacidad para gestionar eventos permite crear un tipo completamente nuevo de programas para el trading automático o semi-automático. En este artículo vamos a ver los eventos de transacciones y a escribir código para la función OnTrade(), encargada de procesar el evento Trade.

Figura 2. Lista de órdenes en la pestaña "Trade"

Autor: KlimMalgin

 

Al compilar da un error de conversión implícita de 'number' a 'string' TradeControl.mq5 349 99
en esta línea

_alerts += "En el par "+PositionList[i].symbol+" se ha cambiado el stoploss de "+ PrevPositionList[i].sl +" a "+ PositionList[i].sl +"\n";

 
sergey1294:

Al compilar da un error de conversión implícita de 'number' a 'string' TradeControl.mq5 349 99
en esta línea

_alerts += "En el par "+PositionList[i].symbol+" se ha cambiado el stoploss de "+ PrevPositionList[i].sl +" a "+ PositionList[i].sl +"\n";

Esto no es un error, sino una advertencia de que esta línea contiene una conversión implícita de un número en una cadena. En estos casos, el compilador advierte de la conversión, y el programador debe decidir si esta conversión es un error o no.

Para eliminar esta advertencia, debe realizar una conversión explícita:

_alerts += "En Steam".+PositionList[i].symbol+" cambió stoploss de "+ (string)PrevPositionList[i].sl +" en "+ (string)PositionList[i].sl +"\n";
 
KlimMalgin:

Esto no es un error, sino una advertencia de que esta línea contiene una conversión implícita de un número en una cadena. En estos casos, el compilador advierte de la conversión, y el programador debe decidir si esta conversión es un error o no.

Para eliminar esta advertencia, debe hacer una conversión explícita:

Gracias, lo intentaremos.
 

De alguna manera no funciona correctamente, la posición se cerró en la toma de beneficios, pero no hay información al respecto. aquí está el registro

DS 0 TradeControl (EURUSD,M5) 22:36:06 Evento de operación recibido
EJ 0 TradeControl (EURUSD,M5) 22:36:06 Error # 4751
PN 0 TradeControl (EURUSD,M5) 22:36:06 876874 Orden recibida para procesar
DH 0 TradeControl (EURUSD,M5) 22:36:08 Evento comercial recibido
IS 0 TradeControl (EURUSD,M5) 22:36:08 ¡Error #4751 Orden 876874 no encontrada!
HK 0 TradeControl (EURUSD,M5) 22:36:08 Error # 4751 estado:4
RQ 0 TradeControl (EURUSD,M5) 22:36:08 0 Orden ejecutada, proceder a la operación
OD 0 TradeControl (EURUSD,M5) 22:36:08 876874 orden generada comercio #947094
RS 0 TradeControl (EURUSD,M5) 22:36:08 Abierto una posición de compra en EURUSD
DQ 0 TradeControl (EURUSD,M5) 22:36:08 Evento comercial recibido
DI 0 TradeControl (EURUSD,M5) 22:36:08 Evento Trade recibido
KQ 0 TradeControl (EURUSD,M5) 22: 41:45 Recibido evento Trade
KI 0 TradeControl (EURUSD,M5) 22:41:45 Evento comercial recibido
KQ 0 TradeControl (EURUSD,M5) 22:41:45 Evento comercial recibido

 
El artículo no cubre el cierre de posiciones con take-profit y stop-loss. Sólo se consideran los eventos indicados al principio del artículo.
 
KlimMalgin:
El artículo no cubre el cierre de posiciones con take-profit y stop-loss. Sólo se consideran los eventos indicados al principio del artículo.

Ya veo, es una lástima que no se consideran. Voy a esperar a que aparezca un artículo similar o añadir su propia de acuerdo con él. El análogo del artículo para MT4 se puede encontrar aquí https://www.mql5.com/ru/articles/1399.

  1. Apertura de una posición
    • "Posición en el mercado
      • Comprar
      • Vender
    • Orden pendiente
      • Compra Límite
      • Límite de venta
      • Tope de compra
      • Tope de venta
  2. Activación de la orden
    • Límite de compra
    • Límite de venta
    • Tope de compra
    • Tope de venta
  3. Cierre de posición
    • "Posición de mercado
      • Comprar
        • Stop Loss
        • Toma de beneficios
        • Manual (no Stop Loss o Take Profit)
      • Vender
        • Stop Loss
        • Toma de beneficios
        • Manualmente
    • Orden pendiente (eliminar)
      • Límite de compra
        • Hora de vencimiento
        • Manualmente
      • Límite de venta
        • Hora de expiración
        • Manualmente
      • Límite de compra
        • Hora de expiración
        • Manual
      • Tope de venta
        • Hora de vencimiento
        • Manual
  4. Modificación de la posición
    • "Posición de mercado
      • Comprar
        • Stop Loss
        • Toma de beneficios
      • Vender
        • Stop Loss
        • Toma de beneficios
    • Orden pendiente
      • Límite de compra
        • Precio de apertura
        • Stop Loss
        • Toma de beneficios
        • Hora de vencimiento
      • Límite de venta
        • Precio de apertura
        • Stop Loss
        • Toma de beneficios
        • Tiempo de expiración
      • Stop de compra
        • Precio de apertura
        • Stop Loss
        • Toma de beneficios
        • Tiempo de expiración
      • Stop de venta
        • Precio de apertura
        • Stop Loss
        • Toma de beneficios
        • Tiempo de expiración
События в МetaТrader 4
События в МetaТrader 4
  • 2006.05.29
  • Andrey Khatimlianskii
  • www.mql5.com
Статья посвящена программному отслеживанию событий в терминале МetaТrader 4, таких как открытие, закрытие и модификация ордеров, и рассчитана на пользователя, обладающего базовыми навыками работы с терминалом и программирования на MQL 4.
 

¡No se procesa HistorySelect()==false! Un caso bastante frecuente...

 
KlimMalgin:
El artículo no cubre el cierre de posiciones con take-profit y stop-loss. Sólo se consideran los eventos indicados al principio del artículo.
Debería ser en vano... Estaba esperando este artículo únicamente para un ejemplo de manejo de stop...
 

MQL5 suministra el modo de procesamiento de eventos,

¿Por qué no suministra los parámetros del evento?

¡¡¡¡¡¡¡¡¡¡¡¡¡Deseo comoOnChartEvent(....), suministrar id de evento y parametros!!!!!!!!!!!!!

 
DxdCn:
¡¡¡¡¡¡¡¡¡¡¡¡¡Deseo comoOnChartEvent(....), suministrar id de evento y parámetros!!!!!!!!!!!!!

El OnChartEvent se utiliza en el artículo Creating Active Control Panels in MQL5 for Trading.