Pattern Recognition
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «pattern_recognition.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Pattern Recognition — это пользовательский индикатор для MetaTrader 5, предназначенный для автоматического обнаружения классических свечных паттернов на ценовых графиках. Индикатор анализирует динамику ценовых баров и выявляет как медвежьи, так и бычьи модели, сигнализирующие о возможных разворотных ситуациях на рынке.
Обнаруженные паттерны отображаются на графике в виде текстовых меток и стрелочных маркеров. Индикатор использует два буфера для отрисовки стрелок: один для сигналов вверх, другой — для сигналов вниз. Текстовые объекты размещаются рядом с соответствующими свечами для наглядной идентификации паттерна.
Индикатор предоставляет гибкую настройку отображения каждого типа паттерна через отдельные переключатели. Также предусмотрена возможность включения уведомлений при обнаружении нового паттерна на текущем баре. Индикатор работает на всех доступных таймфреймах платформы MetaTrader 5.
Настройки программы
| Настройка | Описание |
|---|---|
| Show_Alert | Показывать уведомления — Включает или отключает отправку уведомлений при обнаружении нового паттерна на текущем баре. |
| Display_Bearish_Engulfing | Отображение медвежьего поглощения — Включает или отключает отображение паттерна медвежьего поглощения на графике. |
| Display_Three_Outside_Down | Отображение три снаружи вниз — Включает или отключает отображение паттерна три снаружи вниз на графике. |
| Display_Three_Inside_Down | Отображение три внутри вниз — Включает или отключает отображение паттерна три внутри вниз на графике. |
| Display_Dark_Cloud_Cover | Отображение тёмного облачного покрова — Включает или отключает отображение паттерна тёмного облачного покрова на графике. |
| Display_Three_Black_Crows | Отображение трёх чёрных ворон — Включает или отключает отображение паттерна трёх чёрных ворон на графике. |
| Display_Bullish_Engulfing | Отображение бычьего поглощения — Включает или отключает отображение паттерна бычьего поглощения на графике. |
| Display_Three_Outside_Up | Отображение три снаружи вверх — Включает или отключает отображение паттерна три снаружи вверх на графике. |
| Display_Three_Inside_Up | Отображение три внутри вверх — Включает или отключает отображение паттерна три внутри вверх на графике. |
| Display_Piercing_Line | Отображение проникающей линии — Включает или отключает отображение паттерна проникающей линии на графике. |
| Display_Three_White_Soldiers | Отображение трёх белых солдат — Включает или отключает отображение паттерна три белых солдата на графике. |
| Display_Stars | Отображение звёздных паттернов — Включает или отключает отображение звёздных паттернов (вечерняя и утренняя звезда) на графике. |
| Display_Harami | Отображение харими — Включает или отключает отображение паттернов харими (как медвежьих, так и бычьих) на графике. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Red
extern bool Show_Alert = true;
extern bool Display_Bearish_Engulfing = true;
extern bool Display_Three_Outside_Down = true;
extern bool Display_Three_Inside_Down = true;
extern bool Display_Dark_Cloud_Cover = true;
extern bool Display_Three_Black_Crows = true;
extern bool Display_Bullish_Engulfing = true;
extern bool Display_Three_Outside_Up = true;
extern bool Display_Three_Inside_Up = true;
extern bool Display_Piercing_Line = true;
extern bool Display_Three_White_Soldiers = true;
extern bool Display_Stars = true;
extern bool Display_Harami = true;
double upArrow[];
double downArrow[];
string PatternText[5000];
int init() {
// код доступен только после оплаты
}
int deinit() {
ObjectsDeleteAll(0, OBJ_TEXT);
return(0);
}
int start(){
// код доступен только после оплаты
}
double Range, AvgRange;
int counter, setalert;
static datetime prevtime = 0;
int shift;
int shift1;
int shift2;
int shift3;
string pattern, period;
int setPattern = 0;
int alert = 0;
int arrowShift;
int textShift;
double O, O1, O2, C, C1, C2, L, L1, L2, H, H1, H2;
if(prevtime == Time[0]) {
return(0);
}
prevtime = Time[0];
switch (Period()) {
case 1:
period = "M1";
break;
case 5:
period = "M5";
break;
case 15:
period = "M15";
break;
case 30:
period = "M30";
break;
case 60:
period = "H1";
break;
case 240:
period = "H4";
break;
case 1440:
period = "D1";
break;
case 10080:
period = "W1";
break;
case 43200:
period = "MN";
break;
}
for (int j = 0; j < Bars; j++) {
PatternText[j] = "pattern-" + j;
}
for (shift = 0; shift < Bars; shift++) {
setalert = 0;
counter=shift;
Range=0;
AvgRange=0;
for (counter=shift ;counter<=shift+9;counter++) {
AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
}
Range=AvgRange/10;
shift1 = shift + 1;
shift2 = shift + 2;
shift3 = shift + 3;
O = Open[shift1];
O1 = Open[shift2];
O2 = Open[shift3];
H = High[shift1];
H1 = High[shift2];
H2 = High[shift3];
L = Low[shift1];
L1 = Low[shift2];
L2 = Low[shift3];
C = Close[shift1];
C1 = Close[shift2];
C2 = Close[shift3];
if ((C1>O1)&&(O>C)&&(O>=C1)&&(O1>=C)&&((O-C)>(C1-O1))) {
if (Display_Bearish_Engulfing == true) {
ObjectCreate(PatternText[shift], OBJ_TEXT, 0, Time[shift1], High[shift1] + Range*1.5);
ObjectSetText(PatternText[shift], "Bearish Engulfing", 9, "Times New Roman", Red);
downArrow[shift1] = High[shift1] + Range*0.5;
}
if (setalert == 0 && Show_Alert == true) {
pattern = "Bearish Engulfing Pattern";
setalert = 1;
}
}
if ((C2>O2)&&(O1>C1)&&(O1>=C2)&&(O2>=C1)&&((O1-C1)>(C2-O2))&&(O>C)&&(C<C1)) {
if (Display_Three_Outside_Down == true) {
ObjectCreate(PatternText[shift], OBJ_TEXT, 0, Time[shift1], Low[shift1] - Range*1.5);
ObjectSetText(PatternText[shift], "Three Oustide Down", 9, "Times New Roman", Red);
upArrow[shift1] = Low[shift1] - Range*0.5;
}
if (setalert == 0 && Show_Alert == true) {
pattern="Three Oustide Down Pattern";
setalert = 1;
}
}
if ((C1>O1)&&(((C1+O1)/2)>C)&&(O>C)&&(O>C1)&&(C>O1)&&((O-C)/(0.001+(H-L))>0.6)) {
if (Display_Dark_Cloud_Cover == true) {
ObjectCreate(PatternText[shift], OBJ_TEXT, 0, Time[shift1], High[shift1] + Range*1.5);
ObjectSetText(PatternText[shift], "Dark Cloud Cover", 9, "Times New Roman", Red);
downArrow[shift1] = High[shift1] + Range*0.5;
}
if (setalert == 0 && Show_Alert == true) {
pattern="Dark Cloud Cover Pattern";
setalert = 1;
}
}
if ((C2>O2)&&((C2-O2)/(0.001+H2-L2)>0.6)&&(C2<O1)&&(C1>O1)&&((H1-L1)>(3*(C1-O1)))&&(O>C)&&(O<O1)) {
if (Display_Stars == true) {
ObjectCreate(PatternText[shift], OBJ_TEXT, 0, Time[shift1], High[shift1] + Range*1.5);
ObjectSetText(PatternText[shift], "Evening Doji Star", 9, "Times New Roman", Red);
downArrow[shift1] = High[shift1] + Range*0.5;
}
if (setalert == 0 && Show_Alert == true) {
pattern="Evening Doji Star Pattern";
setalert = 1;
}
}
if ((C1>O1)&&(O>C)&&(O<=C1)&&(O1<=C)&&((O-C)<(C1-O1))) {
if (Display_Harami == true) {
ObjectCreate(PatternText[shift], OBJ_TEXT, 0, Time[shift1], High[shift1] + Range*1.5);
ObjectSetText(PatternText[shift], "Bearish Harami", 9, "Times New Roman", Red);
downArrow[shift1] = High[shift1] + Range*0.5;
}
if (shift == 0 && Show_Alert == true) {
pattern="Bearish Harami Pattern";
setalert = 1;
}
}
if ((C2>O2)&&(O1>C1)&&(O1<=C2)&&(O2<=C1)&&((O1-C1)<(C2-O2))&&(O>C)&&(C<C1)&&(O<O1)) {
if (Display_Three_Inside_Down == true) {
Показано первые 50% кода (символов: 7850)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.