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

 

Ошибка в описании или реализации '\n'

void OnStart()
{
        ushort ch = '\n';
        Print( int(ch) );
}

Результат: 10, а в описании - 13

https://www.mql5.com/ru/docs/basis/types/integer/symbolconstants 

 

Нельзя изменить размер (ArrayResize) массива const указателей , при том, что const относится к указателю, а не к массиву

class A {};
void f()
{
        const A * array1[];
              A * array2[];
        ArrayResize( array1, 1 ); //ошибка компиляции
        ArrayResize( array2, 1 );
}
а не const можно. А в чем разница?
 

Утечка памяти,

class XYZ {
};
class A {
public:
};
void OnStart()
{
        A *a = new A();
}

Результат:

 но...  объекта XYZ - не создавалось! Поскольку иногда className указывает верно, то вероятно ошибка не только в имени

 

Ошибка выполнения: crash

class A {
public:
           void    operator=( A* a ) { f( a ); }
    virtual void           f( A* a ) {}
};
class B : public A {
public:
    virtual void           f( A* a ) {}
                A        *g() { return ( new B() ); }
};
void OnStart()
{
        B b;
        B c = b.g();
}

build 989

 

 

Почему такой вариант не работает в MQL?

static const int size=10;
int array[size];
 
A100:

Ошибка выполнения: crash

build 969

 

Спасибо за сообщения! Проверим
 
Добрый день, у меня у одного только такая картина на сайте или у всех?,)
 
Mechanic:
Добрый день, у меня у одного только такая картина на сайте или у всех?,)
Извиняюсь, похоже только у меня - сегодня надо почистить комп 
 
meat:

Почему такой вариант не работает в MQL?

Иначе const нельзя было бы сделать вычисляемыми

int f() { return ( 1 ); }
static const int size = f();

void OnStart()
{
        int array[];
        ArrayResize( array, size );
}
 

Ошибка

Вызов:

 Bars(Symbol(),PERIOD_D1);

приводит к сообщению в журнале:

HistoryBase    'RTS-12.14' 1 invalid bars removed


Задолбался уже с этой ошибкой. Кроме всего прочего она грузит канал связи.

Эта же ошибка появляется по другим, не выявленным, причинам.

Но, что интересно, она не появляется на многих других инструментах. Больше всего вылезает именно на фьючерсе RTS.


В сервисдеск написал несколько месяцев назад - ответ нет (Заявка начата: 2014.07.28 13:41, #1046215).


Прикрепляю код индюка, который вызывает эту ошибку на каждый тик текущего (и прошлого) фьючерса RTS (демо счёт у брокера "О..."):

#property version   "1.00"
#property indicator_separate_window
int OnInit(){return(INIT_SUCCEEDED);}
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   Bars(Symbol(),PERIOD_D1);
   return(rates_total);
}

Это баг в терминале? Или у брокера? Или у меня?

Что делать? Как иначе узнать кол-во баров на таймфрейме D1?

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