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

 
Slava:
Можно Ваш пример, чтобы мы воспроизвели у себя?

К посту прикладываю одинаковые коды для мт 4 и мт 5 

У меня результат такой в МТ 5:

2019.01.10 20:16:36.875 TestTemplate (EURUSD,D1) 0  0
2019.01.10 20:16:37.408 TestTemplate (EURUSD,D1) 1  0
2019.01.10 20:16:37.941 TestTemplate (EURUSD,D1) 2  0
2019.01.10 20:16:38.470 TestTemplate (EURUSD,D1) 3  0
2019.01.10 20:16:39.456 TestTemplate (EURUSD,D1) 4  0
2019.01.10 20:16:39.979 TestTemplate (EURUSD,D1) 5  0
2019.01.10 20:16:40.501 TestTemplate (EURUSD,D1) 6  0
2019.01.10 20:16:41.029 TestTemplate (EURUSD,D1) 7  0
2019.01.10 20:16:41.552 TestTemplate (EURUSD,D1) 8  0
2019.01.10 20:16:44.625 TestTemplate (EURUSD,D1) Ошибка сохранения шаблона //Files//A_EURUSD 4001
2019.01.10 20:16:45.144 TestTemplate (EURUSD,D1) 9  4001
2019.01.10 20:16:46.360 TestTemplate (EURUSD,D1) 10  4001
2019.01.10 20:16:46.874 TestTemplate (EURUSD,D1) 11  4001


и далее ошибка 4001


Результат такой в МТ 4 ошибок нет:

2019.01.10 20:19:08.830 TestTemplate USDJPY,H1: 13  0
2019.01.10 20:19:08.317 TestTemplate USDJPY,H1: 12  0
2019.01.10 20:19:07.805 TestTemplate USDJPY,H1: 11  0
2019.01.10 20:19:07.292 TestTemplate USDJPY,H1: 10  0
2019.01.10 20:19:06.780 TestTemplate USDJPY,H1: 9  0
2019.01.10 20:19:06.267 TestTemplate USDJPY,H1: 8  0
2019.01.10 20:19:05.753 TestTemplate USDJPY,H1: 7  0
2019.01.10 20:19:05.239 TestTemplate USDJPY,H1: 6  0
2019.01.10 20:19:04.724 TestTemplate USDJPY,H1: 5  0
2019.01.10 20:19:04.212 TestTemplate USDJPY,H1: 4  0
2019.01.10 20:19:03.698 TestTemplate USDJPY,H1: 3  0
2019.01.10 20:19:03.185 TestTemplate USDJPY,H1: 2  0
2019.01.10 20:19:02.670 TestTemplate USDJPY,H1: 1  0
2019.01.10 20:19:02.153 TestTemplate USDJPY,H1: 0  0

Проблема появилась в 1968 билде МТ 5, в предыдущем билде такой проблемы не было...

Файлы:
 
1969 имеет такой сюрприз
template<typename T>
uint ReadStruct( T &data )
{
  return(FileReadStruct(0, data)); // 'data' cannot be used as it has undefined type 'STRUCT'
}
  
void OnStart()
{
  struct STRUCT
  {
    int i;
  } Struct;

  ReadStruct(Struct);
}


Из-за этого Canvas.mqh больше не компилируется.

 
fxsaber:
1969 имеет такой сюрприз

Продолжение темы сюрпризов

template<typename T>
T Func()
{
  T Res = {0};

  return(true ? Res : Res); // '?' - parameter passed as reference, variable expected
}
  
void OnStart()
{
  MqlTick Tick = Func<MqlTick>();
}


Похоже, теперь возврат идет по ссылке. Что дает, конечно, скорость - не создается копия объекта.

Уважаемые разработчики, поясните ситуацию. Некоторый свой (да и Ваш) код перестал компилироваться на 1969 билде. Новые правила останутся в силе или это недоразумение до следующего билда?

 
Maxim Dmitrievsky:

50к

Я почему спросил. Это очень важно для расчёта синтетики.

