Ошибки, баги, вопросы - страница 760

 
Karlson:

Мне кажется,что бары старших ТФ редко "пропадают".А так да..От указываемой даты получить один бар.Точнее клозе с него.

Другой вариант одновременно получать время этого бара через CopyTime().И сравнивать,чтобы были синхронны.

И третий вариант (наверное облегчающий) сразу использовать CopyRates в структуру. 

Спасибо.. Дело в том, что работаю на М1, и часто наблюдаю асинхронность баров с одинаковым индексом на разных инструментах. Сравнивать даты - тоже вариант. Буду смотреть, какой вариант оптимальнее по скорости вычислений..
 
Alex5757000:
Спасибо.. Дело в том, что работаю на М1, и часто наблюдаю асинхронность баров с одинаковым индексом на разных инструментах. Сравнивать даты - тоже вариант. Буду смотреть, какой вариант оптимальнее по скорости вычислений..
Про синхронизацию кое-что есть здесь.
 
Lizar:
Про синхронизацию кое-что есть здесь.

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

Но вот вместо пользовательских событий я бы лучше использовал функцию OnTimer, потому что вешать на каждый инструмент по "индикатору-агенту" очень громоздко получается...

 
Alex5757000:

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

Можно так, если устраивает синхронизация относительно текущего инструмента.

 

Но вот вместо пользовательских событий я бы лучше использовал функцию OnTimer, потому что вешать на каждый инструмент по "индикатору-агенту" очень громоздко получается...

Используйте OnTimer, все зависит от ваших требований к качеству синхронизации. 
 

проблема имеет место.

MT4

подробности:

https://www.mql5.com/ru/forum/139759/page13#655069

Новая версия MetaTrader 4 Client Terminal build 432 - MQL4 форум
  • www.mql5.com
Новая версия MetaTrader 4 Client Terminal build 432 - MQL4 форум
 

Наверное, самое большое разочарование для меня - это поведение функций SeriesInfoInteger, CopyTime, CopyOpen и им подобных.

Оказывается даже в выходные дни, когда новые котировки уже не поступают, а существующие данные обновлены,

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

Замечено, что проблема возникает при работе в мультивалютном режиме после перекомпиляции индикаторов, а также при смене таймфремов и перезапуске терминала. 

 

CopyOpen() не выдает ошибку, если мы пытаемся скопировать данные из несуществующего куска истории, указав дату его начала. Функция выдает значение котировки из неизвестного бара.

Такое поведение функции выявлено на паре USDHKD, по которой на сервере MQ нет данных за последние несколько месяцев. 

 

Спасибо MQ за новые ловушки!  

 

void OnStart()

 {

   Alert("start");

   string arr1[178365];

   char arr2[178365];

   arr1[100002]="hello";

   Alert(arr1[100002]);

   Alert("finish");

  }

При компиляции выдает предупреждения the size of local variables is too large (more than 512kb) 55.mq5 27 6

При исполнении 2012.07.01 14:37:26 55 (GBPUSD,MN1) stack overflow

 Что неужели я не могу использовать 2 небольших массива? Неужели это действительно так много?

Метатрейдер использую не для трейдинга , а для других расчетов. 

 

 

Stasikusssss:

...

Я бы так попробовал: массивы поместить в класс или в структуру (не помню, можно ли выделять динамическую память для структуры), память для класса выделить через new;

Или определение массивов разместить в отдельной функции, и поиграться с #property stacksize https://www.mql5.com/ru/docs/basis/preprosessor/compilation. Если второй вариант, то массивы не могут быть статическими (static).

Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
 
Про несуществующие котировки: приведите, пожалуйста, воспроизводимый пример в коде. Наверняка ошибка в Вашем коде.
 
Неразумно делать огромные массивы в стеке (больше 512 кб), о чем компилятор сразу предупредил.

Если нужны большие массивы, то их нужно делать динамическими с явным выделением памяти.
Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов
Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов
  • www.mql5.com
Основы языка / Переменные / Создание и уничтожение объектов - Документация по MQL5
Причина обращения: