Помогите с линией (ОТРЕЗОК)

 
помогите пожалуйста разобраться

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

,,,,,,,,,,,,


код
,,,,,,,


  • // вывод уровня дня
    void paintLevelD(datetime data, double db1, double db2, string name, string txt)
    {
    ObjectCreate(0,name+"1_"+TimeToStr(data,TIME_DATE),OBJ_TREND,0,data,db1,incDateOnDay(data),db1);

    //-— установим цвет линии
    ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
    //-— установим стиль отображения линии
    ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_SOLID);
    //-— установим толщину линии
    ObjectSetInteger(0,name,OBJPROP_WIDTH,2);
    //-— включим (true) или отключим (false) режим продолжения отображения линии вправо
    ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,1);

    //-— отобразим на переднем (false) или заднем (true) плане
    // ObjectSetInteger(0,name,OBJPROP_BACK,true);
    //-— включим (true) или отключим (false) режим перемещения линии мышью
    //-— при создании графического объекта функцией ObjectCreate, по умолчанию объект
    //-— нельзя выделить и перемещать. Внутри же этого метода параметр selection
    //-— по умолчанию равен true, что позволяет выделять и перемещать этот объект
    // ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false);
    // ObjectSetInteger(0,name,OBJPROP_SELECTED,false);
    //-— установим текст
    // ObjectSetString(0,name,OBJPROP_TEXT,txt);
    //-— скроем (true) или отобразим (false) имя графического объекта в списке объектов
    // ObjectSetInteger(0,name,OBJPROP_HIDDEN,false);
    //-— установим приоритет на получение события нажатия мыши на графике
    // ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
    }
  • // увеличение даты на 1 день
    datetime incDateOnDay (datetime dt) {
    int ty=TimeYear(dt);
    int tm=TimeMonth(dt);
    int td=TimeDay(dt);
    int th=TimeHour(dt);
    int ti=TimeMinute(dt);

    td++;
    if ((tm==1 || tm==3 || tm==5 || tm==7 || tm==8 || tm==10 || tm==12) && td==32) {td=1; tm++;}
    if (tm==2) if (MathMod(ty, 4)==0 && td==30) {td=1; tm++;}
    if (tm==2) if (MathMod(ty, 4)!=0 && td==29) {td=1; tm++;}
    if ((tm==4 || tm==6 || tm==9 || tm==11) && td==31) {td=1; tm++;}

    if (tm==13) {tm=1;ty++;}

    return(StrToTime(ty+"."+tm+"."+td+" "+th+":"+ti));
    }


  • процедура увеличения даты на 1 день работает
  • в свойствах линии просто включен режим луч
  • как его отключить программно?
  • ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,false); так тоже писала



  • ------------

    посмотрите пожалуйста что в нем так
     
    Anna Chicherina:

    У Вас всегда задан режим продолжения вправо:

    //-— включим (true) или отключим (false) режим продолжения отображения линии вправо 
    ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,1); 
     
    Sergey Kolemanov:

    У Вас всегда задан режим продолжения вправо:

    спасиюо

     
    Anna Chicherina:

    спасиюо

    )

     
    ObjectSetInteger(0,name,OBJPROP_RAY,false);

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