エラー、バグ、質問 - ページ 1962 1...195519561957195819591960196119621963196419651966196719681969...3185 新しいコメント fxsaber 2017.08.16 02:01 #19611 Andrey Khatimlianskii:どのように役立つのでしょうか?最適化が進み、検索するすべてのパラメータを値域とともに 書き出しました。そして、1つのテストを実行し、パラメータリストを読み込んで、parameter = valueと表示します。この場合、入力変数を名前で参照することができないので、値が わからない。入力パラメータをbool Optimにするのです。OnInitでは、Optim == trueの場合、INIT_FAILEDを返します。同時にOnTesterPassでFrameInputsとParameterGetRangeを通して(またはグローバルクラスのオブジェクトのデストラクタで)、実際のOptimizationのSETを書きます。そして、Optim = falseと入れるのです。そして、もう1つのパラメータsinput int Rangeを取り、ParameterSetRangeで0から1へ変更するように設定します。OnTesterInitでSETファイルを読み込み、ParameterSetRangeでファイルから全パラメータの値を設定する。Range == 0 の場合、OnInit で INIT_FAILED を返します。以上です。シングル最適化の代わりにイマジナリー最適化があり、これもシングル最適化より速い......。さらに入力パラメーターの読み書きが可能。 ruslan 2017.08.16 07:37 #19612 オフトピックな質問ですが、MQL5ハンドブックに アルゴリズムの実装例を追加して、よりわかりやすく補足することは可能でしょうか? Andrey Khatimlianskii 2017.08.16 11:55 #19613 fxsaber:入力パラメータをboolにする Optim.OnInitでは、Optim == trueの場合、INIT_FAILEDを返します。同時にOnTesterPassでFrameInputsとParameterGetRangeを経由して(またはグローバルクラスのオブジェクトのデストラクタで)実際にSET-file Optimizationを書きます。そして、Optim = falseと入れるのです。そして、もう1つのパラメータsinput int Rangeを取り、ParameterSetRangeで0から1へ変更するように設定します。OnTesterInitでSETファイルを読み込み、ParameterSetRangeでファイルから全パラメータの値を設定する。Range == 0 の場合、OnInit で INIT_FAILED を返します。以上です。シングル最適化の代わりにイマジナリー最適化があり、これもシングル最適化より速い......。さらに入力パラメーターの読み書きが可能。詳細なアルゴリズムをありがとうございました。 fxsaber 2017.08.16 12:46 #19614 1643年のコンパイル時'TesterBenchmark_Example.mq5' TesterBenchmark_Example.mq5 1 1 'TesterBenchmark.mqh' TesterBenchmark.mqh 1 1 0 error(s), 0 warning(s), compile time: 3113 msec 1 11648でのコンパイル時'TesterBenchmark_Example.mq5' TesterBenchmark_Example.mq5 1 1 'TesterBenchmark.mqh' TesterBenchmark.mqh 1 1 0 error(s), 0 warning(s), compile time: 219 msec 1 1何かが変更された! A100 2017.08.16 12:47 #19615 コンパイルエラーtypedef void (*fn)( int ); struct A { void f() { return ; } //(*) static void f( int ) {} }; void g( fn ) {} void OnStart() { g( A::f ); //error: 'f' - cannot resolve function address } そして、(*)の行を置き換えると int f() { return 0; } //(*) であれば、問題ないでしょう。何が違うの?https://www.mql5.com/ru/forum/1111/page1977#comment_5595772 のように見えますが、エラーコードが異なります。 Ошибки, баги, вопросы 2017.08.11www.mql5.com Форум алго-трейдеров MQL5 A100 2017.08.16 13:06 #19616 コンパイル時のエラーtemplate<typename T> void g( T ) {} void f() {} void OnStart() { g( f ); //error: 'g' - cannot to apply function template } それ以外は。 template<typename T> void g( T ) {} void f() {} typedef void (*fn)(); void OnStart() { fn ff = f; g( ff ); //нормально } 大丈夫です。どんな違いがあるのでしょうか? fxsaber 2017.08.16 13:19 #19617 A100:コンパイル時のエラーが、このように を普通にしています。何が違うの?その差は大きい。g(f)が呼ばれたとき、コンパイラはfがどのような型であるかを知らない。なぜなら、templateしか規定されていないからである。テンプレートをオーバーロードしても問題なしtypedef void (*fn)(); template<typename T> void g( T Value ) { Print(typename(Value)); } void f() {} void g( fn Value ) { Print(typename(Value)); } void OnStart() { g( f ); // void(*fn)() } Vitaly Muzichenko 2017.08.16 13:19 #19618 fxsaber: 1643でコンパイルタイム。1648でのコンパイル時かっこいいツッコミですねー。私のはそのまま、コンピレーションが速くならない! fxsaber 2017.08.16 13:24 #19619 Vitaly Muzichenko:まだ持っています、コンパイルは加速していませんおそらく、TesterBenchmark.mqhでスローダウンしていたものを使っていないのでしょう。 A100 2017.08.16 13:24 #19620 fxsaber:その差は大きい。g(f)が呼ばれたとき、テンプレートだけが規定されているので、コンパイラはfがどのような型であるかを知らない。テンプレートをオーバーロードしても問題なし もし大きな違いがあるのなら、なぜC++は両方の亜種でうまくコンパイルできるのでしょうか? 1...195519561957195819591960196119621963196419651966196719681969...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
どのように役立つのでしょうか?
最適化が進み、検索するすべてのパラメータを値域とともに 書き出しました。
そして、1つのテストを実行し、パラメータリストを読み込んで、parameter = valueと表示します。この場合、入力変数を名前で参照することができないので、値が わからない。
入力パラメータをbool Optimにするのです。OnInitでは、Optim == trueの場合、INIT_FAILEDを返します。同時にOnTesterPassでFrameInputsとParameterGetRangeを通して(またはグローバルクラスのオブジェクトのデストラクタで)、実際のOptimizationのSETを書きます。
そして、Optim = falseと入れるのです。そして、もう1つのパラメータsinput int Rangeを取り、ParameterSetRangeで0から1へ変更するように設定します。OnTesterInitでSETファイルを読み込み、ParameterSetRangeでファイルから全パラメータの値を設定する。Range == 0 の場合、OnInit で INIT_FAILED を返します。
以上です。シングル最適化の代わりにイマジナリー最適化があり、これもシングル最適化より速い......。さらに入力パラメーターの読み書きが可能。
オフトピックな質問ですが、MQL5ハンドブックに アルゴリズムの実装例を追加して、よりわかりやすく補足することは可能でしょうか?
入力パラメータをboolにする Optim.OnInitでは、Optim == trueの場合、INIT_FAILEDを返します。同時にOnTesterPassでFrameInputsとParameterGetRangeを経由して(またはグローバルクラスのオブジェクトのデストラクタで)実際にSET-file Optimizationを書きます。
そして、Optim = falseと入れるのです。そして、もう1つのパラメータsinput int Rangeを取り、ParameterSetRangeで0から1へ変更するように設定します。OnTesterInitでSETファイルを読み込み、ParameterSetRangeでファイルから全パラメータの値を設定する。Range == 0 の場合、OnInit で INIT_FAILED を返します。
以上です。シングル最適化の代わりにイマジナリー最適化があり、これもシングル最適化より速い......。さらに入力パラメーターの読み書きが可能。
詳細なアルゴリズムをありがとうございました。
'TesterBenchmark_Example.mq5' TesterBenchmark_Example.mq5 1 1 'TesterBenchmark.mqh' TesterBenchmark.mqh 1 1 0 error(s), 0 warning(s), compile time: 3113 msec 1 11648でのコンパイル時
'TesterBenchmark_Example.mq5' TesterBenchmark_Example.mq5 1 1 'TesterBenchmark.mqh' TesterBenchmark.mqh 1 1 0 error(s), 0 warning(s), compile time: 219 msec 1 1何かが変更された!
コンパイルエラー
そして、(*)の行を置き換えると
であれば、問題ないでしょう。何が違うの?https://www.mql5.com/ru/forum/1111/page1977#comment_5595772 のように見えますが、エラーコードが異なります。
コンパイル時のエラー
それ以外は。
大丈夫です。どんな違いがあるのでしょうか?コンパイル時のエラー
が、このように
を普通にしています。何が違うの?その差は大きい。g(f)が呼ばれたとき、コンパイラはfがどのような型であるかを知らない。なぜなら、templateしか規定されていないからである。テンプレートをオーバーロードしても問題なし
1643でコンパイルタイム。
1648でのコンパイル時
かっこいいツッコミですねー。
私のはそのまま、コンピレーションが速くならない!
まだ持っています、コンパイルは加速していません
おそらく、TesterBenchmark.mqhでスローダウンしていたものを使っていないのでしょう。
その差は大きい。g(f)が呼ばれたとき、テンプレートだけが規定されているので、コンパイラはfがどのような型であるかを知らない。テンプレートをオーバーロードしても問題なし