Всем добрый вечер! Помогите разобраться плиз, в массив пишу экстремумы, код ниже, прилагаю вложение с журнала. Проблема начинается с записи в массив значения 7 (переменные s и f равны 7, массив должен наполниться 8 значением,а регистрируется 10, и следующее значение переменной становиться не 8 а 10, такая же беда с цифрой 17 , словно на 7 идет прокрутка вперед цифр на 3 ))) Что можно сделать в этом случае?
for (m=1,s=0,f=0;m<limitt;m++)
{
H1=NormalizeDouble(high[m],V);
H2=NormalizeDouble(high[m+1],V);
H3=NormalizeDouble(high[m+2],V);
HT3=time[m+2];
H4=NormalizeDouble(high[m+3],V);
H5=NormalizeDouble(high[m+4],V);
L1=NormalizeDouble(low[m],V);
L2=NormalizeDouble(low[m+1],V);
L3=NormalizeDouble(low[m+2],V);
LT3=time[m+2];
L4=NormalizeDouble(low[m+3],V);
L5=NormalizeDouble(low[m+4],V);
if(H3>H1&&H3>H2&&H3>H4&&H3>H5)
{
ArrayResize(H,s+1);
ArrayResize(HT,s+1);
ArrayFill(H,s,1,H3);
ArrayFill(HT,s,1,HT3);
printf("Значение в массиве верх и время s=%o, H[s] = %G/HT[s] = %s ",s,H[s],TimeToString(HT[s],TIME_DATE));
sizeH=ArraySize(H);
sizeHT=ArraySize(HT);
printf("Количество значение в массиве верх и время sizeH=%o/sizeHT=%o ",sizeH,sizeHT);
s++;
}
if(L3<L1&&L3<L2&&L3<L4&&L3<L5)
{
ArrayResize(L,f+1);
ArrayResize(LT,f+1);
ArrayFill(L,f,1,L3);
ArrayFill(LT,f,1,LT3);
printf("Значение в массиве низ и время f=%o, L[f] = %G/ LT[f] = %s",f,L[f],TimeToString(LT[f],TIME_DATE));
sizeL=ArraySize(L);
sizeLT=ArraySize(LT);
printf("Количество значение в массиве низ и время sizeL=%o/sizeLT=%o",sizeL,sizeLT);
f++;
}
Народ подскажите. Как сделать так, чтобы расчет в индикаторе шел не на каждом тике, а, допустим, пробегал только один раз когда свеча сформировалась(закрылась)?
Вставь в индюк на глобальном уровне перед OnCalculate функцию NewBar и в условиях пропиши if(fNewBar()==true) далее цикл расчета,
Vinin: В init() идет подготовка данных. Возможно они еще просто не готовы.
AlexeyVik: Как-же не в нём? Разве не будет зацикливания если не изменять счётчик цикла? Ставишь цикл от а = 0 пока а меньше 1 и не увеличиваешь её.
разумеется проблема может быть в том что тестер не расчитывает данные зигзага до того как запустился, данные зигзага не проходят условия IF и цикл не повышается.
такое возможно, что бы тестер не расчитывал так как это делает терминал в нормальном режиме, именно как я описал ?
разумеется проблема может быть в том что тестер не расчитывает данные зигзага до того как запустился, данные зигзага не проходят условия IF и цикл не повышается.
такое возможно, что бы тестер не расчитывал так как это делает терминал в нормальном режиме, именно как я описал ?
как тогда сделать что б было все ок ?
Не знаю, меня почему-то терзают серьёзные сомнения что это не зацикливается в терминале.
разумеется проблема может быть в том что тестер не расчитывает данные зигзага до того как запустился, данные зигзага не проходят условия IF и цикл не повышается.
такое возможно, что бы тестер не расчитывал так как это делает терминал в нормальном режиме, именно как я описал ?
как тогда сделать что б было все ок ?
Перенести расчеты в старт. Да и цикл бы неплохо корректным сделать
Общайтесь с разработчиками через Сервисдеск!
Всем добрый вечер! Помогите разобраться плиз, в массив пишу экстремумы, код ниже, прилагаю вложение с журнала. Проблема начинается с записи в массив значения 7 (переменные s и f равны 7, массив должен наполниться 8 значением,а регистрируется 10, и следующее значение переменной становиться не 8 а 10, такая же беда с цифрой 17 , словно на 7 идет прокрутка вперед цифр на 3 ))) Что можно сделать в этом случае?
https://www.mql4.com/ru/search#!keyword=%20SendMail
уведомление
Нет там такого
Нужен редирект этих сообщений на е-маил...
Нет там такого
Нужен редирект этих сообщений на е-маил...
Доброго всем дня!
Народ подскажите. Как сделать так, чтобы расчет в индикаторе шел не на каждом тике, а, допустим, пробегал только один раз когда свеча сформировалась(закрылась)?
Вставь в индюк на глобальном уровне перед OnCalculate функцию NewBar и в условиях пропиши if(fNewBar()==true) далее цикл расчета,
В init() идет подготовка данных. Возможно они еще просто не готовы.
Как-же не в нём? Разве не будет зацикливания если не изменять счётчик цикла? Ставишь цикл от а = 0 пока а меньше 1 и не увеличиваешь её.
разумеется проблема может быть в том что тестер не расчитывает данные зигзага до того как запустился, данные зигзага не проходят условия IF и цикл не повышается.
такое возможно, что бы тестер не расчитывал так как это делает терминал в нормальном режиме, именно как я описал ?
как тогда сделать что б было все ок ?
разумеется проблема может быть в том что тестер не расчитывает данные зигзага до того как запустился, данные зигзага не проходят условия IF и цикл не повышается.
такое возможно, что бы тестер не расчитывал так как это делает терминал в нормальном режиме, именно как я описал ?
как тогда сделать что б было все ок ?
разумеется проблема может быть в том что тестер не расчитывает данные зигзага до того как запустился, данные зигзага не проходят условия IF и цикл не повышается.
такое возможно, что бы тестер не расчитывал так как это делает терминал в нормальном режиме, именно как я описал ?
как тогда сделать что б было все ок ?
XAUEURv,M1: array out of range in 'робот1.mq4' (2586,13)
что значит "13" в этой ошибке? тринадцатому элементу пытались присвоить значение что-ли?
что значит "13" в этой ошибке? тринадцатому элементу пытались присвоить значение что-ли?
2586 строка, 13 символ в строке.
как то так