エラー、バグ、質問 - ページ 891 1...884885886887888889890891892893894895896897898...3185 新しいコメント A100 2012.12.06 17:37 #8901 互換性のためにゼロにしたことは明らかですが、未使用のenum =WRONG_VALUEを 正しく初期化したときに、なぜ正しく動作しないのかが不明です。この方法は移植性に欠け、隠れたエラーの発生確率が著しく高くなる。 Yedelkin 2012.12.06 17:46 #8902 A100: 未使用の enum =WRONG_VALUE が正しく初期化されたときに、なぜ正しく動作しないのかが不明です。 このルールを覚えていますか?ルール:名前付き定数 - 列挙のメンバに特定の値が明示的に割り当てられていない場合、その値は自動的に生成 されます。列挙の最初のメンバーである場合、値 0 が割り当てられる。それ以降のメンバーについては、前のメンバーの値をベースに1加算して計算されます。ほとんどの場合、クエリーフィールドの正しさのチェックは、列挙されたメンバーの値が負であってはならないことを前提としています。列挙メンバにWRONG_VALUEが 代入される可能性は考慮されない。 A100 2012.12.06 18:15 #8903 Yedelkin: ただし、列挙メンバにWRONG_VALUEが 代入される可能性は考慮されていない。 ここはまさにエラーだと思います。具象列挙型を使用しない場合、例えばORDER_TYPE_BUY が実際には 0 である代わりに、その値はWRONG_VALUE になるのは論理的である。 そして最も重要なことは、互換性を維持したまま OrderCheck() と OrderSend() のロジックを変更することを妨げるものは何もない、ということです。 Yedelkin 2012.12.06 18:33 #8904 A100: ここはまさにエラーだと思います。具象列挙型を使用しない場合、その値は、実際には = 0である ORDER_TYPE_BUY の代わりにWRONG_VALUE になるのが論理的である。そして最も重要なことは、互換性を維持したまま OrderCheck() と OrderSend() のロジックを変更することを妨げるものは何もない、ということです。 開発者の意見を理解する方法として、そのエラーについてサービスデスクに書き込むという方法があります。 Lev Ilyukov 2012.12.07 12:34 #8905 不思議な "バグ "を発見しました。私はこのコードをEAで使用しています。void OnTradeTransaction(const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { if(trans.type == TRADE_TRANSACTION_DEAL_ADD) { if(trans.symbol == "EURUSD") EURUSD_K = 1; } }テスターでの1回の実行は問題なく通過しますが、フルサーチでパラメータを選択した途端、テスターの動作が10倍も10倍も遅くなるのです。1回の実行で十分な速度が出て、最適化で顕著に落ちるというのは理解できない。しかも、幾何学的に低下する。割合で見ると、最初のうちは問題ないのですが、最後のほうはどんどん速度が落ちていくのがわかります。自分のコードに問題がないか、ループなどを探したのですが、見つかりませんでした。その後、上記のコードを自分のアルゴリズムで置き換えたら、あら不思議!?最適化が正常で均一な速度で実行されるようになりました。このことから、問題はMQL5内のOnTradeTransaction関数の ボディのどこかにあるという結論に達しました。そのあたりは、開発者に注意してもらうようにします。p.s. Expert Advisorのコードを掲載できません。上記のコードをあなたのEAで使ってみて、2000年から今日までのOHLC M5の最適化のスピードを見てみてください。 Документация по MQL5: Основы языка / Функции / Функции обработки событий www.mql5.com Основы языка / Функции / Функции обработки событий - Документация по MQL5 Konstantin Chernov 2012.12.07 13:00 #8906 lordlev:不思議な "バグ "を発見しました。私はこのコードをEAで使用しています。テスターでの1回の実行は問題なく通過しますが、フルサーチでパラメータを選択した途端、テスターの動作が10倍も10倍も遅くなるのです。1回の実行で十分な速度が出て、最適化で顕著に落ちるというのは理解できない。幾何級数的に減少している。割合で見ると、最初のうちは問題ないのですが、最後のほうはどんどん速度が落ちていくのがわかります。自分のコードに問題がないか、ループなどを探したのですが、見つかりませんでした。その後、上記のコードを自分のアルゴリズムで置き換えたら、あら不思議!?最適化が正常で均一な速度で実行されるようになりました。このことから、問題はMQL5内のOnTradeTransaction関数の ボディのどこかにあるという結論に達しました。そのあたりは、開発者に注意してもらうようにします。p.s. Expert Advisorのコードを掲載できません。上記のコードをあなたのEAで使ってみて、2000年から今日までのOHLC M5での最適化のスピードを見てみてください。 異なるパラメータを使用すると、Expert Advisorは異なる時間で動作する可能性があります。 Lev Ilyukov 2012.12.07 13:06 #8907 Konstantin83: 異なるパラメータでは、EAの実行時間が異なる場合があります。 この場合、Expert Advisorやパラメータに問題があるわけではありません。問題はMQL5自体にあります。 A100 2012.12.07 13:12 #8908 lordlev: 上記のコードをあなたのアルゴリズムに置き換えた後 つまり、OnTradeTransaction() を使うのを諦めたのでしょうか?- であれば、速度が上がったのは当然で、その都度呼び出されます。 Lev Ilyukov 2012.12.07 13:19 #8909 A100: つまり、OnTradeTransaction()を使うのを諦めたのでしょうか?- であれば、速度が上がったのは当然で、その都度呼び出されます。 使用を拒否するのは当然です。どのような場面でも呼び出されることは明らかです。ただ、1回の実行では十分な速度が出ているのに、最適化で急に速度が落ちるのはなぜなのかが不明です。パラメータそのものとは関係なく、上で別の友人が書いているように、10回ほど徹底的にチェックしました。こうなると、開発者がどこかでミスをしたのではと思えてきます。 TheXpert 2012.12.07 13:34 #8910 lordlev:最小限のテストケースを行い、サービスデスクに報告することを止める理由は何でしょうか? 1...884885886887888889890891892893894895896897898...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
互換性のためにゼロにしたことは明らかですが、未使用のenum =WRONG_VALUEを 正しく初期化したときに、なぜ正しく動作しないのかが不明です。この方法は移植性に欠け、隠れたエラーの発生確率が著しく高くなる。
このルールを覚えていますか?
ルール:名前付き定数 - 列挙のメンバに特定の値が明示的に割り当てられていない場合、その値は自動的に生成 されます。列挙の最初のメンバーである場合、値 0 が割り当てられる。それ以降のメンバーについては、前のメンバーの値をベースに1加算して計算されます。
ほとんどの場合、クエリーフィールドの正しさのチェックは、列挙されたメンバーの値が負であってはならないことを前提としています。列挙メンバにWRONG_VALUEが 代入される可能性は考慮されない。
ただし、列挙メンバにWRONG_VALUEが 代入される可能性は考慮されていない。
ここはまさにエラーだと思います。具象列挙型を使用しない場合、例えばORDER_TYPE_BUY が実際には 0 である代わりに、その値はWRONG_VALUE になるのは論理的である。
そして最も重要なことは、互換性を維持したまま OrderCheck() と OrderSend() のロジックを変更することを妨げるものは何もない、ということです。
そして最も重要なことは、互換性を維持したまま OrderCheck() と OrderSend() のロジックを変更することを妨げるものは何もない、ということです。
不思議な "バグ "を発見しました。
私はこのコードをEAで使用しています。
テスターでの1回の実行は問題なく通過しますが、フルサーチでパラメータを選択した途端、テスターの動作が10倍も10倍も遅くなるのです。1回の実行で十分な速度が出て、最適化で顕著に落ちるというのは理解できない。しかも、幾何学的に低下する。割合で見ると、最初のうちは問題ないのですが、最後のほうはどんどん速度が落ちていくのがわかります。自分のコードに問題がないか、ループなどを探したのですが、見つかりませんでした。その後、上記のコードを自分のアルゴリズムで置き換えたら、あら不思議!?最適化が正常で均一な速度で実行されるようになりました。このことから、問題はMQL5内のOnTradeTransaction関数の ボディのどこかにあるという結論に達しました。そのあたりは、開発者に注意してもらうようにします。
p.s. Expert Advisorのコードを掲載できません。上記のコードをあなたのEAで使ってみて、2000年から今日までのOHLC M5の最適化のスピードを見てみてください。
不思議な "バグ "を発見しました。
私はこのコードをEAで使用しています。
テスターでの1回の実行は問題なく通過しますが、フルサーチでパラメータを選択した途端、テスターの動作が10倍も10倍も遅くなるのです。1回の実行で十分な速度が出て、最適化で顕著に落ちるというのは理解できない。幾何級数的に減少している。割合で見ると、最初のうちは問題ないのですが、最後のほうはどんどん速度が落ちていくのがわかります。自分のコードに問題がないか、ループなどを探したのですが、見つかりませんでした。その後、上記のコードを自分のアルゴリズムで置き換えたら、あら不思議!?最適化が正常で均一な速度で実行されるようになりました。このことから、問題はMQL5内のOnTradeTransaction関数の ボディのどこかにあるという結論に達しました。そのあたりは、開発者に注意してもらうようにします。
p.s. Expert Advisorのコードを掲載できません。上記のコードをあなたのEAで使ってみて、2000年から今日までのOHLC M5での最適化のスピードを見てみてください。
異なるパラメータでは、EAの実行時間が異なる場合があります。
上記のコードをあなたのアルゴリズムに置き換えた後
つまり、OnTradeTransaction()を使うのを諦めたのでしょうか?- であれば、速度が上がったのは当然で、その都度呼び出されます。
最小限のテストケースを行い、サービスデスクに報告することを止める理由は何でしょうか?