Hai bisogno di aiuto con il codice

 

Publi

Hai bisogno di aiuto con il codice

 

Publi

Risultati da 1 a 3 di 3

Discussione: Hai bisogno di aiuto con il codice

  1. #1
    Ciao a tutti. Ho bisogno di aiuto con il codice incollato di seguito. ?? un semplice cross alert medio mobile che ho modifio leggermente e aggiunto un avviso via email. Non sono sicuro che l'avviso email funzionerà man mano che continuo a ricevere 1 errore durante la compilazione. Ho incollato il codice qui sotto

    Ho passato il codice più volte e non riesco a individuare il problema. Grazie in anticipo per tutto il tuo aiuto.

    L'errore dice ... '\ end_of_program' - parentesi sinistra sbilanciata



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

    #property indior_chart_window
    //---- parametri di input
    extern bool EmailAlert = falso;
    extern int FastMAPeriod = 50;
    stringa esterna 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;
    colore extern LineColor = Arancione;
    // ----------------------------------------------- -------------------
    //| Funzione di inizializzazione dell'indiore personalizzato |
    // ----------------------------------------------- -------------------
    int init ()
    {
    //---- indiori
    //----
    ritorno (0);
    }
    // ----------------------------------------------- -------------------
    //| Funzione di deinitializzazione dell'indiore personalizzato |
    // ----------------------------------------------- -------------------
    int deinit ()
    {
    stringa LineName;
    //----
    LineName = StringConenate (FastMAPeriod,, SlowMAPeriod, MA Cross);
    ObjectDelete (LineName);
    //----
    ritorno (0);
    }
    // ----------------------------------------------- -------------------
    //| Funzione di iterazione dell'indiore personalizzato |
    // ----------------------------------------------- -------------------
    int start ()
    {
    //int counted_bars = IndiorCounted ();

    doppio FastMALastBar, 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 = aperto [0];
    Croce = FastMALastBar-SlowMALastBar;


    if (Crossgt; 0.0)
    {
    mentre (Crossgt; 0.0)
    {
    PriceToCross = PriceToCross-Point;
    FastMATest = CalcMA (FastMAPeriod, FastMAType, PriceToCross, FastMALastBar);
    SlowMATest = CalcMA (SlowMAPeriod, SlowMAType, PriceToCross, SlowMALastBar);
    Croce = FastMATest-SlowMATest;
    }
    }
    altro
    {
    mentre (Crosslt; 0.0)
    {
    PriceToCross = PriceToCross Point;
    FastMATest = CalcMA (FastMAPeriod, FastMAType, PriceToCross, FastMALastBar);
    SlowMATest = CalcMA (SlowMAPeriod, SlowMAType, PriceToCross, SlowMALastBar);
    Croce = FastMATest-SlowMATest;
    }
    }


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

    }

    if (AlertEnabled)
    {
    if (MathAbs (Chiudi [0] -PriceToCross) lt; = EarlyPips * Point)
    {
    Avviso (vicino a, FastMAPeriod,, SlowMAPeriod, MA Cross on, Symbol (),, Period ());

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

    AlertEnabled = false;
    }
    }
    altro
    {
    if (MathAbs (Chiudi [0] -PriceToCross) gt; = ResetAlert * Point)
    {
    AlertEnabled = true;
    }
    }





    //----
    ritorno (0);
    }
    // ----------------------------------------------- -------------------


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

    Interruttore (MAType)
    {
    caso 0:
    {
    MA = ((* LASTMA MAPeriod) -Vicino [MAPeriod] PriceTest)MAPeriod;
    rompere;
    }
    caso 1:
    {
    pr = 2.0(MAPeriod 1);
    MA = PriceTest * pr LASTMA * (1-pr);
    rompere;
    }
    }

    ritorno (MA);
    }

    void drawLine (double lvl, nome stringa, col colore, tipo int)
    {
    ObjectCreate (name, OBJ_HLINE, 0, Time [0], lvl);/, Time [0], lvl);

    se (tipo == 1)
    ObjectSet (nome, OBJPROP_STYLE, STYLE_SOLID);
    altro
    ObjectSet (nome, OBJPROP_STYLE, STYLE_DOT);

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

    ritorno;
    }


    bool NewBar () {
    statetime datetime lastbar;
    datetime curbar = Tempo [0];
    if (lastbar! = Curbar)
    {
    lastbar = Curbar;
    return (true);
    }
    altro {
    tornare (false);
    }
    }

  2. #2
    Pubblica solo il file MQL ... a nessuno piace leggere questo thread senza un compilatore ...

  3. #3
    1 allegato (i) Grazie per la risposta Rbi. Ho allegato un file MQL del codice qui sotto. Voglio che l'indiore spari un avviso e mi invii un'email solo una volta, se il prezzo arriva a 15 pips di 34EMA8EMA crossover. La condizione dovrebbe quindi essere ripristinata quando il prezzo sposta un no specifio. di pips (in questo caso 20 pips) lontano da 34EMA8EMA Cross. Ho provato a modificare il codice e ora ho 3 errori: ')' - i parametri sbagliati contano 'else' - token imprevisto 'MAType' - errore interno Qualsiasi aiuto sarà molto apprezzato. Grazie
    https://www.forexmad.com/attachments...2240799907.mq4

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Il sito di forexmad utilizza cookie
Il sito di forexmad utilizza cookie, alcuni dei quali già installati. Per avere maggiori informazioni sui nostri cookie ti preghiamo di cliccare qui. Ti preghiamo di cliccare sul bottone a destra per accettare i nostri cookie. Se continui a navigare sul sito di forexmad assumeremo che sei d'accordo ad utilizzarli.