CrystalNet:
Здравствуйте!
Пожалуйста кто нибудь помогите завершить модификацию индикатора Color Levels. Никак не могу создать последнюю линию на панели индикатора.
И второе, как сделать, чтобы линии были как луч, сплошные вправо как показано на рисунке.
Элементарно, значение правого времени задать LONG_MAX. И пример рисования из моего кода
void DrawHorizontalLines() { datetime dt0 = TimeCurrent(); datetime dt1 = TimeCurrent() + 3600*3; string sname = "horiz_line" + IntegerToString(TimeCurrent()); string name = sname + "_2"; bool res = TrendCreate(0, name, 0, dt0, priceLine[2], dt1, priceLine[2], clrTomato); // центральная линия Print("res=", res); name = sname + "_3"; priceLine[3] = priceLine[2] + priceLine[2] * 0.038 * 0.01; TrendCreate(0, name, 0, dt0, priceLine[3], dt1, priceLine[3], clrLime); // верхняя серединная линия name = sname + "_4"; priceLine[4] = priceLine[2] + priceLine[2] * 0.062 * 0.01; TrendCreate(0, name, 0, dt0, priceLine[4], dt1, priceLine[4], clrYellow); // верхняя линия name = sname + "_1"; priceLine[1] = priceLine[2] - priceLine[2] * 0.038 * 0.01; TrendCreate(0, name, 0, dt0, priceLine[1], dt1, priceLine[1], clrLime); // нижняя серединная линия name = sname + "_0"; priceLine[0] = priceLine[2] - priceLine[2] * 0.062 * 0.01; TrendCreate(0, name, 0, dt0, priceLine[0], dt1, priceLine[0], clrYellow); // нижняя линия }
dt1 тебе надо сделать dt1 = LONG_MAX;
//+------------------------------------------------------------------+ //| Создает линию тренда по заданным координатам | //+------------------------------------------------------------------+ bool TrendCreate(const long chart_ID=0, // ID графика const string name="TrendLine", // имя линии const int sub_window=0, // номер подокна datetime time1=0, // время первой точки double price1=0, // цена первой точки datetime time2=0, // время второй точки double price2=0, // цена второй точки const color clr=clrRed, // цвет линии const ENUM_LINE_STYLE style=STYLE_SOLID, // стиль линии const int width=1, // толщина линии const bool back=false,//true, // на заднем плане const bool selection=false, // выделить для перемещений const bool ray_left=false, // продолжение линии влево const bool ray_right=false, // продолжение линии вправо const bool hidden=false, // скрыт в списке объектов const long z_order=0) // приоритет на нажатие мышью { //--- установим координаты точек привязки, если они не заданы //ChangeTrendEmptyPoints(time1,price1,time2,price2); //--- сбросим значение ошибки ResetLastError(); //--- создадим трендовую линию по заданным координатам if(!ObjectCreate(chart_ID,name,OBJ_TREND,sub_window,time1,price1,time2,price2)) { Print(__FUNCTION__, ": не удалось создать линию тренда! Код ошибки = ",GetLastError()); return(false); } //--- установим цвет линии ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); //--- установим стиль отображения линии ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style); //--- установим толщину линии ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width); //--- отобразим на переднем (false) или заднем (true) плане ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); //--- включим (true) или отключим (false) режим перемещения линии мышью //--- при создании графического объекта функцией ObjectCreate, по умолчанию объект //--- нельзя выделить и перемещать. Внутри же этого метода параметр selection //--- по умолчанию равен true, что позволяет выделять и перемещать этот объект ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE, false);//selection); ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED, false);//selection); //--- включим (true) или отключим (false) режим продолжения отображения линии влево ObjectSetInteger(chart_ID,name,OBJPROP_RAY_LEFT,ray_left); //--- включим (true) или отключим (false) режим продолжения отображения линии вправо ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right); //--- скроем (true) или отобразим (false) имя графического объекта в списке объектов ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); //--- установим приоритет на получение события нажатия мыши на графике ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); //--- успешное выполнение return true; }
***
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте!
Пожалуйста кто нибудь помогите завершить модификацию индикатора Color Levels. Никак не могу создать последнюю линию на панели индикатора.
И второе, как сделать, чтобы линии были как луч, сплошные вправо как показано на рисунке.