Обсуждение статьи "Индикаторы на основе класса CCanvas: Заполнение каналов прозрачностью"

 

Опубликована статья Индикаторы на основе класса CCanvas: Заполнение каналов прозрачностью:

В этой статье мы рассмотрим методы создания пользовательских индикаторов, которые отрисовываются с помощью класса CCanvas Стандартной библиотеки, а также рассмотрим свойства графиков для преобразования координат. Особое внимание будет уделено индикаторам, заполняющим область между двумя линиями с помощью прозрачности.

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

  1. Обновим нашу функцию Redraw, удалив параметры, добавленные в предыдущем индикаторе, и добавив функцию DrawFilling.
  2. Добавим нашу функцию Redraw в OnCalculation, чтобы обновить рисунок при изменении значений индикатора.
  3. Изменим имя объекта, переданное в качестве параметра при вызове CreateBitmapLabel.

Теперь мы видим, как выглядит график с двумя конвертами с разными периодами и одним прямоугольным объектом.

Конверты с использованием CCanvas с альфа-каналом = 128

    Автор: Samuel Manoel De Souza

     

    Доброго времени!


    А реально реализовать так чтобы, при прокрутке графика канва без задержки следовала за свечами как в случае с объектами?

     
    Petr Zharuk #:

    Доброго времени!

    А реально реализовать так чтобы, при прокрутке графика канва без задержки следовала за свечами как в случае с объектами?

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