Бета-версия платформы MetaTrader 5 build 1700: Проекты в MetaEditor и синтетические инструменты - страница 19

 
Anton:

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

Чем архитектурно сегодняшний день отличается от предыдущих?

Только сейчас сообразил, что взведенные биты TICK_FLAG_BUY | TICK_FLAG_SELL противоречат друг другу. Как терминал воспринимает такие тики?

 

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

Максимум, что сейчас можно сделать, это

CustomSymbolSetInteger(Name, SYMBOL_DIGITS, 8)

Это старое ограничение. Иногда нужно записать нецелое число пунктов в цену тика.

 
fxsaber:

Можете по указанному крэшу создать тикет в сервисдеск, описать условия при которых возник и приложить необходимые для воспроизведения файлы?

 
Alexey Da:

Можете по указанному крэшу создать тикет в сервисдеск, описать условия при которых возник и приложить необходимые для воспроизведения файлы?

Все данные в СД

Тяжело воспроизводимый краш
Открыта, Начата: 2017.11.02 22:32, #1875250
 

Теперь EURUSD-чарты не закрыть. Если нажимаю на крестик, то переключаюсь на ME. Если же ME закрыть, то нажатие на крестик никакой видимой реакции не создает.

Какие-нибудь данные нужны с такого терминала или могу спокойно перезагрузить его?


ЗЫ Удалось закрыть окна, когда с живого чарта удалил советник.

 
Anton:

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

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

В этом диапазоне находятся системные биты, которые полностью изменяют ваше запрошенное поведение. В конкретном месте мы сейчас вставили принудительную маску публичных битов, но это неправильный путь.


Эта рекомендация касается всех случаев использования флагов - не надейтесь, что с помощью 0xFF вы получите все и правильно.

 
Renat Fatkhullin:

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

В этом диапазоне находятся системные биты, которые полностью изменяют ваше запрошенное поведение. В конкретном месте мы сейчас вставили принудительную маску публичных битов, но это неправильный путь.


Эта рекомендация касается всех случаев использования флагов - не надейтесь, что с помощью 0xFF вы получите все и правильно.


а единичное использование флагов например такое:

 if((_tick[i].flags&TICK_FLAG_BUY) == TICK_FLAG_BUY) {  

не будет ведь приводить к ошибке? я к тому, что прежний код будет работать без ошибок или нужно проверять?

 
Renat Fatkhullin:

Сформулируйте правильный вопрос, пожалуйста.

Но вы и так все уже поняли.

Все работает правильно.


спс

 
Konstantin:

а единичное использование флагов например такое:

не будет ведь приводить к ошибке? я к тому, что прежний код будет работать без ошибок или нужно проверять?

Как раз такое использование флагов правильное.

Неправильное, если вы используете числовые flags & 4 условия или передаете запросы по маске флагов в виде 0xFFFF вместо указания конкретных флагов.

 

Что за параметр такой: "Ретрансмиты"?

Ретрансмиты

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