Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нужно пополнить счет? Пополняй удобным тебе способом!
St0nE
306
St0nE 2011.06.14 11:35 

Подскажите плиз..

NULL в массиве mql это пустота или физический ноль?

т.е. если у меня срабатывает сравнение цены с элементом массива который NULL, должна быть ошибка или цена сравнивается с физическим нулем?

Если NULL это физический ноль, подскажите, как можно в массиве обозначить пустоту, а не ноль? :-)

Спасибо...

Vitaliy
1136
Vitaliy 2011.06.14 12:02  

NULL - это специальная строковая константа.

Вы массив какого типа объявляете?

..................................

Специальные константы, используемые для указания состояния параметров и переменных. Mогут быть следующими величинами:

Константа Значение Описание
NULL 0 Указывает пустое состояние строки
EMPTY -1 Указывает пустое состояние параметра
EMPTY_VALUE 0x7FFFFFFF Значение по умолчанию, указатель пустого значения. Используется в пользовательских индикатора>
CLR_NONE 0xFFFFFFFF Указывает отсутствие цвета
WHOLE_ARRAY 0 Используется с функциями массиво>. Указывает, что все элементы массива должны быть обработаны

St0nE
306
St0nE 2011.06.14 12:04  
массив double... причем когда в него пихаю NULL он ни на что не ругается..
Vitaliy
1136
Vitaliy 2011.06.14 12:23  
St0nE:
массив double... причем когда в него пихаю NULL он ни на что не ругается..

Наверное преобразовывается в 0.0

................

Я делаю так. Допустим точно известно, что значения в массиве будут лежать в диапазоне от -100.0 до 100 000 000.0

тогда

#define controlValue -9999999.9999999
double a[100][200];
ArrayInitialize (a, controlValue);
..............
if (a[x][y] != controlValue) 
   {........;}
 else
   {........;}
На истину не претендую, но у меня работает... )
St0nE
306
St0nE 2011.06.14 12:28  

Примерно понятно... Спасибо.. :-)

Просто у меня идет сравнивание с ценой элемента массива. Например типа текущая цена больше чем элемент массива, а если в массиве лежит 0, то это условие сработает. А это неправильно, в этом элементе массива должен быть или NULL или расчитанный ранее уровень цены. И при сравнении с NULL должен быть эксепшен. Походу придется ставить проверку на 0 при сравнении с элементом массива..

Andrey Dik
10534
Andrey Dik 2011.06.14 12:55  
St0nE:

 ранее уровень цены. И при сравнении с NULL должен быть эксепшен. Походу придется ставить проверку на 0 при сравнении с элементом массива.. 


  Да, или проверка на 0, или завести дополнительный массив и в нем хранить флаг наличия элемента соответствующего индекса массива.
St0nE
306
St0nE 2011.06.14 13:24  

Спасибо...

Я то надеялся, что это я что то не понимаю и NULL не равен 0...

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий