Группа "Стол заказов MQL"

Рейтинг 2162



РЕКОМЕНДУЮ



индикатор отклонения от зиг зага

Здравствуйте.
ZigZagDeviation.ex5 (21 Kb) ZigZagDeviation.mq5 (39 Kb)

Спецификация индикатора ZigZag Deviation для MetaTrader 5
???? Общая информация
Название: ZigZag Deviation

Тип: Кастомный технический индикатор

Версия: 2.20

Автор: Ваш Name

Назначение: Анализ «толщины» тренда через измерение отклонения цены от линии ZigZag

???? Основная концепция
Индикатор измеряет перпендикулярное расстояние от текущей цены до линии тренда, построенной между последними двумя точками ZigZag. Это позволяет:

Количественно оценивать «толщину» или «расхождение» тренда

Определять силу и стабильность тренда

Выявлять потенциальные точки разворота

???? Визуальное представление
Индикатор отображается в отдельном подокне (как индикатор объемов) и состоит из 5 визуальных элементов:

1. Deviation Line (Синяя линия)
text
Текущее нормализованное отклонение
Диапазон: [-1.5, 1.5]
Цвет: clrBlue
Толщина: 2
2. Max Deviation Line (Красная пунктирная линия)
text
Максимальное зафиксированное отклонение
Диапазон: [-1.5, 1.5]
Цвет: clrRed
Стиль: STYLE_DOT
Толщина: 2
3. Trend Strength Histogram (Золотая гистограмма)
text
Сила тренда (чем выше, тем сильнее тренд)
Диапазон: [0, 1.2]
Цвет: clrGold (меняется на clrLime/clrMagenta)
Толщина: 3
4. Trend Strength Line (Оранжевая линия)
text
Сглаженное значение силы тренда
Цвет: clrDarkOrange
Толщина: 1
5. Zero Line (Серая пунктирная линия)
text
Нулевой уровень
Цвет: clrGray
Стиль: STYLE_DOT
⚙️ Параметры настройки
Параметры ZigZag
Параметр Значение по умолчанию Описание Диапазон
ExtDepth 12 Глубина поиска экстремумов 1-100
ExtDeviation 100 Минимальное отклонение в пунктах 1-1000
ExtBackstep 3 Шаг назад 1-10
MinTrendLength 100.0 Минимальная длина тренда в пунктах 10-1000
Параметры отображения
Параметр Значение по умолчанию Описание
ShowDeviation true Показывать линию отклонения
ShowMaxDeviation true Показывать максимальное отклонение
ShowZigZag false Показывать ZigZag в подокне
ShowPerpendicular false Рисовать перпендикулярные линии на графике
AutoScale true Автоматическое масштабирование
ManualScale 100.0 Ручной масштаб (если AutoScale=false)
Цветовые настройки
Параметр Значение по умолчанию Описание
DeviationColor clrBlue Цвет линии отклонения
MaxDevColor clrRed Цвет максимального отклонения
ZZColor clrGreen Цвет ZigZag
TrendUpColor clrLime Цвет гистограммы при положительном отклонении
TrendDnColor clrMagenta Цвет гистограммы при отрицательном отклонении
LineWidth 2 Толщина линий
Параметры расчета
Параметр Значение по умолчанию Описание
PriceType PRICE_CLOSE Тип цены для расчетов
???? Математические формулы
1. Расчет отклонения (в пунктах)
text
deviation = (P_current — P_ideal) / Point
где:

P_current — текущая цена

P_ideal — цена на линии тренда в текущий момент времени

Point — размер пункта инструмента

2. Линия тренда (линейная интерполяция)
text
P_ideal = k * t_current + b
k = (P2 — P1) / (t2 — t1)
b = P1 — k * t1
где:

P1, P2 — цены в точках ZigZag

t1, t2 — время точек ZigZag

t_current — текущее время

3. Нормализация для отображения
text
if AutoScale = true:
scale = CalculateAutoScale()
else:
scale = ManualScale

DeviationBuffer = deviation / scale
4. Расчет силы тренда
text
norm_dev = deviation / max_deviation
strength = 1.0 — MathAbs(norm_dev)
TrendStrength = strength * 1.2
???? Буферы индикатора
Видимые буферы (5)
Индекс Имя Тип Описание
0 DeviationBuffer DRAW_LINE Текущее отклонение
1 MaxDeviationBuffer DRAW_LINE Максимальное отклонение
2 ZigZagWindow DRAW_SECTION ZigZag в подокне
3 TrendStrength DRAW_HISTOGRAM Сила тренда
4 TrendStrengthLine DRAW_LINE Линия силы тренда
5 ZeroLine DRAW_LINE Нулевая линия
Скрытые буферы (5)
Индекс Имя Назначение
6 RealDeviation Хранение реальных отклонений в пунктах
7 RealZigZag Хранение реальных точек ZigZag
8 TempHigh Временное хранение максимумов
9 TempLow Временное хранение минимумов
10 ScaleBuffer Хранение текущего масштаба
????️ Архитектура данных
Структура ZZPoint
mql5
struct ZZPoint
{
datetime time; // Время точки
double price; // Цена точки
int type; // 1=вершина, -1=впадина
int bar_index; // Индекс бара
double deviation; // Отклонение в этой точке
};
???? API для советников
Функции доступа к данным
mql5
// Получить handle индикатора
int handle = iCustom(_Symbol, _Period, «ZigZagDeviation», параметры...);

