Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 674
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У меня что-то вывести с помощью Print() в журнал тестера никак не получается. А как Вы это делаете ?
Вот код OnInit() от советника:
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SymbolSelect("EURJPY",true);
Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
SymbolSelect("USDJPY",true);
//---
return(INIT_SUCCEEDED);
}
Дальше ставлю точку останова (шаг 1) и запускаю тестирование на истории (шаг 2):
и в тестере получаю результат:
Vladimir Karputov:
Дальше ставлю точку останова (шаг 1) и запускаю тестирование на истории (шаг 2):
Существуют ограничения работы некоторых функций в тестере стратегий клиентского терминала.
Функции Print() и PrintFormat()
Для увеличения быстродействия при оптимизации параметров советника функции Print() и PrintFormat() не выполняются. Исключением является использование этих функций внутри обработчика OnInit(). Это позволяет облегчить поиск причин ошибок при их возникновении.
то почему функции Print() внутри обработчика OnInit() не работает как обычно ?
И вообще, по поводу других пользовательских функций в init() в режиме оптимизации ?Странно, но у меня эта голубая кнопка, на которую у Вас указывает цифра "2", не активна. Может это быть от того, что я в MT4 ?
Да, именно по этому я могу свободно тестировать любые советники на ИСТОРИИ, то есть выбирать промежуток, скажем с 2016.06.20 по 2016.11.11 и спокойно, шаг за шагом проводить отладку, наблюдать изменение переменных, а Вы не можете этого делать.
Так стоит ли продолжать сидеть на старом терминале, поддержка которого завершена? Или может уже стоит использовать современный терминал MetaTrader 5? Ведь в MetaTrader 5 уже и хеджирование появилось: Торговая платформа MetaTrader 5 получила хеджирование.
Да, именно по этому я могу свободно тестировать любые советники на ИСТОРИИ, то есть выбирать промежуток, скажем с 2016.06.20 по 2016.11.11 и спокойно, шаг за шагом проводить отладку, наблюдать изменение переменных, а Вы не можете этого делать.
Так стоит ли продолжать сидеть на старом терминале, поддержка которого завершена? Или может уже стоит использовать современный терминал MetaTrader 5? Ведь в MetaTrader 5 уже и хеджирование появилось: Торговая платформа MetaTrader 5 получила хеджирование.
Почему я могу спокойно заниматься отладкой в МТ4, и спокойно, шаг за шагом, проводить отладку, наблюдать изменение переменных? Что я не так делаю?
Вопрос по существу:
почему функции Print() внутри обработчика OnInit() не работает как обычно ? И вообще, что по поводу других пользовательских функций в init() в режиме оптимизации ?
Уважаемые!!!!
Вопрос по существу:
почему функции Print() внутри обработчика OnInit() не работает как обычно ? И вообще, что по поводу других пользовательских функций в init() в режиме оптимизации ?
Выше уже всё объяснено. Работало и работает. А Вам показал пример.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Вопросы от начинающих
Vladimir Karputov, 2016.11.23 12:07
Вот код OnInit() от советника:
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SymbolSelect("EURJPY",true);
Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
SymbolSelect("USDJPY",true);
//---
return(INIT_SUCCEEDED);
}
Дальше ставлю точку останова (шаг 1) и запускаю тестирование на истории (шаг 2):
и в тестере получаю результат:
Выше уже всё объяснено. Работало и работает. А Вам показал пример.
Повторюсь:
1. Почему функции Print() внутри обработчика OnInit() не работает как обычно ?
2. Как работают другие пользовательские функции в init() в режиме оптимизации ?
Владимир, в Вашем примере с точкой останова и запуском тестирования из MetaEditor, а не из тестера в терминале является не стандартным.
Повторюсь:
1. Почему функции Print() внутри обработчика OnInit() не работает как обычно ?
2. Как работают другие пользовательские функции в init() в режиме оптимизации ?
Такое ощущение, что Вы не разу не включали терминал.
Вот код OnInit() от советника:
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SymbolSelect("EURJPY",true);
Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
SymbolSelect("USDJPY",true);
//---
return(INIT_SUCCEEDED);
}
По шагам. Шаг первый - запускаем тестер из терминала (одиночный проход), тестирование на истории, с визуализацией:
В тестере стратегий получаем результат: