Расчёт угла наклона трендовой линии. - страница 20

 
Dmitry:

Время идет, а задачи стоят те же. Столкнулся с необходимостью вычисления угла наклона тренда и уже было начал делать на базе точек координат, но на свое счастье наткнулся на эту статью. Я совсем не учел, что если привязываться к координатам, то при изменении масштаба угол изменится.

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

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

https://www.mql5.com/ru/code/28678

Фаза рассчитывается в градусах, принимает значения от 0 до 360 и отображена 5-ой, зеленой линией (снимается с массива 4).

Противофаза так же  рассчитывается в градусах, принимает значения от -360 до 0 и отображена 6-ой, красной линией (снимается с массива 5).  В расчетах удобнее использовать значения противофазы в сумме с 360 (что, условно поднимает её на уровень фазы).


Pan PrizMA CD Phase Sin leverage_72
Pan PrizMA CD Phase Sin leverage_72
  • www.mql5.com
Этот индикатор построен на базе индикатора  PanPrizMA Sin leverage 72  , особенности которого позволяют  посчитать фазу и амплитуду. Иногда это может быть  полезно. Фаза рассчитывается в градусах, принимает значения от 0 до 360 и отображена 5-ой, зеленой линией (снимается с массива 4). Противофаза так же  рассчитывается в градусах, принимает...
 
Dmitry:

Время идет, а задачи стоят те же. Столкнулся с необходимостью вычисления угла наклона тренда и уже было начал делать на базе точек координат, но на свое счастье наткнулся на эту статью. Я совсем не учел, что если привязываться к координатам, то при изменении масштаба угол изменится.

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

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

Моя точка зрения не поменялась. Единственно правильная единица наклона трендовой линии - цена на единицу времени. Угол наклона характеризует порядок вывода линии на экран, а вовсе не величину тренда.

 
Georgiy Merts:

Моя точка зрения не поменялась. Единственно правильная единица наклона трендовой линии - цена на единицу времени. Угол наклона характеризует порядок вывода линии на экран, а вовсе не величину тренда.

Поддерживаю. Только слова "единственно правильная" излишне категоричны. Это та единица измерения "наклона", которая имеет общепринятый, для всех одинаковый смысл скорости изменения курса при движении по линии тренда. Понятно, что скорость изменения так же соотносится с углом наклона линии тренда, как и первая производная с углом наклона графика любой функции y(x). Угол равен arctg (dy/dx), если цена деления по x совпадает с ценой деления по y на графике. Если они разные - угол, замеряемый транспортиром, будет другой.

Аналогом угла наклона можно считать не только скорость изменения курса, то есть производную от курса по астрономическому времени, а, например, среднее приращение курса от тика к тику. Вместо астрономического времени использовать "собственное", или "операционное" время - номер тика.

 
Georgiy Merts:

Моя точка зрения не поменялась. Единственно правильная единица наклона трендовой линии - цена на единицу времени. Угол наклона характеризует порядок вывода линии на экран, а вовсе не величину тренда.

+++ Научный подход рулит.

Вся остальная красота взлётов и падений - для маркетологов.

 
Daniil Kurmyshev:

С Вами согласен, корректировки по сокращению вычислений и лишних телодвижений в вычислениях согласен, сам не люблю такое, но когда изначально создавал эту функцию, проверял несколько различных способов, а потом уже не переделывал) а по поводу пикселей, я с вами полностью согласен, самое идеальное вычисление угла лично для меня именно таким образом, вот моя функция:

//-----------------------------------------------------------------------------------

// xAnglePixels /////////////////////////////////////////////////////////////////////

//-----------------------------------------------------------------------------------

double xAnglePixels(datetime x1,double y1,datetime x2,double y2) // x1,x2 Time[] - y1,y2 Price

  {

   if(x1==0 || x2==0 || y1==y2){return(0);}

//---

   int x[2],y[2];

   ChartTimePriceToXY(0,0,x1,y1,x[0],y[0]);

   ChartTimePriceToXY(0,0,x2,y2,x[1],y[1]);

//---

   if(x[1]<x[0]){return(-1000);}

//---   

   double x1x2=MathAbs(x[0]-x[1]);

   double y1y2=MathAbs(y[0]-y[1]);

//---

   double theta;

   if(x1x2!=0){theta=MathArctan(y1y2/x1x2)*(180/3.1415926535);}

   else{theta=90;}

   if(y2<y1){theta=NormalizeDouble(theta*(-1),2);}else{theta=NormalizeDouble(theta,2);}

   return(theta);

  }

//---------------------------------------------------------------------------------

п.с. в функции if(x[1]<x[0]){return(-1000);} можно убрать, так как я использовал это для себя), а если точнее это необходимо для того, если пользователь поменял две точки объекта местами.

//-----------------

Кстати для надписей на графике я именно это и использую, ранее в ветке я отправлял примеры работы данного индикатора, там как раз это видно.

//-----------------

Вам отдельное спасибо и уважение)

вот понадобилась такая фишка, начал тестировать вашу функцию и обнаружил, что результат

зависит от масштаба...

 
Угол есть время
 
podotr:
Угол есть время

ага,

время есть угол

 
Denis Sartakov:

ага,

время есть угол

А угол нельзя ест :-) Угол можно жги

 
Угол есть скорость, а скорость есть отсутствие покоя. Всё бежим, бежим...
 
Время есть угол еще не пришло