Высота подокна индикатора.

 

Индикатор использует три буфера. Первые буфер для всяких вычислений, остальные буфера рисуют. Иногда высота подокна берётся из первого буфера что меня не устраивает ,потому как рисующие буфера не доходят до верха. Как сделать чтобы высота подокна не бралась от первого буфера?

int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,OutputBuffer1);
   SetIndexEmptyValue(0,0.0);

   SetIndexBuffer(1,OutputBuffer2);
   SetIndexStyle(1,DRAW_SECTION,STYLE_SOLID,3,clrWhite);
   SetIndexEmptyValue(1,0.0);
   SetIndexLabel(1,"ProfitLine");

   SetIndexBuffer(2,OutputBuffer3);
   SetIndexStyle(2,DRAW_SECTION,STYLE_SOLID,3,clrRed);
   SetIndexEmptyValue(2,0.0);
   SetIndexLabel(2,"RegLine");
}


 
Nauris Zukas:

Индикатор использует три буфера. Первые буфер для всяких вычислений, остальные буфера рисуют. Иногда высота подокна берётся из первого буфера что меня не устраивает ,потому как рисующие буфера не доходят до верха. Как сделать чтобы высота подокна не бралась от первого буфера?


Очевидно же, сделать буфер для вычислений последним (и объявить его INDICATOR_CALCULATIONS, третий параметр SetIndexBuffer).

А, вот ещё что. Директивой #property indicator_buffers устанавливается кол-во отображаемых буферов. Затем функцией IndicatorBuffers устанавливается кол-во всех используемых буферов, отображаемые + расчётные. Например, у вас две линии - #property indicator_buffers 2, а расчётный - один, поэтому в oninit вызываем IndicatorBuffers(3).

 
SeriousRacoon:

Очевидно же, сделать буфер для вычислений последним (и объявить его INDICATOR_CALCULATIONS, третий параметр SetIndexBuffer).

А, вот ещё что. Директивой #property indicator_buffers устанавливается кол-во отображаемых буферов. Затем функцией IndicatorBuffers устанавливается кол-во всех используемых буферов, отображаемые + расчётные. Например, у вас две линии - #property indicator_buffers 2, а расчётный - один, поэтому в oninit вызываем IndicatorBuffers(3).

Спасибо!

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