Was in aller Welt geht hier vor? - Seite 9

 
Artyom Trishkin:

....

Der Prüfmodus schließt den Optimierungsmodus ein, aber nicht umgekehrt.

    ......
    Artyom Trishkin:
    Nein. Im Gegenteil.
    Nun, das ist, wenn Sie halbe Sachen brauchen.

    Ich fürchte, das verstehe ich nicht.

    Wenn MQL_OPTIMIZATION in MQL_TESTER enthalten ist, warum sollte es dann auch geprüft werden?

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

    Ich fürchte, das verstehe ich nicht.

    Wenn MQL_OPTIMIZATION in MQL_TESTER enthalten ist, warum sollte es dann auch geprüft werden?

    Die Optimierung ist eine Unterart des Testens.
    Aber der Prüfer ist keine Unterart von irgendetwas.
     
    Сергей Таболин:

    Das ist richtig. Wenn du kein Tester oder Optimierer bist, kommst du hier gar nicht rein )))

    Artem, wenn ich das richtig verstanden habe, dann ist meine solche Konstruktion

    überflüssig ist?

    Es wird genug sein

    ?

    if(MQLInfoInteger(MQL_OPTIMIZATION)
    Wir wissen, dass wir in einem Tester arbeiten, aber wir wissen nicht, ob es sich um einen einzelnen Durchlauf oder eine Optimierung handelt, also müssen wir das Optimierungskennzeichen überprüfen
     
    Andrey Dik:
    Wir wissen, dass wir im Tester arbeiten, aber wir wissen nicht, ob es sich um einen einzelnen Durchlauf oder eine Optimierung handelt, also müssen wir das Optimierungskennzeichen überprüfen

    Ja, Andrew, ich verstehe das.

    Aber das ist eine allgemeine Frage. Wenn ich optimiere oder teste, werden einige Statistiken zur Verwendung in OnTester() gesammelt.

    Daher ist meine Frage, ob es ausreichend ist,if(MQLInfoInteger(MQL_TESTER)) oderif(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_TESTER)) zu schreiben?

    Wenn die Optimierung Teil des Tests ist, dann scheint die Überprüfung des Optimierungsmodus unnötig zu sein...

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

    Aber das ist eine allgemeine Frage. Wenn ich optimiere oder teste, werden einige Statistiken zur Verwendung in OnTester() gesammelt.

    Daher ist meine Frage, ob es ausreichend ist,if(MQLInfoInteger(MQL_TESTER)) oderif(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_TESTER)) zu schreiben?

    Wenn die Optimierung Teil des Tests ist, scheint die Überprüfung des Optimierungsmodus unnötig...

    Warum sollte man die Konstruktion verkomplizieren?

    Sieht so aus, als hätten Sie Dateien für den Real, für den Tester und den Optimierer.

    In diesem Fall - Ihre:

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

    könnte man es so schreiben:

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

    und das war's - alle Ihre Dateien werden für den Tester, den Optimierer und den echten Benutzer klar unterscheidbar sein.

     
    Andrey F. Zelinsky:

    Warum sollte man das Design verkomplizieren?

    Es sieht so aus, als hätten Sie Dateien für den echten, für den Tester und für den Optimierer.

    In diesem Fall gehören sie Ihnen:

    könnte man es so schreiben:

    und das war's - alle Ihre Dateien werden für Tester, Optimierer und echte Benutzer unterscheidbar sein.

    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);
    }
    

    Ist diese Überprüfung wirklich notwendig?

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

    Ist dieser Test notwendig?

    Sie müssen damit beginnen, was der Zweck der Unterscheidung zwischen Tester, Optimierer und Real in Ihrem System ist.

    warum können Sie auf diese Kontrollen nicht verzichten?

     
    Andrey F. Zelinsky:

    Sie müssen damit beginnen, was der Zweck der Unterscheidung zwischen Tester, Optimierer und Real in Ihrem System ist.

    Warum können Sie nicht auf sie verzichten?

    Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

    Was zum Teufel ist hier los?

    Sergey Tabolin, 2020.05.20 15:11

    Ja, Andrey, ich verstehe das.

    Aber es ist eine allgemeine Frage. Wenn ich optimiere oder teste, sammle ich einige Statistiken zur Verwendung in OnTester().

    Daher ist meine Frage, ob es ausreichend ist,if(MQLInfoInteger(MQL_TESTER)) oderif(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_TESTER)) zu schreiben?

    Wenn die Optimierung Teil des Tests ist, dann scheint die Überprüfung des Optimierungsmodus unnötig zu sein...


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

    Dann prüfen Sie einfach den Test.
     
    Сергей Таболин:

    Warum fragen Sie jemanden?

    Prüfen Sie die Werte vonMQLInfoInteger(MQL_TESTER) undMQLInfoInteger(MQL_OPTIMIZATION) in Tester und Optimierer

    und Sie werden sich selbst davon überzeugen.