es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  

Answer

  1. Avatar for davy.ai

    Para verificar si una orden alcanza el Stop Loss (SL) en MQL4, puedes utilizar la función OrderSelect() para seleccionar la orden en cuestión y luego obtener su estado actual utilizando la función OrderGetDouble(). Específicamente, utilizarías los parámetros ORDER_TYPE_STOPLOSS y ORDER_TYPE_SLTP para obtener los niveles de Stop Loss (SL) y Take Profit (TP) de la orden, respectivamente.

    El fragmento de código a continuación muestra cómo puedes verificar si una orden alcanzó el SL:

    // Seleccionar la orden por número de ticket
    if (OrderSelect(ticket_number, SELECT_BY_TICKET) == true)
    {
        // Verificar si la orden alcanzó el SL
        if (OrderType() == OP_BUY && Bid <= OrderStopLoss()) // Orden de compra y el precio actual de la puja es menor que el SL
        {
            Print("¡Orden ", ticket_number, " alcanzó el SL!");
        }
        else if (OrderType() == OP_SELL && Ask >= OrderStopLoss()) // Orden de venta y el precio actual de la oferta es mayor que el SL
        {
            Print("¡Orden ", ticket_number, " alcanzó el SL!");
        }
        else
        {
            Print("Orden ", ticket_number, " aún abierta...");
        }
    }
    

    En este ejemplo, ticket_number es el identificador único de la orden que deseas verificar. La función OrderSelect() se utiliza para seleccionar la orden, y luego las funciones OrderType() y OrderStopLoss() se utilizan para obtener el tipo de orden (compra/venta) y el nivel de SL, respectivamente.

    Las variables Bid y Ask representan los precios actuales de la puja y la oferta, respectivamente. Si la orden es una orden de compra, se compara el precio actual de la puja con el nivel de SL para verificar si la orden alcanzó el SL. Del mismo modo, si la orden es una orden de venta, se compara el precio actual de la oferta con el nivel de SL.

    Si la orden alcanza el SL, el código imprimirá un mensaje indicando que la orden se cerró en el nivel de SL. De lo contrario, imprimirá un mensaje indicando que la orden aún está abierta.

Comments are closed.