Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 266

 
danil77783:

Artyom Guten Tag. Mein Name ist Daniel. Meine Frage ist die folgende. Ich habe meinen Expert Advisor in MQL4 geschrieben, genauer gesagt, aus dem Video-Tutorial umgeschrieben. Offenbar gibt es einige Fehler in ihm, aber es wird nicht gut kompilieren.

Der Compiler zeigt die Fehler unter Angabe der Zeile und der Position in der Zeile an. Bitte beachten Sie diese

Fügen Sie den Text des Programms mit der Schaltfläche SRC über dem Text Ihrer Nachricht ein - sehen Sie, es ist besser!

//+------------------------------------------------------------------+
//|                                                        test7.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+

#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

Sie könnten auch eine Datei anhängen - dann würde sie sofort im MetaEditor erscheinen

 
LRA:

Der Compiler erzeugt Fehler mit Angabe der Zeile und der Position in der Zeile. Auf sie verweisen

Fügen Sie den Text des Programms mit Hilfe der SRC-Schaltfläche über dem Text Ihrer Nachricht ein - sehen Sie, es ist besser!!!

Sie könnten auch eine Datei anhängen - dann würde sie sofort in MetaEditor erscheinen


Entschuldigung für das falsche Verhalten, ich habe mich korrigiert, ich gebe Ihnen mein Wort :) Ich bin absolut erschöpft....

//+------------------------------------------------------------------+
//|                                                        test7.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//-------------------------------------------------------------------
extern double lots            = 0.1;
extern int    TakeProfit      = 300;
extern int    StopLoss        = 50;
extern int    Magic           = 777; 
extern int    Slippage        = 3;
//-------------------------------------------------------------------
extern string TMA             = "Параметры индикатора TMA";
extern string TimeFrame       = "current time frame";
extern int    HalfLength      = 56;
extern int    Price           = PRICE_CLOSE;
extern double ATRMultiplier   = 2.0;
extern int    ATRPeriod       = 100;
extern bool   Interpolate     = true;
//-------------------------------------------------------------------
double PriceHigh, PriceLow, SL ,TP;
int ticet;


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   if (Digits == 3 || Digits == 5);
   {
       TakeProfit *=10;
       StopLoss   *=10;
       Slippage   *=10;
   }  
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
    PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0);  
    PriceLow  = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0);  
    
    if (CountSell() == 0 && Bid >= PriceHigh)
    {
      tik et = OrderSend(Symbol(), OP_SELL, lots, Bid, Slippage, 0, 0, "TMA robot", Magic, 0, Red);  
      if (tiket > 0)
      {
          SL = NormalizeDouble(Bid + StopLoss*Point, Digits);
          TP = NormalizeDouble(Bid - TakeProfit*Point, Digits);
          
          if (OrderSelect(ticet, SELECT_BY_TICKET)) 
              OrderModify(tiket, OrderOpenPrice(), SL, TP, 0);
        }
    }
  }
//--------------------------------------------------------------------------------------------
 if (CountBuy() == 0 && Ask <= PriceLow)
    {
      tiket = OrderSend(Symbol(), OP_BUY, lots, Ask, Slippage, 0, 0, "TMA robot", Magic, 0, Blue);  
      if (tiket > 0)
      {
          TP = NormalizeDouble(Ask + TakeProfit*Point, Digits);
          SL = NormalizeDouble(Ask - StopLoss*Point, Digits);
          
          if (OrderSelect(ticet, SELECT_BY_TICKET)) 
              OrderModify(tiket, OrderOpenPrice(), SL, TP, 0);
        }
    }
//+------------------------------------------------------------------+
int CountSell() 
  {
    int count = 0;
    for (int trade = OrdersTotal()-1; trade>=0; trade--)
    {
       if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES))
       {
          if (OrderSymbol() == Symbol() && OrderMagicNumber) == Magic && OrderType() == OP_SELL)
             count++;
       }   
    }
    return(count);
  }
//-----------------------------------------------------------------------------------------------  
  int CountBuy() 
  {
    int count = 0;

    for (int trade = OrdersTotal()-1; trade>=0; trade--)
    {
       if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES))
       {
          if (OrderSymbol() == Symbol() && OrderMagicNumber) == Magic && OrderType() == OP_BUY)
             count++;
       }   
    }
    return(count);
  }

Ich habe Zeilen mit Fehlern markiert, Datei..... angehängt, bitte sehen Sie sich das an, vielen Dank im Voraus!

 
 
danil77783:

Ich entschuldige mich für das falsche Verhalten, ich werde mich korrigieren, ich gebe Ihnen mein Wort :) Ich bin völlig erschöpft ....

Ich habe Zeilen mit Fehlern markiert, ich habe die Datei ..... angehängt, bitte schauen Sie nach, vielen Dank im Voraus!

Ist es so schwer zu erkennen, dass ticet und tiket unterschiedliche Variablen sind?

Und Sie können keine schließenden Klammern sehen, ohne auch öffnende Klammern zu sehen?

 
Vielen Dank für Ihre Hilfe!!! .... Ich habe alle Fehler behoben, bis auf einen, den ich nicht entziffern kann. Ich bitte Sie um Ihre Hilfe. Wo habe ich wieder Mist gebaut?
 
danil77783:
Vielen Dank für Ihre Hilfe!!! .... Ich habe alle Fehler behoben, bis auf einen, den ich nicht entziffern kann. Ich bitte Sie um Ihre Hilfe. Wo habe ich wieder Mist gebaut?
Sie haben diesen Block aus dem Körper der OnTick-Funktion, entfernen Sie eine geschweifte Klammer.
 
Alekseu Fedotov:
Sie haben diesen Block aus dem Körper der OnTick-Funktion, entfernen Sie eine Klammer.

Und dann fehlt noch eine Klammer.

Die Klammer oberhalb der ausgewählten Zeile muss nach unten verschoben werden, vor die Minuslinie.

}
//+------------------------------------------------------------------+
 
Alexey Viktorov:

Und dann fehlt noch eine Klammer.

Die Klammer über der hervorgehobenen Zeile muss nach unten, vor die Minuslinie, verschoben werden.

Oh ja, das sollten Sie.

 

Alles!!! .... Ich danke Ihnen vielmals. Hat es zusammengestellt. Es funktioniert!

 
danil77783: Alles!!! .... Ich danke Ihnen vielmals. Hat es zusammengestellt. Es funktioniert!

Was ist das Ergebnis? Auch dieses Stück hier mit der leeren Funktion kann entsorgt werden. Probieren Sie es aus...

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   
  }
Grund der Beschwerde: