Ayuda con la codificación de ordencontador para EA
Ayuda con la codificación de ordencontador para EA

 

Publi

Resultados 1 al 2 de 2

Tema: Ayuda con la codificación de ordencontador para EA

  1. #1
    ¡Saludos!

    Supongo que estoy siguiendo la historia habitual aquí. Nuevo en MQL4, algunos antecedentes de codificación (BÁSICO y HTML), bla, bla, bla, ahora intento con mis manos escribir mi propio EA.

    No es nada especial. Estoy trabajando en un EA de ruptura de EMA. Como es uno de mis primeros, pensé que lo mantendría simple. Entonces, el EA funciona basado en una apertura de barra debajo del EMA 20 y luego cerrándose sobre la línea. La barra siguiente abre una orden a 3 pips por encima de la barra anterior. Como es una EA básica, la orden se cierra al tocar el punto TP o SL, no tiene otra codificación para cerrar una orden.

    Este es el problema. La primera versión que tengo abre una orden después de cada tic. Es bueno cuando tienes un negocio rentable, es una mierda cuando no lo tienes. Entonces, en la versión 2 intenté agregar un código de contador de otro EA y descubrí que ahora no abre ningún intercambio.

    Aquí está el código de la versión 1 (lo siento, no sé cómo ponerlo en una pequeña caja ordenada):

    int start ()
    {
    //----

    int cnt, total, ticket;


    doble emaT = iMA (NULL, 0,20,0, MODE_EMA, PRICE_CLOSE, 0);
    double MacdCurrent = iMACD (NULL, 0,12,26,9, PRICE_CLOSE, MODE_MAIN, 0);

    total = OrdersTotal ();
    if (totallt; 1)


    bool buy = falso;
    bool sell = falso;

    if ((Ask == High [1] gt; 3 * Point) (Open [1] lt; emaT) (Cerrar [1] gt; emaT) (MacdCurrent gt; 0)) buy = true;
    if ((Low [1] == Bid ??????gt; 3 * Point) (emaT gt; Close [1]) (Open [1] gt; emaT) (MacdCurrent lt; 0)) sell = true;


    {
    si (comprar)


    ticket = OrderSend (Symbol (), OP_BUY, Lots, Ask, 0, Ask-StopLoss * Point, Ask TakeProfit * Point, Momo Trade, magicnumber, 0, Green);
    if (ticketgt; 0)

    if (OrderSelect (ticket, SELECT_BY_TICKET, MODE_TRADES))


    return (0);
    }

    {
    si (vender)


    ticket = OrderSend (Symbol (), OP_SELL, Lots, Bid, 0, Bid StopLoss * Point, Bid-TakeProfit * Point, Momo Trade, magicnumber, 0, Red);
    if (ticketgt; 0)

    if (OrderSelect (ticket, SELECT_BY_TICKET, MODE_TRADES))

    return (0);

    }

    return (0);
    }
    //----

    La versión 2 es la misma, pero con este código agregado para un contador:

    orders = OrdersTotal ();
    para (cnt = 0; cntlt; OrdersTotal (); cnt )

    {
    if (OrderSelect (cnt, SELECT_BY_POS))
    OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);
    if (OrderSymbol () == Símbolo ())
    {
    if (OrderType () == OP_BUY)



    Además, aunque tengo la atención de todos, ¿mi código es correcto para hacer un pedido basado en el altobajo anterior con el código (Ask == High [1] gt; 3 * Point)?

    ¡Con gracias!

  2.                         
    Publicidad
  3. #2
    Hola, Skeebo. Hay un error obvio al adjuntar la declaración If con {} corchetes. por ejemplo, compare esto con su código: if (totallt; 1) {bool buy = false; bool sell = falso; } espero que esto ayude

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.