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

Alexey Viktorov #:
3808
Я так понимаю, что 3808 - это бета билд.
И если что-то не работает в бета билде для ПК - то есть ветка:
https://www.mql5.com/ru/forum/447913/page13
Новая версия платформы MetaTrader 5 build 3800: ордера Book or Cancel, помощь AI при написании кода и расширенная поддержка ONNX
Новая версия платформы MetaTrader 5 build 3800: ордера Book or Cancel, помощь AI при написании кода и расширенная поддержка ONNX
  • 2023.06.18
  • www.mql5.com
В четверг 8 июня 2023 года будет выпущена обновленная версия платформы MetaTrader 5. В новой версии мы добавили поддержку ордеров Book or Cancel...
A100 #:
Какая то лютая ошибка появилась в последнем build 3808 (ненароком обновился), не разобрался пока где, но думаю Разработчики быстрее сами найдут, если вспомнят что там меняли

Дайте больше деталей, пожалуйста.

Yauhen Zhuk #:
У меня билд 3785  для андроид 

Посмотрите, пожалуйста, нет ли у вас в логе записей invalid base record или подобных? Линиии открытых позиций в стандартных цветовых схемах должны быть видны, если они включены в настройках.

Sergey T #:

Посмотрите, пожалуйста, нет ли у вас в логе записей invalid base record или подобных? Линиии открытых позиций в стандартных цветовых схемах должны быть видны, если они включены в настройках.

Все включено. Это андроид версия. Где там посмотреть лог?
Yauhen Zhuk #:
Все включено. Это андроид версия. Где там посмотреть лог?

https://www.metatrader5.com/ru/mobile-trading/android/help/settings_journal

Выбрать пункт журнал в левом дравере.

Журнал - MetaTrader 5 для Android - Справка по MetaTrader 5 Android
  • www.metatrader5.com
Данный раздел позволять просмотреть журнал работы MetaTrader 5 для Android. В него выводятся различные служебные сообщения, а также записи о...
MetaQuotes #:

Дайте больше деталей, пожалуйста.

Излагаю: В build 3808 поменялось поведение #define

#define MACRO(X,Y)        X##Y
#define Open    Close
void functionOpen()  { Print( 1 ); }
void functionClose() { Print( 2 ); }
void OnStart()
{
    MACRO(function,Open)();
}

Результат до     : 2    //до 3808 был свой особый путь

Результат после: 1    //после 3808 стало как в С\С++

Казалось бы: Правильной дорогой идете товарищи! Но нет и здесь есть ошибка суть которой далее

#define Красный     Синий
#define Помидор     Баклажан
#define MACRO1(X,Y)        X##Y      //(*)
#define MACRO2(X)          #X
#define MACRO3(X)          MACRO2(X)
void OnStart()
{
    Print(MACRO3(MACRO1(Красный,Помидор)));
}

Результат в build 3808: СинийПомидор

Но Помидор не может быть Синим

либо СинийБаклажан (свой особый путь до build 3808)

либо КрасныйПомидор (как в C\C++)

А так получается, что в build 3808 в одной операции скрестили ежа с ужом

Это как если бы при сложении 2+2 считать первую двойку цифрой, а вторую двойку символом и поэтому результатом не 4, а 52

И да, если разум возобладает, то заодно можно поменять и это давнишнюю особенность:

Если в (*) примера выше добавить пробелы:

#define MACRO1(X,Y)        X ## Y     //(**)

то получается принципиально другой результат: Синий Y

Итого в сумме имеем четыре (!) разных результата, там, где должен быть один:

КрасныйПомидор
СинийБаклажан
СинийПомидор
Синий Y

А то как недавно выяснилось некоторые пользователи любят бездумно добавлять пробелы, там где не надо ожидая при этом что результат не изменится

A100 #:

В build 3808 поменялось поведение #define

Хреново. Затачиваешься годами на одно поведение, а потом втихую все разом сломано. Задолбало.

fxsaber #:

Хреново. Затачиваешься годами на одно поведение, а потом втихую все разом сломано. Задолбало.

То же немало удивлен... Когда последний раз вносились изменения в #define - наверное лет 5 назад. Но скорее всего проявилась архитектурная ошибка - то, что компилятор (вопреки обыкновению и Документации) не отделен от препроцессора (меняли компилятор и задели препроцессор) что подтверждается примером:

#define MACRO   1A2 //Error: invalid suffix 'A2'

Компилятор уже заранее решил (до построения препроцессором конечного выражения), что MACRO это вещественное число, а не другая сущность