Cerrar múltiples posiciones al mismo tiempo.
Cerrar múltiples posiciones al mismo tiempo.

 

Publi

Resultados 1 al 6 de 6

Tema: Cerrar múltiples posiciones al mismo tiempo.

  1. #1
    Hola chicos,

    Estoy aprendiendo a codificar MQL4
    , ¿qué función puedo usar para cerrar varias posiciones a la vez? Si hay EA para eso, apreciaré si alguien puede publicarlo.

    Aquí está el script que escribí, el problema es que no funciona si hay más de 2 posiciones, devuelve el error # 129
    ================================================== ======
    doble externo R.O.I = 3;/Retorno de la inversión en%
    extern doble L.O.I = -3;/Pérdida de inversión en%

    int start ()
    {
    //Variables, en las que se encontrarán tickets de pedidos de cada tipo.
    //memorizado
    int BuyStopOrder = 0, SellStopOrder = 0, BuyOrder = 0,
    SellOrder = 0;
    int _GetLastError = 0, _OrdersTotal = OrdersTotal ();
    //buscar en todas las posiciones abiertas y memorizar, posiciones de las cuales
    //tipo ya ha sido abierto:
    para (int z = _OrdersTotal - 1; z gt; = 0; z -)
    {
    //si se produce un error al buscar una posición, vaya
    //al siguiente
    if (! OrderSelect (z, SELECT_BY_POS))
    {
    _GetLastError = GetLastError ();
    Imprimir (OrderSelect (, z,, SELECT_BY_POS) - Error #,
    _GetLastError);
    continuar;
    }

    //si la posición no se abrió para el símbolo actual, omítelo
    si (OrderSymbol ()! = Symbol ()) continúa;

    //dependiendo del tipo de posición, cambiar el valor de la
    //variable:
    interruptor (OrderType ())
    {
    caso OP_BUY: BuyOrder = OrderTicket (); descanso;
    caso OP_SELL: SellOrder = OrderTicket (); descanso;
    caso OP_BUYSTOP: BuyStopOrder = OrderTicket (); descanso;
    caso OP_SELLSTOP: SellStopOrder = OrderTicket (); descanso;
    }
    }

    if ((AccountEquity ()AccountBalance () - 1) * 100gt; = R.O.I || (AccountEquity ()AccountBalance () - 1) * 100lt; = L.O.I)
    {
    if (SellStopOrder gt; 0)
    {
    if (! OrderDelete (SellStopOrder))
    {
    Alerta (OrderDelete Error #, GetLastError ());
    return (-1);
    }
    }
    if (BuyStopOrder gt; 0)
    {
    if (! OrderDelete (BuyStopOrder))
    {
    Alerta (OrderDelete Error #, GetLastError ());
    return (-1);
    }
    }
    si (BuyOrder gt; 0)
    {
    if (! OrderClose (OrderTicket (), OrderLots (), Bid, 3, Blue))
    {
    Alerta (OrderClose Error #, GetLastError ());
    return (-1);
    }
    }
    si (SellOrder gt; 0)
    {
    if (! OrderClose (OrderTicket (), OrderLots (), Bid, 3, Blue))
    {
    Alerta (OrderClose Error #, GetLastError ());
    return (-1);
    }
    }
    }
    }
    ================================================== ======
    Gracias por adelantado
    Feliz comercio

  2.                         
    Publicidad
  3. #2
    Gracias por compartir todo esto con nosotros.

  4. #3

  5. #4

  6. #5
    1 Adjunto (s) Gracias, también obtuve algo de expertos que pueden cerrar todas las posiciones al mismo tiempo. Los adjuntaré aquí en caso de que alguien los necesite. Asegúrese de probarlos en una demostración antes de usarlos en una cuenta real. Feliz comercio
    https://www.forosforex.com/attachmen...2660537915.mq4

  7. #6
    1 Adjunto (s) Lo siento, no puedo ayudar más, pero soy más un pirata informático que un programador. Sin embargo, quizás encuentre algún código interesante aquí, especialmente la función CloseAll (). Buena suerte :-)
    https://www.forosforex.com/attachmen...0758291989.mq4

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Uso de cookies
Utilizamos cookies propias y de terceros para elaborar información estadística y mostrarle publicidad personalizada a través del análisis de su navegación. Si continúa navegando acepta su uso. Más información y política de cookies.
     

Aviso legal: Ni forosforex.com ni ninguna persona involucrada en forosforex.com aceptarán ninguna responsabilidad por cualquier pérdida o daño en el trading como resultado de la confianza en la información contenida en este sitio web, incluidos datos, cotizaciones, gráficos y señales de compra/venta. Por favor, infórmese plenamente de los riesgos y costes asociados a las operaciones en los mercados financieros, una de las formas de inversión que más riesgos entrañan.
forosforex.com le quiere recordar que los datos contenidos en este sitio web no son necesariamente en tiempo real ni exactos. forosforex.com no asume responsabilidad alguna por las pérdidas en que usted podría incurrir como resultado de la utilización de estos datos. Este acuerdo se rige por su versión en inglés, que prevalecerá siempre que haya alguna discrepancia entre la versión en inglés y la versión en español. Los CFD son un producto difícil de entender, varios organismos reguladores consideran que no es adecuado para inversores minoristas debido a su complejidad y riesgo.
Advertencia de riesgo: Los CFDs son un producto difícil de entender, y puede no ser adecuado para inversores minoristas debido a su complejidad y riesgo. Existe la posibilidad de sufrir una pérdida igual o superior a la inversión. Por lo tanto, no debe invertir o arriesgar dinero que no pueda permitirse perder. Debe asegurarse de que comprende todos los riesgos. Antes de abrir una cuenta en un broker por favor sea consciente e infórmese de los riesgos asociados con el trading. El contenido de este sitio web no debe interpretarse como asesoramiento personal. ForosForex recomienda que busque el consejo de un asesor financiero independiente.