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

candlestick_alerts_set 3.mq5

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

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

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

О программе

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

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

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

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

НастройкаОписание
lines Переключатель отображения трендовых линий для подтверждённых паттернов
step Число баров, начиная с которых производится расчёт паттернов
Dell Переключатель удаления устаревших графических объектов при движении цены
___ Текстовый параметр — метка группы настроек раздела уведомлений
displayAlert Переключатель отображения всплывающих уведомлений прямо на графике при срабатывании паттерна
alertsMessage Переключатель всплывающих сообщений при срабатывании паттерна
alertsSound Переключатель воспроизведения звукового сигнала при срабатывании паттерна
alertsNotify Переключатель отправки push-уведомлений при срабатывании паттерна
alertsEmail Переключатель отправки электронной почты при срабатывании паттерна
alertsSoundName Имя звукового файла для воспроизведения оповещения
arrowDisplacement Смещение стрелок по вертикали относительно цены обнаруженного паттерна
textDisplacement Смещение текстовых меток по вертикали относительно цены обнаруженного паттерна
_______Set_Color_Size_Bull Метка группы настроек цвета для бычьих паттернов
ColorBullCross Цвет отображения бычьего кросс-паттерна
ColorArrowsBullCross Цвет стрелок для бычьего кросс-паттерна
ColorBullEngulf Цвет отображения бычьего паттерна поглощения
ColorBullHarami Цвет отображения бычьего паттерна харами
_______Set_Color_Size_Bear Метка группы настроек цвета для медвежьих паттернов
ColorBearCross Цвет отображения медвежьего кросс-паттерна
ColorArrowsBearCross Цвет стрелок для медвежьего кросс-паттерна
ColorBearEngulf Цвет отображения медвежьего паттерна поглощения
ColorBearHarami Цвет отображения медвежьего паттерна харами
_______Set_Color_Other Метка группы настроек цвета для прочих паттернов
ColorMorningStar Цвет отображения утренней звезды
ColorHammer Цвет отображения молота
ColorEveningStar Цвет отображения вечней звезды
Size Размер шрифта текстовых меток паттернов на графике
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red

extern bool   lines              = true;
extern int    step               = 500;
extern bool   Dell               = true;
extern string ___                = "Alerts";
extern bool   displayAlert       = false;
extern bool   alertsMessage      = false;
extern bool   alertsSound        = true;
extern bool   alertsNotify       = false;
extern bool   alertsEmail        = false;
extern string alertsSoundName    = "alert1.wav";
extern double arrowDisplacement  = 1.0;
extern double textDisplacement   = 1.5;

extern string _______Set_Color_Size_Bull;

extern color ColorBullCross=clrAqua;
extern color ColorArrowsBullCross=clrAqua;
extern color ColorBullEngulf=clrDeepSkyBlue;
extern color ColorBullHarami=clrLime;

extern string _______Set_Color_Size_Bear;

extern color ColorBearCross       =clrCrimson;
extern color ColorArrowsBearCross =clrCrimson;
extern color ColorBearEngulf      =clrCrimson;
extern color ColorBearHarami      =clrCrimson;

extern string _______Set_Color_Other;

extern color  ColorMorningStar    =clrAqua;
extern color  ColorHammer         =clrOrange;
extern color  ColorEveningStar    =clrMagenta;
 color  ColorBullPierce           =clrAqua;
extern int Size=10;

double ExtMapBuffer1[];
double ExtMapBuffer2[];

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

int deinit()
  {

 ObjectsDeleteAll(0,OBJ_TEXT);
ObjectsDeleteAll(0,OBJ_ARROW);  
ObjectsDeleteAll(0,OBJ_TREND);  

   return(0);
  }

void SetArrow(int sh, datetime tm, double pr, int cod,color clr)
{
	ObjectCreate("Arrow-"+sh,OBJ_ARROW,0,tm,pr);
	ObjectSet("Arrow-"+sh,OBJPROP_ARROWCODE,cod);
	ObjectSet("Arrow-"+sh,OBJPROP_COLOR,clr);
}
void SetArrow1(int sh, datetime tm, double pr, int cod,color clr)
{
	ObjectCreate("Arrow+"+sh,OBJ_ARROW,0,tm,pr);
	ObjectSet("Arrow+"+sh,OBJPROP_ARROWCODE,cod);
	ObjectSet("Arrow+"+sh,OBJPROP_COLOR,clr);
}

void SetText(int sh,datetime tm,double pr,string text,color clr)
{
	ObjectCreate("x"+sh,OBJ_TEXT,0,tm,pr);
	ObjectSetText("x"+sh,text);
	ObjectSet("x"+sh,OBJPROP_COLOR,clr);
	ObjectSet("x"+sh,OBJPROP_FONTSIZE,Size);
}
void SetText1(int sh,datetime tm,double pr,string text,color clr)
{
	ObjectCreate("y"+sh,OBJ_TEXT,0,tm,pr);
	ObjectSetText("y"+sh,text);
	ObjectSet("y"+sh,OBJPROP_COLOR,clr);
	ObjectSet("y"+sh,OBJPROP_FONTSIZE,Size);

}

void Setline(int sh,datetime tm,double pr,datetime tm1,double pr1, color clr)
{
	ObjectCreate("-"+sh,OBJ_TREND,0,tm,pr,tm1,pr1,clr);
	ObjectSet("-"+sh,7,STYLE_SOLID);
	ObjectSet("-"+sh,10,false);
	ObjectSet("-"+sh,6,Yellow);
}
void Setline1(int sh,datetime tm,double pr,datetime tm1,double pr1, color clr)
{
	ObjectCreate("+"+sh,OBJ_TREND,0,tm,pr,tm1,pr1,clr);
	ObjectSet("+"+sh,7,STYLE_SOLID);
	ObjectSet("+"+sh,8,false);
	ObjectSet("+"+sh,6,LightBlue);
}

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

	int myBars=0, StartBar=0;//, Kedip(false);
	int shift=0, shift1=0, shift2=0, shift3=0;
	bool BullEngulf=False, MorningStar=False, BullPierce=False, Hammer=False,Name=false,Arrow=false;
	bool BearEngulf=False, EveningStar=False, DarkCloud=False, Shooter=False,Name1=false,Arrow1=false;
	bool BullHarami=False, BearHarami=false, BullCross=false, BearCross=false,up=false,down=false; 
	int limit,n,a,b,x, doji=false; 
  	double  l[1000] ,h[1000];

	int p3[100],x1[100];
p3[1]=0;	
	if(myBars!=Bars) 
	{ 
		myBars=Bars; 
	}
   limit=step;//Bars-counted_bars;
	for(shift=limit;shift>=0;shift--) 
	{

		shift1=shift+1;
		shift2=shift+2;
		shift3=shift+3;

		if ((iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift)>iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift1)) &&
		(iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift1)>iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift2)) &&
		(iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift2)>iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift3))) up=true;
		else up=false;
		if ((iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift)<iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift1)) &&
		(iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift1)<iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift2)) &&
		(iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift2)<iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,shift3))) down=true;
		else down=false;

        if (5    == Period()){a=7;  b=3;} //a=text b= arrows
        if (15   == Period()){a=15; b=5;}
        if (60   == Period()){a=25; b=15;}
        if (240  == Period()){a=30; b=20;}
        if (1440 == Period()){a=35; b=25;}

		if ((down)&&(Open[shift2]>Close[shift2]) && (Open[shift1]>Close[shift2]) && (Close[shift1]<Open[shift2]) &&
		      (Close[shift1]>Open[shift1]))
		      BullHarami=true;
		  else BullHarami=false;

		if ((Open[shift2]>Close[shift2]) && (Open[shift1]>Close[shift2])&& (Open[shift1]<Open[shift2])&& (Close[shift1]>Open[shift2]))
		   BullCross=true;
		   else BullCross=false;

		if((Close[shift2]<Open[shift2]) && (Open[shift1]<Close[shift2]) && //| l[shift1] < l[shift2]) & 
				(Close[shift1]>Open[shift2])) 
			BullEngulf=True;
		else 
			BullEngulf=False;

		if(!BullEngulf)
		{
			if((Close[shift2]<Open[shift2]) && (Close[shift1]>Open[shift1]) && 
					((Open[shift1]<Close[shift2]) /*|| (Low[shift1]<Low[shift2])*/) && 
					(Close[shift1]>Close[shift2]+((Open[shift2]-Close[shift2])/2))) 
				BullPierce=True;
			else 
				BullPierce=False;
		}
		else 
		{
			BullPierce=False;
		}

		if((Close[shift3]<Open[shift3]) && (Open[shift2]<Close[shift3]) && (Close[shift2]<Close[shift3]) &&
				((Open[shift1]>Close[shift2]) && (Open[shift1]>Open[shift2])) && (Close[shift1]>=Close[shift3]))
			MorningStar=True;
		else
			MorningStar=False;

		if((Open[shift1]-Low[shift1]>MathMax(High[shift1]-Close[shift1],Close[shift1]-Open[shift1])*3) &&
		   (Close[shift1]-Low[shift1]>MathMax(High[shift1]-Close[shift1],Close[shift1]-Open[shift1])*3))
			Hammer=True;
		else 
		 	Hammer=False;

		if ((up)&&(Open[shift2]<Close[shift2]) && (Open[shift1]<Close[shift2]) && (Close[shift1]>Open[shift2]) &&
		      (Close[shift1]<Open[shift1]))
		      BearHarami=true;
		  else BearHarami=false;

		if ((Open[shift2]<Close[shift2]) && (Open[shift1]<Close[shift2])&&(Open[shift1]>Open[shift2])&& (Close[shift1]<Open[shift2]))
		   BearCross=true;
		   else BearCross=false;

		if((Close[shift2]>Open[shift2]) && (Close[shift1]<Open[shift1]) && (Open[shift1]>Close[shift2]) &&
				((Close[shift1]<Open[shift2]) ))
			BearEngulf=True;
		else
			BearEngulf=False;

		if(!BearEngulf)
		{
			if((Close[shift2]>Open[shift2]) && ((Open[shift1]>Close[shift2]) /*|| (High[shift1]>High[shift2]*/) &&
					(Close[shift1]<Close[shift2]-((Close[shift2]-Open[shift2])/2)))
				DarkCloud=True;
			else 
				DarkCloud=False;
		}
		else 
		{
			DarkCloud=False;
		}

		if((Close[shift3]>Open[shift3]) && (Open[shift2]>Close[shift3]) && (Close[shift2]>Close[shift3]) && 
				((Open[shift1]<Close[shift2]) && (Open[shift1]<Open[shift2])) && (Close[shift1]<Close[shift3]))
			EveningStar=True;
		else 
			EveningStar=False;

		if((up)&&(High[shift1]-Open[shift1]>MathMax(Close[shift1]-Low[shift1],Open[shift1]-Close[shift1])*3)&&
		   (High[shift1]-Close[shift1]>MathMax(Close[shift1]-Low[shift1],Open[shift1]-Close[shift1])*3)) 
			Shooter=True;
		else
			Shooter=False;

			if( (BullEngulf || BullPierce || MorningStar || BullHarami || BullCross ) && 
				(Close[shift]>Close[shift1])&& Close[shift]>Open[shift1]){

	

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

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

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

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

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

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

Стоимость полного кода
1 287,20₽ ≈ $15.73