// --- если обычное тестирование без оптимизации и визуализацииbool IsUsualTester = (MQLInfoInteger(MQL_TESTER) && !MQLInfoInteger(MQL_OPTIMIZATION) && !MQLInfoInteger(MQL_VISUAL_MODE));
// --- если не тестирование и не оптимизация, значит видимый графикbool IsVisibleChart = (!IsUsualTester && !MQLInfoInteger(MQL_OPTIMIZATION));
В статье рассматривается идея мультирежимного программирования торговых роботов на MQL5. Используется объектно-ориентированный подход для реализации каждого из режимов. Приводится пример иерархии режимных классов и пример классов для тестирования. Предполагается, что мультирежимное программирование торговых роботов полностью учитывает особенности каждого режима работы MQL5-советника. Для идентификации режимов создаются функции и перечисление.
может кому кажется что и не та ветка, но всё просто :
если ChartID отдаёт разумное - значит есть предназначенное ему место в GUI и он работает в нём можно рисовать, значит или VISUAL_TESTER или просто работа в терминале.
если при этом ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE) возвращает невалидный хендл, значит при этом мы внутри тестера. (Или возможно MQ VPS - не трогал, не знаю)
может кому кажется что и не та ветка, но всё просто :
если ChartID отдаёт разумное - значит есть предназначенное ему место в GUI и он работает в нём можно рисовать, значит или VISUAL_TESTER или просто работа в терминале.
если при этом ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE) возвращает невалидный хендл, значит при этом мы внутри тестера. (Или возможно MQ VPS - не трогал, не знаю)
в тестере тоже есть чарт, пусть и виртуальный, поэтому это тупиковый путь
//true если работа на чарте или в визуальном тестировании, в остальных случаях falsebool CheckMode ()
{
if(MQLInfoInteger(MQL_DEBUG) ||
MQLInfoInteger(MQL_PROFILER) ||
(MQLInfoInteger(MQL_TESTER) && ! MQLInfoInteger(MQL_VISUAL_MODE)) ||
MQLInfoInteger(MQL_OPTIMIZATION) ||
MQLInfoInteger(MQL_FRAME_MODE)) returnfalse;
returntrue;
}
if (ChartID()!=0) {
// Graphical chart presents
// draws on it
}
что это значит? можно мысль развернуть?
что это значит? можно мысль развернуть?
Андрей, вообще не та ветка. В другой теме нужно такое выяснять.
Андрей, вообще не та ветка. В другой теме нужно такое выяснять.
есть у кого какие мысли?
Может так попробовать?
есть у кого какие мысли?
Андрей, посмотрите пож-ста статью (Раздел 2. Режимы в MQL5), может поможет ))
что это значит? можно мысль развернуть?
может кому кажется что и не та ветка, но всё просто :
если ChartID отдаёт разумное - значит есть предназначенное ему место в GUI и он работает в нём можно рисовать, значит или VISUAL_TESTER или просто работа в терминале.
если при этом ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE) возвращает невалидный хендл, значит при этом мы внутри тестера. (Или возможно MQ VPS - не трогал, не знаю)
может кому кажется что и не та ветка, но всё просто :
если ChartID отдаёт разумное - значит есть предназначенное ему место в GUI и он работает в нём можно рисовать, значит или VISUAL_TESTER или просто работа в терминале.
если при этом ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE) возвращает невалидный хендл, значит при этом мы внутри тестера. (Или возможно MQ VPS - не трогал, не знаю)
в тестере тоже есть чарт, пусть и виртуальный, поэтому это тупиковый путь
в тестере тоже есть чарт, пусть и виртуальный, поэтому это тупиковый путь
Я тебе в той ветке ответил (наплодилось вопросов одинаковых)
есть у кого какие мысли?
Я тебе в той ветке ответил (наплодилось вопросов одинаковых)
Ну так у тебя все права есть. Удали там где не по теме… В чём проблема?