Скачать MetaTrader 5

ArrayInitialize вызывает ошибку

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114299
Forex Trader  
строка
ArrayInitialize(arr_4,0); 

где

double   arr_4[];



Вызывает "2006.12.02 01:20:23 xxxx EURUSD,H4: ArrayInitialize function internal error" в индикаторе.

Сама arr_4 это:

SetIndexStyle(0,DRAW_NONE);
SetIndexBuffer(0,arr_4);
SetIndexEmptyValue(0,0.0);
ArraySetAsSeries(arr_4,1);



Билд 200 от 14 ноября.


Forex Trader
114299
Forex Trader  
Во-первых, для индикаторных массивов (буферов) не нужно применять функцию
ArraySetAsSeries() , потому что уже это SetIndexBuffer() делает любой массив ценовой серией.
Forex Trader
114299
Forex Trader  
Во-вторых, в хелпе написано:
int ArrayInitialize( double&array[], double value)
Устанавливает все элементы числового массива в одну величину. Возвращает количество инициализированных элементов.

Замечание: не рекомендуется инициализировать индексные буферы в функции init() пользовательских индикаторов, так как они инициализируются автоматически "пустым значением" при распределении и перераспределении буферов.
Параметры:
array[] - Числовой массив, который нужно инициализировать.
value - Новая величина, которая нужно установить.

Пример:
//---- инициализация всех элементов массива значением 2.1
double myarray[10];
ArrayInitialize(myarray,2.1);



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