Свойства графиков

Идентификаторы семейства перечислений ENUM_CHART_PROPERTY используются в качестве параметров функций для работы с графиками. Аббревиатура r/o в столбце "Тип свойства" означает, что данное свойство предназначено только для чтения и не может быть изменено. Аббревиатура w/o в столбце "Тип свойства" означает, что данное свойство предназначено только для записи и не может быть получено. При обращении к некоторым свойствам необходимо указывать дополнительный параметр-модификатор (modifier), который служит для указания номера подокна графика. 0 означает главное окно.

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

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

Для функций ChartSetInteger() и ChartGetInteger()

ENUM_CHART_PROPERTY_INTEGER

Идентификатор

Описание

Тип свойства

CHART_SHOW

Признак отрисовки ценового графика. Если установлено значение false, то отключается отрисовка любых атрибутов ценового графика и устраняются все отступы по краям графика: шкалы времени и цены, строка быстрой навигации, метки событий Календаря, значки сделок, тултипы индикаторов и баров, подокна индикаторов, гистограммы объёмов и т.д.

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

Графические объекты отрисовываются всегда независимо от установленного значения свойства CHART_SHOW.

bool

CHART_IS_OBJECT

Признак идентификации объекта "График" (OBJ_CHART) – для графического объекта возвращает true. Для настоящего графика значение равно false

bool   r/o

CHART_BRING_TO_TOP

Показ графика поверх всех других

bool   w/o

CHART_CONTEXT_MENU

Включение/отключение доступа к контекстному меню по нажатию правой клавиши мышки.

Значение CHART_CONTEXT_MENU=false отключает только  контекстное меню графика, при этом контекстное меню для объектов на графике остается доступным.

bool  (значение по умолчанию true)

CHART_CROSSHAIR_TOOL

Включение/отключение доступа к инструменту "Перекрестие" по нажатию средней клавиши мышки

bool  (значение по умолчанию true)

CHART_MOUSE_SCROLL

Прокрутка графика левой кнопкой мышки по горизонтали. Прокрутка по вертикали также будет доступна, если установлено в true значение любого из трех свойств: CHART_SCALEFIX, CHART_SCALEFIX_11 или CHART_SCALE_PT_PER_BAR

При CHART_MOUSE_SCROLL=false прокрутка графика колёсиком мышки будет недоступна

bool

CHART_EVENT_MOUSE_WHEEL

Отправка всем mql5-программам на графике сообщений о событиях колёсика мышки (CHARTEVENT_MOUSE_WHEEL)

bool  (значение по умолчанию true)

CHART_EVENT_MOUSE_MOVE

Отправка всем mql5-программам на графике сообщений о событиях перемещения и нажатия кнопок мышки (CHARTEVENT_MOUSE_MOVE)

bool

CHART_EVENT_OBJECT_CREATE

Отправка всем mql5-программам на графике сообщений о событии создания графического объекта (CHARTEVENT_OBJECT_CREATE)

bool

CHART_EVENT_OBJECT_DELETE

Отправка всем mql5-программам на графике сообщений о событии уничтожения графического объекта (CHARTEVENT_OBJECT_DELETE)

bool

CHART_MODE

Тип графика (свечи, бары или линия)

enum     ENUM_CHART_MODE

CHART_FOREGROUND

Ценовой график на переднем плане

bool

CHART_SHIFT

Режим отступа ценового графика от правого края

bool

CHART_AUTOSCROLL

Режим автоматического перехода к правому краю графика

bool

CHART_KEYBOARD_CONTROL

Разрешение на управление графиком с помощью клавиатуры ("Home", "End", "PageUp", "+", "-", "Стрелка вверх"  и т.д.). Установка CHART_KEYBOARD_CONTROL=false позволяет отключить скроллинг и масштабирование графика, но при этом сохраняется возможность получать события нажатия данных клавиш в OnChartEvent().

