Доброго ВС!
Возможно ли в коде советника получить данные начала и конца периода тестирования, которые устанавливаются при запуске тестера стратегий?
Средствами MQL - нет. Только через WinAPI, но тоже слишком заморочливо.
Можно лишь по факту окончания прохода тестирования предположить, каковы эти данные. Но, я так понимаю, нужно знать это в самом начале прохода.
#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/ru/code/26132 int OnInit() { string Str; if (MTTESTER::GetSettings(Str)) { Print(TimeCurrent()); // From Print((datetime)MTTESTER::GetValue(Str, "ToDate")); // To } return(INIT_FAILED); }
Оптимизация (включая фермы).
- 2021.06.20
- www.mql5.com
Мммм...значит только с помощью подключаемого модуля. То-то я думаю, чего он у меня не компилируется?
Спасибо!
Возможно ли в коде советника получить данные начала и конца периода тестирования, которые устанавливаются при запуске тестера стратегий?
Да, в коде советника вы можете получить данные о периоде тестирования, установленном в тестере стратегий MetaTrader.
Для получения начальной и конечной даты периода тестирования вы можете использовать функцию ExpertRemove() в связке с функциями StartTime() и EndTime() . Вот пример кода, который позволяет получить начальную и конечную даты периода тестирования:
void OnStart() { datetime start = 0; datetime end = 0; if (TesterRunning()) { int expert = ExpertCreate(); ExpertRemove(expert); start = StartTime(); end = EndTime(); } // Используйте start и end в вашей логике советника // ... Print("Начальная дата периода тестирования: ", TimeToString(start, TIME_DATE)); Print("Конечная дата периода тестирования: ", TimeToString(end, TIME_DATE)); }
В этом примере мы проверяем, работает ли тестер стратегий ( TesterRunning() ). Затем мы создаем дополнительного эксперта ( ExpertCreate() ) и сразу же удаляем его ( ExpertRemove() ). После удаления эксперта мы можем получить начальную и конечную даты периода тестирования с помощью функций StartTime() и EndTime() .
Обратите внимание, что эти функции будут возвращать нулевые значения, если тестер стратегий не запущен.
Вы можете использовать полученные значения начальной и конечной даты для управления логикой вашего советника, например, для ограничения выполнения определенных операций или анализа данных только внутри периода тестирования.
Вариант gpt
Да, в коде советника вы можете получить данные о периоде тестирования, установленном в тестере стратегий MetaTrader.
Для получения начальной и конечной даты периода тестирования вы можете использовать функцию ExpertRemove() в связке с функциями StartTime() и EndTime() . Вот пример кода, который позволяет получить начальную и конечную даты периода тестирования:
void OnStart() { datetime start = 0; datetime end = 0; if (TesterRunning()) { int expert = ExpertCreate(); ExpertRemove(expert); start = StartTime(); end = EndTime(); } // Используйте start и end в вашей логике советника // ... Print("Начальная дата периода тестирования: ", TimeToString(start, TIME_DATE)); Print("Конечная дата периода тестирования: ", TimeToString(end, TIME_DATE)); }
В этом примере мы проверяем, работает ли тестер стратегий ( TesterRunning() ). Затем мы создаем дополнительного эксперта ( ExpertCreate() ) и сразу же удаляем его ( ExpertRemove() ). После удаления эксперта мы можем получить начальную и конечную даты периода тестирования с помощью функций StartTime() и EndTime() .
Обратите внимание, что эти функции будут возвращать нулевые значения, если тестер стратегий не запущен.
Вы можете использовать полученные значения начальной и конечной даты для управления логикой вашего советника, например, для ограничения выполнения определенных операций или анализа данных только внутри периода тестирования.
Вариант gpt
По логике следующий шаг - это узнать код функций ExpertCreate(), StartTime() и EndTime(). Код функции TesterRunning() можно не спрашивать ))
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброго ВС!
Возможно ли в коде советника получить данные начала и конца периода тестирования, которые устанавливаются при запуске тестера стратегий?