MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 561 1...554555556557558559560561562563564565566567568...1953 新しいコメント Aleksandr Lishchenko 2018.06.06 19:16 #5601 Ihor Herasko:シンプルに。 エラーになる Ihor Herasko 2018.06.06 19:19 #5602 Aleksandr Lishchenko:エラーメッセージどこにエラーがあるのか?どのようなエラーですか? Aleksandr Teleguz 2018.06.07 15:31 #5603 こんにちは。ユーザーから指定された入力 取引量パラメータが 正しいかどうか、つまり指定されたロットがロット変更ステップの倍数であるかどうかをチェック するタスクがあります。そのためには、割り算の実余りを求め、それをゼロまたはゼロに非常に近い値(例えば、0.000000001)と比較します。 void OnStart() { double volume = 0.03; Alert("Результат деления ", volume/MarketInfo(Symbol(), MODE_LOTSTEP)); Alert("Шаг изменения лота ", MarketInfo(Symbol(), MODE_LOTSTEP)); Alert("Вешественный остаток ", fmod(volume, MarketInfo(Symbol(), MODE_LOTSTEP))); } 結果 /* Вещественный остаток 0,009999999999999998 Шаг изменения лота 0,01 Результат деления 3,0 */ また、スクリーンショットを添付します。 余りは0かごく小さな数字になるはずなのですが、結果はなぜかほぼ0.01に?では、例えばユーザーが間違って0.001を設定してしまった場合、どのように入力パラメータを確認すればよいのでしょうか。 ファイル: 4npm6qh.png 8 kb Ihor Herasko 2018.06.07 16:30 #5604 Aleksandr Teleguz:こんにちは。ユーザーから指定された入力 取引量パラメータが 正しいかどうか、つまり指定されたロットがロット変更ステップの倍数であるかどうかをチェック するタスクがあります。そのためには、割り算の実余りを求め、それをゼロまたはゼロに非常に近い値(例えば、0.000000001)と比較します。 結果 また、スクリーンショットを添付します。 余りは0かごく小さな数字になるはずなのですが、結果はなぜかほぼ0.01に?では、例えばユーザーが間違って0.001を設定してしまった場合、どのように入力パラメータを確認すればよいのでしょうか。ちょっと間違っていますね。まず、(設定値から)最も近い正しい値を計算し、得られた値の差を確認します。それがゼロに等しい(またはDBL_EPSILONより大きくない)場合、すべてがOKです。 void OnStart() { double volume = 0.03; double fVolumeMin = SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_MIN); double fVolumeMax = SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_MAX); double fVolumeStep = SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_STEP); double fNearestCorrectVolume = VolumeCast(volume, fVolumeMin, fVolumeMax, fVolumeStep); if (fabs(fNearestCorrectVolume - volume) > DBL_EPSILON) Alert("Ошибка"); else Alert("Все ОК"); } VolumeCastの機能は、ここから 取り出せます。 Aleksandr Lishchenko 2018.06.07 20:27 #5605 Ihor Herasko:どこが悪いのか?どのようなエラーが出るのでしょうか?1 エラー(s), 0 警告(s) 2 1'if' - 式は、グローバルでは使用できません。 Aleksandr Lishchenko 2018.06.07 21:05 #5606 こんにちは!!!みんな、EAを1つのアカウントにリンクする方法のコードを教えてください(最新のMT4アップデートのため)。ありがとうございました。 Artyom Trishkin 2018.06.07 21:09 #5607 Aleksandr Lishchenko:アフタヌーン!!!みんな、EAを1つのアカウントにリンクする方法のコードを教えてください(最新のMT4アップデートのため)。ありがとうございました。コードはすでにお渡ししています。 エラーの説明には、OnTick()やOnInit()の内部ではなく、グローバル変数の 領域にコードを入力したことが書かれています。 'if' - expressions are not allowed on a global scope そのような知識がありながら、まだ自分のコードを誰かから守ろうとしているのですか? Aleksandr Lishchenko 2018.06.07 22:11 #5608 Artyom Trishkin:コードはすでにお伝えしています。 OnTick()やOnInit()の内部ではなく、グローバル 変数の領域にコードを入力したことが、エラーの説明で書かれています。 'if' - expressions are not allowed on a global scope その知識を持ってしてもなお、自分のコードを誰かから守ろうとするのですか?勉強中なんです! 判断しないでください;) Ihor Herasko 2018.06.07 22:13 #5609 Aleksandr Lishchenko:1 エラー(s), 0 警告(s) 2 1'if' - 式は、グローバルでは使用できません。コードをどのように適用したかを教えてください。私が書いたものをそのままコピーしたのですか? Aleksandr Lishchenko 2018.06.07 22:22 #5610 Ihor Herasko:コードをどのように適用したかを教えてください。私が書いたものをそのままコピーしたのですか?しました :))) 1...554555556557558559560561562563564565566567568...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
シンプルに。
エラーになる
エラーメッセージ
どこにエラーがあるのか?どのようなエラーですか?
こんにちは。ユーザーから指定された入力 取引量パラメータが 正しいかどうか、つまり指定されたロットがロット変更ステップの倍数であるかどうかをチェック するタスクがあります。そのためには、割り算の実余りを求め、それをゼロまたはゼロに非常に近い値(例えば、0.000000001)と比較します。
結果
/* Вещественный остаток 0,009999999999999998 Шаг изменения лота 0,01 Результат деления 3,0 */
また、スクリーンショットを添付します。
余りは0かごく小さな数字になるはずなのですが、結果はなぜかほぼ0.01に?では、例えばユーザーが間違って0.001を設定してしまった場合、どのように入力パラメータを確認すればよいのでしょうか。
こんにちは。ユーザーから指定された入力 取引量パラメータが 正しいかどうか、つまり指定されたロットがロット変更ステップの倍数であるかどうかをチェック するタスクがあります。そのためには、割り算の実余りを求め、それをゼロまたはゼロに非常に近い値(例えば、0.000000001)と比較します。
結果
また、スクリーンショットを添付します。
余りは0かごく小さな数字になるはずなのですが、結果はなぜかほぼ0.01に?では、例えばユーザーが間違って0.001を設定してしまった場合、どのように入力パラメータを確認すればよいのでしょうか。
ちょっと間違っていますね。まず、(設定値から)最も近い正しい値を計算し、得られた値の差を確認します。それがゼロに等しい(またはDBL_EPSILONより大きくない)場合、すべてがOKです。
VolumeCastの機能は、ここから 取り出せます。
どこが悪いのか?どのようなエラーが出るのでしょうか?
1 エラー(s), 0 警告(s) 2 1
'if' - 式は、グローバルでは使用できません。
こんにちは!!!
みんな、EAを1つのアカウントにリンクする方法のコードを教えてください(最新のMT4アップデートのため)。
ありがとうございました。
アフタヌーン!!!
みんな、EAを1つのアカウントにリンクする方法のコードを教えてください(最新のMT4アップデートのため)。
ありがとうございました。
コードはすでにお渡ししています。
エラーの説明には、OnTick()やOnInit()の内部ではなく、グローバル変数の 領域にコードを入力したことが書かれています。
'if' - expressions are not allowed on a global scope
コードはすでにお伝えしています。
OnTick()やOnInit()の内部ではなく、グローバル 変数の領域にコードを入力したことが、エラーの説明で書かれています。
'if' - expressions are not allowed on a global scope
勉強中なんです!
判断しないでください;)
1 エラー(s), 0 警告(s) 2 1
'if' - 式は、グローバルでは使用できません。
コードをどのように適用したかを教えてください。私が書いたものをそのままコピーしたのですか?
コードをどのように適用したかを教えてください。私が書いたものをそのままコピーしたのですか?
しました :)))