вторник, 1 сентября 2009 г.

Индикатор Volume Profile (бывший TPO)


Распределение сделок по ценовым уровням на заданном временном участке. Показывается в виде гистограммы. Ширина гистограммы на данном уровне означает, условно, количество сделок, проведенных на ней. Если брокер предоставляет данные по реальному объёму, индикатор может показывать распределение и по нему.

Основные возможности:
  • VP: показ распределений с шагом, равным стандартным периодам
  • VP-Range: показ распределений за любой выделенный период, различные методы установки границ расчета
  • настройка отображаемой информации (гистограмма, моды, максимум)
  • возможность установить несколько индикаторов на один график
Индикатор VP делит график на равные по времени диапазоны и для каждого показывает распределение. Диапазоны могут быть равными только стандартным значениям таймфреймов не ниже текущего. Например, для H1 диапазон может быть указан как H1, H4, D1, W1, MN1. В MT5 доступны промежуточные таймфреймы.

VP-Range работает только по одному диапазону. Границы можно указать одним из нескольких способов:
  • произвольно с помощью вертикальных линий
  • использовать количество последних минут графика
  • установить правую границу и количество минут до нее
При указании границ по линиям, бар правой границы не учитывается в расчетах. Это сделано для того, чтобы при переключении таймфреймов исходные данные и, соответственно, вид распределения не менялись.

Бары старших таймфреймов могут содержать меньшее количество баров младшего, чем можно было бы ожидать по расчетам. Это происходит из-за естественных дыр в истории котировок, образованных из-за низкой ликвидности, а также из-за перерывов в работе. Поэтому, если указать индикатору показывать неделю до какого-либо бара, то время левой границы может не совпасть со временем правой. В разных дилинговых центрах могут быть немного разные данные, но, несмотря на это, за счёт использования в расчётах большого количества данных результат получается схожим.

Метод расчета

Метод расчёта представляет из себя сложение количества сделок, проведённых по определённой цене. Либо сложение объёмов на этой цене, если тип объёма в параметрах указан как реальный.

Данные сделок интерполируются на основе наиболее точных доступных в терминале данных - данных таймфрейма М1. каждый бар разбивается на несколько сделок, исходя из вероятного движения цены внутри бара. Эта особенность отличает данную реализацию от других, где не проводится интерполяция и для расчётов используется тот же самый таймфрейм, на котором работает индикатор.

Дальнейшее увеличение точности без использования дополнительных источников данных могло бы быть достигнуто за счёт более достоверной интерполяции данных M1 в тики. Но почти каждый брокер, использующий MetaTrader 4, имеет свой поток котировок, что делает подобные улучшения практически бесполезными. Опыты показывают, что распределения выглядят у всех примерно одинаково. Также практика показывает, что используемые методы дают результат, сравнимый с распределениями, полученными на самых точных данных.

Максимумы распределений (моды) обычно используются как уровни поддержки и сопротивления. При определении хорошего уровня поиск максимальной моды особого смысла не имеет, так как имеется "проблема затенения", когда следующее скопление цен сильно влияет на предыдущее, иногда полностью скрывая его, и наоборот. Необходимо внимательно изучать график и уточнять уровни, построив распределения на интересных участках с помощью VP-Range. Распределения по большему временному диапазону, возможно, имеют больший вес.

В версии 6.0 появилась возможность указать таймфрейм источника данных. В MetaTrader 5 также стало возможным использовать тики, предоставляемые брокером. См. параметр "Data source".

Установка

Откройте настройки терминала (меню Сервис\Настройки). На странице "Графики" укажите максимум баров в окне в зависимости от того, как будете использовать индикатор. Каждый день - это 1440 минут (не более 1440 минутных баров). Например, если указать "Макс. баров в окне" равным 250000, то это даст возможность индикатору получить данные за 250000/1440=173 рабочих дня, если для них будут доступны данные таймфрейма M1. Стандартные после установки 65000 дают 45 рабочих дней, это два месяца плюс пара дней.

Настройка количества баров


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

Установка индикат​ора:
  • закрыть терминал
  • скачать архив с индикаторами, распаковать его
  • файлы индикаторов (*.mq4 или *.mq5) скопировать в папку индикаторов вашего терминала, рабочую папку можно увидеть в журнале при запуске терминала
  • запустить терминал

Общие параметры VP и VP-Range

Параметр Описание
Mode step (points) Минимальный шаг между модами, подбирается субъективно для каждого инструмента.
Point scale Масштаб пункта при рисовании гистограммы. Большее значение означает более быструю работу, но более грубое отображение.
Volume type Тип объема, тиковый или реальный. Реальный объем у брокера может быть недоступен, в этом случае индикатор ничего не покажет.
Data source Источник данных:
  • Ticks (только в MT5) - тики с сервера вашего брокера (если есть)
  • M1, M5, M15 - интерполированные тики на основе баров указанного таймфрейма
