Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Время идет, а задачи стоят те же. Столкнулся с необходимостью вычисления угла наклона тренда и уже было начал делать на базе точек координат, но на свое счастье наткнулся на эту статью. Я совсем не учел, что если привязываться к координатам, то при изменении масштаба угол изменится.
Тут решение только одно, мы должны забыть о градусе угла наклона в классическом понимании. Теоретически мы можем построить треугольник, где один катет - бары, другой катет - пункты, вычислить угол этого треугольника. Получится техническое значение угла наклона, оно не будет меняться при изменении масштаба, но и на графике визуально будете видеть угол совершенно иначе ибо у нас разные типы данных для катетов.
Как по мне правильнее всего использовать не градусы, а процент изменения цены на момент времени. Ведь важны именно числа, по которым вы строите свою стратегию.
https://www.mql5.com/ru/code/28678
Фаза рассчитывается в градусах, принимает значения от 0 до 360 и отображена 5-ой, зеленой линией (снимается с массива 4).
Противофаза так же рассчитывается в градусах, принимает значения от -360 до 0 и отображена 6-ой, красной линией (снимается с массива 5). В расчетах удобнее использовать значения противофазы в сумме с 360 (что, условно поднимает её на уровень фазы).
Время идет, а задачи стоят те же. Столкнулся с необходимостью вычисления угла наклона тренда и уже было начал делать на базе точек координат, но на свое счастье наткнулся на эту статью. Я совсем не учел, что если привязываться к координатам, то при изменении масштаба угол изменится.
Тут решение только одно, мы должны забыть о градусе угла наклона в классическом понимании. Теоретически мы можем построить треугольник, где один катет - бары, другой катет - пункты, вычислить угол этого треугольника. Получится техническое значение угла наклона, оно не будет меняться при изменении масштаба, но и на графике визуально будете видеть угол совершенно иначе ибо у нас разные типы данных для катетов.
Как по мне правильнее всего использовать не градусы, а процент изменения цены на момент времени. Ведь важны именно числа, по которым вы строите свою стратегию.
Моя точка зрения не поменялась. Единственно правильная единица наклона трендовой линии - цена на единицу времени. Угол наклона характеризует порядок вывода линии на экран, а вовсе не величину тренда.
Моя точка зрения не поменялась. Единственно правильная единица наклона трендовой линии - цена на единицу времени. Угол наклона характеризует порядок вывода линии на экран, а вовсе не величину тренда.
Поддерживаю. Только слова "единственно правильная" излишне категоричны. Это та единица измерения "наклона", которая имеет общепринятый, для всех одинаковый смысл скорости изменения курса при движении по линии тренда. Понятно, что скорость изменения так же соотносится с углом наклона линии тренда, как и первая производная с углом наклона графика любой функции y(x). Угол равен arctg (dy/dx), если цена деления по x совпадает с ценой деления по y на графике. Если они разные - угол, замеряемый транспортиром, будет другой.
Аналогом угла наклона можно считать не только скорость изменения курса, то есть производную от курса по астрономическому времени, а, например, среднее приращение курса от тика к тику. Вместо астрономического времени использовать "собственное", или "операционное" время - номер тика.
Моя точка зрения не поменялась. Единственно правильная единица наклона трендовой линии - цена на единицу времени. Угол наклона характеризует порядок вывода линии на экран, а вовсе не величину тренда.
+++ Научный подход рулит.
Вся остальная красота взлётов и падений - для маркетологов.
С Вами согласен, корректировки по сокращению вычислений и лишних телодвижений в вычислениях согласен, сам не люблю такое, но когда изначально создавал эту функцию, проверял несколько различных способов, а потом уже не переделывал) а по поводу пикселей, я с вами полностью согласен, самое идеальное вычисление угла лично для меня именно таким образом, вот моя функция:
//-----------------------------------------------------------------------------------
// 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);} можно убрать, так как я использовал это для себя), а если точнее это необходимо для того, если пользователь поменял две точки объекта местами.
//-----------------
Кстати для надписей на графике я именно это и использую, ранее в ветке я отправлял примеры работы данного индикатора, там как раз это видно.
//-----------------
Вам отдельное спасибо и уважение)
вот понадобилась такая фишка, начал тестировать вашу функцию и обнаружил, что результат
зависит от масштаба...
Угол есть время
ага,
время есть угол
ага,
время есть угол
А угол нельзя ест :-) Угол можно жги