bool

CHART_QUICK_NAVIGATION

Разрешение на перехват графиком нажатий клавиш Space и Enter для активации строки быстрой навигации. Строка быстрой навигации автоматически появляется внизу графика при двойном клике мышки или нажатии клавиш Space/Enter. Таким образом можно быстро сменить символ, таймфрейм и дату первого видимого бара.

bool

CHART_SCALE

Масштаб

int       от 0 до 5

CHART_SCALEFIX

Режим фиксированного масштаба

bool

CHART_SCALEFIX_11

Режим масштаба 1:1

bool

CHART_SCALE_PT_PER_BAR

Режим указания масштаба в пунктах на бар

bool

CHART_SHOW_OHLC

Отображение в левом верхнем углу значений OHLC

bool

CHART_SHOW_BID_LINE

Отображение значения Bid горизонтальной линией на графике

bool

CHART_SHOW_ASK_LINE

Отображение значения Ask горизонтальной линией на графике

bool

CHART_SHOW_LAST_LINE

Отображение значения Last горизонтальной линией на графике

bool

CHART_SHOW_PERIOD_SEP

Отображение вертикальных разделителей между соседними периодами

bool

CHART_SHOW_GRID

Отображение сетки на графике

bool

CHART_SHOW_VOLUMES

Отображение объемов на графике

enum     ENUM_CHART_VOLUME_MODE

CHART_SHOW_OBJECT_DESCR

Отображение текстовых описаний объектов (не для всех объектов описания показываются)

bool

CHART_VISIBLE_BARS

Количество баров на графике, доступных для отображения

int     r/o

CHART_WINDOWS_TOTAL

Общее количество окон графика, включая подокна индикаторов

int     r/o

CHART_WINDOW_IS_VISIBLE

Видимость подокон

bool   r/o   модификатор - номер подокна

CHART_WINDOW_HANDLE

Хэндл графика (HWND)

int     r/o

CHART_WINDOW_YDISTANCE

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

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

int     r/o   модификатор - номер подокна

CHART_FIRST_VISIBLE_BAR

Номер первого видимого бара на графике. Индексация баров соответствует таймсерии.

int  r/o

CHART_WIDTH_IN_BARS

Ширина графика в барах

int  r/o

CHART_WIDTH_IN_PIXELS

Ширина графика в пикселях

int  r/o

CHART_HEIGHT_IN_PIXELS

Высота графика в пикселях

int      модификатор - номер подокна

CHART_COLOR_BACKGROUND

Цвет фона графика

color

CHART_COLOR_FOREGROUND

Цвет осей, шкалы и строки OHLC

color

CHART_COLOR_GRID

Цвет сетки

color

CHART_COLOR_VOLUME

Цвет объемов и уровней открытия позиций

color

CHART_COLOR_CHART_UP

Цвет бара вверх, тени и окантовки тела бычьей свечи

color

CHART_COLOR_CHART_DOWN

Цвет бара вниз, тени и окантовки тела медвежьей свечи

color

CHART_COLOR_CHART_LINE

Цвет линии графика и японских свечей "Доджи"

color

CHART_COLOR_CANDLE_BULL

Цвет тела бычьей свечи

color

CHART_COLOR_CANDLE_BEAR

Цвет тела медвежьей свечи

color

CHART_COLOR_BID

Цвет линии Bid-цены

color

CHART_COLOR_ASK

Цвет линии Ask-цены

color

CHART_COLOR_LAST

Цвет линии цены последней совершенной сделки (Last)

color

CHART_COLOR_STOP_LEVEL

Цвет уровней стоп-ордеров (Stop Loss и Take Profit)

color

CHART_SHOW_TRADE_LEVELS

Отображение на графике торговых уровней (уровни открытых позиций, Stop Loss, Take Profit и отложенных ордеров)

bool

CHART_DRAG_TRADE_LEVELS

