Автор |
Сообщение |
tvilsa
Гость
|
Пытаюсь разобраться с AFL и возник такой вопрос.
Maximum=H[0]; // засовываем в Maximum значение первого бара
num=BarCount-1; // получаем количество всех баров
for( i = 0; i <num>H[i],H[i+1],Maximum); // если в баре Н больше чем в предыдущем то засовываем в максимум, если нет то оставляем от предыдущего
}
Title = "Число баров " + WriteVal( num)+" Хай первого бара "+H[0]+" "+" текущий Н "+H+" Максимум "+ WriteVal( Maximum);
почемуто не находит максимум, вернее находит если искать
на интервале. Например если пишу
for( i = 0; i < 7; i++ ) // перебираем все бары
то находит максимум из этих семи, а если пишу
for( i = 0; i < 9; i++ ) // перебираем все бары
и например в 8 меньше чем в 7 то максимум равен 8
В чем дело?
Заранее спасибо. |
|
|
|
|
yanus
Гость
|
tvilsa писал(а): |
num=BarCount-1; // получаем количество всех баров
|
эту часть попробуй остаить, и добавь:
ist_high=HHV(H,num); |
|
|
|
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
tvilsa писал(а): |
Пытаюсь разобраться с AFL и возник такой вопрос.
Maximum=H[0]; // засовываем в Maximum значение первого бара
num=BarCount-1; // получаем количество всех баров
for( i = 0; i <num>H[i],H[i+1],Maximum); // если в баре Н больше чем в предыдущем то засовываем в максимум, если нет то оставляем от предыдущего
}
Title = "Число баров " + WriteVal( num)+" Хай первого бара "+H[0]+" "+" текущий Н "+H+" Максимум "+ WriteVal( Maximum);
|
Ничего не понял. Вероятно форум исказил код. Прикрепи афлку к сообщению, тогда можно будет глянуть... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
tvilsa
Гость
|
я просто пытаюсь перебрать массив на предмет поиска максимального значения.
Я хотел бы понять в чем ошибка? |
|
|
|
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Так надо?
Код: |
Maximum = H[0];
for( i = 1; i < BarCount; i++ )
{
if(H[i] > Maximum[i-1])
{
Maximum[i] = H[i];
}
else
{
Maximum[i] = Maximum[i-1];
}
}
Plot(C, "", colorBlack, styleCandle);
Plot(Maximum, "", colorRed);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
tvilsa
Гость
|
Да спасибо так работает.
никак не могу понять что куда
где использовать iif а где if else
вроде действия выполняют одинаковые
А почему не работает с iif?
Спасибо за помощь. |
|
|
|
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
IIf работает с массивами и не изменяет порядок работы кода. If напротив, изменяет прядок работы кода и работает с константами или элементами массива. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вообще циклы нужно использовать только в крайнем случае.
В данном лучше использовать такой код.
Код: |
Maximum = Highest(H);
Plot(C, "", colorBlack, styleCandle);
Plot(Maximum, "", colorRed);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|