Скачать MetaTrader 5

Рисование прямой линии в индикаторе

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Подними скорость в сети MQL5 Cloud Network. Установи Strategy Tester Agent!
Sergey387
15
Sergey387 2010.12.10 11:00 

Помогите пожалуйста. Нужно создать пользовательский индикатор. Есть две удаленных друг от друга точки. Между точками есть промежуток в несколько баров. Если мысленно провести бесконечную линию между точками то она имеет наклон, т. е. не горизонтальна. Вопрос такой, как вычислить значение цены для каждой точки этой линиии как внутри отрезка так и снаружи? 

Полученные точки образуют прямую линию, которая затем чертится на экране. Нужно вычислить все это арифмитически. С помощью создания графических обьектов не предлагать! Догадываюсь что все это возможно делается с помощью линейного уравнения по известным вначале двум точкам, но конкретных формул не знаю.

Заранее спасибо. 

Aleksander
1673
Aleksander 2010.12.10 11:02  
а вот и зря :) - с помощью графи обьекта (линии) и формулы тебе не нужны :) - просто по №бара - запросто определить значение на линии :)
Dmitry Fedoseev
42884
Dmitry Fedoseev 2010.12.10 11:24  

y=y1+(y2-y1)*(x-x1)/(x2-x1); 

4-ый класс средней школы:)

Sergey387
15
Sergey387 2010.12.10 13:18  
Integer:

y=y1+(y2-y1)*(x-x1)/(x2-x1); 

4-ый класс средней школы:)

 

Если писать то писать надо подробно. Меня интересует конкретно как это делается в MQL4. А тут даже не написано что это за формула, что значат её составляющие, и прочие пояснения от которых может зависить правильность решеия. 

Aleksander
1673
Aleksander 2010.12.10 13:20  
Serg11245: Если писать то писать надо подробно. Меня интересует конкретно как это делается в MQL4. А тут даже не написано что это за формула, что значат её составляющие, и прочие пояснения от которых может зависить правильность решеия.
тогда в 4ый класс :) учить математику :)
Fedor
2763
Fedor 2010.12.10 13:28  
Serg11245:

Если писать то писать надо подробно. Меня интересует конкретно как это делается в MQL4. А тут даже не написано что это за формула, что значат её составляющие, и прочие пояснения от которых может зависить правильность решеия.


Пожалуйста, будьте вежливы. Отвечать Вам никто не обязан. Специально для Вас выношу ссылку - прочитайте, пожалуйста. https://www.mql4.com/go?http://www.rsdn.ru/Info/Howtoask.xml - как правильно задавать вопросы.

Следующим шагом - учитесь работать с поиском. Удачи.

rlx
166
rlx 2010.12.10 22:58  
Serg11245:

Помогите пожалуйста. Нужно создать пользовательский индикатор. Есть две удаленных друг от друга точки. Между точками есть промежуток в несколько баров. Если мысленно провести бесконечную линию между точками то она имеет наклон, т. е. не горизонтальна. Вопрос такой, как вычислить значение цены для каждой точки этой линиии как внутри отрезка так и снаружи? 

Полученные точки образуют прямую линию, которая затем чертится на экране. Нужно вычислить все это арифмитически. С помощью создания графических обьектов не предлагать! Догадываюсь что все это возможно делается с помощью линейного уравнения по известным вначале двум точкам, но конкретных формул не знаю.

Заранее спасибо. 


Я тож новенький. 

Сегодня как раз линии рисовал )))

Сначала вспоминал алгебру. Потом не вспомнил. Изучал это https://ru.wikipedia.org/wiki/Прямая 

Вот нахождение уравнения прямой: 

Входный параметры. Например есть максимумы на 0 и 50 баре. Нужно через них провести луч.

double y, y1, y2;
double A, B, C;
double f_max, a_max;
int x1, x2;
x1 = Time[0]; /// 
y1 = High[0]; //
x2 = Time[50];
y2 = High[50];

/// По линии х - время, по y - цена 

/// Общее уравнение прямой: А * х + В * y + С = 0
A = (y1 - y2);
B = (x2 - x1);
C = (x1 * y2 - x2 * y1);

//// Обычное уравнение: y = f_max * x + a_max
f_max = - A / B;
a_max = - C / B;
//// Теперь можно узнать цену на 23 баре например
y = f_max * Time[23] + a_max;
У меня рисует правильно.
Vladyslav Goshkov
2067
Vladyslav Goshkov 2010.12.10 23:24  
rlx:


Я тож новенький.

Сегодня как раз линии рисовал )))

Сначала вспоминал алгебру. Потом не вспомнил. Изучал это https://ru.wikipedia.org/wiki/Прямая

Вот нахождение уравнения прямой:

Входный параметры. Например есть максимумы на 0 и 50 баре. Нужно через них провести луч.

У меня рисует правильно.


Аналит. геометрию - уравнение прямой на плоскости ;), если точнее ......

На этом форуме не один десяток раз обсуждалось. Поиск рулит ......

Удачи.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий