← К каталогу
Исходный код · ID 3978

precision trend.mq5

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Индикатор для MetaTrader 4, отображающий два буфера в виде гистограмм в окне графика. Один буфер рисуется зелёным цветом, другой — красным; их внешний вид задаётся свойствами indicator_color1 и indicator_color2. Индикатор использует два пользовательских числовых параметра для управления расчётом и отображением аналитических линий на ценовом графике. Логика определяет направление тренда и строит верхнюю и нижнюю границы, меняя цвет гистограммы при смене направления.

Настройки программы

НастройкаОписание
Average period (avgPeriod) Период усреднения — Целочисленный параметр, задающий количество баров для расчёта усреднённого диапазона цены (High-Low).
Sensitivity (sensitivity) Чувствительность — Числовой множитель, масштабирующий рассчитанный усреднённый диапазон и влияющий на ширину границ индикатора.
Получить полный код

Поиск по коду файла

#property indicator_chart_window
#property indicator_buffers  2
#property indicator_color1   Green
#property indicator_color2   Red
#property indicator_width1   1
#property indicator_width2   1
#property strict

extern int    avgPeriod   = 30; // Average period
extern double sensitivity = 3;  // Sensitivity

double upBuffer[],dnBuffer[];

int init()
{
      // код доступен только после оплаты
   }
int deinit() { return(0); }

double wrkBuffer[][7];
int start()
{
      // код доступен только после оплаты
   }
   int counted_bars=IndicatorCounted();
      if(counted_bars<0) return(-1);
      if(counted_bars>0) counted_bars--;
         int limit = MathMin(Bars-counted_bars,Bars-1);
         if (ArrayRange(wrkBuffer,0) != Bars) ArrayResize(wrkBuffer,Bars);

   for(int i=limit, r=Bars-i-1; i>=0; i--,r++)
   {
      upBuffer[i]     = EMPTY_VALUE;
      dnBuffer[i]     = EMPTY_VALUE;
      wrkBuffer[r][0] = High[i]-Low[i];
      wrkBuffer[r][2] = wrkBuffer[r][0];
      int k=1; for (; k<avgPeriod && (r-k)>=0; k++) wrkBuffer[r][2] += wrkBuffer[r-k][0];
                                                    wrkBuffer[r][2] /= k;
                                                    wrkBuffer[r][2] *= sensitivity;

         if (i==(Bars-1))
         {
            wrkBuffer[r][1] = 0;
            wrkBuffer[r][3] = Close[i]-wrkBuffer[r][2];
            wrkBuffer[r][4] = Close[i]+wrkBuffer[r][2];
            wrkBuffer[r][5] = Close[i];
            wrkBuffer[r][6] = Close[i];
            continue;
         }
         else
         {
            wrkBuffer[r][1] = wrkBuffer[r-1][1];
            wrkBuffer[r][3] = wrkBuffer[r-1][3];
            wrkBuffer[r][4] = wrkBuffer[r-1][4];
       

Показано первые 50% кода (символов: 2198)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
219,80₽ ≈ $2.69