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

hist_stepma_stoch_kv1_ex_02.mq4

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

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

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

О программе

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

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

НастройкаОписание
PeriodWATR Период WATR — Количество баров, используемых для расчёта взвешенного диапазона цен (WATR), определяющего базовую волатильность.
Kwatr Коэффициент Kwatr — Множитель, применяемый к значению WATR для определения размера шага при расчёте уровней индикатора.
HighLow Режим HighLow — Выбор режима расчёта: при значении 0 используются цены закрытия, при значении 1 — диапазон High/Low для определения уровней.
NumberOfBarsToCalculate Количество баров для расчёта — Максимальное количество баров, обрабатываемых индикатором при каждом обновлении.
Получить полный код

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

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

extern int PeriodWATR=10;
extern double Kwatr=1.0000;
extern int HighLow=0;
extern int NumberOfBarsToCalculate = 500;

double LineMinBuffer[];
double LineMidBuffer[];

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

int start()
  {
      // код доступен только после оплаты
   }
      string short_name;
      short_name = "Max bars to count: |"+(Bars-1)+"| ";
      IndicatorShortName(short_name);

   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;

   double prev_y = 0,prev_b = 0;

   for(shift=NumberOfBarsToCalculate-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==NumberOfBarsToCalculate-1-PeriodWATR) WATRmin=WATR0;
	WATRmin=MathMin(WATR0,WATRmin);

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

	if (HighLow>0)
	  {
	  SmaxMin0=Low[shift]+2*StepSizeMin*Point;
	  SminMin0=High[shift]-2*StepSizeMin*Point;

	  SmaxMax0=Low[shift]+2*StepSizeMax*Point;
	  SminMax0=High[shift]-2*StepSizeMax*Point;

	  SmaxMid0=Low[shift]+2*StepSizeMid*Point;
	  Sm

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

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

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

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

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

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

Стоимость полного кода
363,10₽ ≈ $4.44