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

 
Nikolai Semko #:
В обоих случаях переменная не используется, а только инициализируется.
Во всех нормальных IDE неиспользуемые переменные(вне зависимости от инициализации) подсвечиваются(не красным, а жёлтым, т.к. это не ошибка), или на крайний случай компилятор должен выдавать предупреждения. Местный компилятор выдает предупреждение только в случае неиспользуемой и неинициализированной переменной.
Писал об этом несколько лет назад, но до сих пор нет заметных улучшений в ME. MetaEditor - IDE из прошлого тысячелетия.
Это начинаешь отчётливо осознавать когда поработаешь с современными IDE. Тот же VS Code или все IDE от JetBrains.

Николай, извините, не сочтите за грубость, но это получается примерно как муж предъявляет жене претензию, что у неё грудь маловата.

Рассмотрите ещё переменные объявленные на глобальном уровне. Они даже если не инициализированы и не используются, всё по-фигу, нет никаких предупреждений.
Что получили тем и пользуемся. И зачем говорить о том, что у кого-то лучше или хуже…

 
freemovpalmg #:
Почему на фьючерсе Si брокер Финам, платформа метатрейдер 5 при тестировании советника, график результатов выглядит неверно, там появляется просадка которой нет в списке сделок и ордеров, а в бектесте просадка в 200%, например депозит 100 000 рублей, и показывает просадку около 269 000 рублей, когда в списке убыточные сделки по 500 рублей и их не так много по сравнению с прибыльными, а итог теста прибыль 7000? См скрины. Спасибо.

Вероятно, это следствие неверного расчёта маржи. MQ считает, что это правильно и что ошибка у Финама. Попробуйте откатиться на 4073 или ранее, там маржа, вроде, нормально считается.

 
Alexey Viktorov #:

Николай, извините, не сочтите за грубость, но это получается примерно как муж предъявляет жене претензию, что у неё грудь маловата.

Рассмотрите ещё переменные объявленные на глобальном уровне. Они даже если не инициализированы и не используются, всё по-фигу, нет никаких предупреждений.
Что получили тем и пользуемся. И зачем говорить о том, что у кого-то лучше или хуже…

Сразу видно, что Вы, Алексей, не кодили ни в VS Code, ни в JetBrains
 

Отрицательный ноль.


 
fxsaber #:

Отрицательный ноль.

Да, ноль бывает отрицательным, что подтверждается результатом (4)

void OnStart()
{
    union U {
        double d;
        ulong  l;
    } u1 { 0/(+1.0) },
      u2 { 0/(-1.0) };          //Результат:
    Print( u1.d == u2.d ); //(3)//true
    Print( u1.l == u2.l ); //(4)//false
}

При этом сохраняется равенство (3)

 
    printf("%.9f %llX", u1.d, u1.l);  //   0.000000000 0
    printf("%.9f %llX", u2.d, u2.l);  //  -0.000000000 8000000000000000
 
Nikolai Semko #:
Сразу видно, что Вы, Алексей, не кодили ни в VS Code, ни в JetBrains

Зато у меня были женщины с другим размером. А теперь я довольствуюсь тем что осталось со мной.

Не такая уж и проблема в этих переменных.

 
JRandomTrader #:

Объединил для наглядности, все вместе:

void OnStart()
{
    union U {
        double d;
        ulong  l;
    } u1 { 0/(+1.0) },
      u2 { 0/(-1.0) };                    //Результат:
    printf("%.9f %llX", u1.d, u1.l); //(1)// 0.000000000 0
    printf("%.9f %llX", u2.d, u2.l); //(2)//-0.000000000 8000000000000000
    Print( u1.d == u2.d );           //(3)//true
    Print( u1.l == u2.l );           //(4)//false
}
 
A100 #:

Объединил, все вместе (заодно исправив у себя неточность, допущенную при последующем редактировании):

Если это структура, то "l" не инициализируется.
Или это объединение, как было в первом примере?
 
Sergey Gridnev #:
Если это структура, то "l" не инициализируется.
Или это объединение, как было в первом примере?

Да, union

Кстати - из того примера следует, что анонимные struct\union\class допустимы - там U один раз появилось и в дальнейшем не используется. Хотя в Документации прямо сказано, что анонимно нельзя, но есть противоречивый пример:

В одном случае есть ошибка при компиляции, а в другом - нет

void OnStart()
{
    enum   {     e  } x1; //(1)//нормально
    struct { int e; } x2; //(2)//Error: '{' - name expected
}

А какая принципиальная разница?