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

shi_channel.mq5

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

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

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

О программе

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

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

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

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

НастройкаОписание
AllBars Количество баров, используемых для анализа ценовых экстремумов и построения канала. При значении 0 используется текущее количество баров на графике.
BarsForFract Количество баров для поиска фрактальных экстремумов. Если задано значение 0, период определяется автоматически в зависимости от текущего таймфрейма.
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
double ExtMapBuffer1[];

extern int       AllBars=240;
extern int       BarsForFract=0;
int CurrentBar=0;
double Step=0;
int B1=-1,B2=-1;
int UpDown=0;
double P1=0,P2=0,PP=0;
int i=0,AB=300,BFF=0;
int ishift=0;
double iprice=0;
datetime T1,T2;

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

int deinit()
  {

   return(0);
  }

void DelObj()
{
	ObjectDelete("TL1");
	ObjectDelete("TL2");
	ObjectDelete("MIDL");
}

int start()
  {
      // код доступен только после оплаты
   }
   int    counted_bars=IndicatorCounted();

	if ((AllBars==0) || (Bars<AllBars)) AB=Bars; else AB=AllBars; //AB-?????????? ????????????? ?????
	if (BarsForFract>0) 
		BFF=BarsForFract; 
	else
	{
		switch (Period())
		{
			case 1: BFF=12; break;
			case 5: BFF=48; break;
			case 15: BFF=24; break;
			case 30: BFF=24; break;
			case 60: BFF=12; break;
			case 240: BFF=15; break;
			case 1440: BFF=10; break;
			case 10080: BFF=6; break;
			default: DelObj(); return(-1); break;
		}
	}
	CurrentBar=2; //??????? ? ???????? ????, ????? ??????? "??????????
	B1=-1; B2=-1; UpDown=0;
	while(((B1==-1) || (B2==-1)) && (CurrentBar<AB))
	{

		if((UpDown<1) && (CurrentBar==Lowest(Symbol(),Period(),MODE_LOW,BFF*2+1,CurrentBar-BFF))) 
		{
			if(UpDown==0) { UpDown=-1; B1=CurrentBar; P1=Low[B1]; }
			else { B2=CurrentBar; P2=Low[B2];}
		}
		if((UpDown>-1) && (CurrentBar==Highest(Symbol(),Period(),MODE_HIGH,BFF*2+1,CurrentBar-BFF))) 
		{
			if(UpDown==0) { UpDown=

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

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

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

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

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

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

Стоимость полного кода
270,90₽ ≈ $3.31