Помгоите с рисованием

 
Нужна помощь... подскажите как нарисовать горизонтальную линию определенной длины и на определенном уровне...
 

'PeriodBarsHIGH PeriodBarsLOW'

рисуем уровни HIGH LOW недели!

//
// YURAZ
// отображаем уровни недели
// Init  = 0  первоночальная инициализация
// tDay   -    любой  день  недели  вызовет отображение уровней этой недели
//
void GrafRSWeek(int Init, datetime tDay)
{
   static double LowWeek;
   static double HigWeek;
 
 
   HigWeek =  PeriodBarsHIGH(Понедельник(tDay),  Пятница(tDay));
   LowWeek =  PeriodBarsLOW(Понедельник(tDay),  Пятница(tDay));
   string sHigWeek = "HigW|"+Symbol()+"|"+TimeToStr(tDay,TIME_DATE)+"|";
   string sLowWeek = "LowW|"+Symbol()+"|"+TimeToStr(tDay,TIME_DATE)+"|";            
   if ( Init == 0 || Init == 2)
   {
      if ( ObjectFind(sHigWeek) == -1 )
      {
         ObjectCreate(sHigWeek, OBJ_TREND, 0, 
                  Понедельник(tDay)  ,
                  HigWeek, 
                  Пятница(tDay) ,
                  HigWeek, 0, 0);
         ObjectSet(sHigWeek, OBJPROP_RAY, false);
         ObjectSet(sHigWeek, OBJPROP_COLOR, LimeGreen);
      }
      if ( ObjectFind(sLowWeek) == -1 )
      {
         ObjectCreate(sLowWeek, OBJ_TREND, 0, 
                        Понедельник(tDay)  ,
                        LowWeek, 
                        Пятница(tDay) ,
                        LowWeek, 0, 0);
         ObjectSet(sLowWeek, OBJPROP_RAY, false);
         ObjectSet(sLowWeek, OBJPROP_COLOR, Yellow);
      }
   }
   ObjectSet( sHigWeek, OBJPROP_TIME1, Понедельник(tDay) );
   ObjectSet( sHigWeek, OBJPROP_TIME2, Пятница(tDay) );
   ObjectSet( sHigWeek, OBJPROP_PRICE1, HigWeek );
   ObjectSet( sHigWeek, OBJPROP_PRICE2, HigWeek );
 
   ObjectSet( sLowWeek, OBJPROP_TIME1, Понедельник(tDay) );
   ObjectSet( sLowWeek, OBJPROP_TIME2, Пятница(tDay) );
   ObjectSet( sLowWeek, OBJPROP_PRICE1, LowWeek );
   ObjectSet( sLowWeek, OBJPROP_PRICE2, LowWeek );
}
 
// YURAZ 
//
//
datetime Понедельник(datetime mDay)
{
   if ( TimeDayOfWeek( mDay ) == 2 )
      mDay = mDay  - 86400;
   if ( TimeDayOfWeek( mDay ) == 3 )
      mDay = mDay  - 172800; 
   if ( TimeDayOfWeek( mDay ) == 4 )
      mDay = mDay  - 259200; 
   if ( TimeDayOfWeek( mDay ) == 5 )
      mDay = mDay  - 345600; 
   return( StrToTime(TimeToStr(mDay,TIME_DATE)+" 00:00:00"));
}
 
//
//
//
datetime Пятница(datetime mDay)
{
   if ( TimeDayOfWeek( mDay ) == 4 )
      mDay = mDay  + 86400 ; 
   if ( TimeDayOfWeek( mDay ) == 3 )
      mDay = mDay  + 172800; 
   if ( TimeDayOfWeek( mDay ) == 2 )
      mDay = mDay  + 259200 ; 
   if ( TimeDayOfWeek( mDay ) == 1 )   
      mDay = mDay  + 345600 ; 
   return( StrToTime(TimeToStr(mDay,TIME_DATE)+" 23:59:59"));
}

если же ничего не понятно

тогда почитайте описание ObjectCreate ObjectSet ObjectFind

или просто так

 
//ltDatCurBeg  = дата начала дня
//ltDatCurBeg  = дата конца дня
 
//HighDay = HIGH дня
 
//LowDay  = LOW дня
 
 
//PeriodBarsHIGH   PeriodBarsLOW  - можно взять по ссылке
 
 
         double HighDay = PeriodBarsHIGH(ltDatCurBeg , ltDatCurEnd  ); // уровни дня 
         double LowDay  = PeriodBarsLOW(ltDatCurBeg , ltDatCurEnd  );  
 
         string lNOHD = oNameHIGHDay + Symbol()+lsDay;
         string lNOLD = oNameLOWDay + Symbol()+lsDay;
 
         CreateObject( lNOHD, OBJ_TREND, ltDatCurBeg, HighDay,ltDatCurEnd  ,HighDay ) ; // обьект максимума дня
         ObjectSet(lNOHD, OBJPROP_COLOR , lColorDayH);
         ObjectSet(lNOHD, OBJPROP_RAY   , false);
         ObjectSet(lNOHD, OBJPROP_BACK, true);
         CreateObject( lNOLD, OBJ_TREND, ltDatCurBeg, LowDay, ltDatCurEnd ,LowDay ) ; // обьект минимум  дня
         ObjectSet(lNOLD, OBJPROP_COLOR , lColorDayL);
         ObjectSet(lNOLD, OBJPROP_RAY   , false);
         ObjectSet(lNOLD, OBJPROP_BACK, true);




 
немного честно говоря для меня сложным оказалось, я начинаю только писать на этом языке...
при известном уровне цен на котором необходимо нарисовать прямую, как это сделать?
В описании ObjectCreate ObjectSet все в принципе понятно, а не могу догнать какими переменными объявляются сами линни которые я изначально указал при создании индикатора... я их даже в теле индикатора не вижу (точнее то чтобы указывало на них)...)))) глупо наверное, но ......
как их обозначить? параметры задать уже конечно легче
 
rash_dag:
немного честно говоря для меня сложным оказалось, я начинаю только писать на этом языке...
при известном уровне цен на котором необходимо нарисовать прямую, как это сделать?
В описании ObjectCreate ObjectSet все в принципе понятно, а не могу догнать какими переменными объявляются сами линни которые я изначально указал при создании индикатора... я их даже в теле индикатора не вижу (точнее то чтобы указывало на них)...)))) глупо наверное, но ......
как их обозначить? параметры задать уже конечно легче

запустите в тестере этот код

//+------------------------------------------------------------------+
//|                                                          111.mq4 |
//|                                           YURAZ Copyright © 2007 |
//|                                          www.mail.ru yzh@mail.ru |
//+------------------------------------------------------------------+
#property copyright "YURAZ Copyright © 2007"
#property link      "www.mail.ru yzh@mail.ru"
 
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
 
datetime ltDatCurBeg   ;
datetime ltDatCurEnd   ;
 
ltDatCurBeg = StrToTime( "2007.09.01 00:00") ;
ltDatCurEnd = StrToTime( "2007.09.17 00:00") ;
 
      string lNOHD = iHigh(Symbol(),PERIOD_D1,0)+ Symbol();
 
      double HighDay = iHigh(Symbol(),PERIOD_D1,0);
 
     ObjectCreate( lNOHD, OBJ_TREND, 0, ltDatCurBeg, HighDay,ltDatCurEnd  ,HighDay ) ; // обьект максимума дня
         ObjectSet(lNOHD, OBJPROP_COLOR , Yellow);
         ObjectSet(lNOHD, OBJPROP_RAY   , false);
         ObjectSet(lNOHD, OBJPROP_BACK, true);
 
 
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Спасибо огромное, все получилось, и предыдущее тоже догнал))))
 
А подскажите можно ли на графике цены отобразить ордер в виде отрезка начинающегося в точке его открытия (время и цена) и заканчивающаяся в точке цены (если ордер не закрыт) или в точке закрытия ордера.
тогда наглядно бы можно посмотреть все сделки.
 
 
Огромное спасибо.