Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Не ищет максимум Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
tvilsa
Гость





СообщениеДобавлено: Чт Ноя 13, 2008 3:19 pm Ответить с цитатой Вернуться к началу

Пытаюсь разобраться с 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
Гость





СообщениеДобавлено: Чт Ноя 13, 2008 4:56 pm Ответить с цитатой Вернуться к началу

tvilsa писал(а):
num=BarCount-1; // получаем количество всех баров
эту часть попробуй остаить, и добавь:
ist_high=HHV(H,num);
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Чт Ноя 13, 2008 9:43 pm Ответить с цитатой Вернуться к началу

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);

Ничего не понял. Вероятно форум исказил код. Sad Прикрепи афлку к сообщению, тогда можно будет глянуть...

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
tvilsa
Гость





СообщениеДобавлено: Пт Ноя 14, 2008 7:50 am Ответить с цитатой Вернуться к началу

я просто пытаюсь перебрать массив на предмет поиска максимального значения.
Я хотел бы понять в чем ошибка?
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пт Ноя 14, 2008 8:29 am Ответить с цитатой Вернуться к началу

Так надо?
Код:

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
Гость





СообщениеДобавлено: Пт Ноя 14, 2008 9:40 am Ответить с цитатой Вернуться к началу

Да спасибо так работает.
никак не могу понять что куда
где использовать iif а где if else
вроде действия выполняют одинаковые
А почему не работает с iif?

Спасибо за помощь.
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пт Ноя 14, 2008 2:10 pm Ответить с цитатой Вернуться к началу

IIf работает с массивами и не изменяет порядок работы кода. If напротив, изменяет прядок работы кода и работает с константами или элементами массива.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пт Ноя 14, 2008 2:12 pm Ответить с цитатой Вернуться к началу

Вообще циклы нужно использовать только в крайнем случае.
В данном лучше использовать такой код.
Код:

Maximum = Highest(H);

Plot(C, "", colorBlack, styleCandle);
Plot(Maximum, "", colorRed);

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen