Há uma idéia comercial interessante. Ajude-me a encontrar erros no código (mql4). - página 17

 
Karputov Vladimir:

Por favor, insira o código corretamente:Insira o código corretamente no fórum(corrigi seu post).

Adicionado: Eu também recomendo fortemente o uso do modelador de código - ele ajudará a detectar erros(Trabalhando com código fonte: Styler - Desenvolvimento de Programa).

Acrescentarei fortes recomendações para o uso de funções atualizadas

tais como

int OnInit()
void OnTick()

e outros...

 
vladislavch19:

Favor informar onde escrever ou quem pode me ajudar a corrigir 2 erros no assessor "}". - fim inesperado do programa '{' - parênteses desequilibrados TMA.mq4



Oooooooooh quantos erros sintáticos existem.

//+------------------------------------------------------------------+
//|                                                      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);
  }
//+------------------------------------------------------------------+
 
Pela manhã, decidiu apostar no real, mas algo de última opção coruja não segura as primeiras opções parecem estar penduradas, e estas 6 moscas e recarregadas - na demonstração então funcionou bem... ou é bom demais - eles não deixam funcionar...))
 
Сергей Криушин:
Pela manhã, decidiu apostar no real, mas algo de última opção coruja não segura as primeiras opções parecem estar penduradas, e estas 6 moscas e recarregadas - na demonstração então funcionou bem... Ou é bom demais - não deixar que funcione...))
Fez uma purga geral - agora de pé...limpou 13 trojans de código... MT5 envelhecido...já não usa robô há algum tempo... deve ter se amontoado...
 
Сергей Криушин:
Pela manhã, decidiu apostar no real, mas algo de última opção coruja não segura as primeiras opções parecem estar penduradas, e estas 6 moscas e recarregadas - na demonstração então funcionou bem... ou é bom demais - eles não deixam funcionar...))
d O que diz nos troncos quando voa? Terminei de reescrever minha EA com mt5 para mt5 hoje.
 
Sergey Gritsay:
d O que diz nos troncos quando voa? Terminei hoje de reescrever um EA cruzado com um martin para mt5.
Não sei, tenho medo de tocá-lo... Tenho medo de tocá-lo... e martin é para pessoas arriscadas, ou vender apenas - aposte $1000 - ele vai pagar bem, por conta real hoje eu também fiz $3 de lucro... isso é bom... e se eu não ficar ganancioso, provavelmente não vou estragar tudo, para poder abrir mais algumas contas depois... muito obrigado...))
 
Сергей Криушин:

aqui está o relatório...e este é o segundo jorro...

Bem, o que posso dizer, continue assim.
 
erro 'ST' - identificador não declarado test3.mq4 69 13 e possível perda de dados devido à conversão do tipo 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:
erro 'ST' - identificador não declarado test3.mq4 69 13 e possível perda de dados devido à conversão do tipo test3.mq4 85 15


você declarou um nome variável

double PriceHigh,PriceLow,SL,TP;

mas você escreve outro

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

Sem erros com as variáveis, "obrigado".

agora adverte possível perda de dados devido à conversão do tipo test3.mq4 87 15

e no testador não é possível abrir o arquivo 'C:\Users`Àministrator\AppData\Roaming\MetaQuotes\Terminal\F8B0CF1E1FEED3B00D2D7E193237B799\MQL4}indicadores\TMA_Fair.ex4' [2]