Bar style Стиль баров гистограммы:
  • Lines - линии
  • Empty bar - пустые прямоугольники
  • Filled bar- заполненные прямоугольники
  • Outline - контур
  • Color - цвет
Color 1 Цвет гистограммы 1. Укажите None, чтобы использовать цвет фона графика.
Color 2 Цвет гистограммы 2. Укажите None, чтобы использовать цвет фона графика.
Line width Толщина линии при рисовании гистограммы.
Mode color (None=disable) Цвет локальных максимумов (мод распределения). Укажите None, чтобы отключить.
Maximum color (None=disable) Цвет максимума. Укажите None, чтобы отключить.
Median color (None=disable) Цвет медианы. Укажите None, чтобы отключить.
VWAP color (None=disable) Цвет VWAP (средневзвешенной по объёму цены). Укажите None, чтобы отключить.
Mode line width Толщина линий мод.
Median & VWAP line style Стиль линий медианы и VWAP.
Identifier Идентификатор индикатора, используйте разные значения для нескольких копий индикатора на одном графике.

Параметры VP

Параметр Описание
Range period Период, только стандартные значения от M1 до MN1 (1, 5, 15, 30, 60, 240, 1440, 10080, 43200). В MT5 также можно использовать промежуточные таймфреймы.
Range count Количество диапазонов.
Time shift Временной сдвиг от -12 до +12 часов с шагом 1 час.
Draw direction Направление рисования гистограммы - слева направо или справа налево.

Параметры VP-Range

Параметр Описание
Range mode Способ указания границ диапазона:
  • Between lines - между двумя линиями
  • Last minutes - последние RangeMinutes минут
  • Minitues to line - RangeMinutes до правой линии
Range minutes Количество минут для RangeMode 1 и 2.
Histogram position Расположение гистограммы:
  • Window left - левый край окна
  • Window right - правый край окна
  • Left outside - от левой границы диапазона влево
  • Right outside - от правой границы диапазона вправо
  • Left inside - от левой границы диапазона вправо
  • Right inside - от правой границы диапазона влево
Mode level line color (None=disable) Цвет уровней, проведенных по модам. Укажите None, чтобы отключить.
Mode level line style Стиль линий уровней мод.

Загрузка

См. также

