Учусь писать индикатор... - страница 2

 
ALex2008 писал(а) >>

Ещё вопрос...

Использую описание для объекта через ObjectSetText(name,"описание",10)

Если в описание подставить цену например взяв из double HighMN =iHigh(NULL,PERIOD_MN1,0)

то описание ObjectSetText(name,HighMN,10) выводит цену с лишними 4-мя нулями - 1.28500000

Как избавиться от лишних нулей?

DoubleToStr( ВАША ЦЕНA, 4 ) // 4 обрежет на 4 знака, можно использовать для каждой пары значение по MarketInfo

 

Огромнейшее спасибо YuraZ!

Приятно, когда кто-то опытный тебя направляет и в итоге что-то получается!

 

Ну и чтоб не отходить от дела..)

Как грамотно можно менять уникальное имя - string name в созданном объекте ObjectCreate, для того чтоб использовать цикл for для рисования больше одного объекта одинакового типа? Иначе они затираются, т.к. имена одинаковые)

 
ALex2008 писал(а) >>

Спасибо YuraZ

Ваш способ как прибавлять и отнимать день, месяц и год я понимаю только математически)) Т.к. в MQL даже ещё не зеленый) Сам пишу что-то, а как пишу сам не понимаю.. методом тыка)

Прочитал об TimeMonth и решил сделать так:

Единственное но, это високосный год. Думаю через 4 года научусь чему-нить)

//+------------------------------------------------------------------+
//|                                                          SSS.mq4 |
//|                                      YURAZ Copyright © 2006-2007 |
//|                                          www.mail.ru yzh@mail.ru |
//+------------------------------------------------------------------+
#property copyright "YURAZ Copyright © 2006-2007"
#property link      "www.mail.ru yzh@mail.ru"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   
   string gGOD = "2008";

   string cDATE = "01.03."+gGOD;
   
   datetime ddd =StrToTime( cDATE ) - 300; // улетаем в 29-е или 28 число
   Print(  ddd+" "+TimeToStr( ddd, TIME_DATE ) );

     gGOD = "2007";
   cDATE = "01.03."+gGOD;
   
     ddd = StrToTime( cDATE ) - 300;
   Print(  ddd+" "+TimeToStr( ddd, TIME_DATE ) );
   
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

результат 

2008.11.09 21:48:13 SSS EURUSD,M5: 1172706900 2007.02.28
2008.11.09 21:48:13 SSS EURUSD,M5: 1204329300 2008.02.29

получить високостность очень не сложо

но и

ваш код получения последней даты вполне жизнеспособен и прост

 
Всем спасибо) Индикатор написал.. свой первый)
 

Продолжаем дальше..)

Помогите реализовать цыкл.

Не получается сделать отображение по цыклу, например отображение 5-ти(внешняя переменная)линий.. У меня они исчезают с новым тиком(

Короткий пример:

int цыкл=5;
datetime TimeBegin;
datetime TimeEnd;
int tD=0;
int D=1;



int start()
{

     for (int d=0; d<цыкл; d++)
         {
        
         TimeBegin = iTime(NULL,PERIOD_D1,tD);
         TimeEnd = (TimeBegin + 86400);
         
         double DHigh  =iHigh(NULL,PERIOD_D1,D);

         ObjectCreate (DH+d, OBJ_TREND, 0, 0,0, 0,0,0,0); //все ObjectSet описывать не буду их много...
         ObjectSet (DH+d, OBJPROP_TIME1, TimeBegin);
         ObjectSet (DH+d, OBJPROP_PRICE1, DHigh);
         ObjectSet (DH+d, OBJPROP_TIME2, TimeEnd);
         ObjectSet (DH+d, OBJPROP_PRICE2, DHigh);

         tD++;
         D++; 
        
         }

   return(0);
}





 
Ну не получается у меня... этот цыкл for.. Может использовать массив? но я пока его не понимаю(
 
ALex2008 >>:
Ну не получается у меня... этот цыкл for.. Может использовать массив? но я пока его не понимаю(

ЦИКЛ через "И" пишется. Может из-за этого? Обиделся он?

 
Может) Щас исправлю...
 

Не работает он потому, что условия цикла находятся за пределами цикла и его описания.

Первый раз он работает потому, что все условия начальны.

Второй раз он уже не может работать.

Причина обращения: