Brauche Hilfe mit Code
Ergebnis 1 bis 3 von 3

Thema: Brauche Hilfe mit Code

  1. #1
    Hallo zusammen. Ich brauche Hilfe mit dem unten eingefügten Code. Es ist ein einfacher Cross-Alert mit beweglichem Durchschnitt, den ich ein wenig optimiert und eine E-Mail-Benachrichtigung hinzugefügt habe. Ich bin mir nicht sicher, ob die E-Mail-Benachrichtigung funktioniert, da ich beim Kompilieren immer einen Fehler erhalte. Ich habe den folgenden Code eingefügt

    Ich habe den Code mehrmals durchgegangen und kann das Problem nicht genau lokalisieren. Vielen Dank im Voraus für Ihre Hilfe.

    Der Fehler sagt ... '\ end_of_program' - unsymmetrische linke Klammer



    // ----------------------------------------------- -------------------
    //| MACrossEarlyAlert.mq4 |
    //| Mariano Silva |
    //| |
    // ----------------------------------------------- -------------------
    #eigenschaft copyright Mariano Silva
    #Eigenschaftslink

    #property indior_chart_window
    //---- Eingabeparameter
    extern bool EmailAlert = false;
    extern int FastMAPeriod = 50;
    externer String Typ = 0-SMA, 1-EMA;
    extern int FastMAType = 1;
    extern int SlowMAPeriod = 1;
    extern int SlowMAType = 0;
    extern int EarlyPips = 15;
    extern int ResetAlert = 20;
    Externe Farbe LineColor = Orange;
    // ----------------------------------------------- -------------------
    //| Benutzerdefinierte Indikatorinitialisierungsfunktion |
    // ----------------------------------------------- -------------------
    int init ()
    {
    //---- Indikatoren
    //----
    Rückkehr (0);
    }
    // ----------------------------------------------- -------------------
    //| Benutzerdefinierte Indikator Deinitialisierungsfunktion |
    // ----------------------------------------------- -------------------
    int deinit ()
    {
    Zeichenfolge Leitungsname;
    //----
    LineName = StringConenate (FastMAPeriod,, SlowMAPeriod, MA Cross);
    ObjectDelete (LinienName);
    //----
    Rückkehr (0);
    }
    // ----------------------------------------------- -------------------
    //| Benutzerdefinierte Indikatoriterationsfunktion |
    // ----------------------------------------------- -------------------
    int start ()
    {
    //int gezählte_leisten = IndiorCounted ();

    Double FastMALastBar, SlowMALastBar, PriceToCross, Cross, FastMATest, SlowMATest;
    bool AlertEnabled = Wahr;
    Zeichenfolge LineName = StringConenate (FastMAPeriod,, SlowMAPeriod, MA Cross);


    //LineName = StringConenate (FastMAPeriod,, SlowMAPeriod, MA-Kreuz);

    //----

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


    if (Kreuzgt; 0.0)
    {
    während (Crossgt; 0.0)
    {
    PriceToCross = PriceToCross-Point;
    FastMATest = CalcMA (FastMAPeriod, FastMAType, PriceToCross, FastMALastBar);
    SlowMATest = CalcMA (SlowMAPeriod, SlowMAType, PriceToCross, SlowMALastBar);
    Cross = FastMATest-SlowMATest;
    }
    }
    sonst
    {
    während (Crosslt; 0.0)
    {
    PriceToCross = PriceToCross Point;
    FastMATest = CalcMA (FastMAPeriod, FastMAType, PriceToCross, FastMALastBar);
    SlowMATest = CalcMA (SlowMAPeriod, SlowMAType, PriceToCross, SlowMALastBar);
    Cross = FastMATest-SlowMATest;
    }
    }


    ObjectDelete (LinienName);
    Zeichnungslinie (PriceToCross, LineName, LineColor, 0);

    }

    if (AlertEnabled)
    {
    if (MatheAbs (Close [0] -PriceToCross) lt; = EarlyPips * Point)
    {
    Alert (in der Nähe von FastMAPeriod,, SlowMAPeriod, MA Cross on, Symbol (),, Periode ());

    wenn EmailAlert SendMail (Fast, FastMAPeriod,, SlowMAPeriod, MA Cross on, Symbol (),, Period ();

    AlertEnabled = false;
    }
    }
    sonst
    {
    if (MatheAbs (Close [0] -PriceToCross) gt; = ResetAlert * Point)
    {
    AlertEnabled = Wahr;
    }
    }





    //----
    Rückkehr (0);
    }
    // ----------------------------------------------- -------------------


    Doppel-CalcMA (int MAPeriod, int MAType, doppelter PriceTest, double LastMA)
    {
    Doppel MA, pr;

    wechseln (MAType)
    {
    Fall 0:
    {
    MA = ((LastMA * MAPeriod) -Schliessen [MAPeriod] PriceTest)MAPeriod;
    Unterbrechung;
    }
    Fall 1:
    {
    pr = 2,0(MAPeriode 1);
    MA = Preisfest * pr LastMA * (1-pr);
    Unterbrechung;
    }
    }

    Rückkehr (MA);
    }

    void drawLine (double lvl, Stringname, Farbe Col, int type)
    {
    ObjectCreate (Name, OBJ_HLINE, 0, Zeit [0], lvl);/, Zeit [0], lvl);

    if (Typ == 1)
    ObjectSet (Name, OBJPROP_STYLE, STYLE_SOLID);
    sonst
    ObjectSet (Name, OBJPROP_STYLE, STYLE_DOT);

    ObjectSet (Name, OBJPROP_COLOR, Col);
    ObjectSet (Name, OBJPROP_WIDTH, 1);

    Rückkehr;
    }


    bool NewBar () {
    statische Datetime-Lastleiste;
    datetime curbar = Zeit [0];
    if (lastbar! = curbar)
    {
    lastbar = Curbar;
    zurück (wahr);
    }
    sonst {
    falsch zurückgeben);
    }
    }

  2. #2
    Einfach die MQL-Datei posten ... niemand liest das gerne ohne Compiler im Thread ...

  3. #3
    1 Anlage (n) Vielen Dank für Ihre Antwort Rbi. Ich habe eine MQL-Datei mit dem folgenden Code angehängt. Ich möchte, dass der Indikator einen Alarm auslöst und mir nur einmal eine E-Mail sendet, wenn der Preis innerhalb von 15 Pips von 34EMA8EMA Crossover liegt. Die Bedingung sollte dann zurückgesetzt werden, sobald sich der Preis um eine angegebene Zahl bewegt. von Pips (in diesem Fall 20 Pips) weg von 34EMA8EMA Cross. Ich habe versucht, den Code zu optimieren und jetzt bekomme ich 3 Fehler: ')' - falsche Parameter zählen 'else' - unerwartetes Token 'MAType' - interner Fehler Jede Hilfe wird sehr geschätzt. Vielen Dank
    https://www.tradingintuitive.com/att...2240799907.mq4

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Die tradingintuitive Webseite verwendet Cookies
Wir nutzen Cookies, um Ihnen das Webseitenerlebnis bestmöglich anbieten zu können. Durch weitere Nutzung der Webseite erlauben Sie die Nutzung von Cookies. Für weitere Details und wie Sie ggf. diese Einstellungen verändern können, lesen Sie bitte unsere Datenschutzbestimmung. Lesen Sie mehr