Линии (объекты) с однотипными названиями

 
Ребят, кто подскажет - можно ли задать поиск пересечения с ЛЮБОЙ линией, в части названия которой содержится определенный элемент?

(То есть если на графике - куча линий с однотипными названиями "Line 1.2340" , "Line 1.2350" и т.д. )

Можно ли с помошью функции ObjectGetValueByShift( " ", i+1);

задать поиск пересечения цены с ЛЮБОЙ подвернувшейся линией, содержащей слово "Line " - независимо от того, какие еще циферки есть в ее названии ?
 
В цикле перебираете все объекты на нужном графике нужного типа (ObjectsTotal()). И ищете нужные объекты по префиксу ("Line") в имени объекта посредством StringFind().
 

К сожалению циклы и многое другое для меня -высшая математика (

А можно написать это согласно конкретного примера выше (с лииями "Line xxx" ) ?

 

Или, если это проще - как конкретно выглядит кусок кода, в котором ищется пересечение телом свечи КРУГЛОГО уровня .

 

т.е.          open_1 < RoundLevel  && close_1 >   RoundLevel

 

(Где   RoundLevel - уровень, кратный 100 и 50) ?

 
Igogo:

... ищется пересечение телом свечи КРУГЛОГО уровня .

Чьим телом? :)

Задачу формулируете не полностью и туманно.

Из того, что есть, предполагается перебор свечей на каком-то участке. Что вы хотите получить? Скрипт, советник, индикатор? От этого зависит решение, чтобы не производить перебор на каждом тике.

Термин "свеча КРУГЛОГО уровня" должен выполнять это условие:

Open[i] < RoundLevel && Close[i] > RoundLevel

правильно я понял? Не вижу смысла привязывать поиск данных свечей с объектами. Поясните смысл? Нашли нужную свечу - можно узнать имя, пересекающего его объекта.

P.S. Прежде чем писать код, нужно чётко сформулировать: что имеем и что хотим получит на Выходе. И только потом перебираем возможные варианты "как этого добиться".

 
        int ot=ObjectsTotal();
        for(int i=0; i<ot;i++)
        {
                string name=ObjectName(i);
                if(StringFind(name,"Line")>=0)
                {
                        double price=ObjectGetValueByShift(name, i+1);
                }
        }

Это по первому вопросу.

 
TarasBY:

 

 Open[i] < RoundLevel && Close[i] > RoundLevel

...правильно я понял? Не вижу смысла привязывать поиск данных свечей с объектами. 


Абсолютно правильно. В данном случае не надо привязывать к объектам. Код нужен для индикатор, расставляющего стрелки при пересечении телом свечи ( что находится между Open и Close) любого круглого уровня. То есть любого уровня, оканчивающегося на 00.
 
double d=Point*100;

double mx=MathMax(Close[i],Open[i]);

double mn=MathMin(Close[i],Open[i]);  

double lev=MathFloor(mx/d)*d;

if(mx>lev && mn<lev) {
    //... момент истины:)

}
Примерно так.
 

Сделал тестовый скрипт. Для наглядности можно нарисовать сетку из "круглых" уровней.

P.S. Чтобы скрипт нарисовал стрелочки, нужно настройку:

input bool ClearArrow = False;
Эта настройка при обратном значении позволяет удалить все нарисованные стрелочки.
Файлы:
 
Большущее спасибо, ребята!
Причина обращения: