Да что ж это творится то??? - страница 9

 
Artyom Trishkin:

....

В режим тестера входит и режим оптимизации, но не наоборот.

    ......
    Artyom Trishkin:
    Нет. Наоборот.
    Ну это если нужны полумеры.

    Боюсь, не понял.

    Если MQL_OPTIMIZATION входит в MQL_TESTER, то зачем проверять и его?

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

    Боюсь, не понял.

    Если MQL_OPTIMIZATION входит в MQL_TESTER, то зачем проверять и его?

    Оптимизация - это подвид тестера.
    Но тестер - не подвид ничего.
     
    Сергей Таболин:

    Совершенно верно. Если не тестер или оптимизатор, то сюда вообще не заходит )))

    Артём, если я правильно понял, то моя такая конструкция

    избыточна?

    Достаточно будет

    ?

    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)

    и сразу всё сами поймёте.