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

nrpusupertrendxarrows_mtfvalerts @fxsignalspot.com.mq5

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

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

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

О программе

Индикатор реализует систему SuperTrend на основе ATR и скользящей средней, отображая верхнюю и нижнюю полосы на графике. При смене направления тренда индикатор рисует стрелки-стрелки вверх и вниз, сигнализируя о развороте. Поддерживает работу на различных таймфреймах, включая мультитаймфреймный режим через специальные строковые значения.

Индикатор имеет гибкую систему уведомлений: всплывающие сообщения, push-уведомления, звуковые сигналы и email-рассылки. Уведомления срабатывают при смене направления тренда на указанной свече. Визуальные параметры отображения (толщина стрелок и линий) настраиваются отдельно.

Внутренняя логика использует 5 буферов: два буфера стрелок для сигналов разворота, два буфера для верхней и нижней полос SuperTrend и один буфер направления тренда. Расчёт выполняется на каждом тике с учётом уже отрисованных баров.

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

НастройкаОписание
TimeFrame Таймфрейм для отображения индикатора. Допустимые значения: M1, M5, M15, M30, H1, H4, D1, W1, MN, а также специальные строки calculateValue и returnBars для мультитаймфреймного режима
Nbr_Periods Количество периодов для расчёта индикатора ATR (средний истинный диапазон)
Multiplier Множитель ATR, определяющий ширину полос SuperTrend
MA_Period Период скользящей средней, используемой в расчёте полос SuperTrend (медианная цена)
alertsOn Включает или отключает систему уведомлений индикатора
alertsOnCurrent Определяет, на какой свече срабатывают уведомления: текущая (0) или предыдущая (1)
alertsMessage Включает всплывающие сообщения на графике при смене направления тренда
alertsNotification Включает push-уведомления при смене направления тренда
alertsSound Включает звуковой сигнал при смене направления тренда
alertsEmail Включает отправку уведомлений по электронной почте при смене направления тренда
arrowthickness Толщина стрелок, отображающих сигналы разворота тренда
linethickness Толщина линий полос SuperTrend
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 clrYellow
#property indicator_color2 clrMagenta

extern string TimeFrame          = "Current time frame";
extern int    Nbr_Periods        = 10;
extern double Multiplier         = 1.7;
extern int MA_Period             = 1;

extern bool   alertsOn           = false;
extern bool   alertsOnCurrent    = false;
extern bool   alertsMessage      = false;
extern bool   alertsNotification = false;
extern bool   alertsSound        = false;
extern bool   alertsEmail        = false;

extern int    arrowthickness     = 3;
extern int    linethickness      = 1;

double CrossUp[];
double CrossDn[];
double Up[];
double Dn[];
double Direction[];

string indicatorFileName;
bool   returnBars;
bool   calculateValue;
int    timeFrame;

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

int deinit() 
{ 
return(0); 
}

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 (returnBars) { CrossUp[0] = limit+1; return(0); }

   if (calculateValue || timeFrame==Period())
   {
      for(int i=limit; i>=0; i--)
      {
         double atr    = iATR(NULL,0,Nbr_Periods,i);
         double cprice = Close[i];
         double mprice = iMA(NULL,0,MA_Period,0,MODE_SMA,PRICE_MEDIAN,i);
                Up[i]  = mprice+Multiplier*atr;
                Dn[i]  = mprice-Multiplier*atr;

         Direction[i] = Direction[i+1];
            if (cprice > Up[i+1])  Direction[i] =  1;
            if (cprice < Dn[i+1])  Direction[i] = -1;
            if (Direction[i] > 0) { Dn[i] = MathMax(Dn[i],Dn[i+1]); }
            else                  { Up[i] = MathMin(Up[i],Up[i+1]); }

            CrossUp[i] = EMPTY_VALUE;
            CrossDn[i] = EMPTY_VALUE;
            if (Direction[i] != Direction[i+1])
            if (Direction[i] == 1)
                  CrossUp[i] = Low[i] - iATR(NULL,0,20,i)/2.0;
            else  CrossDn[i] = High[i]+ iATR(

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

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

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

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

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

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

Стоимость полного кода
399,40₽ ≈ $4.88