Помогите организовать кусок кода - страница 2

 
xrust:
ну это достаточно просто :
   if(ObjectFind("имя обьекта")=0) // найти обьект в окне текущего чарта
    {
     double time = ObjectGet( "имя обьекта",OBJPROP_TIME1) ;  //возаращает время обьекта
      int bar = iBarShift(NULL,0,time,false);   // возвращает бар по времени 
       }
  
Можно так:
    
   if(ObjectFind("имя обьекта")=0){int bar = iBarShift(NULL,0,ObjectGet( "имя обьекта",OBJPROP_TIME1),false);}

А дальше " сено - солома" :)



все это очень подробненько описано в хелпе,



"Опять же за малым опытом, сам не смогу допереть, или допру,но убью массу времени."
Опять же ОПЫТ увеличится.

Спасиб за код,конечно,но этот блок я прописал (см. п1 описания идеи). :) мне нужно другое.а именно, чтобы от старовой точки он считал фракталы вправо (фракталы попавшие в коридор, включая стартовый).

 А насчет хелпа, так он для меня,как не знающего в полной мере терминологии программинга, несколько скудноват.почти все приходится догонять через руки,пытаясь карябать коды.постепенно осваиваю,не вопрос в мозгах,просто времени фактически нет что-то ваять не обращаясь за помощью. :) вот к примеру, сегодня колупался 3 часа с делением целочисленных и при делении меньшего на большее получал "0".понятия не имел о приведении типов.доколупался таки до истины и привел их к типу "double" посредсвом функции NormalizeDouble(). 

Может быть с точки зрения программинга сделал не корректно,но результат в итоге математически правильный.К чему это я,а к тому,что убил 3 часа (не жалею,на пользу),но время на вес золота.

 

Ну организуй цикл от нулевого бара, до контрольного +1 - он и посчитает в право. А насчет времени _ это ты прав :((

 
xrust:

Ну организуй цикл от нулевого бара, до контрольного +1 - он и посчитает в право. А насчет времени _ это ты прав :((

мысль понял, попробую. мож сегодня и накарябаю.

 
xrust:

Ну организуй цикл от нулевого бара, до контрольного +1 - он и посчитает в право. А насчет времени _ это ты прав :((

 
double   Line_ZoneSell,
         High_linefilter;
         
int      pfZ,
         DnX=1,
         nP2;
         
datetime Date2;
 
//+-------------+
//|             |
//+-------------+
int start() {
 
//---блок описанный в пунктах 1 и 2 в описании идеи
 
   Date2=ObjectGet();//реализовано, работает
      
   nP2=iBarShift(NULL,0,Date2,false);//бар начала отсчета
   
   Line_ZoneSell=...//расчитываемая цена линии (отрисовывается, работает)
   
   High_linefilter=...//расчитываемая цена линии (отрисовывается, работает)
//---
//---------блок пункта 3 описания идеи  
   int i;
          
   for(i=nP2; i>0; i--){
     
    double FrUp=iHigh(NULL,0,iFractals(NULL,0,MODE_UPPER,i));
      
    if(FrUp<High_linefilter && FrUp>Line_ZoneSell)
       
     DnX++;
     Comment(DnX);
   }
     
     
  return(0);
}
//+------------------------------------------------------------------+
Вот кусок кода (на переменную pfZ не обращай внимания, не удалил когда вставлял сюда). Блок кода п.п.1-2 большой,весь приводить не стал-он работает. А вот с п.3 все не могу разобраться. В чем ошибка, почему счетчик не работает? Что-то в логике? Измени если что не так (в соответствии с рисунком,приведенным ранее). Пжлста! Буду весьма признателен!
 
Косяк здесь:
double FrUp=iHigh(NULL,0,iFractals(NULL,0,MODE_UPPER,i));<= ты сразу определяеш цену фрактала, не выяснив есть ли он вообще.
где то через час прийду домой помогу переписать код.
 

Напишем отдельную функцию возвращающюю кол-во фракталов:

//---------------------------------------------------------------------
  int FractalCount(int start,int fin,bool mode,double ApPrise,double DnPrise)
  {
  int count = 0; 
   for(int i = start;i<=fin;i++)
    { 
     if(mode)
      {
       if(iFractals(NULL,0,MODE_UPPER,i))!=0)
        {
         double FrUp=iHigh(NULL,0,iFractals(NULL,0,MODE_UPPER,i));
          if(FrUp>ApPrise & FrUp<DnPrise){count++;}
           }
            }
     if(!mode)
      {
       if(iFractals(NULL,0,MODE_LOWER,i))!=0)
        {
         double FrDn=iLow(NULL,0,iFractals(NULL,0,MODE_LOWER,i));
          if(FrDn>ApPrise & FrDn<DnPrise){count++;}
           }
            }
      }
     return(count);
   }
 
xrust:

Напишем отдельную функцию возвращающюю кол-во фракталов

Спасиб,огроменное!Разобрался,поняв мысль твоего кода,сразу разобрался.Модифицировал как мне надо,заработало!Кстати iHigh() в данном случае использовать не надо(может это только относительно моего примера).Если интересно,то кину сюда кусок кода,то что получилось у меня на примере твоего. Еще раз Спс!Респект за помощь!