Требуется только в переборе проверять номер линии от 0 - 50.
всем объектам добавить префикс, например "line_", будут называться: "line_"+"R"+tf+"l"+"_"+Номер линии от 0-50
- открываем цикл перебора объектов
- смотрим имя первого объекта, есть ли в нём строка "line_"
- если есть, берём из этого имени номер
- определяем это R или S и сравниваем
А чем Вам массив не угодил?
S[i] R[i]
А можно как готовый пример, а то чего то не складывается в воображении ?
for (int i=0;i<ObjectsTotal();i++) { double R,S; //--- R=ObjectGetDouble(0,"R"+tf+"l"+(string)i, OBJPROP_PRICE); S=ObjectGetDouble(0,"S"+tf+"l"+(string)i, OBJPROP_PRICE); if(bid!=0) if(((Bid>R && bid<=R)||(Bid<R && bid>=R))||((Bid>S && bid<=S)||(Bid<S && bid>=S))) {Signal=0;} else Signal=-1; }Так не работает.
tf вручную
на выходе мне надо чтобы на каждом тике производился перебор номеров от и до
чтобы не прописывать каждый отдельно как сейчас у меня в коде
имя линии не меняется, а только номер меняется
//например имя объекта "line_R240l_49" string prefix="line_"; string result[]; int totalObjects=ObjectsTotal(); for(int i=totalObjects-1; i>=0; i--) { num_line=0; string label=ObjectName(i); if (StringFind(label,prefix,0)>=0) { int n=StringSplit(label,'_',result); if(n==3) { //номер линии num_line=IntegerToString(result[2]); if (StringFind(label,"R",0)>=0) { //сопротивление } else { //поддержка } } } }
Тут вообще не понятно.
Если имя линии начинается с R, то причём тут line_
tf вручную
на выходе мне надо чтобы на каждом тике производился перебор номеров от и до
чтобы не прописывать каждый отдельно как сейчас у меня в коде
имя линии не меняется, а только номер меняется
Всё равно не понял. Напишите просто результат, который хотите видеть? Перебор номеров и...?
Всё равно не понял. Напишите просто результат, который хотите видеть? Перебор номеров и...?
R=ObjectGetDouble(0,"R"+tf+"l"+(string)0, OBJPROP_PRICE); S=ObjectGetDouble(0,"S"+tf+"l"+(string)0, OBJPROP_PRICE); if(((Bid>R && bid<=R)||(Bid<R && bid>=R))||((Bid>S && bid<=S)||(Bid<S && bid>=S))) {Signal=0;} else Signal=-1;
Цена касается линии и получаем сигнал
(string)0 здесь у каждой линии разный номер
надо сделать перебор номеров от 0-50, т.к. ближайшая к цене линия с номером 22, цена её пробила и она удалилась, далее цена подошла к новой линии и у неё уже номер 17 например.
Может как-нибудь вызывать перебор номеров?
void number(){ перебор номеров от 0 - 50 return(перебор номеров) }
R=ObjectGetDouble(0,"R"+tf+"l"+(string)number(), OBJPROP_PRICE); S=ObjectGetDouble(0,"S"+tf+"l"+(string)number(), OBJPROP_PRICE);
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Поиск линий индикатора на графике mql4.
Используется: алерт индикатором, или ордер советником.
Как оформить большой перебор линий в одну строчку?
Требуется только в переборе проверять номер линии от 0 - 50.