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

hist_stepma_stoch_kv1_ex_03.mq4

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

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

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

О программе

Данный файл является пользовательским индикатором для MetaTrader 4, который отображает в отдельном подокне две гистограммные линии. Индикатор рассчитывает значения на основе заданного количества баров и параметров сглаживания. В коде используются два буфера, которые выводятся как гистограмма красного и зелёного цветов. Расчёт выполняется в функции start(), которая вызывается на каждом новом баре. Индикатор не содержит торговых операций и не является советником. Все входные параметры задаются через extern-переменные. Подтверждённых публичных названий продукта в исходном коде нет, поэтому product_name оставлен пустым.

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

НастройкаОписание
PeriodWATR Период WATR — Целое число, задающее период усреднения для расчёта диапазона волатильности.
Kwatr Коэффициент шага — Числовой коэффициент, влияющий на масштаб шага при построении линий индикатора.
HighLow Использовать 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 theDelta;

   double prev_y = 0,prev_b = 0;

   for(shift=NumberOfBarsToCalculate-1;shift>=0;shift--)
   {	
	SumRange=0;

	Stoch1 = 0.0;
	Stoch2 = 0.0;

	for (i=PeriodWATR-1;i>=0;i--)
	    { 
       dK = 1+1.0*(PeriodWATR-i)/PeriodWATR;

       SumRange+= dK*(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;
	

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

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

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

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

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

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

Стоимость полного кода
369,30₽ ≈ $4.51