Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1381

 
Vitaly Muzichenko #:

Depende de la secuencia de superposición, la última en la parte superior

Definir el buffer conDRAW_FILLING primero

Sorprendentemente, ¡funcionó! Pensaba que este truco era sólo para los buffers de un indicador, pero resulta que es igual para todos.

Gracias.

 
Vitaly Muzichenko #:

Muchas gracias, lo intentaré

 
Los comentarios no relacionados con este tema han sido trasladados a "Preguntas de los principiantes de MQL4 MT4 MetaTrader 4".
 

Optimización:

"Todos los ticks" y"Todos los ticks basados en ticks reales" son lo mismo? Lo que es más creíble, si la prueba ha estado funcionando desde 2012


En el primer caso el terminal escribe "96% de calidad de la historia", en el segundo "26% de ticks reales".

 
Ivan Butko #:

Optimización:

"Todos los ticks" y"Todos los ticks basados en ticks reales" son lo mismo? Lo que es más creíble, si la prueba ha estado funcionando desde 2012


En el primer caso el terminal escribe "96% de calidad de la historia", en el segundo "26% de ticks reales".

Lee los registros - y verás de qué año son las verdaderas garrapatas. Por regla general, hay garrapatas reales para los últimos tres años.

 
Vladimir Karputov #:

Lee los registros - y verás desde qué año se han producido los verdaderos ticks. Suele haber garrapatas reales para los últimos tres años.

Ya veo, así que los ticks reales son mejores, aunque diga 26% vs 96%. El último número se ve más bonito)

¿Puedes decirme también cómo seleccionar el último tick en el historial? O la última operación. Necesito saber cómo se cerró: en parada o no.

Intentando algo, no funciona.

    int Last_deal_ticket = 0;
    for(int cnt=PositionsTotal()-1;cnt>=0;cnt--)
      {
        if(PositionSelectByTicket(PositionGetTicket(cnt)))
        if(PositionGetSymbol(cnt)==Symbol() && PositionGetInteger(POSITION_MAGIC)==Magic_number)
        Last_deal_ticket=PositionSelectByTicket(PositionGetTicket(cnt));
      }
    // потом, когда закроется, будет висеть с этим тикетом в истории
    // обращаемся к истории
    HistorySelectByPosition(Last_deal_ticket);
    if (HistoryDealGetString(Last_deal_ticket, (ENUM_DEAL_PROPERTY_STRING)DEAL_REASON)==DEAL_REASON_SL......... )


 
Ivan Butko #:

Lo tengo, así que los ticks reales son mejores, aunque diga 26% vs 96%. Este último número parece más bonito)

No, no lo entiendes.

1. Las garrapatas reales dan la imagen real cuando se prueban.

2. Pero, tienes que usar ticks reales de frente - tienes que mirar los registros para ver a partir de qué fecha hay ticks reales. De lo contrario, en tu caso desde 2012 hasta (aproximadamente 2018) ve a "todos los ticks" y sólo entonces ve a "cada tick basado en ticks reales".

3. Insertar el código correctamente: ¡¡¡Primero el botón Código y luego insertar el código en la ventana emergente!!!

 
Vladimir Karputov #:

No, no lo entiendes.

1. Las tics reales dan la imagen real cuando se prueban.

2. Pero, tienes que usar ticks reales de frente - tienes que mirar los registros para ver a partir de qué fecha hay ticks reales. Si no, en tu caso desde 2012 hasta (aproximadamente 2018) ve a "todos los ticks", y sólo entonces ve a "todos los ticks basados en ticks reales".

3. Insertar el código CORRECTAMENTE: ¡¡¡Primero el botón y luego insertar el código en la ventana emergente!!!

Lo tengo, gracias.

 
Ivan Butko #:


¿Pueden decirme cómo seleccionar el último billete en el historial? O la última operación. Necesito saber cómo se cerró: por parada o no.

Estoy intentando algo, no puedo.

He cogido la última operación del historial y he intentado comprobar cómo se cerró

Print("Last deal close = ", HistoryDealGetInteger(Last_deal_ticket,DEAL_REASON)); 

Registro

Último acuerdo cerrado = 3


He mirado la documentación y hay

Identificador

Descripción

DEAL_REASON_CLIENT

La operación se ha ejecutado como resultado de una orden lanzada desde el terminal de escritorio

DEAL_REASON_MOBILE

La operación se ejecutó como resultado de una orden activada desde la aplicación móvil

DEAL_REASON_WEB

La operación se ejecuta como resultado de una orden realizada desde la plataforma web

DEAL_REASON_EXPERT

La operación se ejecuta como resultado de una orden disparada desde el programa MQL5 - Asesor Experto o script

DEAL_REASON_SL

La operación se ejecutó como resultado de la activación de una orden de Stop Loss


Primeras 5 líneas.

No entiendo lo que significa: si contamos desde el 1, entonces el 3 esDEAL_REASON_WEB, lo cual es incorrecto. Si es de cero, entoncesDEAL_REASON_EXPERT. Pero, entonces no entiendo ahora cómo saber en qué operación se produjo el stop loss.

Por favor, ayuda.

 
Ivan Butko #:

Parece haber capturado la última transacción en la historia, trató de ver cómo se cerró

Registro

Último_boleto_de_la_oferta = 3


Mirando la documentación, hay

ID

Descripción

DEAL_REASON_CLIENT

La operación se ejecutó como resultado de una orden activada desde el terminal de escritorio

DEAL_REASON_MOBILE

La operación se ejecutó como resultado de una orden activada desde la aplicación móvil

DEAL_REASON_WEB

La operación se ejecutó como resultado de una orden realizada desde la plataforma web

DEAL_REASON_EXPERT

La operación se ejecuta como resultado de una orden disparada desde el programa MQL5 - Asesor Experto o script

DEAL_REASON_SL

La operación se ejecutó como resultado de la activación de una orden de Stop Loss


Primeras 5 líneas.

No entiendo lo que significa: si contamos desde el 1, entonces el 3 esDEAL_REASON_WEB, lo cual es incorrecto. Si es de cero, entoncesDEAL_REASON_EXPERT. Pero, entonces no entiendo ahora cómo saber en qué operación se produjo el stop loss.

Por favor, ayuda.

Está utilizando una enumeración ENUM_DEAL_REASON. No hay que comparar un enum con cualquier dígito, hay que compararlo con un enum. Aquí hay un ejemplo que accede al historial de operaciones (aunque en OnTradeTransaction) y detecta la activación de Stop Loss y Take Profit:

Ejemplo: seguimiento de la activación de Stop Loss o Take Profit

How to start with MQL5
How to start with MQL5
  • 2020.09.17
  • www.mql5.com
This thread discusses MQL5 code examples. There will be examples of how to get data from indicators, how to program advisors...