これらの() {}はそんなに使えますか? - ページ 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:

これは、フォーマット後のコードです。中括弧がないように見えますが、これらのifのいくつかでは、OrderSend()の後に;を忘れています。私は何も変更していない、唯一のコードフォーマッタを適用し、あなたはこれがすでにコードに全く異なるビューを与え、エラーが明らかにすることができますどのように見ることができます。


コードフォーマッターはどのように使用するのですか?

ここで、ソフトウェア。

私に共有することができますか?

ありがとうございます.

 
WHRoeder:

人々はあなたを極限まで助けてきました。あなたはここでその手助けを悪用して います。そんな初歩的な質問をして。足りない括弧は自分で探してください。OrderSendの上にあるんだけど、notepad2で20秒くらいで見つけられたよ。

だから、私はあなたを荒らしのカテゴリーに入れ、あなたを助けないことにしました。

それを理解するのに随分と時間がかかったようですね。通常の荒らしは議論を引き起こそうとしますが、この荒らしは哀れなほど助けられないことで動揺を 引き起こそうとしています。私たちは皆、人を助けるという目標を持っているので、彼は助けられない 状況を作り出し、苦痛を与えているのです。


albert_lim83 あなたの他の長いスレッドでは、ここに集まっている本物の人々を動揺させるために、あなたが格別に愚かなふりをするのを見ました。何か役に立つことを見つけてみてはどうでしょうか?

私の投稿を不快に思うかもしれませんが、フォーラムのルールは人間だけに適用されるもので、荒らしには適用されません。

 

待って、待って...

もしかしたら、それは私の古い投稿かもしれない・・・。

i already change the new life ...
 
albert_lim83:

Universalindentgui ソフトウェアの使用方法

* コードをエディタに貼り付けます(例のコードは削除してください)。

* フォーマットエンジンの一つを選択します(私はBCPPを使用しましたが、C/C++/Javaを理解する他のフォーマットエンジンも使用できます)。

* チェックボックス "ライブプレビュー "をチェック します。

* フォーマッタの設定を、好みのスタイルになるまで調整します。(BCPPは設定がほとんどないので、簡単に設定できます。MT4のデフォルトである、インデントにはスペース3つ、タブは使用しません)

 
本当に皆さんの協力が必要なんです.