Спасибо за найденную ошибку. В понедельник будем разбираться
с ней.
К сожалению, в Вашем коде ошибка, которую я сразу не заметил.
Функции iHighest() и iLowest() работают правильно, просто Вы сделали
подмену функций iHigh() на High[] (iLow() на Low[]). Правильный код выглядит
так:
Вот иллюстрация:
//+------------------------------------------------------------------+ //| Check_iHighest_iLowest.mq4 | //| Copyright © 2007, MetaQuotes Software Corp. | //| https://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, MetaQuotes Software Corp." #property link "https://www.metaquotes.net/" //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- Print("iHigh(Symbol(),PERIOD_H1,iHighest(NULL,PERIOD_H1,MODE_HIGH,4,0))=",iHigh(Symbol(),PERIOD_H1,iHighest(NULL,PERIOD_H1,MODE_HIGH,4,0))); Print("iHigh(Symbol(),PERIOD_H1,iHighest(NULL,PERIOD_H1,MODE_HIGH,3,1))=",iHigh(Symbol(),PERIOD_H1,iHighest(NULL,PERIOD_H1,MODE_HIGH,3,1))); Print("iLow(Symbol(),PERIOD_H1,iLowest(NULL,PERIOD_H1,MODE_LOW,4,0))=",iLow(Symbol(),PERIOD_H1,iLowest(NULL,PERIOD_H1,MODE_LOW,4,0))); //---- return(0); } //+------------------------------------------------------------------+
Вот иллюстрация:
Хорошо, проверьте сами. Вот Вам код:
//+------------------------------------------------------------------+ //| Check_iHighest_iLowest2.mq4 | //| Copyright © 2007, MetaQuotes Software Corp. | //| https://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, MetaQuotes Software Corp." #property link "https://www.metaquotes.net/" //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- Print("iHigh(Symbol(),PERIOD_H1,iHighest(NULL,PERIOD_H1,MODE_HIGH,4,0))=",iHigh(Symbol(),PERIOD_H1,iHighest(NULL,PERIOD_H1,MODE_HIGH,4,0))); Print("iHigh(Symbol(),PERIOD_H1,iHighest(NULL,PERIOD_H1,MODE_HIGH,3,1))=",iHigh(Symbol(),PERIOD_H1,iHighest(NULL,PERIOD_H1,MODE_HIGH,3,1))); Print("iLow(Symbol(),PERIOD_H1,iLowest(NULL,PERIOD_H1,MODE_LOW,4,0))=",iLow(Symbol(),PERIOD_H1,iLowest(NULL,PERIOD_H1,MODE_LOW,4,0))); Print ("Варианты с High и Low"); Print("High[iHighest(NULL,PERIOD_H1,MODE_HIGH,4,0)]=",High[iHighest(NULL,PERIOD_H1,MODE_HIGH,4,0)]); Print("High[iHighest(NULL,PERIOD_H1,MODE_HIGH,3,1)]=",High[iHighest(NULL,PERIOD_H1,MODE_HIGH,3,1)]); Print("Low[iLowest(NULL,PERIOD_H1,MODE_LOW,4,0)]=",Low[iLowest(NULL,PERIOD_H1,MODE_LOW,4,0)]); //---- return(0); } //+------------------------------------------------------------------+И вот результат:
почему сигнал не работает?
хотел задать зону фильтра в пунктах от наибольшего хая, и наименьшего лоу... сигнал не работает что я не так делаю?
double hi_100 = iHigh(Symbol(),tf_100,iHighest(NULL,tf_100,MODE_HIGH,hibar,n_bar)); //поиск хая наибольшего значения double lo_100 = iLow (Symbol(),tf_100,iLowest (NULL,tf_100,MODE_LOW,lobar,n_bar)); //поиск лоу наименьшего значения if (Bid < lo_100 + zone * Point){open = 1;} //зона разрешения покупок от лоу else if (Bid > hi_100 - zone * Point){open=-1;} //зона разрешения продаж от хая
разобрался но почему вопрос остался, когда выводишь во внешнюю переменную таймфрейм функция становится не рботоспособной???
double hi_100 = iHigh(Symbol(),0,iHighest(NULL,0,MODE_HIGH,hibar,n_bar)); //поиск хая наибольшего значения double lo_100 = iLow (Symbol(),0,iLowest (NULL,0,MODE_LOW,lobar,n_bar)); //поиск лоу наименьшего значения if (Bid < lo_100 + zone * Point){open = 1;} //зона разрешения покупок от лоу else if (Bid > hi_100 - zone * Point){open=-1;} //зона разрешения продаж от хая

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
hilevel=High[iHighest(NULL,PERIOD_H1,MODE_HIGH,4,0)];
При задействовании текущего бара переменная не определяется, но работают следующие варианты:
hilevel=High[iHighest(NULL,PERIOD_H1,MODE_HIGH,3,1)];
hilevel=High[iHighest(NULL,PERIOD_H1,MODE_LOW,4,0)];
Аналогично для iLowest.