Возможно ли использовать OBJ_RECTANGLE параллельно с задним планом и без заливки?

 
Добрый день, мудохаюсь уже долгое время не могу понять, нельзя что ли использовать прямоугольник без заливки и с задним планом параллельно? 
суть проблемы такая: построил объект на заднем планеOBJPROP_BACK  ) и без заливки ( OBJPROP_FILL ) но  заливка всёравно остается, и как только я ставлю отображать на переднем плане, заливка убирается

Пример:
#property strict
#property indicator_chart_window

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
      datetime t2 = iTime(NULL, PERIOD_MN1, 0);
      double hi = iHigh(NULL, PERIOD_MN1, 0);
      double lo = iLow(NULL, PERIOD_MN1, 0);
      double atr = iATR(NULL, PERIOD_MN1, 10, 0);

   PutRect("ATR", t2, hi - atr, t2 + PERIOD_MN1 * 60, hi - atr * 0.5, false, Green);
   return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit() {
   ObjectDelete("ATR");
   return(0);
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[]) {
                
 return 0;
}

void PutRect(string name, datetime t1, double p1, datetime t2, double p2, bool fill, color clr) {
   ObjectDelete(0,name);
   bool cr = ObjectCreate(0,name,OBJ_RECTANGLE,0,t1,p1,t2,p2);
   ObjectSetInteger(0,name,OBJPROP_COLOR, clr);
   ObjectSetInteger(0,name,OBJPROP_STYLE, 0); 
   ObjectSetInteger(0,name,OBJPROP_WIDTH, 0);
   ObjectSetInteger(0,name,OBJPROP_BACK, true);  // без заливки - false, с заливкой true
   ObjectSetInteger(0,name,OBJPROP_FILL, fill);  // заливка
   ObjectSetInteger(0,name, OBJPROP_SELECTABLE, false);
   ObjectSetInteger(0,name, OBJPROP_HIDDEN, true);
}


Всем спасибо

 
vebster005:
Добрый день, мудохаюсь уже долгое время не могу понять, нельзя что ли использовать прямоугольник без заливки и с задним планом параллельно? 
суть проблемы такая: построил объект на заднем планеOBJPROP_BACK  ) и без заливки ( OBJPROP_FILL ) но  заливка всёравно остается, и как только я ставлю отображать на переднем плане, заливка убирается

Пример:


Всем спасибо

Уверен, что нет ничего невозможного ((( 

Но не потому здесь пишу, а скорее всего - Вы всего-то Канвасом пользуетесь. 

И оттого-то и никак ... 

А? 

 
vebster005:
Добрый день, мудохаюсь уже долгое время не могу понять, нельзя что ли использовать прямоугольник без заливки и с задним планом параллельно? 
суть проблемы такая: построил объект на заднем планеOBJPROP_BACK  ) и без заливки ( OBJPROP_FILL ) но  заливка всёравно остается, и как только я ставлю отображать на переднем плане, заливка убирается

Пример:


Всем спасибо


Здравствуйте.

Без заливки и с задним планом, как вариант, можно вместо прямоугольника использовать четыре трендовых линии.

 
Alexander Voronkov #:


Здравствуйте.

Без заливки и с задним планом, можно вместо прямоугольника использовать четыре трендовых линии.

Спасибо за ответ, а если же нужно использовать именно 

OBJ_RECTANGLE

возможно ли использование параллельно? или же программно так нельзя
Спасибо

 
В MQL4  OBJPROP_FILL не работает. Это только для MQL5. Там проблема решается, здесь - нет.
 
А свойство самого графика "График сверху" не подойдет (в MQL это CHART_FOREGROUND)? Тогда объект можно не делать фоновым.