Как получить длину линии зигзага (длину волны по сути) в любых единицах, зная координаты двух точек?
Необходимо для сравнения длин двух волн в процентном соотношении
решается все довольно просто - надо обратится к GDI функциям
вот пример даже посложнее - расчет угла наклона МА. Используются пиксельные расстояния
#import "user32.dll"int GetWindowDC(int dc);
bool GetWindowRect(int h, int& pos[4]);
int ReleaseDC(int h, int dc);
#import//--------------------------------------------------------------- CheckAngleint CheckAngle(string smb, int tf, int iB)
{
double p1, p2, ang;
p1=iMA(smb, tf, dPeriod, 0, dMode, dPrice, iB+1);
p2=iMA(smb, tf, dPeriod, 0, dMode, dPrice, iB);
int hWnd=WindowHandle(Symbol(), Period()); int hDC=GetWindowDC(hWnd); // получаем хендл окнаint rect[4]; GetWindowRect(hWnd, rect); ReleaseDC(hWnd, hDC); // берем его DCdouble wW=rect[2]-rect[0]; double wH=rect[3]-rect[1]; // получаем высоту и ширину в пикселяхdouble H=(WindowPriceMax()-WindowPriceMin()); double W=WindowBarsPerChart(); // переводим на графикdouble x=wW/W; double y=((p2-p1))*wH/H; // определяем катеты
ang=MathArctan(y/x)*180/3.1415926535; if (ang>180) ang=ang-360; // равняем относительно оси Х
}
в более поздних версиях я приделывал нормировочные коэфициенты, чтоб при изменении масштаба графика не менялись значения угла. Но сейчас найти не могу.
Во! О чём я и говорил, но про API забыл совсем (слишком редко это нужно мне было):
AlexSTAL:
Если бы можно было получить размер графика в пикселях - проблем бы не было. Есть операторы, которые получают ценовой минимум и максимум, есть которые количество баров на экране. Перевести их в условные единицы не проблема
В очередной раз огромное спасибо настоящему профессионалу Алексею!
В каких единицах получается гипотенуза такого треугольника если она параллельна оси попугаев? В каких единицах были длины катетов?
А по существу вопроса думаю нужно считать длину не в барах, а во времени. Минимальный таймфрейм M1 - значит время измеряется дискретно с шагом 1 минута. Вот количество минут и надо принимать за длину одного из катетов. Такой подход гарантирует одинаковую длину катета на разных таймфреймах и не зависит от масштабирования в терминале.
В каких единицах получается гипотенуза такого треугольника если она параллельна оси попугаев? В каких единицах были длины катетов?
А по существу вопроса думаю нужно считать длину не в барах, а во времени. Минимальный таймфрейм M1 - значит время измеряется дискретно с шагом 1 минута. Вот количество минут и надо принимать за длину одного из катетов. Такой подход гарантирует одинаковую длину катета на разных таймфреймах и не зависит от масштабирования в терминале.
Не Математ, но спрошу, а в каких единицах ты измеряешь длины катетов?
в более поздних версиях я приделывал нормировочные коэфициенты, чтоб при изменении масштаба графика не менялись значения угла. Но сейчас найти не могу.
Зачем тогда все эти танцы с бубном (с пикселями)?
Добавить один коэфициент для приведения второй гипотенузы к примерно такому же порядку, что и первая и... теорма Пифагора. Ежу понятно, что результат будет измеряться ни во секундах, ни в барах ни в пикселях, будет просто какое-то число, но оно будет позволять сравнивать отдельные отрезки как между собой так и с заданными параметрами ( при этом результат будет конкретным и онозначным, при постоянном значении коэффициента), что является достаточным для решения поталенной задачи. Других вариантов нет.
sanyooooook: т.е. корень квадратный из: квадрата попугаев плюс квадрат попугаев, а причем тут яблоки?
Не совсем.
Это абстрактное пространство и оно ничего не имеет общего с реальным пространством и не является его проекцией. Для доказательства этого представьте себе любой предмет в этом пространстве, например попугая, расположенного так, что его линия роста расположена параллельно оси попугаев. Глядя на него со стороны оси попугаев вы видите целого попугая, а рассматривая его со стороны оси яблок вы видите какую-то часть яблока или несколько яблок - не важно. С этой стороны вы не видите попугаев. Теперь разверните попугая так, чтобы линия его роста была параллельна оси яблок. В этом случае, наблюдая попугая со стороны оси яблок, вы увидите.... Правильно - несколько яблок и никаких попугаев. А со стороны оси попугаев вы будете наблюдать... ну скажем - "попугайское крылышко", говоря языком известного персонажа мультфильма.
Это такое хитрое пространство, которое тем не менее подчиняется закону Пифагора.
Но в нашем случае никто графики не вращает и цена остается ценой а время - временем.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Как получить длину линии зигзага (длину волны по сути) в любых единицах, зная координаты двух точек?
Необходимо для сравнения длин двух волн в процентном соотношении
решается все довольно просто - надо обратится к GDI функциям
вот пример даже посложнее - расчет угла наклона МА. Используются пиксельные расстояния
в более поздних версиях я приделывал нормировочные коэфициенты, чтоб при изменении масштаба графика не менялись значения угла. Но сейчас найти не могу.
Во! О чём я и говорил, но про API забыл совсем (слишком редко это нужно мне было):
Если бы можно было получить размер графика в пикселях - проблем бы не было. Есть операторы, которые получают ценовой минимум и максимум, есть которые количество баров на экране. Перевести их в условные единицы не проблема
В очередной раз огромное спасибо настоящему профессионалу Алексею!
Я конечно опоздал к обсуждению.
Вопрос к Математу:
В каких единицах получается гипотенуза такого треугольника если она параллельна оси попугаев? В каких единицах были длины катетов?
А по существу вопроса думаю нужно считать длину не в барах, а во времени. Минимальный таймфрейм M1 - значит время измеряется дискретно с шагом 1 минута. Вот количество минут и надо принимать за длину одного из катетов. Такой подход гарантирует одинаковую длину катета на разных таймфреймах и не зависит от масштабирования в терминале.
Я конечно опоздал к обсуждению.
Вопрос к Математу:
В каких единицах получается гипотенуза такого треугольника если она параллельна оси попугаев? В каких единицах были длины катетов?
А по существу вопроса думаю нужно считать длину не в барах, а во времени. Минимальный таймфрейм M1 - значит время измеряется дискретно с шагом 1 минута. Вот количество минут и надо принимать за длину одного из катетов. Такой подход гарантирует одинаковую длину катета на разных таймфреймах и не зависит от масштабирования в терминале.
Не Математ, но спрошу, а в каких единицах ты измеряешь длины катетов?
В тех же, что и длину гипотенузы!
В тех же, что и длину гипотенузы!
т.е. корень квадратный из: квадрата попугаев плюс квадрат попугаев, а причем тут яблоки?
Картинка вообще не имеет смысла
в более поздних версиях я приделывал нормировочные коэфициенты, чтоб при изменении масштаба графика не менялись значения угла. Но сейчас найти не могу.
Зачем тогда все эти танцы с бубном (с пикселями)?
Добавить один коэфициент для приведения второй гипотенузы к примерно такому же порядку, что и первая и... теорма Пифагора. Ежу понятно, что результат будет измеряться ни во секундах, ни в барах ни в пикселях, будет просто какое-то число, но оно будет позволять сравнивать отдельные отрезки как между собой так и с заданными параметрами ( при этом результат будет конкретным и онозначным, при постоянном значении коэффициента), что является достаточным для решения поталенной задачи. Других вариантов нет.
т.е. корень квадратный из: квадрата попугаев плюс квадрат попугаев, а причем тут яблоки?
Не совсем.
Это абстрактное пространство и оно ничего не имеет общего с реальным пространством и не является его проекцией. Для доказательства этого представьте себе любой предмет в этом пространстве, например попугая, расположенного так, что его линия роста расположена параллельно оси попугаев. Глядя на него со стороны оси попугаев вы видите целого попугая, а рассматривая его со стороны оси яблок вы видите какую-то часть яблока или несколько яблок - не важно. С этой стороны вы не видите попугаев. Теперь разверните попугая так, чтобы линия его роста была параллельна оси яблок. В этом случае, наблюдая попугая со стороны оси яблок, вы увидите.... Правильно - несколько яблок и никаких попугаев. А со стороны оси попугаев вы будете наблюдать... ну скажем - "попугайское крылышко", говоря языком известного персонажа мультфильма.
Это такое хитрое пространство, которое тем не менее подчиняется закону Пифагора.
Но в нашем случае никто графики не вращает и цена остается ценой а время - временем.
Картинка вообще не имеет смысла