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

 

на графике не отражаеться Buf2. подскажиет почему, и как сделать что бы отображалось, и индикатор работал правильно. вот код:

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 DimGray
#property indicator_color2 Red

#property show_inputs
extern int BarsCount = 20;
//---- buffers
double Buf1[];
double Buf2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,Buf1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,Buf2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   int    i;
   double size, sum=0;
//----
   int limit = counted_bars;
    if (limit > Bars)
        limit = Bars;

    for (i = limit; 0 <= i; i--) 
      {
       Buf1[i] = (High[i]-Low[i])/Point;
       //----
       Buf2[2] = everage_price(BarsCount);
      }
//----
   return(0);
  }
//+------------------------------------------------------------------+

double everage_price (int BarsCount)
   {
    int i;
    double size, sum=0, result;
   
    for (i=1; i<=BarsCount; i++)
      {
       size = MathAbs(High[i]-Low[i])/Point;
       sum = sum+size;
      }
    result = sum/BarsCount;
    return(result);
   }

индикатор показывает диапозон свеч, и поним рисует скользящую среднюю, которая задаеться параметром BarsCount.

Заранее благодарен!

 
dmmikl86 >>:

на графике не отражаеться Buf2. подскажиет почему, и как сделать что бы отображалось, и индикатор работал правильно. вот код:

индикатор показывает диапозон свеч, и поним рисует скользящую среднюю, которая задаеться параметром BarsCount.

Заранее благодарен!


for (i = limit; 0 <= i; i--) 
      {
       Buf1[i] = (High[i]-Low[i])/Point;
       //----
       Buf2[2] = everage_price(BarsCount);
      }
Неверный индек второго буфера


 
dmmikl86 >>:

на графике не отражаеться Buf2. подскажиет почему, и как сделать что бы отображалось, и индикатор работал правильно. вот код:

индикатор показывает диапозон свеч, и поним рисует скользящую среднюю, которая задаеться параметром BarsCount.

Заранее благодарен!


int start()
  {
   int    counted_bars=IndicatorCounted();
   int    i;
   double size, sum=0;
//----
   int limit = counted_bars;
    if (limit > Bars)
        limit = Bars;

    for (i = limit; 0 <= i; i--) 
      {
       Buf1[i] = (High[i]-Low[i])/Point;
       //----
       Buf2[i] = everage_price(BarsCount);
      }
//----
   return(0);
  }
 

смешно))) исправил, но не рисует скальзящую - как хотелось бы, а рисует просто ровную линию

в чем проблема?

 
dmmikl86 >>:

смешно))) исправил, но не рисует скальзящую - как хотелось бы, а рисует просто ровную линию

в чем проблема?

Вам нужна средняя byf1 ?

 
costy_ >>:

Вам нужна средняя byf1 ?


да. кривая линия, построеная на основе буф1

 
dmmikl86 >>:

да. кривая линия, построеная на основе буф1

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 DimGray
#property indicator_color2 Red

#property show_inputs
extern int BarsCount = 20;
extern int ma_method = 0;//MODE_SMA 0 Простое скользящее среднее 
                         //MODE_EMA 1 Экспоненциальное скользящее среднее 
                         //MODE_SMMA 2 Сглаженное скользящее среднее 
                         //MODE_LWMA 3 Линейно-взвешенное скользящее среднее 

//---- buffers
double Buf1[];
double Buf2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,Buf1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,Buf2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int limit = Bars-IndicatorCounted();
//----
    

    for (int i = 0; i <= limit; i++) 
         Buf1[i] = (High[i]-Low[i])/Point;
   
    for (i = 0; i <= limit; i++) 
         Buf2[i] = iMAOnArray(Buf1,0,BarsCount,0,ma_method,i);
      
//----
   return(0);
  }
//+------------------------------------------------------------------+

 
costy_ >>:

спасибо. все работает.

 
А можно вопрос как Вы собираетесь использовать?
 
есть такоая теория что после затишья начинаються сильные движения. красная линия показывает средний диапазон свечей (может лучше надо использовать разницы между опен и клоус) а серый столбцы фактический диапазон, если диапазон растет и он выше красной линии, можно утверждать что начинаеться хорошее движение. но это только теория.
 
dmmikl86 >>:
есть такоая теория что после затишья начинаються сильные движения. красная линия показывает средний диапазон свечей (может лучше надо использовать разницы между опен и клоус) а серый столбцы фактический диапазон, если диапазон растет и он выше красной линии, можно утверждать что начинаеться хорошее движение. но это только теория.

Угу "только теория" я работаю по времени торгов основной валюты.

GBPJPY - открытие Британии...

Если не форекс посмотрите https://www.mql5.com/ru/code

Попробуйте это из опыта.

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 DimGray
#property indicator_color2 Red
#property indicator_color3 Green

#property show_inputs
extern int BarsCount1 = 20;
extern int BarsCount2 = 40;
extern int ma_method = 0;
//---- buffers
double Buf1[];
double Buf2[];
double Buf3[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_NONE);
   SetIndexBuffer(0,Buf1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,Buf2);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,Buf3);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int limit = Bars-IndicatorCounted();
//----
    

    for (int i = 0; i <= limit; i++) 
         Buf1[i] = (High[i]-Low[i])/Point;
   
    for (i = 0; i <= limit; i++) 
         Buf2[i] = iMAOnArray(Buf1,0,BarsCount1,0,ma_method,i);

    for (i = 0; i <= limit; i++) 
         Buf3[i] = iMAOnArray(Buf1,0,BarsCount2,0,ma_method,i);
      
//----
   return(0);
  }
//+------------------------------------------------------------------+