Разрешение на перетаскивание торговых уровней на графике с помощью мышки. По умолчанию режим перетаскивания включен (значение true)

bool

CHART_SHOW_DATE_SCALE

Отображение на графике шкалы времени

bool

CHART_SHOW_PRICE_SCALE

Отображение на графике ценовой шкалы

bool

CHART_SHOW_ONE_CLICK

Отображение на графике панели быстрой торговли (опция "Торговля одним кликом")

bool

CHART_IS_MAXIMIZED

Окно графика развернуто

bool

CHART_IS_MINIMIZED

Окно графика свернуто

bool

CHART_IS_DOCKED

Окно графика закреплено. Если установить значение false, то график можно перетащить  за пределы терминала

bool

CHART_FLOAT_LEFT

Левая координата открепленного графика относительно виртуального экрана

int

CHART_FLOAT_TOP

Верхняя координата открепленного графика относительно виртуального экрана

int

CHART_FLOAT_RIGHT

Правая координата открепленного графика  относительно виртуального экрана

int

CHART_FLOAT_BOTTOM

Нижняя координата открепленного графика  относительно виртуального экрана

int

Для функций ChartSetDouble() и ChartGetDouble()

ENUM_CHART_PROPERTY_DOUBLE

Идентификатор

Описание

Тип свойства

CHART_SHIFT_SIZE

Размер отступа нулевого бара от правого края в процентах

double  (от 10 до 50 процентов)

CHART_FIXED_POSITION

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

double

CHART_FIXED_MAX

Фиксированный максимум графика

double

CHART_FIXED_MIN

Фиксированный минимум графика

double

CHART_POINTS_PER_BAR

Значение масштаба в пунктах на бар

double

CHART_PRICE_MIN

Минимум графика

double r/o   модификатор - номер подокна

CHART_PRICE_MAX

Максимум графика

double r/o   модификатор - номер подокна

Для функций ChartSetString() и ChartGetString()

ENUM_CHART_PROPERTY_STRING

Идентификатор

Описание

Тип свойства

CHART_COMMENT

Текст комментария на графике

string

CHART_EXPERT_NAME

Имя эксперта, запущенного на графике с указанным chart_id

string

CHART_SCRIPT_NAME

Имя скрипта, запущенного на графике с указанным chart_id

string

Пример:

   int chartMode=ChartGetInteger(0,CHART_MODE);
   switch(chartMode)
     {
      case(CHART_BARS):    Print("CHART_BARS");   break;
      case(CHART_CANDLES): Print("CHART_CANDLES");break;
      default:Print("CHART_LINE");
     }
   bool shifted=ChartGetInteger(0,CHART_SHIFT);
   if(shifted) 
      Print("CHART_SHIFT = true");
   else 
      Print("CHART_SHIFT = false");
   bool autoscroll=ChartGetInteger(0,CHART_AUTOSCROLL);
   if(autoscroll) 
      Print("CHART_AUTOSCROLL = true");
   else 
      Print("CHART_AUTOSCROLL = false");
   int chartHandle=ChartGetInteger(0,CHART_WINDOW_HANDLE);
   Print("CHART_WINDOW_HANDLE = ",chartHandle);
   int windows=ChartGetInteger(0,CHART_WINDOWS_TOTAL);
   Print("CHART_WINDOWS_TOTAL = ",windows);
   if(windows>1)
     {
      for(int i=0;i<windows;i++)
        {
         int height=ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,i);
         double priceMin=ChartGetDouble(0,CHART_PRICE_MIN,i);
         double priceMax=ChartGetDouble(0,CHART_PRICE_MAX,i);
         Print(i+": CHART_HEIGHT_IN_PIXELS = ",height,"pixels");
         Print(i+": CHART_PRICE_MIN = ",priceMin);
         Print(i+": CHART_PRICE_MAX = ",priceMax);
        }
     }

Смотри также

Примеры работы с графиком