// Основные функции получения данных
double iGetCurrentDeviation(int handle); // Текущее отклонение
double iGetMaxDeviation(int handle); // Максимальное отклонение
double iGetTrendStrength(int handle); // Сила тренда
double iGetRealDeviation(int handle); // Реальное отклонение в пунктах
???? Интерпретация сигналов
Уровни силы тренда
Значение TrendStrength Интерпретация Рекомендация
0.8 — 1.2 Очень сильный тренд Следовать тренду
0.5 — 0.8 Сильный тренд Искать точки входа
0.2 — 0.5 Умеренный тренд Осторожные сделки
0.0 — 0.2 Слабый тренд/флет Избегать сделок
Анализ отклонений
Ситуация DeviationBuffer MaxDeviationBuffer Сигнал
Малое отклонение ±0.0 — ±0.3 Стабильное Тренд сильный, цена близко к линии
Среднее отклонение ±0.3 — ±0.7 Растущее Возможна коррекция
Большое отклонение ±0.7 — ±1.5 Новый максимум Высокий риск разворота
???? Визуальные уровни
Индикатор имеет 3 предустановленных уровня:

0.0 (серый) — центральная линия

+1.0 (зеленый) — уровень перекупленности отклонения

-1.0 (красный) — уровень перепроданности отклонения

⚡ Особенности работы
Автомасштабирование
При AutoScale = true индикатор автоматически определяет оптимальный масштаб на основе:

Исторических отклонений (последние 100 баров)

Максимального зафиксированного отклонения

Округления до ближайшего круглого числа

Динамическое обновление
Уровни обновляются каждые 50 баров

Масштаб пересчитывается при появлении новых экстремумов

Комментарий обновляется в реальном времени

???? Рекомендации по настройке
Для внутридневной торговли
text
ExtDepth = 8-12
ExtDeviation = 50-100
AutoScale = true
Для свинг-трейдинга
text
ExtDepth = 20-30
ExtDeviation = 200-300
AutoScale = false
ManualScale = 200
Для позиционной торговли
text
ExtDepth = 50-100
ExtDeviation = 500-1000
AutoScale = false
ManualScale = 500
???? Пример использования в стратегии
mql5
// Пример торгового сигнала
bool BuySignal()
{
double deviation = iGetCurrentDeviation(handle);
double strength = iGetTrendStrength(handle);
// Условия для покупки
if(deviation < -0.2 && deviation > -0.7) // Отклонение вниз, но не экстремальное
if(strength > 0.6) // Сильный тренд
if(deviation < iGetMaxDeviation(handle) * 0.5) // Не на максимуме отклонения
return true;
return false;
}
⚠️ Ограничения и предупреждения
Задержка ZigZag: Индикатор зависит от точек ZigZag, которые могут перерисовываться

Чувствительность к параметрам: Результаты сильно зависят от ExtDepth и ExtDeviation

Не для всех таймфреймов: На малых TF может быть много ложных сигналов

Дополнительный фильтр: Рекомендуется использовать с другими индикаторами

???? Совместимость
Платформа: MetaTrader 5

Версия MQL5: Требуется версия не ниже build 2000

Инструменты: Любые валютные пары, акции, индексы

Таймфреймы: Все таймфреймы (M1 — MN1)

???? Потенциальные улучшения
Добавление алертов при достижении уровней

Интеграция с другими индикаторами тренда

Статистический анализ исторических отклонений

Мультитаймфреймовый анализ

Данный индикатор является инструментом технического анализа и не гарантирует прибыль. Торговля на финансовых рынках связана с риском потери средств.
  • 0
  • Просмотров: 242
  • 1 января 2026, 13:25
  • igrun
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Индикатор мт5 уровни на всех тф по ишумоке.
30 декабря 2025

Брокер для ваших роботов, 15 лет на рынке

Комментарии (1)

+
0
тестите плииз.
avatar

  25  igrun Автор Сообщений: 1825 - igrun

  • 1 января 2026, 13:34

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий