どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 472

 
Pr0t0tip:

こんにちは、次のような問題があります。ログによると、テスト時にOrderModifyが130と出ています。以下は、EAのコードです。


SL = NormalizeDouble(Bid+StopLoss*Point, Digits);

SL = NormalizeDouble(Bid-TakeProfit*Point, Digits);     Здесь поменяй   SL  на   TP
SL = NormalizeDouble(Ask-StopLoss*Point, Digits);

SL = NormalizeDouble(Ask+TakeProfit*Point, Digits);     И здесь
 

'}'- すべてのコントロールパスが値を返すわけではない

この関数は値を返すし、別のインジケータではこのエラーもなく正常に動作するのですが


 
Zver4991:

'}'- すべてのコントロールパスが値を返すわけではない

この関数は値を返すし、別のインジケータではこのエラーもなく正常に動作するのですが



新しいエディタで開き、最初の括弧をハイライトし、最後の括弧をチェックすると、すべてが一度に表示されます。
 

デバッグモードで プログラムをステップバイステップで実行するように手配することが可能かどうか教えてください。さらにトラッキングのための変数を追加

 
Zver4991:

'}'- すべてのコントロールパスが値を返すわけではない

この関数は値を返すし、別のインジケータではこのエラーもなく正常に動作していますが


これは、関数が何も返さないかもしれないときに、関数に分岐オプションがあることを伝えるメッセージです。例えば、こんな感じです。

//+----------------------------------------------------------------------------+
int TestFunc(int a) {
   if(a>2 || a<0) a=2;
   if(a==0) return(1);
   else if(a==1) return(2);
   else if(a==2) return(3);
}
//+----------------------------------------------------------------------------+

a 変数の値は0から2までの範囲に限定されているようですが、それでもコンパイラはこれをエラーと見なします。

関数本体の 閉じ括弧の前に、関数からのデフォルトの戻り値であるreturn()を入れれば、すべてうまくいきます。

//+----------------------------------------------------------------------------+
int TestFunc(int a) {
   if(a>2 || a<0) a=2;
   if(a==0) return(1);
   else if(a==1) return(2);
   else if(a==2) return(3);
   return(-1);
}
//+----------------------------------------------------------------------------+
 
artmedia70:

これは、関数が何も返さないかもしれないときに、関数に分岐オプションがあることを教えてくれます。例えば、こんな感じです。

a 変数の値は0から2までの範囲に限定されているようですが、それでもコンパイラはエラーと判断しています。

関数本体の閉じ括弧の前にreturn()を入れて、関数からのデフォルトの戻り値を指定すれば、すべてが穀潰しになります。


aがint型でない場合は?

関数型 - 関数終了時の戻り値

int  - return(-1);

void - return;

bool - return(false);

string - return(""); 
 
artmedia70:

これは、関数が何も返さないかもしれないときに、関数に分岐オプションがあることを教えてくれます。例えば、こんな感じです。

変数aの 値は0から2までの範囲に限定されているようですが、それでもコンパイラはエラーと見なします。

関数本体の閉じ括弧の前にreturn()を入れて、関数からのデフォルトの戻り値を指定すれば、すべてが穀潰しになります。


ありがとうございました。
 
Vladon:


人のタイプがint型でない場合はどうするのですか?

関数型は関数終了時の戻り値


あれは何だったんだ?私はただ、最初に頭に浮かんだことを例に挙げただけです。他のデータ型(voidを除く)を返す関数を書いてもよかったのでは...。論点は変わりません。
 
artmedia70:
あれは何だったんだ?私はただ、最初に頭に浮かんだことを例に挙げただけです。他のデータ型(voidを除く)を返す関数を書いてもよかったのでは...。論点は変わりません。


データ型を 明確にしただけです。 これは初心者からの質問の枝なので、どの関数でも同じ返り値を期待されます
 

バグを解決してください

mql4のマニュアルの例を元に、自分用のEAを作ってみることにしました。1週間前からいじっているのですが、いつも何かしらのエラーが出ます。

ブラケットだけでなく、何かを変更したり削除したりする必要があるかもしれませんので、何が間違っているのか確認してください。

エラー

'}'- unexpected end of program expert.mq4 218 3.

'{' - アンバランスな括弧 expert.mq4 23 2

ファイル:
expert_1.mq4  9 kb