как узнать угол линии? идеи?

 
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
  {
   if (id==CHARTEVENT_CLICK ) {
                  ChartXYToTimePrice(0,lparam,dparam,window,X_click,Y_click); 
   
                  ObjectCreate(0,"anglestok",OBJ_TRENDBYANGLE,0,X_click,Y_click);
                  ObjectSetInteger(0,"anglestok",OBJPROP_SELECTED,true);
                  ObjectSetInteger(0,"anglestok",OBJPROP_RAY_RIGHT,false);
		  
                  ObjectMove(0,"anglestok",0,X_click,Y_click); 
                  ObjectMove(0,"anglestok",1,TimeCurrent(),Y_click+0.005);ChartRedraw(); 
                  anglestok=ObjectGetDouble(0,"anglestok",OBJPROP_ANGLE);  
                  Print(anglestok);
                              }
   }
 int window=0;                                                
 double anglestok; 
 datetime X_click; double Y_click;              

это - дает угол 0 когда визуально он не 0. много чего перепробовал. как работает механизм присваивания цифры -линии?

OBJPROP_ANGLE

Угол. Для объектов с еще не заданным углом, созданных из программы, значение равно EMPTY_VALUE

 что с этим поделать ?

 

Это совершенно из другой оперы.

Угол линии можно определить только условно. Изменив масштаб графика изменится и угол линии.

 
AlexeyVik:

Это совершенно из другой оперы.

Угол линии можно определить только условно. Изменив масштаб графика изменится и угол линии.

1:1 слышали ? а вообще как это, 90 он и в африке 90 при любом масштабе. то трендовая линия меняется. верно говорите?
 

Отношения разности цен к интервалу времени вполне хватит для расчетов. Но вот так можно получить угол в градусах:


//+-----------------------------------+
//| Параметны линии       С-Проба.mq4 |
//+-----------------------------------+
#property strict
void OnStart()
{   
   datetime Врем0, Врем1double Цена0, Цена1;  int x0, x1, y0, y1;
   Врем0=datetime(ObjectGetInteger(0, "МояЛиния", OBJPROP_TIME, 0));
   Врем1=datetime(ObjectGetInteger(0, "МояЛиния", OBJPROP_TIME, 1));

   Цена0=ObjectGetDouble(0, "МояЛиния",OBJPROP_PRICE,0);
   Цена1=ObjectGetDouble(0, "МояЛиния",OBJPROP_PRICE,1);

   // Преобразование логических координат в физические пиксели
   ChartTimePriceToXY(0, 0, Врем0, Цена0, x0, y0);
   ChartTimePriceToXY(0, 0, Врем1, Цена1, x1, y1);
   
   Alert("Интервал времени = ", int(Врем1-Врем0),        // Замечательная вещь АЛЕРТ!
         "   Разность цен = ", NormalizeDouble(Цена1-Цена0,5),
         "   x1-x0 = ",x1-x0 ,"   y0-y1 = ",y0-y1,       // y наоборот, т.к. от верхнего угла
         "   Угол = ", atan(double(y0-y1)/double(x1-x0))*180/3,142);
}
 
LRA:

Отношения разности цен к интервалу времени вполне хватит для расчетов. Но вот так можно получить угол в градусах:


можно и так. спасибо за ваш труд. int(Врем1-Врем0)  это так надо только в алерте ? никогда такого не видел  

ваааааААА с каких пор можно использовать кирилицу в именах переменных????????? только узнал 

я в тригонометрии вообще лишний. поискал формулу эту, не нашел. а вы можете дать источник с этой формулой ? 

 
лично мне никогда не было интересно под каким углом взвился тренд. действительно. когда переключаешь график с одного таймрейма на другой угол наклона трендовой линии меняется причем заметно. 
 
mario_SC--: источник с формулой ? 

Математика - это умение составить нужную формулу из элементарных частиц. Отношение противолежащего катета (разности цен) к прилежащему (интервалу времени) = тангенс угла. Вот ссылка на тригонометриюВот еще ссылка  Функция АркТангенс дает угол по известному углу. Но угол будет в радианах. Вот ссылка на перевод в градусы.  

 
LRA:

Отношение противолежащего катета (разности цен) к прилежащему (интервалу времени) = тангенс угла. Вот ссылка на тригонометриюВот еще ссылка

Функция АркТангенс дает угол по известному углу. Но угол будет в радианах. Вот ссылка на перевод в градусы.  

спасибо умный человек. 

 попробовал кирилицу- не такая уж хорошая идея. 1) весь код то на английском. что б ввести имя переменной надо переводить раскладку. 2) при вводе кирич имени переменной нет списка имен . 3) кирилические переменные не получается отследить отладчику 

 
mario_SC--:

спасибо умный человек. 

 попробовал кирилицу- не такая уж хорошая идея. 1) весь код то на английском. что б ввести имя переменной надо переводить раскладку. 2) при вводе кирич имени переменной нет списка имен . 3) кирилические переменные не получается отследить отладчику 

Мне тоже не нравится вышивавать узелком,- больше люблю грибы собирать. 
 
mario_SC--:

спасибо умный человек. 

 попробовал кирилицу- не такая уж хорошая идея. 1) весь код то на английском. что б ввести имя переменной надо переводить раскладку. 2) при вводе кирич имени переменной нет списка имен . 3) кирилические переменные не получается отследить отладчику 

Чтобы не переключать раскладку поставь Punto Switcher. Мне нравится, полезная штука.

А использовать кириллицу в именах переменных мне тоже не нравится, хотя в примерах можно иногда.

 

...а потом иностранцы во фрилансе просят перевод советников 

переменных и комментов %)

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