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

n_stepma_1.2_email.mq4

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

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

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

О программе

Индикатор рассчитывает волатильностный канал на основе взвешенного диапазона цен (High-Low) за заданный период. Результат отображается в виде трёх нормализованных линий (минимальная, средняя, максимальная) в отдельном подокне графика, а также стрелками вверх и вниз при пересечении сигнальных уровней.

Индикатор поддерживает фильтрацию сигналов по торговым часам: пользователь может задать временной интервал, в рамках которого события считаются актуальными. Также доступны уведомления — отправка электронного письма и воспроизведение звукового файла при подтверждённом пересечении линий.

Расчёт основан на суммировании взвешенных абсолютных разниц между максимумами и минимумами ценовых баров с последующей нормализацией. Параметры периода и коэффициента позволяют настраивать чувствительность канала к изменениям волатильности.

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

НастройкаОписание
PeriodWATR Период расчёта взвешенного диапазона цен — количество баров, участвующих в суммировании взвешенных разниц High-Low.
Kwatr Коэффициент, умножающий рассчитанные значения минимальной и максимальной волатильности для формирования границ канала.
HighLow Режим расчёта: при значении 1 используются цены High и Low как база для определения уровней, при значении 0 — цена Close.
CalculatedBars Ограничение количества баров, участвующих в расчёте индикатора. Если значение превышает доступное число баров или равно нулю, используется текущее количество баров на графике.
UseHourTrade Переключатель фильтрации сигналов по торговым часам. При значении true сигналы обрабатываются только в заданном временном интервале.
FromHourTrade Начальный час торгового временного окна в локальном серверном времени. Используется при включённой фильтрации по часам.
ToHourTrade Конечный час торгового временного окна в локальном серверном времени. Используется при включённой фильтрации по часам.
alert_ON Переключатель уведомлений. При значении true при подтверждённом пересечении сигнальных линий отправляется электронное письмо и воспроизводится звуковой файл.
sond1 Имя звукового файла, который воспроизводится при срабатывании уведомления о пересечении сигнальных линий.
Получить полный код

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

#property indicator_separate_window

#property indicator_buffers 4
#property indicator_color1 Yellow
#property indicator_color2 Aqua
#property indicator_color3 Lime
#property indicator_color4 Red

#property indicator_minimum 0
#property indicator_maximum 1

extern int PeriodWATR=7;
extern double Kwatr=1.0000;
extern int HighLow=0;
extern int CalculatedBars = 500;

extern bool UseHourTrade = false;
extern int FromHourTrade = 8; // FXDD time
extern int ToHourTrade = 19; // FXDD time

extern bool alert_ON=true; // ON=true, OFF=false
extern string sond1 = "alert.wav";

double LineMinBuffer[];
double LineMidBuffer[];
double LineBuyBuffer[];
double LineSellBuffer[];

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

int deinit()
  {

   return(0);
  }

int start()
  {
      // код доступен только после оплаты
   }
   int      i,shift,TrendMin,TrendMax,TrendMid;
   double   SminMin0,SmaxMin0,SminMin1,SmaxMin1,SumRange,dK,WATR0,WATRmax,WATRmin,WATRmid;
   double   SminMax0,SmaxMax0,SminMax1,SmaxMax1,SminMid0,SmaxMid0,SminMid1,SmaxMid1;
   double   linemin,linemax,linemid,Stoch1,Stoch2,bsmin,bsmax;
   static bool turn_alarm = true;

   int StepSizeMin,StepSizeMax,StepSizeMid;
   double min,max,mid,h,l,c;
   int position_ind0=0, position_ind1=0;

   ArrayInitialize(LineBuyBuffer,0);
   ArrayInitialize(LineSellBuffer,0);

   if(CalculatedBars>Bars || CalculatedBars == 0 ) CalculatedBars = Bars;

   for(shift=CalculatedBars-1;shift>=0;shift--){	
	  SumRange=0;
	  for (i=PeriodWATR-1;i>=0;i--){ 
         dK = 1+1.0*(PeriodWATR-i)/PeriodWATR;
         SumRange+= dK*MathAbs(High[i+shift]-Low[i+shift]);
         }
	  WATR0 = SumRange/PeriodWATR;

	  WATRmax=MathMax(WATR0,WATRmax);
	  if (shift==CalculatedBars-1-PeriodWATR) WATRmin=WATR0;
	  WATRmin=MathMin(WATR0,WATRmin);

	  StepSizeMin=MathRound(Kwatr*WATRmin/Point);
	  StepSizeMax=MathRound(Kwatr*WATRmax/Point);
	  StepSizeMid=MathRound(Kwatr*0.5*(WATRmax+WATRmin)/Point);

     min = Kwatr*WATRmin;
     max = Kwatr*WATRmax;
     mid = Kwatr*0.5*(WATRmax+WATRmin);

	  

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

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

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

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

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

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

Стоимость полного кода
436,20₽ ≈ $5.33