エラー、バグ、質問 - ページ 2416 1...240924102411241224132414241524162417241824192420242124222423...3185 新しいコメント fxsaber 2019.03.27 06:54 #24151 Andrey Pogoreltsev:ここでは、曖昧さは必要ありません。単にオーバーロードされたメソッドが適用される順番であるべきです。つまり、オーバーロードの解決策の課題は、ジレンマを作り出すことではなく、最適な方法を選択することなのです。アクセス修飾子を 無視した場合、テーブルから最初のメソッドが取られるか、コンパイラの実装に依存するが、曖昧さはない。 ここで、例えば入力パラメータが異なる2つのメソッドがあった場合、どうなるでしょうか。 C++に戻ると、同じベクターが1つ持っています。 だから、これは絶対に正常な状態なんです。小学校という非常にシンプルな例を挙げていただきました。元の例とは関係ないようです。 アレクセイ・ナヴォイコフこの例では、定数でないオブジェクトのメソッドなので、他のすべての条件が同じであれば、呼び出されなければなりません。 このルールは知りませんでした、ありがとうございます。 キャスティングを削除して、両方のメソッドの引数をint型に すると、コードは正常にコンパイルされます。 つまり、MQLのハングアップの原因はキャスティングです。 このキャスティングは、コードが同一であるため、影響しないはずです。 原因は、コンパイラがオーバーロードされたメソッドのキャストが同一であるかどうかをチェックしないことにあるようです。 Alexey Navoykov 2019.03.27 07:43 #24152 一般に、この問題(およびMQLの他の多くの問題)を解決するには、メソッドの1つを補助クラスに移動させる必要があります。 class A { }; class _B { protected: A _a[]; public: const A * operator[](uint i) const { return &_a[i]; } }; class B : public _B { public: A * operator[](uint i) { return &_a[i]; } }; Andrey Pogoreltsev 2019.03.27 08:16 #24153 fxsaber:小学校という非常にシンプルな例を挙げていただきました。元の例とは関係なさそうですね。 C++の規格を読めば、上に引用したのと同じルールですべて解決していることがわかるはずです。 Stanislav Korotky 2019.03.27 11:58 #24154 Slava:そもそも、最適化キャッシュでは、MT5、MT4ともに文字列パラメータは常に63文字に切り捨てられていました。 イベント送信の場合、63文字以上の文字列は送信できません。 だから、外から来るものは限られている エンドユーザー向け製品に関しては。ベンダーは制限を考慮しなければならない。もし、それがわからなければ、売る前に十分なテストをしていないことになります。昔と今がどうこうではなく、時代に合わせ、より良い方向に変化していくためには、どうあるべきかということです。 Dmitry Melnichenko 2019.03.27 12:21 #24155 EAをテスト する際、パラメータを設定してスタートボタンを押すと、EAの設定がデフォルトにリセットされてしまうという問題が発生したのですが、何が問題なのでしょうか? ビデオでは、その一例をご紹介しています。 Vladimir Karputov 2019.03.27 12:25 #24156 Dmitry Melnichenko:EAをテスト する際、パラメータを設定してスタートボタンを押すと、EAの設定がデフォルトにリセットされてしまうという問題が発生したのですが、何が問題なのでしょうか? 動画例テスターで「設定」タブに移動した後、MT5がデフォルトにリセットされる 1の投稿をご覧ください。 Igor Zakharov 2019.03.27 12:32 #24157 隣のスレッドで質問したのですが、あまりそちらを見る人がいないようです。ここに重複して記載します。 https://www.mql5.com/ru/forum/6343/page1020#comment_11112212 要するに、先物では(テスターでは)取引は(SL/TPによって)開かれ、閉じられるが、常に利益はゼロである。テスターのバグということもあるのでしょうか?それとも何らかの仕掛けが必要なのでしょうか? Вопросы от начинающих MQL5 MT5 MetaTrader 5 2019.03.26www.mql5.com Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000... Alexey Navoykov 2019.03.27 14:36 #24158 コンパイラのバグ。このコードを含む.mqhファイルをコンパイル(シンタックスチェック)しても、エラーは表示されません。 実行ファイルをコンパイルするときだけ表示されるので、不便を感じています。 class A { public: A(int) { } }; class B : public A { }; // Здесь должна быть ошибка 'A' - wrong parameters count B b; Andrey Pogoreltsev 2019.03.27 16:24 #24159 Alexey Navoykov:コンパイラのバグ。このようなコードを含む.mqhファイルをコンパイル(シンタックスチェック)すると、エラーが発生しない。 実行ファイルをコンパイルするときだけ発生するので、不便である。 ヘッダーは原理的にコンパイルできないから :))) コンパイラ全体で強制的にヘッダーをコンパイルすると、誤検出が多発します。 PS.C++コンパイラも、そのようなクラスを使わなくても文句は言わない。 Alexey Navoykov 2019.03.28 05:21 #24160 Andrey Pogoreltsev:ヘッダーは原理的にコンパイルできないから :))) ヘッダーをコンパイルするためにコンパイラ全体を強制すると、誤検出が多くなります。 PS.C++コンパイラも、このようなクラスを使わなくても文句は言わない。コンパイルしないことは承知しています。 構文チェック(MEでは「コンパイル」とも言います)のことです、前の投稿でカッコ付きで指定したくらいですから。 C++コンパイラでも構文チェックを実行すると(通常はコマンドラインから)、ダーリンのように叱られます。 1...240924102411241224132414241524162417241824192420242124222423...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ここでは、曖昧さは必要ありません。単にオーバーロードされたメソッドが適用される順番であるべきです。つまり、オーバーロードの解決策の課題は、ジレンマを作り出すことではなく、最適な方法を選択することなのです。アクセス修飾子を 無視した場合、テーブルから最初のメソッドが取られるか、コンパイラの実装に依存するが、曖昧さはない。
ここで、例えば入力パラメータが異なる2つのメソッドがあった場合、どうなるでしょうか。
C++に戻ると、同じベクターが1つ持っています。
だから、これは絶対に正常な状態なんです。
小学校という非常にシンプルな例を挙げていただきました。元の例とは関係ないようです。
この例では、定数でないオブジェクトのメソッドなので、他のすべての条件が同じであれば、呼び出されなければなりません。
このルールは知りませんでした、ありがとうございます。
キャスティングを削除して、両方のメソッドの引数をint型に すると、コードは正常にコンパイルされます。 つまり、MQLのハングアップの原因はキャスティングです。 このキャスティングは、コードが同一であるため、影響しないはずです。
原因は、コンパイラがオーバーロードされたメソッドのキャストが同一であるかどうかをチェックしないことにあるようです。
一般に、この問題(およびMQLの他の多くの問題)を解決するには、メソッドの1つを補助クラスに移動させる必要があります。
小学校という非常にシンプルな例を挙げていただきました。元の例とは関係なさそうですね。
そもそも、最適化キャッシュでは、MT5、MT4ともに文字列パラメータは常に63文字に切り捨てられていました。
イベント送信の場合、63文字以上の文字列は送信できません。
だから、外から来るものは限られている
エンドユーザー向け製品に関しては。ベンダーは制限を考慮しなければならない。もし、それがわからなければ、売る前に十分なテストをしていないことになります。
昔と今がどうこうではなく、時代に合わせ、より良い方向に変化していくためには、どうあるべきかということです。
EAをテスト する際、パラメータを設定してスタートボタンを押すと、EAの設定がデフォルトにリセットされてしまうという問題が発生したのですが、何が問題なのでしょうか?
ビデオでは、その一例をご紹介しています。
EAをテスト する際、パラメータを設定してスタートボタンを押すと、EAの設定がデフォルトにリセットされてしまうという問題が発生したのですが、何が問題なのでしょうか?
動画例
テスターで「設定」タブに移動した後、MT5がデフォルトにリセットされる
1の投稿をご覧ください。
隣のスレッドで質問したのですが、あまりそちらを見る人がいないようです。ここに重複して記載します。
https://www.mql5.com/ru/forum/6343/page1020#comment_11112212
要するに、先物では(テスターでは)取引は(SL/TPによって)開かれ、閉じられるが、常に利益はゼロである。テスターのバグということもあるのでしょうか?それとも何らかの仕掛けが必要なのでしょうか?
コンパイラのバグ。このコードを含む.mqhファイルをコンパイル(シンタックスチェック)しても、エラーは表示されません。 実行ファイルをコンパイルするときだけ表示されるので、不便を感じています。
コンパイラのバグ。このようなコードを含む.mqhファイルをコンパイル(シンタックスチェック)すると、エラーが発生しない。 実行ファイルをコンパイルするときだけ発生するので、不便である。
ヘッダーは原理的にコンパイルできないから :)))
コンパイラ全体で強制的にヘッダーをコンパイルすると、誤検出が多発します。
PS.C++コンパイラも、そのようなクラスを使わなくても文句は言わない。ヘッダーは原理的にコンパイルできないから :)))
ヘッダーをコンパイルするためにコンパイラ全体を強制すると、誤検出が多くなります。
PS.C++コンパイラも、このようなクラスを使わなくても文句は言わない。コンパイルしないことは承知しています。 構文チェック(MEでは「コンパイル」とも言います)のことです、前の投稿でカッコ付きで指定したくらいですから。 C++コンパイラでも構文チェックを実行すると(通常はコマンドラインから)、ダーリンのように叱られます。