AlexeyVik
Программист mql4 mql5
Без #property strict ошибка никуда не делась, только лишь игнорируется. Типа, получили хрень какую-то, ну и хрен с ней... пойдём дальше...Пазл начал складываться.
Без #property strict ошибки нет, значит надо просто очистить массив.
Теперь у меня тупик, как это сделать.
Может есть у кого варианты?
Очищать массив нет никакого смысла. Проблема не в том, что массив заполнен, а в том что индекс массива при заполнении или чтении превышает максимальное значение.
Пример получения ошибки array out of range
Код:
#property strict
int arr[5]; // индекс такого массива может принимать значения 0, 1, 2, 3, 4
void OnTick()
{
for(int i = 0; i <= 10; i++)
{
arr[i] = i; // как только i станет равным 5 мы получим ошибку array out of range
}
}
Директива #property strict выполняет роль помошника, при таких ошибках предупреждает о получении, возможно не такого результата какой ожидается и требует привести код в надлежащий вид исключив неоднозначные варианты. Это и есть одно из отличий нового mql4.
Получить дату на новом баре можно и без структуры. Да и со структурой не сложно.Все просто - получение даты на новом баре, использовать можно в индикаторах для определения аккумуляции, в советниках как импульсную функцию, да и много куда можно засунуть.
Код:
MqlDateTime dt1;
// Заполнение структуры
TimeToStruct(Time[0], dt1); // Можно любое другое время и дату.
int CurrentDay = dt1.day;
А вот что ты имеешь ввиду под аккумуляцией и импульсной функцией? Увы...
Последнее редактирование: