Как разложить код OBJ_RECTANGLE

LaflerMtn

Интересующийся
Здравствуйте, буду краток, как разложить PutRect(прямоугольник), как это сделали с текстом? В калькуляторе написали:
Код:
atr=(int)(....)
и открыли это через:
Код:
PutLabel((string)atr);
в
Код:
ChartEvent function
Прошу вас помочь/подсказать как сделать тоже самое но только с прямоугольником:
Код:
PutRect("NAME",t1,Lo+АТР*2*0.70*pips,t2,Lo+АТР*2*0.63*pips,Green);

— Попытался сделать по аналогии но выдаёт ошибку мол нельзя использовать kolva= в данном случае, а только PutRect
Код:
kolva=("NAME",t1,Lo+АТР*2*0.70*pips,t2,Lo+АТР*2*0.63*pips,Green);
Прошу помочь пожалуйста, если такой способ не возможен ответьте пожалуйста каким образом можно заставить прямоугольник PutRect показываться и скрываться при нажатии на кнопку ПРИ УСЛОВИИ, что сам код PutRect в калькуляторе? т.е даже так: Как перенести "сердце" PutRect (OBJ_RECTANGLE) в
Код:
ChartEvent function
но чтобы PutRect остался в калькуляторе. Простите если замудрил). Спасибо
 

LaflerMtn

Интересующийся
Вот этот код на разложение текста:
Код:
#property copyright "Copyright 2018"
#property link      "http://www.ya.ru"
#property version   "1.00"
#property strict
#property indicator_chart_window

#define KEY_NUMPAD_5       12 
#define KEY_LEFT           37 
#define KEY_UP             38 
#define KEY_RIGHT          39 
#define KEY_DOWN           40 
#define KEY_NUMLOCK_DOWN   98 
#define KEY_NUMLOCK_LEFT  100 
#define KEY_NUMLOCK_5     101 
#define KEY_NUMLOCK_RIGHT 102 
#define KEY_NUMLOCK_UP    104 

input int Shift=0;
int atr=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
   ObjectDelete(0,"L");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutLabel(string text)
  {
   ObjectDelete(0,"L");
//--- создадим текстовую метку
   ObjectCreate(0,"L",OBJ_LABEL,0,0,0);
//--- установим координаты метки
   ObjectSetInteger(0,"L",OBJPROP_XDISTANCE,55);
   ObjectSetInteger(0,"L",OBJPROP_YDISTANCE,10);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSetInteger(0,"L",OBJPROP_CORNER,1);
//--- установим текст
   ObjectSetString(0,"L",OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(0,"L",OBJPROP_FONT,"Arial");
//--- установим размер шрифта
   ObjectSetInteger(0,"L",OBJPROP_FONTSIZE,12);
//--- установим цвет
   ObjectSetInteger(0,"L",OBJPROP_COLOR,Red);
  }
//+------------------------------------------------------------------+ 
//| ChartEvent function                                              | 
//+------------------------------------------------------------------+ 
void OnChartEvent(const int id,         // идентификатор события   
                  const long& lparam,   // параметр события типа long 
                  const double& dparam, // параметр события типа double 
                  const string& sparam  // параметр события типа string 
                  )
  {

//--- нажатие кнопки на клавиатуре 
   if(id==CHARTEVENT_KEYDOWN)
     {
      if(lparam==38) PutLabel((string)atr);
      if(lparam==40) ObjectDelete(0,"L");
     }
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
//---
   atr=(int)((iHigh(NULL,PERIOD_MN1,Shift)-iLow(NULL,PERIOD_MN1,Shift))/_Point);
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Верх