- Показатели тенденции
- Вопросы от начинающих MQL5 MT5 MetaTrader 5
- Пожалуйста помогите или объясните популярно как сделать индикатор трендовой линии
1.
ObjectSet("name", OBJPROP_RAY, true);
2.
ObjectGetValueByShift( string name, int shift) ;
Ситуация такая, пишу индикатор, он должен рисовать уровни поддержки и сопротивления. Застопорился вот на чем, рисует уровень правильно в виде отрезка(не луча), но как заставить этот отрезок доходить до нулевого бара под этим же углом?(Или направлением) И разумеется нужно знать эту цену. Может кто-нибудь помочь ???
с приходом нового бара нужно линию перерисовывать изменяя вторую координату линии
цену второй координаты можно вычислить по формуле на основании 4-х координат известных
для построения трендовой линии,
в ветке Игоря Кима есть такая функция, ща поищу найду дам ссылку.
https://forum.mql4.com/ru/11287/page36#92278
Функция EquationDirect(). Уравнение прямой. Эта функция вычисляет значение ординаты Y для абсциссы X в точке пересечения с прямой, проведённой через две произвольные точки на графике. Функция принимает следующие обязательные параметры: * x1, y1 - Координаты первой точки. * x2, y2 - Координаты второй точки. * x - Значение, абсцисса для которой нужно вычислить ординату Y. //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 12.10.2007 | //| Описание : Уравнение прямой. | //| Вычисляет значение Y для X в точке пересечения с прямой. | //+----------------------------------------------------------------------------+ //| Параметры: | //| x1,y1 - координаты первой точки, | //| x2,y2 - координаты второй точки, | //| x - значение, для которого вычислить Y | //+----------------------------------------------------------------------------+ double EquationDirect(double x1, double y1, double x2, double y2, double x) { if (x2==x1) return(y1); return((y2-y1)/(x2-x1)*(x-x1)+y1); }
с приходом нового бара нужно линию перерисовывать изменяя вторую координату линии
цену второй координаты можно вычислить по формуле на основании 4-х координат известных
для построения трендовой линии,
в ветке Игоря Кима есть такая функция, ща поищу найду дам ссылку.
зачем? если трендовая уже построена, то ObjectGetValueByShift("name", 0) даст ее значение на нулевом баре - хоть на каждом тике пересчитывайте
alsu, эта функция на нулевом баре дает 0 при каждом тике!!
Вот код
extern int period=60;
int index, index2;
int start()
{
ObjectDelete("up");
index=iHighest(NULL, 0, MODE_HIGH, period, 0);
index2=iHighest(NULL, 0, MODE_HIGH, period, period);
ObjectCreate("up", OBJ_TREND, 0, Time[index], High[index], Time[index2], High[index2]);
ObjectSet("up",OBJPROP_RAY,false);
double prise=ObjectGetValueByShift( "up", 0);
Alert("Prise=",prise);
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования