初心者を助ける - 曜日と時刻の機能 - ページ 2

 

コンパイル時に以下のようなエラーが発生するのですが?

GAPeaOnlySunday.mq4'をコンパイル中...
'bool' - semicolon expected Z:\ForexTrading_MikeGabEA_From MikeGAPeaOnlySunday.mq4 (86, 3)
'(' - initialization expected Z:\ForexTrading﹑From MikeGAPeaOnlySunday.mq4 (86, 22)
'TimeDayofWeek' - comma or semicolon expected Z:\ForexTradingTrading_From MikeGAPeaOnlySunday.mq4 (86, 23)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (86, 54)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (86, 70)
'(' - initialization expected Z:\ForexTradingTempteeGabEA_From MikeGAPeaOnlySunday.mq4 (87, 22)
'TimeDayofWeek' - comma or semicolon expected Z:\ForexTradingTradingTrafficia_From MikeGAPeaOnlySunday.mq4 (87, 23)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (87, 50)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (87, 54)
')' - unbalanced right parenthesis Z:\ForexTrading ◇From MikeGAPeaOnlySunday.mq4 (87, 65)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (87, 70)
'sunday_cond' - expression on global scope not allowed Z:\ForexTrading Filter_From MikeGAPeaOnlySunday.mq4 (88, 6)
'sunday_cond' - variable not defined Z:\ForexTrading TieGabEA_From MikeGAPeaOnlySunday.mq4 (88, 6)
'monday_cond' - expression on global scope not allowed Z:\ForexTrading FilterGabEA_From MikeGAPeaOnlySunday.mq4 (88, 22)
'monday_cond' - variable not defined Z:\ForexTradingThreadingGabEA_From MikeGAPeaOnlySunday.mq4 (88, 22)
')' - unbalanced right parenthesis Z:\ForexTrading↵From MikeGAPeaOnlySunday.mq4 (88, 34)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (89, 20)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (89, 24)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (92, 35)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (92, 43)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (94, 38)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (94, 42)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (94, 57)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (96, 39)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (96, 45)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (98, 20)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (98, 29)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (100, 32)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (100, 53)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (102, 30)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (102, 55)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (104, 40)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (104, 57)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (104, 99)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (104, 107)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (108, 20)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (108, 30)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (110, 28)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (110, 55)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (112, 30)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (112, 57)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (114, 40)
')' - unbalanced right parenthesis Z:\ForexTrading ◇ From MikeGAPeaOnlySunday.mq4 (114, 57)
')' - unbalanced right parenthesis Z:\ForexTrading ◇ From MikeGAPeaOnlySunday.mq4 (114, 99)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (114, 107)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (122, 43)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (123, 27)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (123, 36)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (123, 46)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (123, 69)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (123, 81)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (123, 94)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (124, 66)
')' - unbalanced right parenthesis Z:\ForexTradingGabEA_From MikeGAPeaOnlySunday.mq4 (125, 49)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (126, 31)
')' - unbalanced right parenthesis Z:\ForexTrading ◇From MikeGAPeaOnlySunday.mq4 (127, 44)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (128, 58)
')' - unbalanced right parenthesis Z:\ForexTradingThreeGabEA_From MikeGAPeaOnlySunday.mq4 (134, 44)
')' - unbalanced right parenthesis Z:\ForexTrading FilterGabEA_From MikeGAPeaOnlySunday.mq4 (136, 12)
57 エラー(s), 2 警告(s)

 

あなたのコードがバグっているからです。

デバッグしてください。

デバッグは、括弧が抜けていることよりも、報告されているように、セミコロンが抜けていることを探すことから始めましょう。

コーディングとは、ただエディタに文字を書くことではなく、自分のコードをデバッグすることが主な仕事です。

 

それとも損切りしてギネスブックに問い合わせる?


CB

 

私のEAコードにエラーはありません。念のためテストしてみただけです。これらのエラーはすべて、次の4行のコードを挿入した後に発生しました。


bool sunday_cond = (TimeDayofWeek(TimeCurrent())==0) && (Hour()>=23);
bool monday_cond = (TimeDayofWeek(TimeCurrent())==1) && (Hour()<=15); bool monday_cond = (TimeDayofWeek(TimeCurrent())==1) && (Hour() <=15);
if(sunday_cond || monday_cond )
if(OrdersTotal()==0)

 
EagleEye:

私のEAコードにエラーはありません。念のためテストしてみただけです。これらのエラーはすべて、この4行のコードを挿入した後に発生しました。


if(OrdersTotal()==0)//ここに従ってはいけません -> {

もし、これだけしか挿入していないのであれば、ifがtrueのときに何をしなければならないかをコーディングしていないだけです。

あなたの "EA"(Mikes EAではないのですか?)は、コードを変更した後、どうしてエラーフリーだと言えるのですか?

 

TimeDayofWeek」ではなく、「TimeDayOfWeek」になっています。というのが正しいコードです。

bool sunday_cond = (TimeDayOfWeek(TimeCurrent())==0) && (Hour()>=23);
bool monday_cond = (TimeDayOfWeek(TimeCurrent())==1) && (Hour()<=15));
if(OrdersTotal()==0)
if(sunday_cond || monday_cond )
go_trading();

この部分は検証済みなので、「右括弧のバランスが悪い」エラーは、残ったコードの別の問題です。

 
abstract_mind:

TimeDayofWeek」ではなく、「TimeDayOfWeek」になっています。というのが正しいコードです。

bool sunday_cond = (TimeDayOfWeek(TimeCurrent())==0) && (Hour()>=23);
bool monday_cond = (TimeDayOfWeek(TimeCurrent())==1) && (Hour()<=15));
if(OrdersTotal()==0)
if(sunday_cond || monday_cond )
go_trading()を実行します。

この部分は検証済みなので、「右括弧のバランスが悪い」というエラーは、残りのコードの別の問題です。

if(OrdersTotal()==0)
if( sunday_cond || monday_cond )
go_trading();

これは、少なくとも、悪いスタイルのコード です。

if(
    (OrdersTotal()==0)
    &&
    (sunday_cond || monday_cond )
  ) 
   {
    go_trading();
   }

このように、括弧が正しいことは明らかであり、このようなコードはほとんどすべての言語で機能する。

デバッグしやすいコードには、「{ }」が不可欠なのだ。

一行で済むようなコードでない場合、このようなエラーが発生することもあります。

 
meikel:

もし、これだけしか挿入していないなら、ifがtrueのときに何をしなければならないかをコード化していないだけです。

あなたの "EA"(Mikes EAではないのですか?)は、あなたがコードを変更した後、どうしてエラーフリーだと言えるのですか?

いいえ、私は冗談を言っているのではありません。本当に知りたいのなら、私の友人であるMikeが、私に試して欲しいということでずっと前に送ってくれたものなのです。


この4行のコードなしでEAをコンパイルすると、まったくエラーは出ません。

ここから4行のコードを挿入すると、すべてのエラーが発生します。

 
EagleEye:

冗談ではありません。そして、本当に知りたいのなら、私の友人であるマイクが、私に試して欲しいということで、ずっと前にそれを送ってくれたのです。


この4行のコードなしでEAをコンパイルすると、まったくエラーは出ません。

ここから4行のコードを挿入すると、すべてのエラーが発生します。

abstracts_mindさんのヒントにしたがってください。

Ofではなく、ofと書かれています。

bool sunday_cond = (TimeDayofWeek(TimeCurrent())==0) && (Hour()>=23);

コンパイラは sunday_cond の後にセミコロンを書くことを期待します。

 
meikel:

abstracts_mindさんのヒントに従います。

を書きましたが、Ofではありません。

bool sunday_cond = (TimeDayofWeek(TimeCurrent())==0) && (Hour()>=23);

のように、等号の後がすべて間違っているため、コンパイラはsunday_condの後にセミコロンを期待するのです。


では、どのようなコードにすればよいのでしょうか?


今現在は以下のようになっています。

//+------------------------------------------------------------------------+
//| expert startfunction|
//+------------------------------------------------------------------------+
int start()

bool sunday_cond = (TimeDayOfWeek(TimeCurrent())==0) & (Hour() >==1) & (TimeCurrent()) & (TimeCurrent()) & (TimeCurrent())& (Hour()>=23);
bool monday_cond = (TimeDayOfWeek(TimeCurrent())==1) && (Hour()<=15);

if(
(OrdersTotal()==0)
&&
(sunday_cond || monday_cond )
)

{
if (Bars<100 || IsTradeAllowed()==false) return;

if(CalculateCurrentOrders(Symbol())==0).CheckForOpen()を実行します。CheckForOpen();