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

 
Alexey Navoykov:

Порядок выполнения операндов в C++ не регламентирован, поэтому всё на усмотрение конкретного компилятора.

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

#ifdef __MQL__
class A { public:
        A *operator +( A* ) { return NULL; }
};
template<typename T>
T f( int i ) { Print( __FUNCTION__, ":", i ); return NULL; }
void OnStart()
{
        int i = f<int>(1) + f<int>(2) + f<int>(3); //слева направо 1-2-3
        A  *a = f<A* >(1) + f<A* >(2) + f<A* >(3); //справа налево 3-2-1
}

#endif

Если его строго регламентировать - то в одном из 2-х случаев будет потеряна эффективность
 
A100:

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

Если его строго регламентировать - то в одном из 2-х случаев будет потеряна эффективность

Отличный пример!

Не могу понять, почему при выполнении возникает ошибка "invalid pointer access". Вроде, все чисто должно быть. Win7x64.

 
fxsaber:

Не могу понять, почему при выполнении возникает ошибка "invalid pointer access". Вроде, все чисто должно быть. Win7x64.

32bit рулит. Для 64bit нужны лишние телодвижения:

class A { public:
        A *operator +( A *a ) { return a; }
};
static A a;
int f( int i ) { Print( __FUNCTION__, ":", i ); return 0;  }
A  *g( int i ) { Print( __FUNCTION__, ":", i ); return &a; }
void OnStart()
{
        int i = f(1) + f(2) + f(3); //слева направо 1-2-3
        A  *a = g(1) + g(2) + g(3); //справа налево 3-2-1
}
 
A100:

32bit рулит. Для 64 - нужны лишние телодвижения 

Похоже, оптимизатор мудрствует.

 
fxsaber:

IndicatorParameters (+ IndicatorRelease)


Забыл пояснить. Мне нужен mql4. Да и хэндла у меня нет. Идея в том, что пользователь установит сам индикаторы на график, а программа должна определить их количество, название и используемые параметры (это не шпионская программа:) это нужно пользователю)

 
Aleksandr Teleguz:

Забыл пояснить. Мне нужен mql4. Да и хэндла у меня нет. Идея в том, что пользователь установит сам индикаторы на график, а программа должна определить их количество, название и используемые параметры (это не шпионская программа:) это нужно пользователю)

ChartSaveTemplate + парсинг. Здесь MT5-пример для советников. По аналогии переделать на индикаторы MT4.

 
Комментарии, не относящиеся к этой теме, были перенесены в "Вопросы от начинающих MQL4 MT4 MetaTrader 4".
 
Комментарии, не относящиеся к этой теме, были перенесены в "Вопросы от начинающих MQL4 MT4 MetaTrader 4".
 

Постоянно свербит вопрос к разработчикам: 

Почему нет функций наподобие

datetime OrderDateModified(ticket)){} 		//последнее изменение на стороне брокера любого из параметров ордера
datetime OrdersTotalLastModified(){}		//последнее изменение на стороне брокера среди всех не закрытых ордеров MODE_TRADES на счете

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

В чем именно загвоздка?

 

В справке редактора нет описания перечисления ENUM_SYMBOL_ORDER_GTC_MODE

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