119 комментариев:

  1. Добрый день.

    Можно добавить в индикатор ТРО настраиваемые уровни зоны стоимости?

    С уважением, Эд.

    ОтветитьУдалить
    Ответы
    1. Зоны стоимости - понятие субъективное, реализовывать не буду.

      Удалить
  2. добрый день.

    Спасибо за ответ.

    Еще вопрос:
    добавить в индикатор смещение вертикальной границы по времени относительно МТ4

    ОтветитьУдалить
    Ответы
    1. Сейчас есть режим "Range mode = Last minutes", при котором данные показываются за указанное в параметре Range minutes количество минут от последнего (текущего) бара. Это не подходит? Если нет, уточните вопрос.

      Удалить
  3. Приветствую.
    Можно ли перевести данный индикатор или RVL для NinjaTrader

    ОтветитьУдалить
    Ответы
    1. По-моему, для NT уже есть подобные индикаторы, сам я делать вряд ли буду.

      Удалить
    2. Приветствую.Может подскажите их названия если не трудно.Спасибо.

      Удалить
  4. Добрый день.

    Иван,
    погляди здесь:
    http://testopal.com/forum/index.php?topic=26.0
    http://ninjafutures.ru/

    ОтветитьУдалить
  5. Добрый день.
    Возможно ли ввести переключатель min/max в селектор мод?"Ткните пальцем" :), плз., где могу самостоятельно изменить сортировку мод гистограммы...
    Потребовались уровни минимумов гистограммы для ТС..

    ОтветитьУдалить
    Ответы
    1. Попробуйте покопаться в функции getModes. Например, заменить там ArrayMaximum на ArrayMinimum.

      Эта функция у меня плохо реализована, есть смысл полностью переписывать её под свои цели.

      Удалить
  6. Спасибо за оперативный ответ и подсказку.
    Считаю перспективным использование принципов из индикаторов ТРО в автоторговле.
    Удачи!

    ОтветитьУдалить
  7. Спасибо автору за отличный индикатор. Вопрос, каким параметром можно понизить ресурсоемкость для такого инструмента как золото. На XAUUSD вешает терминал((

    ОтветитьУдалить
    Ответы
    1. В коде индикатора есть скрытый параметр:
      int PriceStep = 0;

      В зависимости от ваших навыков, можете сделать следующее:

      1. Вынести этот параметр в список доступных для изменения, добавив в начало строке слово extern. После этого можно попробовать поиграться со значением, для золота оно может быть в 10 раз больше, чем для валют.

      2. Сохранить отдельную копию индикатора для проблемных инструментов с фиксированно заданным параметром, прописав значение в коде.

      3. Добавить логику автоопределения параметра (вернее, связанного с ним _hgPoint) для проблемных инструментов, см. участок кода, отмеченный комментарием //#1. Например, после старого блока автоопределения можно добавить что-то такое:

      if (_Symbol == "XAUUSD")
      _hgPoint *= 10.0;

      Удалить
    2. Огромное спасибо. Увеличил переменную в 10 раз через автоопределение инструмента. Все работает как надо. Мне кажется этот индикатор очень перспективным в плане алгоритмизации. Особенно хорошо отрабатывают ложные пробои на модах. Еще один вопрос к Вам чисто из любопытства, удалось ли алгоритмизировать что-то более менее приемлемое в плане доходности из TPO? Обратил внимание что в библиотеках есть функции отработки отскока от уровня, видимо у Вас были наработки в данном направлении.

      Удалить
    3. Ничего интересного я не получил, наверно плохо старался :)

      Удалить
  8. Поделюсь с разрешения автора небольшим повышением удобства использования индикатора на оффлайн графиках для анализа.
    Если в индикатор добавить код

    //---------------------------------------------------------------------
    void OnChartEvent(const int id,
    const long &lparam,
    const double &dparam,
    const string &sparam)
    {
    if(id==CHARTEVENT_OBJECT_DRAG)
    {
    if(sparam == _tfn || sparam == _ttn) start();
    }
    }
    //---------------------------------------------------------------------

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

    ОтветитьУдалить
    Ответы
    1. Здесь нужно также учесть работу таймера, не позволяющего слишком часто перерисовывать индикатор. Иначе, если быстро перемещать границы, индикатор может не обновиться до прихода следующей котировки. Я такую функцию уже делал для версии под MT5, сейчас начал перенос этой функции в эту, старую, версию, и заметил/вспомнил этот момент. В следующем обновлении для MT4 эта функция будет.

      Удалить
  9. Здравствуйте. Подскажите пожалуйста как проще посмотреть горизонтальные уровни при всплесках вертикальных объемов, т.е выделить диапазон по горизонтали и потом посмотреть этот всплеск по горизонтали, где он произошел?

    ОтветитьУдалить
    Ответы
    1. Берёте TPO-Range, режим 0 и дальше двигаете линии в интересующий участок. Либо можно выбрать режим 2 и двигать только правую границу, указав в RangeMinutes несколько минут (но не менее количества минут в баре в текущем ТФ, иначе что-то можно пропустить).

      Проблема лишь в том, что бывают очень короткие всплески, и при такой детализации исходных данных (минутный график), точность будет очень низкой.

      Удалить
  10. Почему отображаются только два дня, увеличение Range count не помогло?

    ОтветитьУдалить
    Ответы
    1. Скорее всего, в терминале нет достаточно данных таймфрейма М1. Подробности настройки в разделе "Установка" выше.

      Удалить
  11. Здравствуйте! Скажите,а в следующей версии индикатора TPO можно добавить такие настройки,как в TPO Range:

    Histogram position Расположение гистограммы:
    0: Window left - левый край окна
    1: Window right - правый край окна
    2: Left outside - от левой границы диапазона влево
    3: Right outside - от правой границы диапазона вправо

    И добавить выбор по датам,например показать профиль объема от 15.09.2015 по 15.12.2015?
    Спасибо.

    ОтветитьУдалить
    Ответы
    1. Расположения типа Outside вряд ли будут наглядными, направление (0 и 1) можно добавить.
      Выбор дат вряд ли буду делать, по крайней мере в таком виде.

      Но исходники открыты, доработка несложная, моё участие совсем не обязательно.

      Удалить
  12. Благодарю за ответ и за код,и за скорое обновление.Ваш индикатор лучший,из того что видел по профилю объёма на тиках,"прикрутить" можно к любой торговой паре,особенно на кросс-курсах мне понравился.

    ОтветитьУдалить
  13. Безусловно, индикатор отличный. Можно ли в меню настроек индикатор добавить несколько вариантов настроек для разных тамм-фреймов? А то приходится ставить несколько индикаторов и отображать их по 1 на разных тайм-фреймах.
    Т.е., нагружать график.
    Спасибо, заранее

    ОтветитьУдалить
    Ответы
    1. Если найду способ сделать это просто и удобно, то сделаю. Пока такого способа не вижу.

      Удалить
  14. Спасибо за обновление! На VP-Range обнаружен баг,не реагирует на настройку отображать индикатор только на определённых таймфреймах или таймфрейме.То есть он всегда отображается на всех таймфреймах,желательно убрать эту ошибку,спасибо.

    ОтветитьУдалить
    Ответы
    1. Кажется, МТ4 чудит. В МТ5 проблемы нет.
      Буду дальше разбираться.

      Удалить
    2. Да,именно в МТ 4 эта проблема

      Удалить
  15. Кстати на Volume Profile тот же баг по отображению

    ОтветитьУдалить
  16. Спасибо за обновление,кстати в индикаторе "VP Range" в строке "Range minutes" можно указывать значение и больше месяца,то есть если месяц это 43200 минут,можно поставить и 2 месяца это 86400 минут,главное что б истории хватило и так далее.

    ОтветитьУдалить
    Ответы
    1. Да хоть год :)
      Но в рабочем месяце не 43200 минут, хотя PERIOD_MN1 равна этому значению (30 дней по 1440 минут). Рабочих дней в месяце около 20, и для месяца надо указывать, соответственно, значение около 30000. То же самое с неделями - 7200 вместо привычных 10080.

      На таким больших периодах есть смысл увеличить DataPeriod до M5 или даже выше, смысла копаться в минутках уже нет, с M5 иногда можно получить бОльшую историю и быстродейсвтвие.

      Удалить
  17. Для любителей графиков "Ренко",индикаторы там тоже работают,прикрутил оба,красота)Можно и в описании об этом упомянуть.

    ОтветитьУдалить
  18. Привет FXcoder! В VP Range для МТ4 в режиме LAST_MINUTES и RangeMinutes = XX мин. у меня индикатор не следует за ценой, точнее только один раз перерисовывается. После кода else if (RangeMode == VP_RANGE_MODE_LAST_MINUTES) и присвоения переменным времени вставил Print("AAA"); проверил работу уже в тестере. В логе в начале запуска появляются два раза подряд записи "2015.11.30 00:01 VP-Range-v5_I02+ EURUSD,M1: AAA" с разницой в 1 сек. и больше не появляются. На протяжении более часа ситуация не меняется. Подскажите, плиз, как поправить :).

    ОтветитьУдалить
    Ответы
    1. Попробуйте в том блоке кода изменить установку временных рамок на такую:


      timeFrom = GetBarTime(RangeMinutes - 1, PERIOD_M1);
      timeTo = GetBarTime(-1, PERIOD_M1);


      У меня в тестере заработало. В реальном времени в понедельник проверю.

      Удалить
    2. Исправлено в 5.6.
      Спасибо за сообщение об ошибке.

      Удалить
  19. Заработало, спасибо большое! Поэкспериментировал с шифтом, но мимо. Видимо из-за пропуска баров там несовпадения временных периодов дальше в коде, а функция выравнивает. Ведь в других режимах идет отсчет от прорисованных границ, а прорисовываются они по существующим в терминале барам. Такое самовыравнивание.

    ОтветитьУдалить
  20. Здравствуйте.
    Вы пишете: "Дальнейшее увеличение точности без использования дополнительных источников данных могло бы быть достигнуто за счёт более достоверной интерполяции данных M1 в тики."
    Подскажите как сделать данное увеличение точности?
    И как подключить объем с фьючерсов, имея поствщика данных?

    ОтветитьУдалить
    Ответы
    1. Я предполагаю равномерное движение от цены открытия до низа (если бар вверх), потом до верха и затем до закрытия (см. функцию GetHgByRates в индикаторе). Вот пример более сложного и, очень вероятно, лучшего подхода: https://www.mql5.com/ru/articles/75 . Реализуйте свой механизм в коде этой функции, будет лучшая точность.

      Подключать объёмы фьючерсов (извне?) тоже придётся самому в коде, в индикаторе изначально ничего для этого нет. Можно эту же функцию переделать (GetHgByRates), чтобы она брала данные или сразу гистограмму откуда-то ещё.

      Удалить
    2. Понял. Спасибо большое за ответ!

      Удалить
    3. Совсем забыл, что сейчас есть возможность получать тики прямо в MT5, это хороший и простой вариант увеличить точность. Попробую в следующей версии добавить такой вариант.

      Удалить
  21. Добрый день! Есть еще одна недоработка визуальная на новом "VP",на недельном графике самый проторгованый уровень,он же "максимум" в настройках,налаживается на несколько свечей на следующий недельный уровень профиля,то есть при открытии новой недели этот уровень накладывается поверх нового на 6-7 свечей на Н4 графике,в старой версии такого не было.Исправьте пожалуйста.

    ОтветитьУдалить
    Ответы
    1. У меня и начало на день влево смещается. Спасибо за сообщение об ошибке, буду разбираться.

      Удалить
  22. Добрый день!
    Возможно ли доработать индикатор так, что бы была возможность включать-выключать отображение профиля на графике? Например создать кнопку прямо в главном окне с функцией вкл/выкл.

    ОтветитьУдалить
    Ответы
    1. Теоретически, возможно. Попросите или закажите доработку у кого-нибудь. Учтите, что такой индикатор в окне может быть не один и нужно как-то организовывать совместное расположение их кнопок, их визуальные отличия.

      Удалить
  23. Здравствуйте!
    Во-первых, огромное спасибо за индикаторы, пользуюсь с удовольствием и все работает хорошо, до.. Текущего момента. Я не сразу смог локализовать проблему (VP-Range просто исчез с графика), но потом немного разобрался и понял что есть какой-то раскол между сегодняшним днем (13.04.16) и предыдущими днями - если выставлять "между линиями", или любой другой метод, и этот раскол 23.00 в МТ5 будет между границами VPR - индикатор не отображается. Выбрать исключительно сегодняшний период - отображается. Выбрать период любой длины ДО сегодняшней полуночи - отображается. К сожалению, мне нужно держать его с "давних пор" до текущего момента, так что эта проблемка весьма неудобна... Я пользуюсь им в МТ5, есть ли эта проблема в МТ4 - пока не проверял. Может быть подскажете как это исправить или почему это может происходить? Источник котировок не менялся, ничего такого (чистый МТ5, с сайта MetaQuotes).
    Заранее спасибо!

    ОтветитьУдалить
    Ответы
    1. UPD: Если перейти на тиковые объемы, проблема исчезает. Так что похоже дело в данных по реальным объемам. Валютная пара - AUD/USD. Это отчасти все решает, но мне бы вернуть реальные объемы в этот индикатор.. Буду признателен за ответ!

      Удалить
    2. Этот комментарий был удален автором.

      Удалить
    3. UPD: В надежде что вы это от-debug-аете, я до конца вычислил проблему) В эту самую полночь, в 23.00, реальный объем на той минуте равен нулю. Похоже при взвешивании происходит ошибка "деление на ноль" или что-то вроде, отсюда он и не может отображаться. Я не знал что такое редко бывает, но похоже это первый раз за долгий период когда на минутном баре нулевой объем. В общем.. Думаю это было бы полезно исправить на будущее))
      Возможное решение: если он используется для того чтобы определить длину барика на индикаторе относительно других бариков, думаю ничего страшного не случится если все нули будут заменяться единицей. Для рыночных операций и тем более реальных объемов, что ноль, что единица - без разницы. Но и для тиковых думаю это адекватное допущение.

      Удалить
    4. Спасибо за сообщение об ошибке и её локализацию. В ближайшее время исправлю.
      Частично проблему можно решить, удалив или закомментировав эти строки в функции GetHgByRates:

      if (v == 0)
      return(0);

      Останется проблема с отображением гистограмм M1 на M1. Это вряд ли кому-то нужно, но всё равно поправлю.

      Удалить
    5. Огромное спасибо!!! =) Все работает ;)

      Удалить
  24. Здравствуйте, спасибо за Ваш труд. Индикатор VP работает отлично в большинстве случаев, но есть моменты. Скажите пожалуйста, как, если это возможно, увеличить его точность. Использую тиковый объем на mt4, выше читал, что Вы рекомендовали для увеличения точности получать тики в mt5, это значит поставить индикатор на mt5, поясните пожалуйста?

    ОтветитьУдалить
    Ответы
    1. В MT5 есть возможность получать тики у брокера, использование этой возможности реализовано в версии индикатора 6.0.

      Тики дают не все брокеры, нужно искать. Я не искал, но тики точно есть на демо-сервере разработчиков MT (MetaQuotes-Demo), не знаю, какого качества.

      Также некоторые брокеры могут предоставлять данные по реальным объёмам.

      Удалить
    2. Спасибо, понял, а как можно на практике настроить получение тиков в MT5 с демо-сервера MetaQuotes-Demo? И если можете назовите пожалуйста брокера, который предоставляет реальные объемы для MT.

      Удалить
    3. Если вам это нужно в коде MQL5, см. функцию CopyTicks ( https://www.mql5.com/ru/docs/series/copyticks ). Индикатор VP уже это делает, достаточно изменить параметр "Data source" на "Ticks". Возможно, я неправильно понял вопрос, уточните.

      По брокерам ничего не могу посоветовать.

      Удалить
    4. Немного не так, я хотел узнать, как понять что мой брокер МТ5 поставляет тиковые котировки и как их закачать в МТ5 с демо-сервера MetaQuotes-Demo если их нет. В общем хочется протестировать и сравнить с результатами на МТ4.

      Удалить
    5. Узнайте у брокера. Вполне может оказаться, что в терминале какие-то тики есть, но брокер их включил для теста, либо даёт имитацию, и там ерунда.

      Функции использования данных одного брокера на счету другого в индикаторе нет, и добавлять не планирую.

      Удалить
    6. Да, кстати, кто-нибудь знает брокера с реальными объемами ? Хотел посмотреть. Мой брокер говорит, что таких на форексе в принципе нет.

      Удалить
  25. Добрый день! Обнаружил новый баг в VP-Range (версии и 5 и 6).Если поставить на один таймфрейм два VP-Range,но каждый в разных частях окна, то есть "Window right" и "Window left", с разными временными интервалами "Range minutes", то из двух буден виден только один. Это происходит либо с обновлением котировок,либо просто при переключении таймфрейма. Баг считаю серьёзным,желательно исправить. Спасибо.

    ОтветитьУдалить
    Ответы
    1. В таких случаях указывайте разные значения Indentifier. Например, vpr1 и vpr2.

      Удалить
  26. Я использую MetaTrader 4. После загрузки vp_5.8.zip и vp_6.0.zip . Профиль объем не работает. Любая помощь , как это работает на графиках ? Я могу видеть синий и красный пунктир линии на графике . Кроме того, на графике появляется зеленая горизонтальная линия .

    ОтветитьУдалить
    Ответы
    1. Проверьте, что терминал настроен, как описано в разделе "Установка" (см. количество баров в окне).

      Убедитесь, что есть достаточное количество баров в истории M1. При необходимости догрузите, сколько сможете, нажимая в окне M1 кнопку Home, пока загрузка не остановится.

      Синяя и красная пунктирные линии на графике - это границы диапазона у индикатора VP-Range, см. описание параметра "Range mode".

      Зелёная горизонтальная линия - скорее всего, один из уровней локальных максимумов, показанных индикатором VP-Range, см. параметр "Mode level line color" и "Mode level line style".

      Использовать одновременно версии 5.8 и 6.0 смысла нет, оставьте только последнюю.

      Удалить
  27. Какая лицензия у данного индикатора? Разрешено ли его изменять и выкладывать эти изменения?

    ОтветитьУдалить
    Ответы
    1. Текст лицензии есть в конце файла.
      См. также: https://ru.wikipedia.org/wiki/Лицензия_BSD

      Удалить
  28. Уважаемый разработчик! Версии позднее 3.0 очень медленно просчитываются в тестере. 3.0 в нем просто летает. Можете эту неприятность исправить? Или посоветовать какие необходимо внести изменения что бы просчет гистограммы с модами проходил так же быстрой, как и в версии 3.0.
    С Уважением.

    ОтветитьУдалить
    Ответы
    1. Возможные причины (изменения после версии 3):
      1. Используются другие функции для получения истории котировок, которые, возможно, более медленные.
      2. Учитывается последний бар, из-за чего перерасчёт происходит на каждом тике.

      Ни одно из перечисленных изменений возвращать назад не буду. Используйте старую версию, либо сами попробуйте вернуть эти изменения.


      Если необходимы только данные (без визуализации), используйте код индикатора напрямую, подробности здесь:
      https://fxcoder.blogspot.com/2016/01/using-vp-indicator-in-code.html

      Удалить
    2. Как можно сделать перерасчет при каждом новом баре?

      Удалить
    3. У меня есть функция определяющая появление нового бара, не знаю насколько она рабочая после последних изменений.

      void Fun_New_Bar()
      {
      static datetime New_Time = 0;
      New_bar = false;

      if (New_Time!=Time[0])
      {
      New_Time=Time[0];
      New_bar=true;
      }
      }
      Где и Вашем индикаторе ее нужно вставить, что бы перерасчет был по каждому новому бару?

      Удалить
    4. добавить условие выполнения этого цикла
      -------------------------------------
      for (int i = 0; i < _rangeCount; i++)
      {
      /* Расчёт */
      -------------------------------------
      если Fun_New_Bar==true? так может сработать?

      Удалить
    5. Самый простой в мт4 способ, наверное, такой:

      В OnCalculate в самом начале добавить:

      if (Volume[0] > 1)
      return(0);

      Удалить
    6. Спасибо! получилось, но со своей функцией. При Вашем варианте на реалтаймовых графиках гистограмма "отваливалась" :)

      Удалить
  29. Просьба сделать некую масштабируемость профиля, чтобы он не растягивался на весь дневной интервал. 50-80% вполне визуально комфортнее, чем по всей ширине. Например, так есть в индюке от clusterdelta и marketprofile.mq4

    ОтветитьУдалить
    Ответы
    1. Вряд ли это буду делать, т.к. будет путаница с другой планируемой доработкой.

      Но делается легко. После строки, начинующейся с:

      double zoom =


      добавить что-то типа этого (для 50%):

      zoom *= 0.5;

      Можете также вынести этот коэффициент во входные параметры.

      Удалить
    2. Этот комментарий был удален автором.

      Удалить
  30. Добрый день. А что это за третья красная пунктирная линия, которая ограничивает постройку профиоля возвращаясь в прошлое? как её убрать? спасибо

    ОтветитьУдалить
    Ответы
    1. С этим разобрался, (кнопка Хоум) а вот в одном нормально рисует профиль а во втором терминале какие то 4-5 линий редких и все... что это? спасибо

      Удалить
    2. Пунктирная линия показывает наличие исходных данных. Нажимая Home на графике M1 вы подгружаете историю, поэтому эта линия смещается влево.

      Возможно, во втором терминале (у другого брокера) другой шаг цены, и нужны другие настройки индикатора. Попробуйте уменьшить параметр "Point scale".

      Удалить
  31. Здравствуйте. возможно ли добавить в индикатор VP фильтр временного периода внутри суток. интересует профиль построенный например только в американскую сессию.

    ОтветитьУдалить
    Ответы
    1. Такая доработка у меня давно в списке задач. Как только будет возможность, сделаю.

      Если нужно побыстрее, можете попросить какого-нибудь другого программиста исправить мой код для ваших целей.

      Удалить
  32. Приветствую.
    Как снизить нагрузку на систему и уменьшить задумчивость терминала?
    Уменьшил параметр WaitMilliseconds, прорисовка происходит реже, но загруженность остается.

    ОтветитьУдалить
    Ответы
    1. Попробуйте лучше изменять параметры Point scale и Data source. Это немного повлияет на картинку, но может прибавить скорости.

      Удалить
  33. Спасибо за индикатор! Супер!

    ОтветитьУдалить
  34. Хотелось бы еще уточнить, можно ли узнать какой объем наторгован к примеру на зоне maximum color?
    Возможно ли появление такой опции, как фильтр объема, например подкрашивать не максимум, а объем больший какого то значения?

    ОтветитьУдалить
    Ответы
    1. 1. Хочу добавить возможность в одной из ближайших версий. Но пока единственное видимое мной решение сильно тормозит :(

      2. Реализуется несложно. Не решил, стоит ли добавлять функцию в индикатор.
      Если захотите сами поправить код, найдите места, где смешиваются цвета функцией MixColors, и там поменяйте/добавьте логику для подкрашивания больших объёмов.

      Удалить
  35. подскажите под виндовс XPSP3 индикатор будет работать? почему-то не работает! может ли быть, что памяти не хватает?

    ОтветитьУдалить
    Ответы
    1. Если работает сам MT, то должен работать и индикатор. Сейчас у меня нет возможности проверить на XP. Проверьте наличие котировок M1 и настройки терминала, как описано выше на этой странице.

      Есть ли какие-то сообщения об ошибках в логе экспертов?

      Удалить
  36. Здравствуйте, спасибо большое за полезный индикатор! Вопрос - после того как я загрузил котировки M1 допустим за 2 месяца, как после этого индикатор VP-Range-v6 видит новые данные по M1 в дальнейшем, чтобы формировать по ним профиль объема на графике? Торговый терминал MT4 сам подгружает котировки M1, либо нужно периодически каждый раз переключаться на M1 таймфрейм чтобы "вручную" загружать новые данные по истории M1 котировок?

    ОтветитьУдалить
    Ответы
    1. При запущенном терминале индикатор запрашивает новые данные у терминала, и тот их подгружает при необходимости. Самому переключать на М1 или держать открытым график М1 не нужно.

      Но есть исключение. При запуске терминала индикатор может ошибочно решить, что все нужные котировки уже загружены, и показать ерунду. В таком случае можно самому подгрузить нужную историю, после чего перезапустить индикатор (сменить ТФ графика, либо сменить профиль на другой и обратно).

      Удалить
    2. Когда я открывал валютные пары в "чистом" MT4, красная линия которая показывает наличие M1 котировок была установлена примерно на 2 дня левее от текущей свечи, на всех валютных парах которые я открыл. Можно ли предположить что индикатор всегда запрашивает (подгружает) именно данный промежуток котировок (последние 2 дня) с M1, подгружая к уже имеющимся котировкам M1 в MT4? И если не включать MT4 более 2-х дней то только тогда нужно будет переключатся на M1 таймфрейм и подгружать историю M1 вручную (чтобы не было "бреши" в истории M1 котировок для VP-Range-v6, я правильно мыслю?

      Удалить
    3. Индикатор запрашивает столько, сколько ему нужно. Терминал возвращает столько, сколько у него есть (точнее, сколько сервер хочет сейчас отдать). При этом не даёт знать, все ли это данные или нет. Нет "дешевого" способа определять догрузку истории, поэтому я её не реализовывал, индикатор и без этого тяжеловат.

      Загрузка и догрузка истории возложена на пользователя. Подгрузка истории в МТ нетривиальна, сначала могут появиться только последние 2000 баров (примерно), потом загрузится ещё какой-нибудь кусок истории и так далее. В зависимости от загруженности терминала (качество связи, количество открытых графиков и символов в обзоре рынка), весь процесс может занимать от секунды до нескольких минут.

      Для загрузки истории нажмите и удерживайте клавишу Home на графике M1. Периодически (раз в несколько дней, недель, это зависит от брокера) подгружайте историю, если хотите, чтобы она была непрерывной.

      Удалить
  37. добрый день ! к автору вопрос : а можно как то уменьшить длину профиля рынка в индикаторе VP ? Т.е сейчас он растягивается автоматически например на длину 12 часов и во всю длину на графике. А я хочу что бы он знимал 1/4 от длины периода 12 часов. Т.е стоял аккуратно слева и не особо захломлял движение цены, но при этом период был тем же 12 часами

    ОтветитьУдалить
    Ответы
    1. Выше задавали такой вопрос, пока ничего не изменилось:
      https://fxcoder.blogspot.com/2009/09/volume-profile-indicator.html?showComment=1470691681644#c4361241831903127603

      Удалить
  38. Спасибо за индикатор. Ты крут.

    ОтветитьУдалить
  39. Здравствуйте. Очень давно пользуюсь Вашим индикатором до сих пор стоит VPFx-Range (все устраивало), Но возникла проблема, история подгружается только на 14 дней (красная вертикальная пунктирная линия), не могу понять в чем причина, то ли в брокере то ли в индикаторе. Поставил TPO-Range-v3, та же ситуация. Подгружал котировки, бестолку. Выше было написано, что надо удерживать кнопку Home на графике M1, что за кнопка?

    ОтветитьУдалить
    Ответы
    1. Сначала настройте количество баров в окне, как описано в разделе Установка выше, и перезапустите МТ.

      Потом откройте график М1 интересующего инструмента (символа), обновите график (Графики/Обновить), отключите автопрокрутку графика и нажмите кнопку Home на клавиатуре. Держите нажатой, пока график не перестанет меняться. Это может занять от пары секунд до нескольких минут.

      Если данных всё равно не хватает, вероятно ваш брокер не даёт глубокую историю графика.

      Удалить
  40. Все дело было в независимой платформе. На исходнике было все нормально. Какое оптимальное количество баров в истории и на графике, что бы прорисовывался 1 месяц 30 дней 43200? И Какая последняя версия индикатора, а то я что то запутался?

    ОтветитьУдалить
    Ответы
    1. В 1 месяце около 20 рабочих дней. В дне 1440 минут. Для истории в 1 месяц необходимо около 30000 баров М1, это параметр количества баров в окне. Количество баров в истории, насколько я помню, не влияет на индикатор, он просто должен быть не меньше количества баров в окне. Но рекомендую устанавливать его побольше. Подробнее смотрите описание этих параметров здесь:
      https://www.metatrader4.com/ru/trading-platform/help/setup/setup_charts#bars_count

      Последняя версия на данный момент - VP 6.0.

      Удалить
  41. А то платформу стало грузить не по детски.

    ОтветитьУдалить
  42. Извините, вопрос. А натягивающимся можно сделать профиль в Рендже? Спасибо, С уважением, пользователь.

    ОтветитьУдалить
    Ответы
    1. Чтобы профиль рисовался не при помощи передвижения вертикальных ренджевых линий а например курсором мышки при определенной нажатой клавише или с помощью прямоугольника из графического меню. Надеюсь получилось обьясить. Не сочтите за наглость.)) Спасибо.

      Удалить
    2. Я делал подобные вещи и сделал вывод, то МТ в реальности (не в рекламе) не способен адекватно работать с подобными интерактивными скриптами. Теряются клики и движения мыши.

      Удалить
    3. Понятно. Я имел ввиду что- то вроде этого - https://www.mql5.com/ru/market/product/14244#full_description

      Удалить
  43. Здравствуйте, не могли бы Вы подсказать как получить такую красивую картинку ( это стоит индикатор VPFx-Range)http://prntscr.com/ekqjzt или такую как у Вас на верху http://prntscr.com/ekqkjp . А то у меня получается в лучшем случае такая (индикатор VP 6.0)http://prntscr.com/ekqluw . Уже перепробывал все комбинации параметров, рисует очень много уровней.

    ОтветитьУдалить
    Ответы
    1. Попробуйте увеличивать Mode Step, пока картинка не покажется красивой :)

      Удалить
  44. У меня почему то только за 2 дня прорисовывается vp-v6 . Почему?

    ОтветитьУдалить
    Ответы
    1. Это не раз здесь обсуждалось. Возможно, проблема в недостаточной истории в вашем терминале.

      Удалить
  45. Здравствуйте.
    Подскажите, пожалуйста, а как правильно надо торговать по этому индикатору? А то не совсем понятно, вот вижу максимальное скопление, а потом куда вероятнее пойдёт цена? Можете кратко объяснить. Спасибо.

    ОтветитьУдалить
    Ответы
    1. Читайте, например, на clasterdelta . com

      Удалить
  46. Здравствуйте!
    Очень полезный индикатор! Огромное спасибо за Ваш труд!

    Пожелание: объемы модов в цифрах хотелось бы видеть. Прям на них или рядом.

    ОтветитьУдалить
  47. Индикатор отличный, последняя реализация вообще удивила и поразила. Конечно это не заменит реальные объемы, но сравнивал с ними по профилю, именно по 5-минутным свечам, на 90% идентично рисует профиль. Спасибо за такой индикатор.

    ОтветитьУдалить
  48. Чего очень не хватает в этом индикаторе, и что реально вполне реализовать, и думаю что не сложно, это линии VAH и VAL, POC как бы есть, остальных очень не хватает.

    ОтветитьУдалить
  49. Добрый день! Скиньте пожалуйсто ссылку по настройке индикатора или инструкцию

    ОтветитьУдалить