pinbar detector_5391011682577321310.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «pinbar detector_5391011682577321310.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор предназначен для обнаружения паттернов пин-баров (pinbar) на графиках цен в платформе MetaTrader 5. Он анализирует свечные данные и отображает найденные паттерны в виде стрелок двух цветов: зелёных для восходящих пин-баров и красных для нисходящих. Индикатор использует четыре буфера — два для значений и два для цветовой индикации.
Набор настраиваемых параметров позволяет гибко задавать критерии распознавания паттернов, включая соотношение тела свечи к хвосту, позиционирование тела, глубину предыдущей свечи и минимальную длину хвоста. Доступен режим пользовательской конфигурации, активирующий расширенные параметры настройки.
Индикатор поддерживает три типа уведомлений: всплывающие предупреждения, электронные письма и push-уведомления. Каждый тип оповещения включается отдельным переключателем. Уведомления отправляются при обнаружении пин-бара на последнем завершённом баре.
Настройки программы
| Настройка | Описание |
|---|---|
| BarCount - number of bars to process, 0 = all bars. (BarCount) | Количество баров — Количество баров для обработки; значение 0 означает все бары. |
| ArrowOffset - larger values increase distance from arrows to candles. (ArrowOffset) | Смещение стрелок — Увеличение значения увеличивает расстояние от стрелок до свечей. |
| Enable Alerts (EnableAlerts) | Всплывающие уведомления — Включение всплывающих предупреждений. |
| Enable Email Alerts (set up SMTP in Tools->Options->Emails) (EnableEmailAlerts) | Email-уведомления — Включение электронных писем (настройка SMTP в Сервис→Параметры→Почта). |
| Enable Push Notifications (set up in Tools->Options->Notifications) (EnablePushNotifications) | Push-уведомления — Включение push-уведомлений (настройка в Сервис→Параметры→Уведомления). |
| Use Custom Configuration - if true, apply parameters below: (UseCustomConfig) | Пользовательская конфигурация — Использовать пользовательскую конфигурацию — при значении true применяются параметры ниже. |
| Max ratio of tail body to candle length (CustomMaxTailBodyRatio) | Макс. соотношение тела хвоста — Максимальное соотношение тела хвоста к длине свечи. |
| Position of body in tail candle (e.g., top/bottom 40%) (CustomTailBodyPlacement) | Положение тела в хвостовой свече — Положение тела в хвостовой свече (например, верхняя/нижняя часть в процентах). |
| true = Previous candle direction opposes pattern (CustomPrevCandleOpposite) | Направление свечи противоположно паттерну — true — направление предыдущей свечи должно быть противоположно паттерну. |
| true = Tail candle direction matches pattern (CustomTailSameDirection) | Направление хвоста совпадает с паттерном — true — направление хвостовой свечи должно совпадать с паттерном. |
| true = Tail body is within previous candle body (CustomTailBodyWithinPrevBody) | Тело хвоста внутри тела предыдущей свечи — true — тело хвостовой свечи находится внутри тела предыдущей свечи. |
| Min ratio of previous candle body to its length (CustomPrevCandleMinBodyRatio) | Мин. соотношение тела предыдущей свечи — Минимальное соотношение тела предыдущей свечи к её длине. |
| Min protrusion of tail candle relative to its length (CustomTailProtrusion) | Мин. выступание хвостовой свечи — Минимальное выступание хвостовой свечи относительно её длины. |
| Max ratio of tail body to previous candle body (CustomTailBodyToPrevBody) | Макс. соотношение тел свечей — Максимальное соотношение тела хвостовой свечи к телу предыдущей свечи. |
| Min ratio of tail candle length to previous candle length (CustomTailLengthToPrevLength) | Мин. соотношение длин свечей — Минимальное соотношение длины хвостовой свечи к длине предыдущей свечи. |
| Min depth of previous candle relative to its length (CustomPrevCandleDepth) | Мин. глубина предыдущей свечи — Минимальная глубина предыдущей свечи относительно её длины. |
| Minimum length of tail candle in points (CustomMinTailLength) | Мин. длина хвостовой свечи — Минимальная длина хвостовой свечи в пунктах. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 4 // Utilizes 4 buffers (2 for data, 2 for colors)
#property indicator_plots 2 // Two plots: one for upward pinbars, one for downward pinbars
#property indicator_type1 DRAW_COLOR_ARROW
#property indicator_color1 clrLime
#property indicator_width1 2
#property indicator_label1 "Upward Pinbar"
#property indicator_type2 DRAW_COLOR_ARROW
#property indicator_color2 clrRed
#property indicator_width2 2
#property indicator_label2 "Downward Pinbar"
input int BarCount = 0; // BarCount - number of bars to process, 0 = all bars.
input int ArrowOffset = 5; // ArrowOffset - larger values increase distance from arrows to candles.
input bool EnableAlerts = true; // Enable Alerts
input bool EnableEmailAlerts = false; // Enable Email Alerts (set up SMTP in Tools->Options->Emails)
input bool EnablePushNotifications = false; // Enable Push Notifications (set up in Tools->Options->Notifications)
input bool UseCustomConfig = false; // Use Custom Configuration - if true, apply parameters below:
input double CustomMaxTailBodyRatio = 0.33; // Max ratio of tail body to candle length
input double CustomTailBodyPlacement = 0.4; // Position of body in tail candle (e.g., top/bottom 40%)
input bool CustomPrevCandleOpposite = true; // true = Previous candle direction opposes pattern
input bool CustomTailSameDirection = false; // true = Tail candle direction matches pattern
input bool CustomTailBodyWithinPrevBody = false; // true = Tail body is within previous candle body
input double CustomPrevCandleMinBodyRatio = 0.1; // Min ratio of previous candle body to its length
input double CustomTailProtrusion = 0.5; // Min protrusion of tail candle relative to its length
input double CustomTailBodyToPrevBody = 1; // Max ratio of tail body to previous candle body
input double CustomTailLengthToPrevLength = 0; // Min ratio of tail candle length to previous candle length
input double CustomPrevCandleDepth = 0.1; // Min depth of previous candle relative to its length
input int CustomMinTailLength = 1; // Minimum length of tail candle in points
double UpwardPinbar[];
double UpwardColor[];
double DownwardPinbar[];
double DownwardColor[];
int LastProcessedBars = 0;
double MaxTailBodyRatio = 0.33;
double TailBodyPlacement = 0.4;
bool PrevCandleOpposite = true;
bool TailSameDirection = false;
bool TailBodyWithinPrevBody = false;
double PrevCandleMinBodyRatio = 0.1;
double TailProtrusion = 0.5;
double TailBodyToPrevBody = 1;
double TailLengthToPrevLength = 0;
double PrevCandleDepth = 0.1;
int MinCandleLength = 1;
void OnInit()
{
// код доступен только после оплаты
}
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &Open[],
const double &High[],
const double &Low[],
const double &Close[],
const long &tickvolume[],
const long &volume[],
const int &spread[])
{
// код доступен только после оплаты
}
int BarsToProcess;
double TailLength, TailBody, PrevCandleBody, PrevCandleLength;
ArraySetAsSeries(Open, true);
ArraySetAsSeries(High, true);
ArraySetAsSeries(Low, true);
ArraySetAsSeries(Close, true);
if (LastProcessedBars == rates_total) return rates_total;
BarsToProcess = rates_total - LastProcessedBars;
if ((BarCount > 0) && (BarsToProcess > BarCount)) BarsToProcess = BarCount;
LastProcessedBars = rates_total;
if (BarsToProcess == rates_total) BarsToProcess--;
UpwardPinbar[0] = EMPTY_VALUE;
DownwardPinbar[0] = EMPTY_VALUE;
for (int i = BarsToProcess; i >= 1; i--)
{
UpwardPinbar[i] = EMPTY_VALUE;
DownwardPinbar[i] = EMPTY_VALUE;
if (i == rates_total - 1) continue;
TailLength = High[i] - Low[i];
if (TailLength < MinCandleLength * _Point) continue; // Tail candle too short
if (TailLength == 0) TailLength = _Point;
PrevCandleLength = High[i + 1] - Low[i + 1];
if (PrevCandleLength == 0) PrevCandleLength = _Point;
TailBody = MathAbs(Open[i] - Close[i]);
if (TailBody == 0) TailBody = _Point;
PrevCandleBody = MathAbs(Open[i + 1] - Close[i + 1]);
if (PrevCandleBody == 0) PrevCandleBody = _Point;
if (Показано первые 50% кода (символов: 7348)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.