Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 944

 
novichok2018:

Все-таки даже само обращение на форум уже дает толчок к пониманию. Вроде понял - линия-то нарисована, да только одна. Чтоб рисовать другие, надо эту стереть.

Ну вот, теперь вместо первой в истории линии рисуется последняя. Это конечно хорошо, но мне надо, чтобы все линии сохранились. Как этого добиться? Спасибо.

 
novichok2018:

Ну вот, теперь вместо первой в истории линии рисуется последняя. Это конечно хорошо, но мне надо, чтобы все линии сохранились. Как этого добиться? Спасибо.

В имя линии добавьте время бара.

 
Alexey Viktorov:

В имя линии добавьте время бара.

Не понимаю как.

 
Alexey Viktorov:

В имя линии добавьте время бара.

Где я могу прочитать, как в имя добавить время, и время какого бара добавлять?

 
novichok2018:

Где я могу прочитать, как в имя добавить время, и время какого бара добавлять?

Только определение времени надо поставить раньше назначения имени линии.


        if((op1-lo1)>50 && (cl1-lo1)<10)
        {  Alert("VertLine");
        datetime time=Time[0];
        string obj_name="VertLine"+(string)time;
        color col = clrGreen; 
        ObjectCreate(0,obj_name,OBJ_VLINE,0,time,0,0,0);
        ObjectSetInteger(0,obj_name,OBJPROP_COLOR,col);
        }
 
Alexey Viktorov:
Только определение времени надо поставить раньше назначения имени линии.


Спасибо. Когда видишь код, всё становится понятным. А сам ни за что бы не допетрил. Нигде не встретил, что для того , чтобы линии оставались на графике, необходимо в имя линии добавить время бара, и почему. Неужели я такой невнимательный?!

 
novichok2018:

Все-таки даже само обращение на форум уже дает толчок к пониманию. Вроде понял - линия-то нарисована, да только одна. Чтоб рисовать другие, надо эту стереть.

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

 
Alexandr Sokolov:

... не может быть более одной линии с одним и тем же названием

И правда! Все оказывается достаточно просто... Спасибо.

 

И снова здравствуйте!

Обнаружилась странность в закрытии позиций: тэйкпрофит срабатывает не в момент достижения ценой, а на новом баре. В чем причина? 

Фрагменты кода и графика прилагаю.

      if(New_Bar)      
         {
         if(Hour()>9 && Hour()<20)
         {
          if(...ЗДЕСЬ УСЛОВИЕ...) 
          {LotCalc();
      double TP=Ask-300*Point();
             t2=OrderSend(Symbol(),OP_SELL,LOT,Bid,slippage,0,TP,"",magic,0,Red);
            if(t2>0)
           {
            if(OrderSelect(t2,SELECT_BY_TICKET,MODE_TRADES))
            {
             Alert("Открыта SELL");
            }
           }            
         else
            Print("Error opening SELL order : ",GetLastError());
         return; 
            }
         }
         }

фрагмент

 
novichok2018:

И снова здравствуйте!

Обнаружилась странность в закрытии позиций: тэйкпрофит срабатывает не в момент достижения ценой, а на новом баре. В чем причина? 

Фрагменты кода и графика прилагаю.


Тьфу, блин! Опять зря побеспокоил! Просто забил тестирование по ценам открытия, вот он и выдавал...

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