Рассчитываются M1 бары и отправляются в историческую базу. На основе этих M1 и рассчитываются все остальные таймфреймы. Но запрос M1 баров формульных инструментов осуществляется тем же путём, что и CopyRates. То есть более 50k минуток не получить. Из 50k минуток можно сделать всего 10k пятиминуток, чуть меньше тысячи часовок. Несмотря на ограничение 50k, нельзя получить на основе этих данных 50k пятнадцатиминуток.

Попробуйте первоначальное накопление минуток синтетики сделать при неограниченном количестве баров, а только потом выставите ограничение 50k

 
Vladimir Pastushak:

К посту прикладываю одинаковые коды для мт 4 и мт 5 


Проблема появилась в 1968 билде МТ 5, в предыдущем билде такой проблемы не было...

Спасибо, проверим

 
Slava:

Я почему спросил. Это очень важно для расчёта синтетики.

Рассчитываются M1 бары и отправляются в историческую базу. На основе этих M1 и рассчитываются все остальные таймфреймы. Но запрос M1 баров формульных инструментов осуществляется тем же путём, что и CopyRates. То есть более 50k минуток не получить. Из 50k минуток можно сделать всего 10k пятиминуток, чуть меньше тысячм часовок. Несмотря на ограничение 50k, нельзя получить на основе этих данных 50k пятнадцатиминуток.

Попробуйте первоначальное накопление минуток синтетики сделать при неограниченном количестве баров, а только потом выставите ограничение 50k

Пропуск идет именно на последней истории а не на старой, т.е. буквально даже видно в окне графика, пример я привел. При этом при ручном обновлении графика пропущенные бары восстанавливаются мгновенно, видно по изменению истории (красным линиям), почему?

При перезагрузке терминала их опять не хватает, что странно. Общаюсь с человеком в личке, тоже говорит что бывают пропуски, визуально видно при сравнении графиков несовпадение экстремумов даже, после ручного обновления они выравниваются

вот сейчас сделал

до и после обновления. Куча пропущенных баров, жму кнопку "обновить" и все ок

 
Maxim Dmitrievsky:

Пропуск идет именно на последней истории а не на старой, т.е. буквально даже видно в окне графика, пример я привел. При этом при ручном обновлении графика пропущенные бары восстанавливаются мгновенно, видно по изменению истории (красным линиям), почему?

При перезагрузке терминала их опять не хватает, что странно. Общаюсь с человеком в личке, тоже говорит что бывают пропуски, визуально видно при сравнении графиков несовпадение экстремумов даже, после ручного обновления они выравниваются

Я это понял. Но так и не смог воспроизвести. И по представленным Вами фрагментам логов не увидел никакого криминала.

Будем ещё смотреть.

PS Досчёт синтетики идёт от последнего известного бара. Этот бар пересчитывается заново. Пока писал эту фразу, понял, где может быть проблема. Проверим

 
Slava:

Я это понял. Но так и не смог воспроизвести. И по представленным Вами фрагментам логов не увидел никакого криминала.

Будем ещё смотреть.

выше скрины добавил. Со вчерашнего дня синтетик не открывался (график). Сейчас открыл и увидел такое. Подождал несколько минут, он тикает, все нормально. Нажал кнопку обновить ну и результат.. все бары со вчерашнего дня прогрузились пропущенные

по свечке с большими тенями видно что теперь все ровно
 

Maxim Dmitrievsky:

до и после обновления. Куча пропущенных баров, жму кнопку "обновить" и все ок

Куча пропущенных это сколько?

Логи покажите при старте и при обновлении

 
Slava:

Куча пропущенных это сколько?

Логи покажите при старте и при обновлении

терминал не закрывался со вчерашнего дня, был просто закрыт график синтетика и сейчас открыт

поэтому лог только после обновления (кнопка обновить)

2019.01.11 14:57:57.152 Synthetic Symbol        EURGBP.strange: 51273 M1 bars updated from 2018.11.20 01:11 to 2019.01.11 09:44
2019.01.11 14:57:57.155 Synthetic Symbol        EURGBP.strange: M1 bars processing finished

кучу не считал, но на графиках видно что много

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

Причина обращения: