Добрый день, хочу сделать подобное:
т.е трендовая линия и к ней привязать ценовые метки, да так чтобы если линию смещаю(двигаю) метки были как бы закреплены к ней.
допустим для прямоугольника я координаты х и у получаю вот так:
Как мне получить подобное для прайс1 и прайс 2а так же время 1 и время2
Можно использовать функцию такую:
bool ChartTimePriceToXY( long chart_id, // идентификатор графика int sub_window, // номер подокна datetime time, // время на графике double price, // цена на графике int& x, // координата X для времени на графике int& y // координата Y для цены на графике );
Используйте ту же самую функцию ObjectGetInteger() для получения координат по времени. Идентификатор OBJPROP_TIME. А в следующем аргументе (модификаторе) указывается индекс точки привязки. 0 - для первой точки, 1 - для второй.
Аналогично с получением цен. Только функция ObjectGetDouble(). Идентификатор OBJPROP_PRICE. Индекс точки тоже указывается в модификаторе.
- www.mql5.com
Можно использовать функцию такую:
Тут нужно получить данные, а не преобразовать.
Можно использовать функцию такую:
Спасибо что ответили, как мне приобразовать:
PutTrendLine("line",Time[0],PriceMax,Time[10],PriceMin,Black);
void PutTrendLine(string name,datetime time1,double price1,datetime time2,double price2,color clr) { ObjectCreate(0,name,OBJ_TREND,0,time1,price1,time2,price2); //--- установим цвет линии ObjectSetInteger(0,name,OBJPROP_COLOR,clr); //--- установим стиль отображения линии ObjectSetInteger(0,name,OBJPROP_STYLE,0); //--- установим толщину линии ObjectSetInteger(0,name,OBJPROP_WIDTH,2); //--- включим (true) или отключим (false) режим продолжения отображения линии вправо ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,false); }
Тут нужно получить данные, а не преобразовать.
пожалуйста подскажите как сделать?
пожалуйста подскажите как сделать?
Так вот ведь уже ответил. Что именно тут непонятно? Какие нюансы интересуют?
- 2020.08.04
- www.mql5.com
вот так:
//+------------------------------------------------------------------+ //| Координата прайс1 | //+------------------------------------------------------------------+ long IntGetPr1(const string name) { return ObjectGetInteger(0,prefix+name,OBJPROP_TIME); return ObjectGetDouble(0,prefix+name,OBJPROP_PRICE); } //+------------------------------------------------------------------+ //| Координата прайс2 | //+------------------------------------------------------------------+ long IntGetPr1(const string name) { return ObjectGetInteger(1,prefix+name,OBJPROP_TIME); return ObjectGetDouble(1,prefix+name,OBJPROP_PRICE); }
double WPMax=WindowPriceMax(); double WPMin=WindowPriceMin(); double PriceMax = WPMax-(WPMax-WPMin)/5; double PriceMin = WPMin+(WPMax-WPMin)/5; PutTrendLine(prefix+"line",Time[0],PriceMax,Time[10],PriceMin,DodgerBlue);как связать эту линию с кодом что выше? или же в коде выше нужно поменять название на
prefix+"line"
? но это думаю не правильно
Тут нужно получить данные, а не преобразовать.
как связать эту линию с кодом что выше? или же в коде выше нужно поменять название на ? но это думаю не правильно
на каком баре нужно определить время?
от туда и пляшите, т.е. Time[0] - это нулевой бар
если известны бары начала и конца трендовой, то дело в шляпе
;)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день, хочу сделать подобное:
т.е трендовая линия и к ней привязать ценовые метки, да так чтобы если линию смещаю(двигаю) метки были как бы закреплены к ней.
допустим для прямоугольника я координаты х и у получаю вот так:
Как мне получить подобное для прайс1 и прайс 2а так же время 1 и время2