Market Profile MetaTrader индикатор — классическое решение для отображения рыночного профиля (market profile). Может отображать на графике статистическое распределение цены по времени, стоимостную зону и контрольное значение для торговой сессии. Этот индикатор можно присоединить к графикам от M1 до D1 и он будет показывать рыночный профиль для дневных, недельных, месячных или даже внутридневных сессий. Более низкие таймфреймы предоставляют большую точность. Более высокие — дают лучшую наглядность. Может рисовать профиль в свободно заданном прямоугольнике на любом таймфрейме. Доступны шесть разных цветовых схем для отрисовки блоков профиля. Может также прорисовывать профили и в виде одноцветных гистограмм. При желании вы можете выбрать окраску профиля в зависимости от направления баров. Индикатор основан на простом ценовом движении и не использует стандартные индикаторы МетаТрейдера. Он доступен в версиях для платформы MetaTrader 4 и MetaTrader 5.

Входные параметры

Основные

  • Session (по умолчанию = Daily) — торговая сессия для рыночного профиля: дневная, недельная, месячная, внутридневная или прямоугольная. Для отрисовки прямоугольной сессии нужно добавить графический объект прямоугольник с названием, начинающимся с букв MPR. Нажатие клавиши r добавит такой объект автоматически.
  • StartFromDate (по умолчанию = __DATE__) — если StartFromCurrentSession равен false, то индикатор начнет отрисовку профилей от этой даты. Он рисует назад во времени. Например, если вы установите эту переменную равной 2018-01-20 и SessionsToCount равным 2, то профили отрисуются для 2018-01-20 и 2018-01-19.
  • StartFromCurrentSession (по умолчанию = true) — если true, то индикатор начинает рисовать с сегодняшнего дня, иначе — с даты, указанной в StartFromDate.
  • SessionsToCount (по умолчанию = 2) — для скольких торговых сессий рисовать рыночные профили.
  • EnableDevelopingPOC (по умолчанию = false) — если true, будет отрисовано множество горизонтальных отрезков, чтобы показать как развивалась контрольное значение (медиана) с ходом сессии.
  • ValueAreaPercentage (по умолчанию = 70) — процентная доля от общего числа блоков профиля для включения в стоимостную зону.

Цвет и внешний вид

  • ColorScheme (по умолчанию = Blue_to_Red) — цветовая схема для блоков профилей:
    • Blue_to_Red — от синего к красному.
    • Red_to_Green — от красного к зеленому.
    • Green_to_Blue — от зеленого к синему.
    • Yellow_to_Cyan — от желтого к бирюзовому.
    • Magenta_to_Yellow — от сиреневого к желтому.
    • Cyan_to_Magenta — от бирюзового к сиреневому.
  • SingleColor (по умолчанию = clrBlue) — если ColorScheme установлен в Single Color, этот цвет будет использован для построения профилей.
  • ColorBullBear (по умолчанию = false) — если true, цвет блоков профиля зависит не от возраста бара-источника, а от его направления.
  • MedianColor (по умолчанию = clrWhite) — цвет контрольного значения (медианы).
  • ValueAreaSidesColor (по умолчанию = clrWhite) — цвет боковых границ стоимостной зоны.
  • ValueAreaHighLowColor (по умолчанию = clrWhite) — цвет верхней и нижней границ стоимостной зоны.
  • MedianStyle (по умолчанию = STYLE_SOLID) — стиль линии для контрольного значения (медианы).
  • MedianRayStyle (по умолчанию = STYLE_DASH) — стиль линии для луча контрольного значения (медианы).
  • ValueAreaSidesStyle (по умолчанию = STYLE_SOLID) — стиль линии для боковых границ стоимостной зоны.
  • ValueAreaHighLowStyle (по умолчанию = STYLE_SOLID) — стиль линии для верхних и нижних границ стоимостной зоны.
  • ValueAreaRayHighLowStyle (по умолчанию = STYLE_DOT) — стиль линии для верхних и нижних лучей от границ стоимостной зоны.
  • MedianWidth (по умолчанию = 1) — ширина линии контрольного значения (медианы).
  • MedianRayWidth (по умолчанию = 1) — ширина линии луча контрольного значения (медианы).
  • ValueAreaSidesWidth (по умолчанию = 1) — ширина линии для боковых границ стоимостной зоны.
  • ValueAreaHighLowWidth (по умолчанию = 1) — ширина линии для верхних и нижних границ стоимостной зоны.
  • ValueAreaRayHighLowWidth (по умолчанию = 1) — ширина линии для верхних и нижних лучей от границ стоимостной зоны.
  • ShowValueAreaRays (по умолчанию = None) — может быть задан, чтобы максимум и минимум стоимостной зоны проецировались в правую часть графика. Может быть выбрана предыдущая сессия, текущая, предыдущая и текущая, все предыдущие, или все сессии.
  • ShowMedianRays (по умолчанию = None) — может быть задан, чтобы Медиана проецировалась в правую часть графика. Может быть выбрана предыдущая сессия, текущая, предыдущая и текущая, все предыдущие, или все сессии.
  • RaysUntilIntersection (по умолчанию = Stop_No_Rays) — определяет, какие проекции Медианы и стоимостной зоны будут обрезаны там, где они встречаются с ценовым диапазоном другой сессии:
    • Stop_No_Rays — проекции не обрезаются.
    • Stop_All_Rays — все проекции обрезаются при пересечении с ценовым диапазоном другой сессии.
    • Stop_All_Rays_Except_Prev_Session — все проекции, кроме проекций предыдущей сессии, обрезаются при пересечении с ценовым диапазоном другой сессии.
    • Stop_Only_Previous_Session — только проекции предыдущей сессии обрезаются при пересечении с ценовым диапазоном другой сессии.
  • TimeShiftMinutes (по умолчанию = 0) — временной сдвиг для сессий, в минутах. Положительное число сдвинет начало сессии влево; отрицательное — вправо.
  • ShowKeyValues (по умолчанию = true) — если true, значения максимума и минимума стоимостной зоны и медианы отображаются слева от рыночного профиля.
  • KeyValuesColor (по умолчанию = clrWhite) — цвет для значений максимума и минимума стоимостной зоны и медианы.
  • KeyValuesSize (по умолчанию = 8) — размер шрифта для значений максимума и минимума стоимостной зоны и медианы.
  • ShowSinglePrint (по умолчанию = No) — можно установить в Leftside (с левой стороны) или Rightside (с правой стороны), чтобы отмечать единичный вывод — часть профиля шириной всего в один ценовой блок.
  • SinglePrintRays (по умолчанию = false) — если true, то границы единичного вывода будут обозначены лучами.
  • SinglePrintColor (по умолчанию = clrGold) — цвет для пометки единичного вывода, если ShowSinglePrint не равен No.
  • SinglePrintRayStyle (по умолчанию = STYLE_SOLID) — стиль линии для лучей единичного вывода.
  • SinglePrintRayWidth (по умолчанию = 1) — ширина линии для лучей единичного вывода.
  • ProminentMedianColor (по умолчанию = clrYellow) — цвет «выдающейся» Медианы (PPOC), если ProminentMedianPercentage равен 100 или меньше.
  • ProminentMedianStyle (по умолчанию = STYLE_SOLID) — стиль «выдающейся» Медианы (PPOC), если ProminentMedianPercentage равен 100 или меньше.
  • ProminentMedianWidth (по умолчанию = 4) — ширина «выдающейся» Медианы (PPOC), если ProminentMedianPercentage равен 100 или меньше.
  • RightToLeft (по умолчанию = false) — если true, гистограмма профиля рынка текущей сессии отрисовывается справа налево. В случае если параметр Session равен Rectangle, профили рынка всех сессий отрисовываются справа налево.

Производительность

  • PointMultiplier (по умолчанию = 1) — чем выше это число, тем шире ценовые блоки профиля и тем меньше графических объектов. Вы можете использовать это для уменьшения нагрузки на процессор. Когда значение этого параметра равно нулю, используется адаптивный множитель — индикатор пытается подобрать оптимальное значение автоматически.
  • ThrottleRedraw (по умолчанию = 0) — задержка в секундах, которая будет применяться пред каждой перерисовкой профилей. Вы можете использовать это для уменьшения нагрузки на процессор.
  • DisableHistogram (по умолчанию = false) — если true, то гистограмма рыночного профиля не будет отображаться, но медиана и границы стоимостной зоны — будут. Это позволяет значительно ускорить работу индикатора, не позволяет полноценно анализировать профиль рынка.

Внутридневные сессии

  • EnableIntradaySessionN (по умолчанию = true) — если true и значение Session равно Intraday, тогда индикатор попытается отобразить на графике внутридневный профиль №N.
  • IntradaySessionNStartTime (по умолчанию = "ЧЧ:ММ") — время начала внутридневной сессии №N в формате «ЧЧ:ММ».
  • IntradaySessionNEndTime (по умолчанию = "ЧЧ:ММ") — время окончания внутридневной сессии №N в формате «ЧЧ:ММ».
  • IntradaySessionNColorScheme (по умолчанию = Blue_to_Red) — цветовая схема для внутридневной сессии №N.

Прочее

  • SaturdaySunday (по умолчанию = Normal sessions) — как обрабатывать субботние и воскресные сессии:
    • Normal sessions (обычные сессии) — суббота и воскресенье будут обрабатываться как обычные дни с их собственными дневными и внутридневными сессиями.
    • Ignore Saturday and Sunday (игнорировать субботу и воскресенье) — субботние и воскресные свечи будут проигнорированы.
    • Append Saturday and Sunday (присоединять субботу и воскресенье) — субботние свечи будут присоединены к пятничной сессии; воскресные свечи будут присоединены к понедельничной сессии.
  • DisableAlertsOnWrongTimeframes (по умолчанию = false) — если true, то в платформе не будет всплывать окошко с алертами о том, что Market Profile используется с неверной комбинацией таймфрейма и сессии.
  • ProminentMedianPercentage (по умолчанию = 101) — процент от всего возможного числа ценовых блоков, который должен присутствовать в Медиане, чтобы она считалась «выдающейся» (PPOC). Например, если вы укажете 50%, то Медиана будет отмечена «выдающейся», если она содержит хотя бы 24 ценовых блока в дневной сессии на получасовом таймфрейме. Когда параметр равен 101, «выдающаяся» Медиана невозможна.

Примеры

Дневные сессии

Скриншот графика показывает рыночные профили, рассчитанные для двух дневных торговых сессий рынка Форекс. Таймфрейм установлен на M30 и сессия справа еще не закончилась. Самые ранние цены показаны синим цветом, самые последние — красным. Медианы и стоимостные зоны отмечены белыми линиями и показывают самые важные ценовые уровни. Трейдеры обычно возвращаются к этим уровням, если объем при прорыве недостаточно высокий. Высокообъемные прорывы из этих уровней дают сигнал о сильных трендовых волнах. Вы можете почитать подробнее о рыночном профиле в этой короткой книжке (на английском языке): Book on Market Profile.

Индикатор Market Profile для MetaTrader, пример графика

Бычья/медвежья раскраска

Пример ниже демонстрирует, как Market Profile может окрашиваться в соответствии с направлением каждого бара в сессии вместо его возраста. Так происходит, если ColorBullBear установлен равным true.

Market Profile с закраской блоков профилей в зависимости от бычьих и медвежьих баров

Прямоугольные сессии

Этот пример демонстрирует, как индикатор отображает профиль рынка на основе графических объектов, нарисованных трейдером. Чтобы это работало, объект прямоугольник должен иметь название, начинающееся с букв MPR, а входной параметр Session установлен в Rectangle. Вы можете нажать клавишу r на клавиатуре, чтобы добавить такой прямоугольник автоматически.

Market Profile с двумя произвольно заданными прямоугольными сессиями и желто-бирюзовой раскраской

Отображение справа налево

Индикатор Market Profile может отображать гистограмму справа налево. В отличие от традиционного отображения (слева направо), это может оказаться полезным, если нужно сфокусироваться на графике текущей сессии, чтобы ничего не закрывало его. Вы можете видеть, как это работает на скриншоте ниже.

Market Profile с профилем текущей сессии, отрисованным справа налево; сам график остается свободным от объектов.

Скачать (ver. 1.17, 2021-07-17)

Индикатор Market Profile теперь разрабатывается в репозитории GitHub . Вы можете активно участвовать в улучшении данного индикатора, предлагая свои изменения в код (пул-реквест), проверяя существующие предложения, изменения, исправления и т.д.

Market Profile для MetaTrader 4 в .zip

Market Profile для MetaTrader 4 в .mq4

Market Profile для MetaTrader 5 в .zip

Market Profile для MetaTrader 5 в .mq5

Обсудить

У вас есть вопросы или предложения по данному индикатору? Обсудите их на форуме!

Список изменений

Версия 1.17 — 2021-07-17

  • Добавлена опция для отображения развивающегося контрольного значения (developing POC), чтобы показать, как изменялось положение медианы по ходу торговой сессии.
  • Добавлены входные параметры для стилей и ширин всех линий и лучей.
  • Добавлена горячая клавиша (r) для автоматического помещения правильно названного графического объекта прямоугольника для режима прямоугольной сессии.
  • Добавлен входной параметр (ValueAreaPercentage) для контроля за числом блоков профиля, которые должны попасть в стоимостную зону.
  • Добавлена опция для отметки границ единичного вывода с помощью лучей единичного вывода.
  • Исправлена работа параметра сдвига часового пояса (TimeShiftMinutes) для корректной работы с внутридневными сессиями.

Версия 1.16 — 2020-12-07

  • Добавлен входной параметр DisableHistogram, чтобы отключать прорисовку гистограмм профиля. Стоимостная зона и медиана не перестают отображаться в этом режиме.
  • Добавлен входной параметр RightToLeft для отображения гистограммы справа налево. Работает для текущей сессии во всех режимах кроме Rectangle, и для всех сессий в режиме Rectangle.
  • Добавлен вариант адаптивного расчета параметра PointMultiplier, если установить его значение равным 0, которое теперь используется по умолчанию.

Версия 1.15 — 2020-07-14

  • Добавлены сессии типа Rectangle для отображения рыночного профиля на основе объектов-прямоугольников, добавленных на график. Работает на любом таймфрейме. Название прямоугольника должно начинаться с букв MPR, чтобы индикатор его определил.
  • Добавлена подсветка единичного вывода (single print) (входные параметры ShowSinglePrint и SinglePrintColor).
  • Добавлена подсветка «выдающейся» Медианы (PPOC) (входные параметры ProminentMedianPercentage и ProminentMedianColor).

Версия 1.14 — 2020-01-26

  • Входной параметр ValueAreaColor заменен на два отдельных параметра: ValueAreaSidesColor и ValueAreaHighLowColor, чтобы предоставить больший контроль над отображением стоимостного диапазона и медианы на графике.
  • Входной параметр RaysUntilIntersection изменен, чтобы предоставлять больший выбор по отсечению проекций границ стоимостного диапазона и медианы.
  • В версии для МТ5 исправлена ошибка с округлением, которая приводила к смещению стоимостных диапазонов в сторону более высоких цен.
  • В версии для МТ5 исправлена ошибка, которая приводила к тому, что блоки профиля отображались в белом цвете вместо того, чтобы быть невидимыми, когда используется цветовая схема Single_Color и параметр SingleColor установлен в clrNone.
  • Обойден баг МТ4, который приводил к обесцвечиванию и «морганию» графика.

Версия 1.13 — 2019-10-18

  • Добавлен входной параметр ColorBullBear для закрашивания профилей в соответствии с направлениями баров.
  • Добавлен входной параметр DisableAlertsOnWrongTimeframes чтобы отключить алерты, если индикатор применяется к неподходящему таймфрейму.
  • Добавлены настраиваемые выводы для значений максимума и минимума стоимостной зоны и медианы для каждого профиля.
  • Добавлено группирование входных параметров в версии индикатора для МТ5.

Версия 1.12 — 2019-03-27

  • Добавлен входной параметр RaysUntilIntersection, который помогает прятать проекции (rays) от медиан и стоимостных зон прошлых сессий, если через эти проекции уже прошли новые торговые сессии.
  • Исправлена ошибка с отображением ценовых блоков, когда TickSize символа больше чем _Point × PointMultiplier.

Версия 1.11 — 2019-01-20

  • Исправлена ошибка, приводившая к появлению пустых пропусков в профиле для текущей сессии.
  • Исправлена ошибка, которая приводила к тому, что текущий профиль начинал отрисовываться не с первого бара.
  • Исправлены несколько потенциальных ошибок "array out of range".

Версия 1.10 — 2018-12-25

  • Исправлена потенциальная ошибка "array out of range" при открытии старого графика с индикатором Market Profile на нем.

Версия 1.09 — 2018-12-24

  • Добавлены два альтернативных способа обработки субботних и воскресных свечей.
  • Добавлена гибкость в в отображении проекций Медианы и стоимостной зоны.
  • Медиана теперь отображается как одна линия внутри стоимостной зоны.
  • Уменьшен размер рабочих массивов, что должно ускорить расчет профиля для некоторых торговых инструментов.

Версия 1.08 — 2018-05-28

  • Добавлено умное изменение цветов в зависимости от таймфрейма и типа торговой сессии.
  • Добавлена возможность отображать Медиану предыдущей сессии в правой части графика.
  • Добавлена однотонная цветовая схема.
  • Добавлен входной параметр PointMultiplier, чтобы позволить трейдерам увеличивать размер блоков профиля, ускоряя тем самым работу индикатора.
  • Добавлен входной параметр ThrottleRedraw для задержки обновления индикатора, уменьшая тем самым нагрузку на процессор.
  • Исправлена ошибка с названиями графических объектов, которая могла приводить к некорректному отображению рыночного профиля.
  • Изменена отмена инициализации при неверной комбинации входных параметров и таймфрейма — теперь входные параметры не будут сбрасываться.

Версия 1.07 — 2018-02-06

  • Добавлена поддержка внутридневных сессий (до 4 шт.).
  • Добавлены три новые цветовые схемы.
  • Небольшие улучшения исходного кода индикатора.

Версия 1.06 — 2017-11-30

  • Добавлена очистка графических объектов при использовании индикатора в шаблонах.

Версия 1.05 — 2017-11-23

  • Добавлена возможность отображать максимум и минимум стоимостной зоны предыдущей сессии.
  • Добавлен входной параметр для сдвига по времени, чтобы перемещать сессии по часовым поясам.

Версия 1.04 — 2016-11-07

  • Исправлены ошибки "Array out of range".

Версия 1.03 — 2016-01-25

  • Добавлена поддержка трех торговых сессий: дневной, недельной и месячной.
  • Исправлено удаление графических объектов не принадлежащих индикатору.
  • Оптимизирована скорость работы.
  • Увеличено число поддерживаемых таймфреймов.
  • Добавлено встроенное описание индикатора.
  • Улучшен интерфейс (перечисляемые типы во входных параметрах).
  • Исправлены некоторые места, которые могли вызывать ошибки "Array out of range".
  • Код переписан полностью, чтобы соответствовать новым стандартам MQL4 и MQL5.

Версия 1.01 — 2011-12-11

  • Исправлена совместимость кода с новыми версиями МТ5.

Версия 1.00 — 2010-07-23

  • Оригинальный релиз индикатора для платформ МТ4 и МТ5.