1. При повторных запусках оптимизации, загрузка происходит из кэша, НО, если использовался форвард тест, он не прогружается, загружается только оптимизация и даже из истории нет возможности загрузить кэш форварда, таким образом приходится изменять дату и запускать оптимизацию снова так как в этом случае от кэша толку никакого...
1.1 При изменении входной формулы ситуация аналогичная, подгружается из кэша, но по новой формуле, форвард игнорируется(
2. Если удалить сервис, который в данный момент запущен в терминале, после этого обновить древо навигатора, сервисы удаляются из списка, но продолжают работать в фоне, завершить их работу никак нельзя так как из Task Manager они тоже пропадают, если вернуть сервис обратно и снова обновить древо навигатора, то сервис появляется в запущенном виде и продолжает функционировать, возможно так и задумывалось, но мне кажется, что в Task Manager все он должен остаться...
3. Иногда при тестировании советника на кастомных графиках, если обновить версию советника (терминал при этом всегда работает), только обновить папку в навигаторе, чтобы переинициализировать.
В этом случае может сломаться тест и оптимизация так как пытается синхронизировать графики, иногда удаление и загрузка символа помогает, а иногда нет, переустановка терминала наверняка решает эту проблему, но до определенного момента... по этому приходится всегда держать под рукой архив с бэкапом терминала и запускаться в режиме /portable
Иногда одиночный тест работает, а после запуска оптимизации происходит поломка и после нее и одиночный тест перестает работать...
2021.09.1703:18:51.349 BTCUSDT: symbol to be synchronized
2021.09.1703:18:51.349 BTCUSDT: symbol synchronized, 3880 bytes of symbol info received
2021.09.1703:18:51.349 BTCUSDT: history synchronization started
2021.09.1703:18:51.573 BTCUSDT: history synchronization error [apply error]
2021.09.1703:18:51.573 BTCUSDT: load 6.03 Mb of history data to synchronize in0:00:00.2232021.09.1703:18:51.573 BTCUSDT: history synchronized from2020.01.01 to 2021.09.162021.09.1703:18:51.573 prepare for shutdown
2021.09.1703:18:51.591 BTCUSDT: rates base receive error
2021.09.1703:18:51.591 unexpected end of testing
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//--- код страны для Европейского союза по стандарту ISO 3166-1 Alpha-2string EU_code = "EU";
//--- получим все значения событий по Европейскому союзуMqlCalendarValue values[];
//--- зададим границы диапазона, из которого берем событияdatetime date_from = D'01.01.2018'; // берем все события с 2018 годаdatetime date_to = 0; // 0 означает все известные события, даже те, что не наступили еще//--- запросим историю события по Европейскому союзу с 2018 годаif(CalendarValueHistory(values, date_from, date_to, EU_code))
{
PrintFormat("Получены значения событий по country_code=%s: %d",
EU_code, ArraySize(values));
//--- уменьшим размер массива для вывода в ЖурналArrayResize(values, 10);
//--- выведем значения событий в ЖурналArrayPrint(values);
//--- for(int v_idx = 0; v_idx < 10; v_idx++)
{
MqlCalendarValue curr_val = values[v_idx];
::Print("\n---== Value description ==---");
::PrintFormat(" Id: %I64u", curr_val.id);
::PrintFormat(" Event id: %I64u", curr_val.event_id);
::PrintFormat(" Time: %s", ::TimeToString(curr_val.time));
::PrintFormat(" Period: %s", ::TimeToString(curr_val.period));
::PrintFormat(" Revision: %I32d", curr_val.revision);
::PrintFormat(" Actual value: %I64d", curr_val.actual_value);
::PrintFormat(" Previous value: %I64d", curr_val.prev_value);
::PrintFormat(" Revised previous value: %I64d", curr_val.revised_prev_value);
::PrintFormat(" Forecast value: %I64d", curr_val.forecast_value);
::PrintFormat(" Impact type: %s", ::EnumToString(curr_val.impact_type));
}
}
else
{
PrintFormat("Ошибка! Не удалось получить события по стране country_code=%s", EU_code);
PrintFormat("Код ошибки: %d", GetLastError());
}
}
И ругань компилятора:
'test_value_history.mq5' test_value_history.mq5 11'id'is not a member of 'MqlCalendarValue' type test_value_history.mq5 3549'curr_val' - objects are passed by reference only test_value_history.mq5 3540'event_id'is not a member of 'MqlCalendarValue' type test_value_history.mq5 3655'curr_val' - objects are passed by reference only test_value_history.mq5 3646'time'is not a member of 'MqlCalendarValue' type test_value_history.mq5 3763'curr_val' - parameter conversion not allowed test_value_history.mq5 3754'period'is not a member of 'MqlCalendarValue' type test_value_history.mq5 3865'curr_val' - parameter conversion not allowed test_value_history.mq5 3856'revision'is not a member of 'MqlCalendarValue' type test_value_history.mq5 3955'curr_val' - objects are passed by reference only test_value_history.mq5 3946'actual_value'is not a member of 'MqlCalendarValue' type test_value_history.mq5 4059'curr_val' - objects are passed by reference only test_value_history.mq5 4050'prev_value'is not a member of 'MqlCalendarValue' type test_value_history.mq5 4161'curr_val' - objects are passed by reference only test_value_history.mq5 4152'revised_prev_value'is not a member of 'MqlCalendarValue' type test_value_history.mq5 4269'curr_val' - objects are passed by reference only test_value_history.mq5 4260'forecast_value'is not a member of 'MqlCalendarValue' type test_value_history.mq5 4361'curr_val' - objects are passed by reference only test_value_history.mq5 4352'impact_type'is not a member of 'MqlCalendarValue' type test_value_history.mq5 4470'curr_val' - parameter conversion not allowed test_value_history.mq5 4461
voidOnStart()
{
MqlCalendarValue Value;
Value.time = 0;
/*
'time' is not a member of 'MqlCalendarValue' type
'0' - parameter passed as reference, variable expected
'operator=' - object required
'0' - illegal operation use
*/
}
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
В этом коде для компилятора все однозначно - вызывается string-перегрузка.
Примерно понял логику компилятора - увидел целочисленный datetime (пусть и вторым параметром).
Тогда чем datetime лучше, чем color или enum?
Результат: void f(datetime)
Тогда чем datetime лучше, чем color или enum?
Приоритетом.
Приоритетом.
0 - это int. Согласно документации:
"вместо типа int можно использовать тип color (по 4 байта), а вместо типа long допустим тип datetime (занимают по 8 байт)"
Т.е. вместо 0 можно сразу подставить color, а чтобы вместо 0 подставить datetime - его нужно сначала к long привести
Добрый день!
Build 3041, есть 3 проблемы:
1. При повторных запусках оптимизации, загрузка происходит из кэша, НО, если использовался форвард тест, он не прогружается, загружается только оптимизация и даже из истории нет возможности загрузить кэш форварда, таким образом приходится изменять дату и запускать оптимизацию снова так как в этом случае от кэша толку никакого...
1.1 При изменении входной формулы ситуация аналогичная, подгружается из кэша, но по новой формуле, форвард игнорируется(
2. Если удалить сервис, который в данный момент запущен в терминале, после этого обновить древо навигатора, сервисы удаляются из списка, но продолжают работать в фоне, завершить их работу никак нельзя так как из Task Manager они тоже пропадают, если вернуть сервис обратно и снова обновить древо навигатора, то сервис появляется в запущенном виде и продолжает функционировать, возможно так и задумывалось, но мне кажется, что в Task Manager все он должен остаться...
3. Иногда при тестировании советника на кастомных графиках, если обновить версию советника (терминал при этом всегда работает), только обновить папку в навигаторе, чтобы переинициализировать.
В этом случае может сломаться тест и оптимизация так как пытается синхронизировать графики, иногда удаление и загрузка символа помогает, а иногда нет, переустановка терминала наверняка решает эту проблему, но до определенного момента... по этому приходится всегда держать под рукой архив с бэкапом терминала и запускаться в режиме /portable
Иногда одиночный тест работает, а после запуска оптимизации происходит поломка и после нее и одиночный тест перестает работать...
При запуске тестера на кастомном символе выходит такая ошибка. Билд 3041.
Графики все показываются. Хотелось бы более понятное сообщение вместо "history check timeout", чтобы понять причину.
В нескольких последних билдах сломали импорт библиотек (уже не в первый раз, к сожалению).
В библиотеке прописана функция:
В эксперте при попытке её вызвать:
Получаем ошибку:
На билде 2988 работает нормально.
Из библиотеки экспортится еще куча функций, в частности, нижеследующая, и они работают:
Проблема возникает, судя по всему, из-за параметра-массива (или из-за того, что это массив структур).
Что-то сломали в MqlCalendarValue. Build 3042.
Проверочный скрипт:
И ругань компилятора:
Что-то сломали в MqlCalendarValue. Build 3042.
Топорно как-то с билдами.
MT5 b3042, ME b3042
Скрипт
Компилирую по F7 - при "generating code: 74%" ME аварийно закрывается (в metaeditor.log про это ничего нет). Терминал работает нормально.
Если откомпилировать без строчки Print(.... - компилируется ОК.
MT5 b3042, ME b3042
Скрипт
Компилирую по F7 - при "generating code: 74%" ME аварийно закрывается (в metaeditor.log про это ничего нет). Терминал работает нормально.
Если откомпилировать без строчки Print(.... - компилируется ОК.
Интересно, какие еще выражения вычисляются на этапе компиляции...