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

 
sergeev:

Да Ренат, это мой код.

Он работал в предыдущих билдах. Но перестал работать в текущем 630/64.

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

Извините, теперь понял.

Да, 630 билд вышел багливый, но уже поправили и выпускаем новый.

Извините за ошибки, очень за них неприятно.

 

Что означает подпись на переменной (элемент строкового массива)

Expression cannot be evaluated ?

Массив в классе.  Массив динамический.

 
sergeev:

Что означает подпись на переменной (элемент строкового массива)

Expression cannot be evaluated ?

Массив в классе.  Массив динамический.

Выражение не может быть разобрано.

Приведите кусок кода, пожалуйста.

 
Renat:

Выражение не может быть разобрано.

Приведите кусок кода, пожалуйста.


#define CHART_LPROP     43
#define CHART_DPROP     6
#define CHART_SPROP     1

//------------------------------------------------------------------ class CTmpChart
class CTmpChart
{
public:
        // свойства
        long lprm[CHART_LPROP+3];
        double dprm[CHART_DPROP];
        string sprm[CHART_SPROP+1];

......
}

//------------------------------------------------------------------ Reset
void CTmpChart::Reset() // сброс всех значений
{
	// сбрасываем свойства
	string nul=NULL; 
	for (int i=0; i<CHART_LPROP+3; i++) lprm[i]=-1;
	for (int i=0; i<CHART_DPROP; i++) dprm[i]=-1;
	for (int i=0; i<CHART_SPROP+1; i++) sprm[i]=nul; // пришлось сделать так, иначе код слетает на присвоении sprm[i]=NULL 
}

//------------------------------------------------------------------ Copy
void CTmpChart::Copy(CTmpChart &a)
{
        for (int i=0; i<CHART_LPROP+3; i++) lprm[i]=a.lprm[i];
        for (int i=0; i<CHART_DPROP; i++)   // на этом цикле через раз (поймать стабильный глюк не получилось) терминал закрывается как процесс
          dprm[i]=a.dprm[i];
        for (int i=0; i<CHART_SPROP+1; i++) // на этом цикле бывает два варианта, 1) при подходе на эту строку цикла будет креш, 
          sprm[i]=a.sprm[i]; // 2) если цикл доживает к этой строке , то на ячейке sprm[i] (не из а.) - будет "Expression cannot be evaluated" и тоже креш
}

все массивы предварительно Reset.

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

Этот баг только на 630/64

 

MQL5: Добавлен асинхронный метод посылки торговых запросов OrderSendAsync.

Новая функция будет дополнять прежнюю OrderSend, или полностью её заменит?
 
Yedelkin:
Новая функция будет дополнять прежнюю OrderSend, или полностью её заменит?

Дополнять. На текущий момент она имеет такое определение


 
Rosh:

Дополнять.

Отлично. В Справочнике временно информации пока нет.
 
Rosh:

 На текущий момент она имеет такое определение

В описании надо бы сразу поправить: вместо "Функция OrderSend() предназначена для..." надо "Функция OrderSendAsync() предназначена для...". И далее ещё в кодовом описании.

 
Новая функция не повлияет на правила соревнования.
 
Rosh:

Дополнять. На текущий момент она имеет такое определение...

Помню Ренат дал отказ, и всё же отнеситесь к моему вопросу посерьёзней:

будет ли в будущем упрощена схема определения, какой ордер вызвал срабатывание OnTrade ?

особенно вопрос актуален в свете введения асинхронности новой функции OrderSendAsync().

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