有一个有趣的交易想法。帮助我找到代码中的错误(mql4)。 - 页 17

 
Karputov Vladimir:

请正确插入代码:在论坛中正确插入代码(我已经纠正了你的帖子)。

补充:我还强烈建议 使用代码样式器--它将有助于发现错误(使用源代码工作:样式器--程序开发)。

我将在强烈建议中加入使用更新的功能

int OnInit()
void OnTick()

和其他...

 
vladislavch19:

请告诉我在哪里写,或者谁能帮助我纠正顾问"}中的两个错误。- 程序的意外结束 '{' - 不平衡的括号 TMA.mq4



Oooooooh有多少句法错误。

//+------------------------------------------------------------------+
//|                                                      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);
  }
//+------------------------------------------------------------------+
 
早上决定赌一把,但最后一个选项猫头鹰不持有,第一个选项似乎挂了,这6只苍蝇和重新加载 - 在演示然后工作得很好...或者它太好 - 他们不让它工作......)
 
Сергей Криушин:
早上决定赌一把,但最后一个选项猫头鹰不持有,第一个选项似乎挂了,这6只苍蝇和重新加载 - 在演示然后工作得很好...或者是太好 - 不要让它去工作...)
做了一次全面的清理--现在站起来了......从代码中清理了13个木马病毒......陈旧的MT5...很久没有使用机器人了...必须堆积起来...
 
Сергей Криушин:
早上决定赌一把,但最后一个选项猫头鹰不持有,第一个选项似乎挂了,这6只苍蝇和重新加载 - 在演示然后工作得很好...或者它太好 - 他们不让它工作......)
d 当它飞走的时候,日志中写了什么?我今天已经完成了为mt5重写我的EA。
 
Sergey Gritsay:
d 它在飞行时在日志中说什么?我今天完成了为MT5重写一个与马汀交叉的EA。
我不知道,我不敢碰它......我不敢碰它......而马丁是为有风险的人准备的,或者只卖出--赌1000美元--会有丰厚的回报,今天在我的真实账户上我也赚了3美元......。那就好...如果我不贪心,我可能不会吹,所以我以后可以多开几个账户......非常感谢...)
 
Сергей Криушин:

这是报告......这是第二次喷发......。

我还能说什么呢,继续努力吧。
 
错误 'ST' - 未声明的标识符 test3.mq4 69 13 以及由于类型转换可能导致的数据丢失 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:
错误 'ST' - 未声明的标识符 test3.mq4 69 13 以及由于类型转换可能导致的数据丢失 test3.mq4 85 15


你已经声明了一个变量名

double PriceHigh,PriceLow,SL,TP;

但你又写了一个

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

没有变量的错误,"谢谢你"。

现在它警告说,由于类型转换,数据可能会丢失 test3.mq4 87 15

并且在测试器中无法打开文件'C:\Users\Àministrator\AppData\Roaming\MetaQuotes\Terminal\F8B0CF1E1FEED3B00D2D7E193237B799\MQL4\indicators\TMA_Fair.ex4' [2]

原因: