我可以使用这些(){}这么多吗? - 页 5

 
7bit:
如果我的工作是修复你的代码和/或在你的代码中找到匹配的大括号,那么我会做的第一件事 就是正确格式化它,以便能够真正阅读它。

如何使用universalindentgui软件?
 

错误在哪里?

拜托,谁能帮帮我....

 
albert_lim83:

错误在哪里?

拜托,谁能帮帮我....

这是格式化后的代码。似乎没有缺少大括号,但在其中几个ifs中,你在OrderSend()后面忘了一个;。我没有 改变任何东西,只是应用了代码格式化,你可以看到这已经给了代码一个完全不同的观点,并且可以使错误变得明显。

//+------------------------------------------------------------------+
//|                                                   NightMare1.mq4 |
//|                                             Copyright 2012, Abu. |
//|                                        https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, Abu."
#property link      "https://www.metaquotes.net/"

extern string Name_Expert = "NightMare";
extern double StartHour1 = 0000;
extern double StopHour1  = 0759;
extern double StartHour2 = 0800;
extern double StopHour2  = 1859;
extern double StartHour3 = 1900;
extern double StopHour3  = 2359;
extern double LongTP1  = 80;
extern double ShortTP1 = 80;
extern double longSL1  = 150;
extern double ShortSL1 = 150;
extern double LongTP2  = 180;
extern double ShortTP2 = 180;
extern double longSL2  = 150;
extern double ShortSL2 = 150;
extern double LongTP3  = 50;
extern double ShortTP3 = 50;
extern double longSL3  = 150;
extern double ShortSL3 = 150;
extern double LotSize = 0.1;
extern double MaxOrders = 5;
extern double SafetyPercent = 50;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
{
   if(AccountFreeMargin()<(SafetyPercent/100)*AccountBalance()) {
      Print("We have no money. Free Margin = ", AccountFreeMargin());
      return(0);
   }
   if(Bars<50) {
      return(0);
   }
   if(OrdersTotal()>MaxOrders()) {
      return(0);
   }
   double diClose0=iClose(NULL,5,0);
   double diMA1=iMA(NULL,5,5,0,MODE_EMA,PRICE_OPEN,1);
   double diClose2=iClose(NULL,5,0);
   double diMA3=iMA(NULL,5,4,0,MODE_EMA,PRICE_OPEN,1);

   if (TimeCurrent()>StartHour1())&(TimeCurrent()<StopHour1()) {
      if ((diClose0<diMA1)) {
                                                  //----
         OrderSend(Symbol(),LongTP1,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
         return(0);
      }
      else
      if ((diClose2>diMA3)) {
                                                  //----
         OrderSend(Symbol(),ShortSL1,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
         return(0);
      }

      return(0);
   }

   if (TimeCurrent()>StartHour2())&&(TimeCurrent()<StopHour2()) {
      if ((diClose0<diMA1)) {
                                                  //----
         OrderSend(Symbol(),LongTP2,0.1,Ask,3,Bid-15*Point,Bid+15*Point)
            return(0);
      }
      else
      if ((diClose2>diMA3)) {
                                                  //----
         OrderSend(Symbol(),ShortSL2,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
         return(0);
      }
      return(0);
   }
   if (TimeCurrent()>StartHour3())&&(TimeCurrent()<StopHour3()) {
      if ((diClose0<diMA1)) {
                                                  //----
         OrderSend(Symbol(),LongTP3,0.1,Ask,3,Bid-15*Point,Bid+15*Point)
            return(0);
      }
      else
      if ((diClose2>diMA3)) {
                                                  //----
         OrderSend(Symbol(),ShortSL3,0.1,Ask,3,Bid-15*Point,Bid+15*Point)
            return(0);
      }
      return(0);
   }
   return(0);
}
 
是的,我看到了,我错过了3;在订单结束后。
 
7bit:
如果我的工作是修复你的代码和/或在你的代码中找到匹配的大括号,那么我会做的第一件事 就是正确格式化,以便能够真正阅读它。

格式正确是一个相对的术语 . . .

 
7bit:

这是格式化后的代码。看起来没有缺失大括号,但在其中几个ifs中,你在OrderSend()后面忘了一个;。我没有 改变任何东西,只是应用了代码格式化器,你可以看到这已经给了代码一个完全不同的观点,可以使错误变得很明显。


代码格式化器如何使用?

在那里的软件。

可以分享给我吗?

谢谢...

 
WHRoeder:

人们对你的帮助已经到了极点。你一直在滥用 这里的帮助。问了这么多基本问题。你自己去找丢失的括号吧。它就在OrderSend上面,我用记事本花了大约20秒才找到它。

所以我已经把你归入巨魔一类,不会帮助你。

你花了很长时间才明白这一点!虽然通常的巨魔试图制造争论,但这个巨魔却试图通过可悲的无助来制造不安。既然我们都有帮助别人的目标,他就在创造一个失败的帮助 局面,从而造成困扰。


albert_lim83 我已经看到了你的其他长篇大论,你在那里假装愚蠢,让这里聚集的真正的人感到不安。你为什么不试着找一些对你的生活有用的事情来做?

如果你愿意,你可以对我的帖子感到不快,但论坛规则只适用于人类,而不适用于巨魔。

 

等等,等等...

也许这是我的旧帖子...

i already change the new life ...
 
albert_lim83:

如何使用universalindentgui软件?

*将代码粘贴到编辑器中(删除示例代码)。

*然后选择其中一个格式化引擎(我用的是BCPP,但你也可以使用任何其他能理解C/C++/Java的格式化引擎)

*勾选"实时预览 "复选框

* 玩弄格式化器的设置,直到它形成你喜欢的风格(BCPP的设置很少,所以它的配置很简单,使用3个空格缩进,没有标签,这是MT4的默认设置)

 
我真的需要你们来帮助我......