WHILE演算子の妙な挙動 - ページ 4 1234 新しいコメント Ian Venner 2014.04.16 14:01 #31 lord_hiro: 以上です。 恥ずかしながら... :-) さらに、WHILEを使うのは初めてではないのですが、逆に考え始めてしまい、自分のループから抜け出せなくなってしまいました :-/。 そして、deVriesの提案した、||を&&に置き換えるというのは正解でした。 このトピックのおかげで、IF( == )がうまくいくかどうかなど、他にも気をつけるべきことがたくさん出てきました。 皆さん、私に理解させるために時間を費やしていただき、ありがとうございました。 みんな似たようなことやってるんですね(笑) デブリーズが言ったようにすることもできますし、オブジェクトを描画した後にwhileループから抜け出すためにbreakを追加することもできます。 とはいえ、breakを使えば、最初のwhile条件が不要になるので、もう少し効率的なコードが作れます。 また、GumRaiが言ったように、iHigh()を呼ぶよりもEMPTY_VALUEを 呼ぶ方が比較値として優れています。 extern int SwingBarCount=100; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ int start() { int SwingHighShift=0; string StringHighStatus="False"; int SwingHigh=0; while(SwingHighShift<=SwingBarCount) { if(iFractals(NULL,0,MODE_UPPER,SwingHighShift)!=EMPTY_VALUE && iFractals(NULL,0,MODE_UPPER,SwingHighShift)>Close[0]) { StringHighStatus="True"; SwingHigh=SwingHighShift; ObjectDelete("SwingHigh"); ObjectCreate("SwingHigh",OBJ_VLINE,0,Time[SwingHigh],0); ObjectSet("SwingHigh",OBJPROP_COLOR,Red); break; } else SwingHighShift++; } return(0); } 1234 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
以上です。
恥ずかしながら... :-)
さらに、WHILEを使うのは初めてではないのですが、逆に考え始めてしまい、自分のループから抜け出せなくなってしまいました :-/。
そして、deVriesの提案した、||を&&に置き換えるというのは正解でした。
このトピックのおかげで、IF( == )がうまくいくかどうかなど、他にも気をつけるべきことがたくさん出てきました。
皆さん、私に理解させるために時間を費やしていただき、ありがとうございました。
みんな似たようなことやってるんですね(笑)
デブリーズが言ったようにすることもできますし、オブジェクトを描画した後にwhileループから抜け出すためにbreakを追加することもできます。
とはいえ、breakを使えば、最初のwhile条件が不要になるので、もう少し効率的なコードが作れます。
また、GumRaiが言ったように、iHigh()を呼ぶよりもEMPTY_VALUEを 呼ぶ方が比較値として優れています。