Necesita ayuda con el código
Necesita ayuda con el código

 

Publi

Resultados 1 al 3 de 3

Tema: Necesita ayuda con el código

  1. #1
    Hola a todos. Necesito ayuda con el código pegado a continuación. Es una alerta cruzada de promedio móvil simple que modifiqué un poco y agregué una alerta por correo electrónico. No estoy seguro de si la alerta por correo electrónico funcionará ya que sigo recibiendo 1 error cuando compilo. He pegado el código a continuación

    He revisado el código varias veces y parece que no puedo identificar el problema. Gracias de antemano por su ayuda.

    El error dice ... '\ end_of_program' - paréntesis izquierdo desequilibrado



    // ----------------------------------------------- -------------------
    //| MACrossEarlyAlert.mq4 |
    //| Mariano Silva |
    //| |
    // ----------------------------------------------- -------------------
    #property copyright Mariano Silva
    #property link

    #property indior_chart_window
    //---- parámetros de entrada
    extern bool EmailAlert = falso;
    extern int FastMAPeriod = 50;
    Cadena externa Tipo = 0-SMA, 1-EMA;
    extern int FastMAType = 1;
    extern int SlowMAPeriod = 1;
    extern int SlowMAType = 0;
    extern int EarlyPips = 15;
    extern int ResetAlert = 20;
    color externo LineColor = Naranja;
    // ----------------------------------------------- -------------------
    //| Función de inicialización del indicador personalizado |
    // ----------------------------------------------- -------------------
    int init ()
    {
    //---- indicadores
    //----
    return (0);
    }
    // ----------------------------------------------- -------------------
    //| Función de desinitialización del indicador personalizado |
    // ----------------------------------------------- -------------------
    int deinit ()
    {
    string LineName;
    //----
    LineName = StringConenate (FastMAPeriod,, SlowMAPeriod, MA Cross);
    ObjectDelete (LineName);
    //----
    return (0);
    }
    // ----------------------------------------------- -------------------
    //| Función de iteración del indicador personalizado |
    // ----------------------------------------------- -------------------
    int start ()
    {
    //int counted_bars = IndiorCounted ();

    FastMALastBar doble, SlowMALastBar, PriceToCross, Cross, FastMATest, SlowMATest;
    bool AlertEnabled = true;
    string LineName = StringConenate (FastMAPeriod,, SlowMAPeriod, MA Cross);


    //LineName = StringConenate (FastMAPeriod,, SlowMAPeriod, MA Cross);

    //----

    if (NewBar ())
    {
    FastMALastBar = iMA (NULL, 0, FastMAPeriod, 0, FastMAType, PRICE_CLOSE, 1);
    SlowMALastBar = iMA (NULL, 0, SlowMAPeriod, 0, SlowMAType, PRICE_CLOSE, 1);
    PriceToCross = Abierto [0];
    Cross = FastMALastBar-SlowMALastBar;


    if (Crossgt; 0.0)
    {
    while (Crossgt; 0.0)
    {
    PriceToCross = PriceToCross-Point;
    FastMATest = CalcMA (FastMAPeriod, FastMAType, PriceToCross, FastMALastBar);
    SlowMATest = CalcMA (SlowMAPeriod, SlowMAType, PriceToCross, SlowMALastBar);
    Cross = FastMATest-SlowMATest;
    }
    }
    más
    {
    mientras (Crosslt; 0.0)
    {
    PriceToCross = PriceToCross Point;
    FastMATest = CalcMA (FastMAPeriod, FastMAType, PriceToCross, FastMALastBar);
    SlowMATest = CalcMA (SlowMAPeriod, SlowMAType, PriceToCross, SlowMALastBar);
    Cross = FastMATest-SlowMATest;
    }
    }


    ObjectDelete (LineName);
    drawLine (PriceToCross, LineName, LineColor, 0);

    }

    if (AlertEnabled)
    {
    if (MathAbs (Close [0] -PriceToCross) lt; = EarlyPips * Point)
    {
    Alert (Cerca de, FastMAPeriod,, SlowMAPeriod, MA Cross on, Symbol (),, Period ());

    si EmailAlert SendMail (Close to, FastMAPeriod,, SlowMAPeriod, MA Cross on, Symbol (),, Period ();

    AlertEnabled = falso;
    }
    }
    más
    {
    if (MathAbs (Close [0] -PriceToCross) gt; = ResetAlert * Point)
    {
    AlertEnabled = verdadero;
    }
    }





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


    doble CalcMA (int MAPeriod, int MAType, double PriceTest, double LastMA)
    {
    doble MA, pr;

    cambiar (MAType)
    {
    caso 0:
    {
    MA = ((LastMA * MAPeriod) -Close [MAPeriod] PriceTest)MAPeriod;
    descanso;
    }
    caso 1:
    {
    pr = 2.0(MAPeriod 1);
    MA = PriceTest * pr LastMA * (1-pr);
    descanso;
    }
    }

    return (MA);
    }

    void drawLine (double lvl, nombre de la cadena, color Col, tipo int)
    {
    ObjectCreate (name, OBJ_HLINE, 0, Time [0], lvl);/, Time [0], lvl);

    if (tipo == 1)
    ObjectSet (name, OBJPROP_STYLE, STYLE_SOLID);
    más
    ObjectSet (nombre, OBJPROP_STYLE, STYLE_DOT);

    ObjectSet (name, OBJPROP_COLOR, Col);
    ObjectSet (nombre, OBJPROP_WIDTH, 1);

    regreso;
    }


    bool NewBar () {
    static datetime lastbar;
    datetime curbar = Tiempo [0];
    if (lastbar! = curbar)
    {
    lastbar = curbar;
    retorno (verdadero);
    }
    else {
    falso retorno);
    }
    }

  2.                         
    Publicidad
  3. #2
    1 Adjunto (s) Gracias por su respuesta Rbi. He adjuntado un archivo MQL del código a continuación. Quiero que el indicador active una alerta y me envíe un correo electrónico solo una vez, si el precio llega a 15 pips del cruce de 34EMA8EMA. La condición debe reiniciarse una vez que el precio se mueva a un no especificado. de pips (en este caso 20 pips) lejos de 34EMA8EMA Cross. Intenté modificar el código y ahora recibo 3 errores: ')' - los parámetros incorrectos cuentan 'else' - el token inesperado 'MAType' - el error interno Cualquier ayuda será muy apreciada. Gracias
    https://www.forosforex.com/attachmen...2240799907.mq4

  4. #3
    Simplemente publique el archivo MQL ... a nadie le gusta leer esto en el hilo sin un compilador ...

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.