Геометрия прямоугольника

 

линия 3 делит прямоугольник на две равные части по диагонали.

нужно реализовать способ нахождения соотношения баров в данном прямоугольнике в зонах 1 и 2 соответственно без построения функции прямой типа y = kx+b. 

язык программирования MQL4.

 
Martin Cheguevara:

линия 3 делит прямоугольник на две равные части по диагонали.

нужно реализовать способ нахождения соотношения баров в данном прямоугольнике в зонах 1 и 2 соответственно без построения функции прямой типа y = kx+b. 

язык программирования MQL4.

без функции прямой - это примерно как ? телепатией что-ли.. :-)

прямую можно не рисовать, но внутри ОНО всё равно kx+b или впрямую или замаскированный в виде пропорций

 
Maxim Kuznetsov:

без функции прямой - это примерно как ? телепатией что-ли.. :-)

прямую можно не рисовать, но внутри ОНО всё равно kx+b или впрямую или замаскированный в виде пропорций

ну... может есть метод проще и надежнее... а  я о нем не знаю..) 

 
Martin Cheguevara:

линия 3 делит прямоугольник на две равные части по диагонали.

нужно реализовать способ нахождения соотношения баров в данном прямоугольнике в зонах 1 и 2 соответственно без построения функции прямой типа y = kx+b. 

язык программирования MQL4.

Что-то вроде разности двух интегралов - от котировок и линейной функции, которая затем делится на площадь прямоугольника для нормировки.

 
Maxim Kuznetsov:

без функции прямой - это примерно как ? телепатией что-ли.. :-)

прямую можно не рисовать, но внутри ОНО всё равно kx+b или впрямую или замаскированный в виде пропорций

Думаю, он имел в виду не заполнять последовательно массив точек. Да там простейшая формула, вот, код нафик писать не буду, лень.

L - длина прямоугольника в барах, например 213, H - высота в величине котировки, например, H = 1.12654 - 1.05214 = 0.0744

1. deltaL = H/L = 0.0744/213 = 3,4929577464788732394366197183099e-4  это приращение цены на 1 бар

2. Проходимся в цикле по 213 барам, на каждом вычисляем цену, как price = PriceStart + deltaL*nBar и смотрим, в этой точке бар выше или ниже

Чего тут думать?

 
Alexey Volchanskiy:

Думаю, он имел в виду не заполнять последовательно массив точек. Да там простейшая формула, вот, код нафик писать не буду, лень.

L - длина прямоугольника в барах, например 213, H - высота в величине котировки, например, H = 1.12654 - 1.05214 = 0.0744

1. deltaL = H/L = 0.0744/213 = 3,4929577464788732394366197183099e-4  это приращение цены на 1 бар

2. Проходимся в цикле по 213 барам, на каждом вычисляем цену, как price = PriceStart + deltaL*nBar и смотрим, в этой точке бар выше или ниже

Чего тут думать?

Ты прав так и сделаю)

спасибо!)

дело в том что необходимо было вычислить угол наклона линии 3. Но в силу того, что я это уже ранее делал и столкнулся с проблемой ошибочного определения из за зависимости от масштаба графика, даже если программно выставлял в свойствах графика 1 к 1. все равно была существенная погрешность даже с использованием библиотек winAPI ("user32.dll") и расчет в пикселах самого окна отрисовки окна и прочей жести. Так что задача перетекла в исполнение описанное в данной теме.
 
Martin Cheguevara:

столкнулся с проблемой ошибочного определения из за зависимости от масштаба графика, даже если программно выставлял в свойствах графика 1 к 1. все равно была существенная погрешность даже с использованием библиотек winAPI ("user32.dll") и расчет в пикселах самого окна отрисовки окна и прочей жести. Так что задача перетекла в исполнение описанное в данной теме.

пиксели не нужно, цены и номера бара достаточно для построения линии

вот давным давно делал ЗигЗаг который строится точками, а не отрезками, это один в один задача - построение прямой по школьной формуле y = kx+b 

https://www.mql5.com/ru/forum/127093#comment_3305131

Может быть эти индикаторы надо в Code Base ?
Может быть эти индикаторы надо в Code Base ?
  • 2010.07.04
  • www.mql5.com
Вот сотворил первые свои индикаторы,  и собственно сабж - может их стоит положить в Code Base...
 
Igor Makanu:

пиксели не нужно, цены и номера бара достаточно для построения линии

вот давным давно делал ЗигЗаг который строится точками, а не отрезками, это один в один задача - построение прямой по школьной формуле y = kx+b 

https://www.mql5.com/ru/forum/127093#comment_3305131

Спасибо Игорь!) Глянул - думаю пригодится)

 
Martin Cheguevara:

Спасибо Игорь!) Глянул - думаю пригодится)

в моем примере формула тебе нужна

Py = (lasttmp-tmp)/((lasti-i)+Point/10000);

это будет приращение которое нужно будет добавлять от точки с координатами [ lasttmp , lasti ] до  [ tmp , i ] , где tmp - это цена, i - это № бара

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

 
Igor Makanu:

в моем примере формула тебе нужна

Py = (lasttmp-tmp)/((lasti-i)+Point/10000);

это будет приращение которое нужно будет добавлять от точки с координатами [ lasttmp , lasti ] до  [ tmp , i ] , где tmp - это цена, i - это № бара

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

агась я тоже внимание на эту формулу обратил)

уже почти доделал)

 
Martin Cheguevara:

линия 3 делит прямоугольник на две равные части по диагонали.

нужно реализовать способ нахождения соотношения баров в данном прямоугольнике в зонах 1 и 2 соответственно без построения функции прямой типа y = kx+b. 

язык программирования MQL4.

И еще, что бы математика не использовалась, особенно действия + - * /

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