Здравствуйте! Помогите найти и исправить ошибку. Хочу использовать вершины и впадины Зигзага младшего таймфрейма, а мне выдает ошибку "array out of range in ..." (выход за пределы массива). Причем если в iCustom период 0, то все работает, а если меньший тайм- ошибка. Вот пример кода
//==================================================================+// Индикаторы |//==================================================================+ double _ZZ = iCustom(NULL,PERIOD_M5,"ZigZag",ZZ,5,3,0,1);
//==================================================================+// Определение направления ZZ |//==================================================================+if(_ZZ == High[1])
lu = 1; // Концец луча - Направление вверх.if(_ZZ == Low[1])
lu = 0;
//==================================================================+// Последовательность Вершин и Впадин ZZ |//==================================================================+int a; // Задается номер простого бара.for(a = 1; a <= Bars; a++) // Включаем пресчет простых баров.
{
double Pa1 = NormalizeDouble(iCustom(NULL,PERIOD_M5,"ZigZag",ZZ,5,3,0, a ),Digits);
if(Pa1 == High[a]) // Выявлние не истинной вершины.
{
plus_top = plus_top + 1; // Счетчик вершин.
Plus_Top[plus_top] = Pa1; // Заносим истинную величину вершины в массив.if (plus_top>= 4) // Если счетчик достиг предела,
{
plus_top = 0; // то обнуляем счетчик, и break; // выходим из цикла.
}
}
}
Здравствуйте! Помогите найти и исправить ошибку. Хочу использовать вершины и впадины Зигзага младшего таймфрейма, а мне выдает ошибку "array out of range in ..." (выход за пределы массива). Причем если в iCustom период 0, то все работает, а если меньший тайм- ошибка. Вот пример кода
Потому, что вы пробегаете в цикле по количеству баров, которые есть на текущем графике, но на младшем тайме баров меньше, и при запросе большего количества чем есть - получаете ошибку.
Потому, что вы пробегаете в цикле по количеству баров, которые есть на текущем графике, но на младшем тайме баров меньше, и при запросе большего количества чем есть - получаете ошибку.
Большое спасибо, Виталий!
Все равно не понял как это исправить. Прописал вместо Bars - "iBars(NULL,PERIOD_M5)" Не помогло
Не понимаю почему на младшем тайме баров меньше? Наоборот ведь больше?! В 1 баре м15 три по м5. Как сделать, чтоб работало, подскажите. Не могу врубиться. С циклами пока проблемы
Потому, что вы пробегаете в цикле по количеству баров, которые есть на текущем графике, но на младшем тайме баров меньше, и при запросе большего количества чем есть - получаете ошибку.
Если ошибку нашли, то может стоит сообщить остальным где она была? Кто-то может так же столкнуться с ней, а тут уже ответ есть вместо простой констатации факта.
Artyom Trishkin: Если ошибку нашли, то может стоит сообщить остальным где она была? Кто-то может так же столкнуться с ней, а тут уже ответ есть вместо простой констатации факта.
Вы правы. Обращение к High[], Low[] и Bars возвращает значения с текущего таймфрейма. А нужно запрашивать с желаемого:
iHigh
Возвращает значение максимальной цены бара (указанного параметром shift) соответствующего графика.
doubleiHigh(
string symbol, // символ int timeframe, // период int shift // сдвиг
);
Выдается сообщение, как его исправить?
possible use of uninitialized variable 'Li_16' BreakdownLevelDay.mq4 80 15
Здравствуйте! Помогите найти и исправить ошибку. Хочу использовать вершины и впадины Зигзага младшего таймфрейма, а мне выдает ошибку "array out of range in ..." (выход за пределы массива). Причем если в iCustom период 0, то все работает, а если меньший тайм- ошибка. Вот пример кода
Здравствуйте! Помогите найти и исправить ошибку. Хочу использовать вершины и впадины Зигзага младшего таймфрейма, а мне выдает ошибку "array out of range in ..." (выход за пределы массива). Причем если в iCustom период 0, то все работает, а если меньший тайм- ошибка. Вот пример кода
Потому, что вы пробегаете в цикле по количеству баров, которые есть на текущем графике, но на младшем тайме баров меньше, и при запросе большего количества чем есть - получаете ошибку.
Потому, что вы пробегаете в цикле по количеству баров, которые есть на текущем графике, но на младшем тайме баров меньше, и при запросе большего количества чем есть - получаете ошибку.
Большое спасибо, Виталий!
Все равно не понял как это исправить. Прописал вместо Bars - "iBars(NULL,PERIOD_M5)" Не помогло
Не понимаю почему на младшем тайме баров меньше? Наоборот ведь больше?! В 1 баре м15 три по м5. Как сделать, чтоб работало, подскажите. Не могу врубиться. С циклами пока проблемыПотому, что вы пробегаете в цикле по количеству баров, которые есть на текущем графике, но на младшем тайме баров меньше, и при запросе большего количества чем есть - получаете ошибку.
Оказалась не в этом ошибка
Оказалась не в этом ошибка
Если ошибку нашли, то может стоит сообщить остальным где она была? Кто-то может так же столкнуться с ней, а тут уже ответ есть вместо простой констатации факта.
Вы правы. Обращение к High[], Low[] и Bars возвращает значения с текущего таймфрейма. А нужно запрашивать с желаемого:
Читаните
С более полным исходным кодом разобрались в сервисдеске.
Вот ссылка, объясняющая проблему https://support.microsoft.com/ru-ru/help/172190/windows-nt-contains-file-system-tunneling-capabilities
При удалении файла в виндовс и создании такого же с тем же именем средсвами мкл, дата создания будет выдаваться первого файла.
Винда кеширует файлы