Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5 - страница 20

 

Есть советники, которые почти на каждом тике делают модификации отложенных ордеров.

Лог всего одного одиночного прогона заполняется миллионами строк об успешных модификациях.

Есть ли отключить запись логов самого Тестера? Чтобы оставались только пользовательские записи.

 
В логе Тестера такие записи
2018.11.07 10:26:54.608 2018.10.26 08:20:08   failed modify order #382 sell limit 1.00 TESTER_EURUSD.rann_RannForex at 1.14011 sl: 0.00000 tp: 1.13931 -> 1.14011, sl: 0.00000 tp: 1.13931 [No changes]


В этом логе нет миллисекунд, а в Терминале выделенная запись содержит миллисекунды. Как пример, где это нужно.

Выше сообщение о торговой ошибке, которая произошла на тике с временем 2018.10.26 08:20:08. Но идентифицировать его точно без миллисекундной точности нельзя.


Если бы можно было, то по приходу этого тика такая запись

void OnTick()
{
  MqlTick Tick;
  
  if (SymbolInfoTick(_Symbol, Tick) && (Tick.time_msc == D'2018.10.26 08:20:08' * 1000 + ms))
    DebugBreak();

вызвала бы Debug-остановку на проблемном тике. И можно было бы по шагам быстро разобраться. Понятно, пример решаем и пользователем.


Но все же логи Тестера и Терминала в плане миллисекунд не совпадают. Возможно ли добавить их?

 

Переменные в дебаг-режиме появляются до их объявления!

Вот последовательные скрины дебага

На среднем скрине выделено, что переменная еще не определена, но уже существует. Такая же ситуация со структурами и т.д. Это фича или баг? Вроде, раньше такого не было.

 
Andy:
После обновления 1940 новости не сохраняются после выхода из терминала - при входе заново, вкладка становится пустая.

Здравствуйте,

К сожалению, не можем воспроизвести.

Уточните пожалуйста:

1. С каким сервером работаете.

2. Стабильно ли поведение. Есть ли какая то специфическая последовательность шагов для воспроизведения?

 

Сервер ВТБ.

Постоянно при выходе из МТ5 и затем входе пропадают все новости Доу Джонс из вкладки новостей терминала, хотя они приходят и читаются, но после выхода исчезают.

Можно проверить на демо счете ВТБ ФХ.
 
Даже с одним выключенным локальным Агентом (1/8) Оптимизация очень тормозит работу компа. Реакция на нажатия кнопкой мыши очень запоздалая и т.д. Build 1943.
 
fxsaber:
Даже с одним выключенным локальным Агентом (1/8) Оптимизация очень тормозит работу компа. Реакция на нажатия кнопкой мыши очень запоздалая и т.д. Build 1943.
Что Вы предлагаете?
 

Иногда неправильно работает функция iBarShift().

Простой скрипт, который берет время начала текущего дня. И на часовом ТФ ищем какой индекс бара принадлежит этому времени.

Для поиска индекса берем стандартный iBarShift() и функцию fxsaber - GetBarShift()

void OnStart()
{
   // --- Время открытия сегодняшнего дневного бара
  datetime dayBegin = iTime(_Symbol, PERIOD_D1, 0);
  
   // --- получим индекс бара тек.ТФ в начале сегодняшнего дня
  int idDayBegin = iBarShift(_Symbol, 0, dayBegin);
  int idDayBegin2 = GetBarShift(_Symbol, 0, dayBegin);
  
  Print(__FUNCTION__, " dayBegin=", dayBegin, " idDayBegin=", idDayBegin, " idDayBegin2=", idDayBegin2);
    
}



int GetBarShift(const string symbol_name, const ENUM_TIMEFRAMES timeframe, const datetime time) 
{
  int res=-1;
  datetime last_bar;
  
   // --- время открытия последнего бара по символу, периоду
  if(SeriesInfoInteger(symbol_name, timeframe, SERIES_LASTBAR_DATE, last_bar)) 
  {
    if(time > last_bar) res = 0;
    else 
    {
      const int shift = Bars(symbol_name, timeframe, time, last_bar);
      if(shift > 0) res = shift-1;
    }
  }
  return res;
}

Пока в наличии есть все бары как на GBPUSD - показания обеих функций совпадает.

Но если один из баров отсутствует, как например на QOF19, нет часовой свечи на 00:00, а день начинается сразу с 01:00. Тут начинаются расхождения.


Т.е. бар на самом деле - 10-й, iBarShift показывает, что 11-й. Т.о. залезаем уже в прошлый день.
 
Slava:
Что Вы предлагаете?

Разобраться, почему на 1881 не тормозит.

 
Vasiliy Pushkaryov:

Т.е. бар на самом деле - 10-й, iBarShift показывает, что 11-й. Т.о. залезаем уже в прошлый день.

Она показывает ближайший по времени бар. 23:00 на таком же расстоянии от 00:00, что и 01:00.