初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 495 1...488489490491492493494495496497498499500501502...1503 新しいコメント Aleksey Vyazmikin 2016.01.13 14:37 #4941 最初のケースで解決される - 2つの比較のために括弧に入れ、それが誓うことはありません - 論理的なエラーがあった - すなわち、比較の結果は、 "または "のために置き換えることができる?2つ目の表現に疑問が残りますが、何が問題なのでしょうか? Alexey Viktorov 2016.01.13 14:50 #4942 -Aleks-:最初のケースは解決しました - 2つの比較を括弧に入れ、それは誓いません - 論理的なエラーがありました - すなわち、比較結果は、 "または "のために置き換えることができますか?2番目の表現については、まだ未解決の問題があります。新しいmql4では、条件のチェックは完全には行われないことを覚えておいてください。I.e.条件において if(Low[X]>PriceBuy && High[X]>PriceBuy || Low[X]<PriceBuy && High[X]<PriceBuy)Low[x]がPriceBuyより大きくない場合、それ以上のチェックは行われない。これは、エラーの説明でわかることです。これに対応して、最初の組を括弧で囲むと、2番目の組の条件が失敗した場合にチェックされる。2つ目の質問です。for(calc_day;calc_day>0; calc_day--)calc_dayは何に相当するのでしょうか?ゼロ以下であってもよいですか?コンパイラはロジックの中身を知らないので......。そのため、効果的でないループの可能性を警告しているのです。 Aleksey Vyazmikin 2016.01.13 14:56 #4943 Alexey Viktorov:新しいmql4では、条件チェックが完全に行われないことを忘れないでください。すなわち、条件において if(Low[X]>PriceBuy && High[X]>PriceBuy || Low[X]<PriceBuy && High[X]<PriceBuy)Low[x]がPriceBuyより大きくない場合、それ以上のチェックは行われません。これは、エラーの説明でわかることです。これに対応して、最初の組を括弧で囲むと、2番目の組の条件が失敗した場合にチェックされる。回答ありがとうございました驚いた。視覚的にはいつも正しく動作しているロジックなので、うーん...。アレクセイ・ヴィクトロフ2つ目の質問です。for(calc_day;calc_day>0; calc_day--)calc_dayは何に相当するのでしょうか?ゼロ以下であってもよいですか?コンパイラはロジックの中身を知らないので...。そのため、効果的でないループの可能性を警告しているのです。 calc_day は常に 0 より大きく、それ以外の値ではコードは呼び出されない。 Alexey Viktorov 2016.01.13 15:09 #4944 -Aleks-:返信ありがとうございました驚いた。視覚的にはいつも正しく動作しているロジックなので、うーん...。6**ビルド以前はそのような感じで、条件の連鎖をすべてチェックして、すべてがうまくいっていたのですが、今はすべてが変わっています。また、古いビルドでは、この場合の条件は曖昧です。どのようにデザインされているのですか?if( (Low[X]>PriceBuy && High[X]>PriceBuy) || (Low[X]<PriceBuy && High[X]<PriceBuy) )それとも、そうなのか?if(Low[X]>PriceBuy && ( High[X]>PriceBuy) || (Low[X]<PriceBuy ) && High[X]<PriceBuy)人間の脳ならわかるが、コンパイラはどうすればいいのか?脳がないんです。-Aleks- です。 calc_day は常に 0 より大きく、それ以外の値ではコードが呼び出されない。コンパイラに伝えると... Aleksey Vyazmikin 2016.01.13 18:32 #4945 Alexey Viktorov:ビルド6**までは、条件の連鎖をすべて確認し、すべてがうまくいくという感じでしたが、今はすべてが変わっています。そして古いビルドでは、この場合も条件があいまいです。どのようにデザインされているのですか?if( (Low[X]>PriceBuy && High[X]>PriceBuy) || (Low[X]<PriceBuy && High[X]<PriceBuy) )なのか、それだけなのか。if(Low[X]>PriceBuy && ( High[X]>PriceBuy) || (Low[X]<PriceBuy ) && High[X]<PriceBuy)人間の脳ならわかるが、コンパイラはどうすればいいのか?彼には脳がない...コンパイラに伝えると...納得~、もっと警戒します。コンパイラに伝えるにはどうしたらよいですか?書いても、理解されるか?if (calc_day<0) calc_day=calc_day*(-1); 削除済み 2016.01.13 18:39 #4946 Alexey Viktorov:6**ビルドの前もそうでしたが、条件の連鎖をすべて確認し、すべてがうまくいっていたのに、今はすべてが変わってしまいました。はい、そしてこの場合の条件の曖昧さの古いビルドで。どのようにデザインされているのですか?if( (Low[X]>PriceBuy && High[X]>PriceBuy) || (Low[X]<PriceBuy && High[X]<PriceBuy) )なのか、それともif(Low[X]>PriceBuy && ( High[X]>PriceBuy) || (Low[X]<PriceBuy ) && High[X]<PriceBuy)人間の脳ならわかるが、コンパイラはどうすればいいのか?彼には脳がない...コンパイラに伝えると...演算子の優先順位をチェックし、エラーの可能性がある場合は、括弧を使用して優先順位を明確にします - これはエラーでは ありません。 それは警告である。古いコードで発生する。コンパイラのためというより、ユーザーのために追加したのです。コンパイラは操作の優先順位 によって導かれる。そこでは、すべてがクリアになる。の優先順位は||の優先順位より高いので、括弧はこのように並べます。if( (安値[X]>価格買い && 高値[X]>価格買い) || (安値[X]<価格買い && 高値[X]<価格買い]) )更新:この場合、MT4でもMT5でも優先順位は同じです。 削除済み 2016.01.13 18:43 #4947 -Aleks-:納得~、もっと警戒します。コンパイラに伝えるにはどうしたらよいですか?書いても、理解されるか?if (calc_day<0) calc_day=calc_day*(-1);for( calc_day = 365; calc_day > 0; calc_day --) だから、試してみてください。 Alexey Viktorov 2016.01.13 19:22 #4948 Alexey Kozitsyn:演算子の優先順位をチェックし、エラーの可能性がある場合は、括弧を使用して優先順位を明確にします - これはエラーでは ありません。 それは警告である。古いコードで発生する。コンパイラのためというより、ユーザーのために追加したのです。コンパイラは操作の優先順位 によって導かれる。そこでは、すべてがクリアになる。の優先順位は||の優先順位より高いので、括弧はこのように並べます。if( (安値[X]>価格買い && 高値[X]>価格買い) || (安値[X]<価格買い && 高値[X]<価格買い]) )更新:この場合、MT4でもMT5でも優先順位は同じです。まあ要するに、そう、警告はエラーではないのです。しかし、最初のバリアントはどのように動作するのでしょうかif( Low[X]>PriceBuy && High[X]>PriceBuy || Low[X]<PriceBuy && High[X]<PriceBuy )?。 それとも、ブラケットを何個もつけるのはバツが悪いのでしょうか? Artyom Trishkin 2016.01.13 19:49 #4949 -Aleks-:納得~、もっと警戒します。コンパイラに伝えるにはどうしたらよいですか?書いても、理解されるか?if (calc_day<0) calc_day=calc_day*(-1);for(int i=calc_day; i>0; i--) {} 削除済み 2016.01.14 03:23 #4950 Alexey Viktorov:まあ、要するに、そう、警告はエラーではないのです。しかし、最初のif( Low[X]>PriceBuy && High[X]>PriceBuy || Low[X]<PriceBuy && High[X]<PriceBuy ) はどうなっているのでしょうか。 それとも、ブラケットを何個か付けるのに失敗するのでしょうか?上に書いたような仕組みになります。コンパイラは、明白でないエラーの可能性を避けるために、怠慢に括弧を付けないようユーザーに警告している。 1...488489490491492493494495496497498499500501502...1503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
最初のケースで解決される - 2つの比較のために括弧に入れ、それが誓うことはありません - 論理的なエラーがあった - すなわち、比較の結果は、 "または "のために置き換えることができる?
2つ目の表現に疑問が残りますが、何が問題なのでしょうか?
最初のケースは解決しました - 2つの比較を括弧に入れ、それは誓いません - 論理的なエラーがありました - すなわち、比較結果は、 "または "のために置き換えることができますか?
2番目の表現については、まだ未解決の問題があります。
新しいmql4では、条件のチェックは完全には行われないことを覚えておいてください。I.e.条件において
if(Low[X]>PriceBuy && High[X]>PriceBuy ||
Low[X]<PriceBuy && High[X]<PriceBuy)
Low[x]がPriceBuyより大きくない場合、それ以上のチェックは行われない。これは、エラーの説明でわかることです。これに対応して、最初の組を括弧で囲むと、2番目の組の条件が失敗した場合にチェックされる。
2つ目の質問です。
for(calc_day;calc_day>0; calc_day--)
calc_dayは何に相当するのでしょうか?ゼロ以下であってもよいですか?コンパイラはロジックの中身を知らないので......。そのため、効果的でないループの可能性を警告しているのです。
新しいmql4では、条件チェックが完全に行われないことを忘れないでください。すなわち、条件において
if(Low[X]>PriceBuy && High[X]>PriceBuy ||
Low[X]<PriceBuy && High[X]<PriceBuy)
Low[x]がPriceBuyより大きくない場合、それ以上のチェックは行われません。これは、エラーの説明でわかることです。これに対応して、最初の組を括弧で囲むと、2番目の組の条件が失敗した場合にチェックされる。
回答ありがとうございました
驚いた。視覚的にはいつも正しく動作しているロジックなので、うーん...。
2つ目の質問です。
for(calc_day;calc_day>0; calc_day--)
calc_dayは何に相当するのでしょうか?ゼロ以下であってもよいですか?コンパイラはロジックの中身を知らないので...。そのため、効果的でないループの可能性を警告しているのです。
返信ありがとうございました
驚いた。視覚的にはいつも正しく動作しているロジックなので、うーん...。
6**ビルド以前はそのような感じで、条件の連鎖をすべてチェックして、すべてがうまくいっていたのですが、今はすべてが変わっています。また、古いビルドでは、この場合の条件は曖昧です。どのようにデザインされているのですか?
if( (Low[X]>PriceBuy && High[X]>PriceBuy) || (Low[X]<PriceBuy && High[X]<PriceBuy) )
それとも、そうなのか?
if(Low[X]>PriceBuy && ( High[X]>PriceBuy) || (Low[X]<PriceBuy ) && High[X]<PriceBuy)
人間の脳ならわかるが、コンパイラはどうすればいいのか?脳がないんです。
-Aleks- です。
calc_day は常に 0 より大きく、それ以外の値ではコードが呼び出されない。コンパイラに伝えると...
ビルド6**までは、条件の連鎖をすべて確認し、すべてがうまくいくという感じでしたが、今はすべてが変わっています。そして古いビルドでは、この場合も条件があいまいです。どのようにデザインされているのですか?
if( (Low[X]>PriceBuy && High[X]>PriceBuy) || (Low[X]<PriceBuy && High[X]<PriceBuy) )
なのか、それだけなのか。
if(Low[X]>PriceBuy && ( High[X]>PriceBuy) || (Low[X]<PriceBuy ) && High[X]<PriceBuy)
人間の脳ならわかるが、コンパイラはどうすればいいのか?彼には脳がない...
コンパイラに伝えると...
納得~、もっと警戒します。
コンパイラに伝えるにはどうしたらよいですか?書いても、理解されるか?
if (calc_day<0) calc_day=calc_day*(-1);
6**ビルドの前もそうでしたが、条件の連鎖をすべて確認し、すべてがうまくいっていたのに、今はすべてが変わってしまいました。はい、そしてこの場合の条件の曖昧さの古いビルドで。どのようにデザインされているのですか?
if( (Low[X]>PriceBuy && High[X]>PriceBuy) || (Low[X]<PriceBuy && High[X]<PriceBuy) )
なのか、それとも
if(Low[X]>PriceBuy && ( High[X]>PriceBuy) || (Low[X]<PriceBuy ) && High[X]<PriceBuy)
人間の脳ならわかるが、コンパイラはどうすればいいのか?彼には脳がない...
コンパイラに伝えると...
演算子の優先順位をチェックし、エラーの可能性がある場合は、括弧を使用して優先順位を明確にします - これはエラーでは ありません。 それは警告である。古いコードで発生する。
コンパイラのためというより、ユーザーのために追加したのです。コンパイラは操作の優先順位 によって導かれる。そこでは、すべてがクリアになる。の優先順位は||の優先順位より高いので、括弧はこのように並べます。
if( (安値[X]>価格買い && 高値[X]>価格買い) || (安値[X]<価格買い && 高値[X]<価格買い]) )
更新:この場合、MT4でもMT5でも優先順位は同じです。
納得~、もっと警戒します。
コンパイラに伝えるにはどうしたらよいですか?書いても、理解されるか?
if (calc_day<0) calc_day=calc_day*(-1);
演算子の優先順位をチェックし、エラーの可能性がある場合は、括弧を使用して優先順位を明確にします - これはエラーでは ありません。 それは警告である。古いコードで発生する。
コンパイラのためというより、ユーザーのために追加したのです。コンパイラは操作の優先順位 によって導かれる。そこでは、すべてがクリアになる。の優先順位は||の優先順位より高いので、括弧はこのように並べます。
if( (安値[X]>価格買い && 高値[X]>価格買い) || (安値[X]<価格買い && 高値[X]<価格買い]) )
更新:この場合、MT4でもMT5でも優先順位は同じです。
まあ要するに、そう、警告はエラーではないのです。しかし、最初のバリアントはどのように動作するのでしょうかif( Low[X]>PriceBuy && High[X]>PriceBuy || Low[X]<PriceBuy && High[X]<PriceBuy )?。 それとも、ブラケットを何個もつけるのはバツが悪いのでしょうか?
納得~、もっと警戒します。
コンパイラに伝えるにはどうしたらよいですか?書いても、理解されるか?
if (calc_day<0) calc_day=calc_day*(-1);
まあ、要するに、そう、警告はエラーではないのです。しかし、最初のif( Low[X]>PriceBuy && High[X]>PriceBuy || Low[X]<PriceBuy && High[X]<PriceBuy ) はどうなっているのでしょうか。 それとも、ブラケットを何個か付けるのに失敗するのでしょうか?
上に書いたような仕組みになります。
コンパイラは、明白でないエラーの可能性を避けるために、怠慢に括弧を付けないようユーザーに警告している。