一体どうなっているのでしょうか。 - ページ 9

 
Artyom Trishkin:

....

テスターモードには最適化モードが 含まれますが、その逆はありません。

    ......
    Artyom Trishkin:
    いいえ、その逆です。
    まあ......中途半端な対策が必要な場合ですけどね。

    残念ながら、私には理解できません。

    MQL_OPTIMIZATIONがMQL_TESTERに含まれている場合、なぜそれもチェックするのですか?

     
    Сергей Таболин:

    よくわからないのですが、どうしたらいいですか?

    MQL_OPTIMIZATIONがMQL_TESTERに含まれている場合、なぜそれもチェックするのですか?

    最適化はテスターの亜種です。
    しかし、テスターは何の亜種でもない。
     
    Сергей Таболин:

    まさにその通りです。テスターやオプティマイザーでない限り、ここに来ることはないでしょう )))

    Artem、もし私が正しく理解しているならば、私のこのような構成は

    は余計なお世話か。

    十分であろう

    ?

    if(MQLInfoInteger(MQL_OPTIMIZATION)
    テスターで作業していることは分かっているが、シングルパスか最適化かは分からないので、最適化フラグをチェックする必要がある。
     
    Andrey Dik:
    テスターで作業していることはわかるが、シングルパスか最適化かはわからないので、最適化フラグを確認する必要がある

    はい、アンドリュー、了解しました。

    しかし、これは一般的な質問です。最適化やテストをしている場合、OnTester()で使用するためにいくつかの統計が収集されます。

    そこで質問なのですが、if(MQLInfoInteger(MQL_TESTER)) と書くか、if(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_TESTER)) と書けばよいのか?

    最適化がテストの一部であるなら、最適化モードの チェックは不要のような気がしますが...。

     
    Сергей Таболин:

    しかし、これは一般的な質問です。最適化やテストをしている場合、OnTester()で使用するためにいくつかの統計が収集されます。

    そこで質問なのですが、if(MQLInfoInteger(MQL_TESTER)) と書くか、if(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_TESTER)) と書けばよいのか?

    最適化がテストの一部であるなら、最適化モードの チェックは不要と思われますが...。

    なぜ、構造を複雑にするのか?

    本番用、テスター用、オプティマイザー用のファイルがあるようですね。

    この場合、それはあなたのものです。

       filename = "ERR_dir\\"+filename+(MQLInfoInteger(MQL_OPTIMIZATION) ? ".opt" : ".tst");
       filename = "ERR_dir\\"+filename+(MQLInfoInteger(MQL_TESTER) ? ".tst" : ".opt");

    というように書けばいいのです。

       filename = "ERR_dir\\"+filename + ".";
       if(MQLInfoInteger(MQL_TESTER)) filename = filename + "t";
       if(MQLInfoInteger(MQL_OPTIMIZATION)) filename = filename + "o";
    

    すべてのファイルが、テスター、オプティマイザー、実機で明確に区別されるようになります。

     
    Andrey F. Zelinsky:

    なぜデザインを複雑にするのか?

    本番用、テスター用、オプティマイザー用のファイルがあるようですね。

    その場合、それらはあなたのものです。

    というように書けばいいのです。

    すべてのファイルが、テスター、オプティマイザー、そして実際のファイルによって区別されます。

    double x;
    int OnInit()
    {
       x = 0.0;
    }
    void OnTick()
    {
       ....
       // if new Bar
       if(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_TESTER)) x += 1.618;
       ....
    }
    double OnTester()
    {
       return(x * 3.14159);
    }
    

    このチェックは本当に必要なのでしょうか?

     
    Сергей Таболин:

    このテストは必要ですか?

    まず、テスター、オプティマイザー、リアルを区別する目的は何でしょうか?

    なぜ、このチェックがないとダメなんですか?

     
    Andrey F. Zelinsky:

    まず、テスター、オプティマイザー、リアルを区別する目的は何でしょうか?

    なぜ、それがないとダメなんですか?

    トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

    一体どうなっているんだ?

    セルゲイ・タボリン さん 2020.05.20 15:11

    はい、アンドレイさん、了解しました。

    しかし、それは一般的な質問です。最適化やテストを行っている場合は、OnTester()で使用するための統計情報を収集します。

    そこで質問なのですが、if(MQLInfoInteger(MQL_TESTER)) と書くか、if(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_TESTER)) と書けばよいのか?

    最適化がテストの一部であるなら、最適化モードの チェックは不要のような気がしますが...。


     
    Сергей Таболин:

    あとは、テストを確認するだけです。
     
    Сергей Таболин:

    なぜ、人に聞くのですか?

    テスターとオプティマイザーでMQLInfoInteger(MQL_TESTER)とMQLInfoInteger(MQL_OPTIMIZATION)の値を確認する。

    をご覧いただければ、ご自身の目でお確かめいただけます。