Обсуждение статьи "Индикатор рыночного профиля — Market Profile (Часть 2): Оптимизация и отрисовка на канвасе"
Интересная тема. Я тоже перешел на Canvas для отображения профиля. Но у этого способа есть и недостатки. Если графические фигуры "нарисовал и забыл", мт5 сам их отмасштабирует при перемещении графика, смены ТФ и т.п. действий, то канвас надо перерисовывать всегда, при любом CHARTEVENT_CHART_CHANGE, даже если VP находится где то в истории, на уже неизменных данных. А данные эти надо получить и не всегда они (тиковые данные) есть в кэше мт5, тут или памяти хранить и чекить не изменились ли границы VP или постоянно запрашивать у мт5 (сейчас у меня так реализованно), что работает не быстро и так данные не всегда отдаются полностью, то и не сразу точно.
Отрисовка это одна из частей вопроса. Вторая -- трейдеру не всегда нужна только картинка, чтобы ей любоваться, нужны сигналы по этой картинке, типа POC, VHL, VLL, "вход в пустоту" и т.п. А события мы можем привязать только к графическим объектам (условно, можно и в массиве где то держать у индикатора, но всё равно желательна визуализация где этот уровень, где сработал алерт). Т.е. все равно нам нужны графические объекты к канвасному VP, хотя конечно их будет на порядок, а то и несколько порядков меньше чем в случае с отображением VP через графические объекты.
Вообщем резюме пока такое - объёмного терминала из мт5 (пока?) не получается (а там нужные ещё и кластера, дельты и т.п.).
На картинке пример как выглядит VP на импульсной волне, POC показан линией, тут тиковые объёмы, были бы реальные объёмы работал бы по ним (финам, amp global). Как показала практика сравнения тиковых и реальным объёмов на старших ТФ они или совпадают или очень близко находятся, кроме случаев прохождения больших объёмов в хай или лой свечи, тут тиковые объёмы бессильны нам помочь.
Интересная тема. Я тоже перешел на Canvas для отображения профиля. Но у этого способа есть и недостатки. Если графические фигуры "нарисовал и забыл", мт5 сам их отмасштабирует при перемещении графика, смены ТФ и т.п. действий, то канвас надо перерисовывать всегда, при любом CHARTEVENT_CHART_CHANGE, даже если VP находится где то в истории, на уже неизменных данных. А данные эти надо получить и не всегда они (тиковые данные) есть в кэше мт5, тут или памяти хранить и чекить не изменились ли границы VP или постоянно запрашивать у мт5 (сейчас у меня так реализованно), что работает не быстро и так данные не всегда отдаются полностью, то и не сразу точно.
Отрисовка это одна из частей вопроса. Вторая -- трейдеру не всегда нужна только картинка, чтобы ей любоваться, нужны сигналы по этой картинке, типа POC, VHL, VLL, "вход в пустоту" и т.п. А события мы можем привязать только к графическим объектам (условно, можно и в массиве где то держать у индикатора, но всё равно желательна визуализация где этот уровень, где сработал алерт). Т.е. все равно нам нужны графические объекты к канвасному VP, хотя конечно их будет на порядок, а то и несколько порядков меньше чем в случае с отображением VP через графические объекты.
Вообщем резюме пока такое - объёмного терминала из мт5 (пока?) не получается (а там нужные ещё и кластера, дельты и т.п.).
На картинке пример как выглядит VP на импульсной волне, POC показан линией, тут тиковые объёмы, были бы реальные объёмы работал бы по ним (финам, amp global). Как показала практика сравнения тиковых и реальным объёмов на старших ТФ они или совпадают или очень близко находятся, кроме случаев прохождения больших объёмов в хай или лой свечи, тут тиковые объёмы бессильны нам помочь.
все не совсем так. Это не недостатки, а особенности, которые необходимо знать для того, чтобы использовать инструмент с максимальными возможностями и свободой действий.
Все можно делать, хоть и 3D кластеры.
Вот MQL5 пример c использованием только Canvas без использования OpenCL. Если использовать OpenCL (т.е. графическую карту), то можно добиться значительного ускорения (в десятки раз).

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования

Опубликована статья Индикатор рыночного профиля — Market Profile (Часть 2): Оптимизация и отрисовка на канвасе:
В статье будет рассмотрена оптимизированная версия индикатора Профиля Рынка Market Profile, где рисование множеством графических объектов заменено на рисование на холсте — объекте класса CCanvas.
Возвращаясь к теме индикатора Профиля Рынка, начатой в прошлой статье, хочется сказать, что реализация построения диаграммы профиля рынка обычными графическими объектами потребляет достаточно много ресурсов. Ведь каждый пункт цены от Low до High дневного бара заполняется графическими объектами-прямоугольниками в количестве баров, которые на протяжении всего дня достигали этого ценового уровня. И так для каждого пункта — все они содержат множество графических объектов, и все эти объекты создаются и рисуются для каждого дня, где рисуется диаграмма профиля. Когда индикатор создаёт тысячи графических объектов это может вызывать значительные замедления при работе с иными графическими объектами и перерисовке графика.
Для трёх торговых дней профиль рынка в итоге будет иметь такой вид:
Автор: Artyom Trishkin