Es gibt eine interessante Handelsidee. Helfen Sie mir, Fehler im Code zu finden (mql4). - Seite 17

 
Karputov Vladimir:

Bitte fügen Sie den Code korrekt ein:Fügen Sie den Code korrekt in das Forum ein(ich habe Ihren Beitrag korrigiert).

Hinzugefügt: Ich empfehle auch dringend, den Code Styler zu verwenden - er wird helfen, Fehler zu erkennen(Arbeiten mit Quellcode: Styler - Programmentwicklung).

Ich schließe mich den nachdrücklichen Empfehlungen zur Verwendung aktualisierter Funktionen an

wie zum Beispiel

int OnInit()
void OnTick()

und andere...

 
vladislavch19:

Bitte teilen Sie mir mit, wohin ich schreiben soll oder wer mir helfen kann, 2 Fehler im Berater '}' zu korrigieren. - unerwartetes Programmende '{' - unausgeglichene Klammern TMA.mq4



Oooooooooh, wie viele syntaktische Fehler es gibt.

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
extern int   TakeProfit       =100;
extern int   StopLoss         =50;
extern double Lots            = 0.01;
extern int    Slippage        =5;
extern string comment         ="Продажа";
extern int    Megic           = 123;
extern string Indi            = "данные индикатора";
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 ticket;
bool res;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   if(Digits==3 || Digits==5)
     {
      TakeProfit*=10;
      StopLoss*=10;
      Slippage*=10;
     }
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()

  {
   PriceHigh=iCustom(Symbol(),0,"TMA with Distancer",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,1,0);
   PriceLow=iCustom(Symbol(),0,"TMA with Distancer",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,2,0);

   if(Bid>=PriceHigh)
     {
      SL=NormalizeDouble(Bid+StopLoss*Point,Digits);
      TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);

      ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,comment,123,0,Maroon);

      if(ticket>0)
        {
         if(OrderSelect(ticket,SELECT_BY_TICKET)==true)
            res=OrderModify(ticket,OrderOpenPrice(),SL,TP,0);
        }
     }

   if(Ask<PriceLow)
     {
      SL=NormalizeDouble(Ask-StopLoss*Point,Digits);
      TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);

      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,comment,123,0,clrDarkBlue);

      if(ticket>0)
        {
         if(OrderSelect(ticket,SELECT_BY_TICKET)==true)
            res=OrderModify(ticket,OrderOpenPrice(),SL,TP,0);
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountSell()
  {
   int count=0;
   for(int trede=OrdersTotal()-1;trede>=0;trede--)
     {
      if(OrderSelect(trede,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic)
           {
            if(OrderType()==OP_SELL)count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountBuy()
  {
   int count=0;
   for(int trede=OrdersTotal()-1;trede>=0;trede--)
     {
      if(OrderSelect(trede,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic)
           {
            if(OrderType()==OP_BUY)count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
 
Am Morgen beschlossen, auf die reale Wette, aber etwas letzte Option Eule nicht halten die ersten Optionen scheinen zu hängen, und diese 6 Fliegen und neu geladen - auf der Demo dann gut funktioniert... oder es ist zu gut - sie lassen es nicht funktionieren...))
 
Сергей Криушин:
Am Morgen beschlossen, auf die reale Wette, aber etwas letzte Option Eule nicht halten die ersten Optionen scheinen zu hängen, und diese 6 Fliegen und neu geladen - auf der Demo dann gut funktioniert... Oder ist es zu gut - es nicht wirken zu lassen...))
Habe eine allgemeine Bereinigung durchgeführt - steht jetzt...habe 13 Trojaner aus dem Code entfernt... veralteter MT5...habe den Roboter schon lange nicht mehr benutzt... müssen sich aufgetürmt haben...
 
Сергей Криушин:
Am Morgen beschlossen, auf die reale Wette, aber etwas letzte Option Eule nicht halten die ersten Optionen scheinen zu hängen, und diese 6 Fliegen und neu geladen - auf der Demo dann gut funktioniert... oder es ist zu gut - sie lassen es nicht funktionieren...))
d Was steht in den Protokollen, wenn er wegfliegt? Ich habe heute meinen EA mit mt5 für mt5 umgeschrieben.
 
Sergey Gritsay:
d Was steht in den Logbüchern, wenn er fliegt? Ich beendete das Umschreiben eines gekreuzten EA mit einem martin für mt5 heute.
Ich weiß nicht, ich habe Angst, es anzufassen... Ich habe Angst, es zu berühren... und martin ist für riskante Leute, oder nur verkaufen - Wette $1000 - es wird sich auszahlen handsomely, auf meinem realen Konto heute habe ich auch $3 Gewinn... Das ist gut... und wenn ich nicht gierig werde, werde ich es wahrscheinlich nicht verprassen, so dass ich später ein paar weitere Konten eröffnen kann... vielen Dank...))
 
Сергей Криушин:

hier ist der Bericht... und dies ist der zweite Spurt...

Was soll ich sagen, machen Sie weiter so.
 
Fehler 'ST' - nicht deklarierter Bezeichner test3.mq4 69 13 und möglicher Datenverlust aufgrund von Typkonvertierung test3.mq4 85 15

extern string TMA="Параметры";
extern int   TakeProfit       =100;
extern int   StopLoss         =50;
extern int    Megic           = 123;
extern double Lots            = 0.01;
extern int    Slippage        =5;
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 ticket;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {

   if(Digits==3 || Digits==5)
     {

      TakeProfit*=10;
      StopLoss*=10;
      Slippage*=10;
      }
      



                return(INIT_SUCCEEDED);
                
     }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+


//---

//+------------------------------------------------------------------+
//| 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(CountBuy()==0 && Ask<=PriceLow)

        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"tma",Megic,0,Blue);
         if(ticket>0)
           {
            TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
            ST=NormalizeDouble(Ask-StopLoss*Point,Digits);

            if(OrderSelect(ticket,SELECT_BY_TICKET))

              if( OrderModify(ticket,OrderOpenPrice(),ST,TP,0))
                Print("Ошибка");
               }
  
        }

      if(CountSell()==0 && Bid>=PriceHigh)

        {
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"tma",Megic,0,Red);
         if(ticket>0)
           {
            ST=NormalizeDouble(Bid+StopLoss*Point,Digits);
            TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);

            if(OrderSelect(ticket,SELECT_BY_TICKET))

               if( OrderModify(ticket,OrderOpenPrice(),ST,TP,0))
               Print("Ошибка");
           }
           }
        }
      //+------------------------------------------------------------------+
      int CountSell()
        {
         int count=0;
         for(int trede=OrdersTotal()-1;trede>=0;trede--)
           {
            if(OrderSelect(trede,SELECT_BY_POS,MODE_TRADES))
              {
               if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic && OrderType()==OP_SELL)

                  count++;
                  
              }
           }
         return(count);
        }

      int CountBuy()
        {
         int count=0;
         for(int trede=OrdersTotal()-1;trede>=0;trede--)
           {
            if(OrderSelect(trede,SELECT_BY_POS,MODE_TRADES))
              {
               if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic && OrderType()==OP_BUY)

                  count++;
                  
              }
           }
        
      return(count);
     }
//+------------------------------------------------------------------+

 
vladislavch19:
Fehler 'ST' - nicht deklarierter Bezeichner test3.mq4 69 13 und möglicher Datenverlust aufgrund von Typkonvertierung test3.mq4 85 15


haben Sie einen Variablennamen deklariert

double PriceHigh,PriceLow,SL,TP;

aber Sie schreiben eine andere

ST=NormalizeDouble(Ask-StopLoss*Point,Digits);
 

Keine Fehler bei Variablen, "Danke".

jetzt warnt er vor möglichem Datenverlust aufgrund der Typkonvertierung test3.mq4 87 15

und im Testgerät kann die Datei 'C:\Users\ÀÀministrator\AppData\Roaming\MetaQuotes\Terminal\F8B0CF1E1FEED3B00D2D7E193237B799\MQL4\indicators\TMA_Fair.ex4' nicht geöffnet werden [2]