Скачать MetaTrader 5

Помогите!! Как рисовать отрезки прямых линий на графике по координатам даты и цены.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Торгуй с помощью MetaTarder 5. Скачай прямо сейчас!
Natasha
16
Natasha 2009.04.14 19:31 

Здравствуйте! Скажите пожалуста, как рисовать отрезки  прямых линий на графике по координатам даты и цены. 
Например по двум точкам которые указываються вручную
------------------------------------

1 первый отрезок


  точка "А" :
  время 05.04.2009 14:00                        // (указываеться вручную, можно во внешних переменных)
  цена 1,2300                                         // ((указываеться вручную, можно во внешних переменных)
 

рисуется точка на графике
------
  точка "В" :
  время 06.04.2009 15:10                     // (указываеться вручную, можно во внешних переменных)
  цена 1,3055                                      // (указываеться вручную, можно во внешних переменных)
рисуеться  вторая точка на графике
------
  потом провести линию от А до В 

..далее второй отрезок по такому же принципу и.т.д  до 10 отрезков

--------------------------------------------------------------------------------

Помогите пожалуста!!!

Evgeniy Gutorov
4719
Evgeniy Gutorov 2009.04.14 19:37  

ObjectCreate("ИмяОбъекта",Тип_Объекта,ОписательОкна,время_первуая_координата,Цена_первая_координата,время_вторая_координата,Цена_вторая_координата);

https://book.mql4.com/ru/functions/objects - справочная информация по програмированию и примеры использования

В вашем случае

void ObjectLine(datetime Time1,double Price1,datetime Time2,double Price2)
{
   string ObjLine="ObjLine"+Time1;
   OblectCreate(ObjLine,OBJ_TREND,0,Time1,Price1,Time2,Price2);
}
Natasha
16
Natasha 2009.04.14 21:19  

Спасибо конешно! А нельзя поподробней на примере?

int start()
  {
  datetime time1=D'2009.04.7 15:10';
  datetime time2=D'2009.04.7 18:20';
  double price1=1.2457;
  double price2=1.3058;

????

Evgeniy Gutorov
4719
Evgeniy Gutorov 2009.04.14 21:55  
Natasha23401 писал(а) >>

Спасибо конешно! А нельзя поподробней на примере?

int start()
{
datetime time1=D'2009.04.7 15:10';
datetime time2=D'2009.04.7 18:20';
double price1=1.2457;
double price2=1.3058;

????

void ObjectLine(datetime Time1,double Price1,datetime Time2,double Price2)
{
   string ObjLine="ObjLine"+Time1;
   OblectCreate(ObjLine,OBJ_TREND,0,Time1,Price1,Time2,Price2);
}
int start()
  {
  ObjectDeleteAll(0,OBJ_TREND); // Удаление всех ранее построенные линии 
  datetime time1=D'2009.04.7 15:10';
  datetime time2=D'2009.04.7 18:20';
  double price1=1.2457;
  double price2=1.3058;


   ObjectLine(time1,price1,time2,price2); // рисует трендовую линию на графике цены
   ObjectLine(time2,price2,time3,price3); 
  ObjectLine(time3,price3,time4,price4); 
  ObjectLine(time4,price4,time5,price5); 
  ObjectLine(time5,price5,time6,price6); 
  ObjectLine(time6,price6,time7,price7); 
....
return(0);
}
void done()
{
ObjectDeleteAll(0,OBJ_TREND); // Удаление всех построенных линий 
return;
}
а  дальше все те точки которые вам необходимы так же в соотвествии с теми точками которые вы желаете нарисовать..
hasayama
610
hasayama 2009.04.14 22:43  

Если вам нужен именно отрезок, а не луч, то не забудьте также следующий код

ObjectSet( ObjLine, OBJPROP_RAY,  false );

Natasha
16
Natasha 2009.04.14 22:47  

Наверное я не правильно обьяснила, или вы неправилно понимаете. Мне не нужны трендовые линии. Мне нужно чтобы все отрезки были независимы друг от друга, но привязаны к своим координатам, даты и времени. Вот визуальный пример

Natasha
16
Natasha 2009.04.14 22:54  

Evgeniy Gutorov
4719
Evgeniy Gutorov 2009.04.14 23:24  
Тогда небольшая доработка в функции и в коде..
void ObjectLine(datetime Time1,double Price1,datetime Time2,double Price2)
{
   string ObjLine="ObjLine"+Time1;
   OblectCreate(ObjLine,OBJ_TREND,0,Time1,Price1,Time2,Price2);
   ObjectSet(ObjLine, OBJPROP_RAY,  false );
}
int start()
  {
  ObjectDeleteAll(0,OBJ_TREND); // Удаление всех ранее построенных линий 
  datetime time1=D'2009.04.7 15:10';
  datetime time2=D'2009.04.7 18:20';
  double price1=1.2457;
  double price2=1.3058;


   ObjectLine(time1,price1,time2,price2); // рисует линию типа отрезок на графике цены
   ObjectLine(time3,price3,time4,price4); 
  ObjectLine(time5,price5,time6,price6); 
....
return(0);
}
void done()
{
ObjectDeleteAll(0,OBJ_TREND); // Удаление всех построенных линий 
return;
}
Alex_Profit
53
Alex_Profit 2016.10.20 11:31  

Доброго дня. У меня вопрос наподобие предыдущего поста.

Мне нужно рисовать линии По хаям. На рабочем Т/Ф Н1. через интервал 4х Часового ТФ. Т.е. через каждые 4 свечи.

Есть куски кода. Я не могу сообразить как сделать. По сути нужно найти 2ю точку привязки. Первая точка известна. 

Буду признателен за помощь. 

Alex_Profit
53
Alex_Profit 2016.10.20 11:41  
Нужно чтобы рисовались синие линии.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий