pattern alert.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «pattern alert.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 4, предназначенный для автоматического обнаружения и визуального отображения свечных паттернов на графике. Поддерживает распознавание нескольких типов разворотных и продолжительных моделей, включая паттерны поглощения, звёздные паттерны и паттерны клещей. Обнаруженные паттерны отображаются в виде текстовых меток и стрелок на графике цены.
При обнаружении нового паттерна индикатор выводит информационное сообщение в журнал терминала и отправляет системное уведомление. Отображение текстовых подписей и выбор отображаемых типов паттернов настраиваются через параметры индикатора. Позиции для меток и стрелок рассчитываются с учётом текущего таймфрейма.
Настройки программы
| Настройка | Описание |
|---|---|
| Show_Text_Labels | Показать текстовые метки — Включает или отключает отображение текстовых подписей с названиями обнаруженных паттернов на графике. |
| Show_Bearish_Engulfing_Patterns | Показать медвежьи паттерны поглощения — Включает или отключает обнаружение и отображение медвежьего паттерна поглощения. |
| Show_Bullish_Engulfing_Patterns | Показать бычьи паттерны поглощения — Включает или отключает обнаружение и отображение бычьего паттерна поглощения. |
| Show_Star_Patterns | Показать звёздные паттерны — Включает или отключает обнаружение и отображение звёздных паттернов, включая утреннюю и вечерную звезду и их разновидности с доджи. |
| Show_Tweezer_Bottoms | Показать паттерны клещей вниз — Включает или отключает обнаружение и отображение паттерна клещей на дне (совпадение минимумов двух свечей). |
| Show_Tweezer_Tops | Показать паттерны клещей вверх — Включает или отключает обнаружение и отображение паттерна клещей на вершине (совпадение максимумов двух свечей). |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Red
extern bool Show_Text_Labels = true;
extern bool Show_Bearish_Engulfing_Patterns = true;
extern bool Show_Bullish_Engulfing_Patterns = true;
extern bool Show_Star_Patterns = true;
extern bool Show_Tweezer_Bottoms = true;
extern bool Show_Tweezer_Tops = true;
double ExtMapBuffer1[];
double ExtMapBuffer2[];
string PatternText[2000];
int init() {
// код доступен только после оплаты
}
int deinit() {
ObjectsDeleteAll(0, OBJ_TEXT);
return(0);
}
int start(){
// код доступен только после оплаты
}
Comment("Pattern Alert v1.1 Official");
static datetime prevtime = 0;
int shift;
int shift1;
int shift2;
int shift3;
string pattern;
int setPattern = 0;
int alert = 0;
int arrowShift;
int textShift;
if(prevtime == Time[0]) {
return(0);
}
prevtime = Time[0];
switch (Period()) {
case 1:
arrowShift = 1;
textShift = 3;
break;
case 5:
arrowShift = 3;
textShift = 8;
break;
case 30:
arrowShift = 7;
textShift = 13;
break;
case 15:
arrowShift = 7;
textShift = 15;
break;
case 60:
arrowShift = 9;
textShift = 25;
break;
case 1440:
arrowShift = 3;
textShift = 7;
break;
case 10080:
arrowShift = 95;
textShift = 235;
break;
case 43200:
arrowShift = 150;
textShift = 260;
break;
}
for (int j = 0; j < Bars; j++) {
PatternText[j] = j;
}
for (shift = 0; shift < Bars; shift++) {
shift1 = shift + 1;
shift2 = shift + 2;
shift3 = shift + 3;
if (Show_Bearish_Engulfing_Patterns == true) {
if ((Close[shift2] > Open[shift2]) && (Open[shift1] > Close[shift2]) && (Close[shift1] < Open[shift2])) {
if (Show_Text_Labels) {
ObjectCreate(PatternText[shift], OBJ_TEXT, 0, Time[shift1], High[shift1] + (Point * textShift));
ObjectSetText(PatternText[shift], "Bearish Engulfing", 9, "Times New Roman", Red);
}
ExtMapBuffer1[shift1] = High[shift1] + (Point * arrowShift);
if (setPattern == 0) {
pattern="Bearish Engulfing Pattern";
setPattern = 1;
alert = 1;
}
continue;
}
}
if (Show_Bullish_Engulfing_Patterns == true) {
if ((Close[shift2] < Open[shift2]) && (Open[shift1] < Close[shift2]) && (Close[shift1] > Open[shift2])) {
if (Show_Text_Labels == true) {
ObjectCreate(PatternText[shift], OBJ_TEXT, 0, Time[shift1], High[shift1] + (Point * textShift));
ObjectSetText(PatternText[shift], "Bullish Engulfing", 9, "Times New Roman", Red);
}
ExtMapBuffer1[shift1] = High[shift1] + (Point * arrowShift);
if (setPattern == 0) {
pattern="Bullish Engulfing Pattern";
setPattern = 1;
alert = 1;
}
continue;
}
}
if ((Close[2] > Open[2]) && (Open[1] > High[2]) && (Close[1] < ((Open[2] + Close[2]) / 2)) && (Close[1] > Open[2])) {
if (Show_Text_Labels == true) {
ObjectCreate(PatternText[shift], OBJ_TEXT, 0, Time[shift1], High[shift1] + (Point * textShift));
ObjectSetText(PatternText[shift], "Dark Cloud Cover", 9, "Times New Roman", Red);
}
ExtMapBuffer1[shift1] = High[shift1] + (Point * arrowShift);
if (setPattern == 0) {
pattern="Dark Cloud Cover";
setPattern = 1;
alert = 1;
}
continue;
}
if (Show_Star_Patterns == true) {
if (
(Close[3] > Open[3]) //Bullish candle
&& (Open[2] == Close[2]) && (Low[2] < Open[2]) && (High[2] > Open[2]) // Doji
&& (Low[2] >= Close[3]) // Doji close higher or equal to Bullish close
&& (High[1] <= Close[2]) && (Open[1] <= Low[2]) && (Open[1] >= Close[3]) &&
(Close[1] < ((Open[3] + Close[3]) / 2)) && (Close[1] > Open[3]) // Bearish candle in pattern
) {
if (Show_Text_Labels == true) {
ObjectCreate(PatternText[shift], OBJ_TEXT, 0, Time[shift1], High[shift1] + (Point * textShift));
Показано первые 50% кода (символов: 6170)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.