AndreiFX

Пишем советник-грааль!!!
« Ответ #15: 26 Февраля 2008, 05:19:52 »
Ок, просто в таком виде канал Bary использовать нет смысла - он просто рисуется графически и эксперт его не учитывает.
Почему ж.......все вроде учитывает...... вот процедуры, которые определеяют верхнюю и нижнюю линии канала, независимо это канал барри, либо горизонтальные линии, либо сам пользователь их нарисовал. Берут самые крайние линии. Конечно чуть чуть помассивней получилось нежели в твоем варианте :)
Цитировать
double UP_Chanel(int shift)
{
    double verh_kanala = 0;
   
      for (int i = 0; i < ObjectsTotal(); i++)
         {
         if (StringFind(ObjectName(i),"#",0) < 0)
            {
            if (ObjectType(ObjectName(i)) == 1)
               {
               if (verh_kanala < ObjectGet(ObjectName(i),OBJPROP_PRICE1))
                  {
                  verh_kanala = ObjectGet(ObjectName(i),OBJPROP_PRICE1);
                  }
                 }
            if (ObjectType(ObjectName(i)) == 2)
               {
               if (verh_kanala < ObjectGetValueByShift(ObjectName(i),shift))
                  {
                  verh_kanala = ObjectGetValueByShift(ObjectName(i),shift);
                  }
 
              }
            }
         }

return(verh_kanala);}

double DN_Chanel(int shift)

{
    double niz_kanala = 9999;
     
      for (int i = 0; i < ObjectsTotal(); i++)
         {
         if (StringFind(ObjectName(i),"#",0) < 0)
            {
            if (ObjectType(ObjectName(i)) == 1)
               {
                 if ((niz_kanala > ObjectGet(ObjectName(i),OBJPROP_PRICE1)) && (ObjectGet(ObjectName(i),OBJPROP_PRICE1) > 0))
                  {
                  niz_kanala = ObjectGet(ObjectName(i),OBJPROP_PRICE1);
                  }
               }
            if (ObjectType(ObjectName(i)) == 2)
               {
                if ((niz_kanala > ObjectGetValueByShift(ObjectName(i),shift)) && (ObjectGetValueByShift(ObjectName(i),shift) > 0))
                  {
                  niz_kanala = ObjectGetValueByShift(ObjectName(i),shift);
                  }
               }
            }
         }
return(niz_kanala);}

 

Отметьте интересные вам фрагменты текста и они станут доступны по уникальной ссылке в адресной строке браузера.