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

 
Vitaly Muzichenko:

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


Коль торговали, то должны знать о мной приведенных фактах. Да, был период, когда AMD уступал по производительности, но не по фондоотдачи. А теперь есть Ryzen и очень интересно, какие у него будут результаты при работе с MT4/MT5!

 

Ошибка при компиляции

struct A {
struct B {
} static const b; //error: 'static' - semicolon expected
};
а так
struct A {
static const
struct B {
} b;
};
нормально. Но первая форма записи более привычна
 

MQL - нормально, а С++ генерирует ошибку E2040

void OnStart()
{
        int i1 = 1, const i2 = 2; //нормально
}
 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

A100, 2017.08.12 19:50

Как минимум здесь (*) ошибка, кроме того метод TrendTenkan сам по себе (его никто не вызывает)

enum ENUM_TYPE_TREND {
   TYPE_TREND_FLAT       =3,           // no trend
};
class CSignalIchimoku {
        bool TrendTenkan(const double DiffTenkan);
};
bool CSignalIchimoku::TrendTenkan(const double DiffTenkan)
{
//...
        return(TYPE_TREND_FLAT); //(*) в скобках должно быть true, false или логическое выражение
//...
}
Вообще компилятор должен был бы в таком (*) случае выдать предупреждение, но он молчит

Не увидел ошибки. Такое должно работать

if (TYPE_TREND_FLAT)
// ...
 

Это баг или правильное поведение?

#define AMOUNT (#ifdef __MQL5__ 1 #else 2 #endif)

void OnStart()
{
  int Array1[AMOUNT]; // 'AMOUNT' - undeclared identifier
  int Array2[#ifdef __MQL5__ 1 #else 2 #endif]; // no problem
}
 

Не ошибка ли это, что const-метод все таки может менять поле своей структуры?

struct STRUCT
{
  int i;
  
  void Func( STRUCT &Struct ) const
  {
    Struct.i = 7;
  }
};

void OnStart()
{
  STRUCT Struct;
  
  Struct.Func(Struct);
  
  Print(Struct.i); // 7
}
 
А в чем разница между этими двумя строками?
void OnStart()
{
  int i1 = (1 / 2) ? 1 : 0; // expression not boolean
  int i2 = (0) ? 1 : 0;     // no problem
}
 

По редактору

  • Если ВНУТРИ метода определен класс, то редактор ошибочно показывает методы этого класса в списке функций (ALT+M).
  • Как в редакторе понять, внутри какой функции/метода находится сейчас курсор?
  • Если в Metaeditor набирать следующую строку
    DoubleToString(GetMicro
    то тултип (или как правильно называется всплывающая подсказка с вариантами?) GetMicrosecondCount не появляется.


  • Когда появляется тултип с вариантами, невозможно перейти вниз списка, нажав клавишу ВВЕРХ. Т.е. список незациклен, что ни есть правильно.
 

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

 

Если когда-то давно были совершены сделки по символу, которого сейчас НЕТ в Обзоре рынка (включая скрытую часть), то откуда при отображении этих сделок терминал берет Digits-данные по этим символам?