• Обзор
  • Отзывы
  • Обсуждение (1)

Custom Chart

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

Демонстрационную версию iCustomChart можно скачать бесплатно.

Содержание:

  1. Достоинства и особенности
  2. Входные параметры
  3. Индикаторные буферы
  4. Окно данных
  5. Файлы истории
  6. Графические объекты для технического анализа
  7. Индикаторы и эксперты

1. Достоинства и особенности

  • запускается и работает на любом открытом окне графика (далее - график-подложка);
  • после загрузки выглядит как обычный график (смотрите Скриншоты);
  • используется открытый формат файлов истории;
  • можно использовать формат данных MetaTrader 4, MetaTrader 5;
  • дает возможность создавать графики синтетических или нестандартных инструментов;
  • имеет встроенное окно данных (DataWindow) (смотрите Скриншот 4);
  • для технического анализа можно использовать большинство объектов из стандартного набора MetaTrader 5 (смотрите Скриншот 2);
  • возможность создания online- или offline-графиков;
  • контроль времени открытия баров осуществляется до миллисекунд;
  • можно писать на основе графика синтетического символа свои индикаторы и советники (смотрите Скриншоты 3, 6).

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

  • Historical file - имя файла истории, может содержать подпапки. Все файлы истории находятся в папке "каталог_данных_терминала\MQL5\Files\iCustomChart\History" и ищутся относительно этой папки.
  • Max bars in chart - позволяет отображать фиксированное количество баров в окне графика. Нулевое значение параметра позволяет отображать максимально возможное количество баров, но не больше установленного в настройках клиентского терминала. При этом параметр действует подобно аналогичному параметру клиентского терминала, описанному в справке. По умолчанию установлено 1000.
  • Update - способ обновления индикатора iCustomChart:
                   Disable - обновление отключено, установлено по умолчанию;
                   Ticks    - обновление на каждом тике графика-подложки;
                   Bars     - обновление при возникновении нового бара на графике-подложке.
    Примечание: при включенном обновлении происходит обращение к файлу истории. Если обновление файла истории не происходит, то включать этот режим не имеет смысла.
  • Shadows - управление отрисовкой теней свечи. Параметр полезен при создании некоторых нестандартных графиков, например, Renko:
                   Enable  - отображение теней включено, установлено по умолчанию; 
                   Disable - отображение теней выключено.
  • Data scale - отображение на графике шкалы времени. 
                   Enable - отображение шкалы времени включено, установлено по умолчанию; 
                   Disable - отображение шкалы времени выключено.
  • Value of zero buffer - значение нулевого буфера, рассчитывается в соответствии с выбранной ценовой константой.

3. Индикаторные буферы

Номер
индикаторного
буфера
Содержимое
0 Содержит выбранную ценовую константу. Буфер в основном предназначен для получения данных другими индикаторами, которые используют первую форму вызова
1 Время открытия бара 
2 Цена открытия бара 
3 Максимальная цена бара 
4 Минимальная цена бара 
5 Цена закрытия бара 
6 Цвет бара 
7 Биржевой объем 
8 Тиковый объем 
9 Спред 

4. Окно данных 

Встроенное окно данных внешне схоже со штатным окном данных MetaTrader 5, но имеет несколько дополнений (Скриншот 4). Поля данных, отображаемые в окне:

  • Верхнее поле - наименование символа и параметр. Параметр - это значение переменной "parameter" заголовка файла истории (смотрите описание формата файла истории). Стандартные значения параметра означают выбранный период инструмента. При клике на это поле загрузится окно с информацией о файле истории (Скриншот 5).
  • Date            - дата открытия бара.
  • Time            - время открытия бара.
  • Open           - цена открытия бара.
  • High            - максимальная цена бара.
  • Low             - минимальная цена бара.
  • Close           - цена закрытия бара.
  • Volume        - биржевой объем.
  • Tick Volume - тиковый объем.
  • Spread        - спред бара.
  • Bar              - номер бара, нулевой бар - последний незавершенный бар.
5. Файлы истории (HST-файлы)
Для отрисовки графиков используется открытый формат файлов истории, описанный в Руководстве пользователя MetaTrader 4. Пользователь может для работы взять готовый файл истории или создать его самостоятельно. Затем можно использовать индикатор iCustomChart для отображения графика.
Формат файла истории следующий. Сначала идет заголовок файла истории:
struct HistoryHeader
{
  int		version		// версия базы
  char		copyright[64];	// копирайт
  char		symbol[12];	// инструмент
  int		parameter;     // период или параметр инструмента
  int		digits;        // число знаков после запятой в инструменте
  time_t	timesign;      // временной отпечаток создания базы
  time_t        last_sync;    // время последней синхронизации
  int		unused[13];	// для будущего использования
};
Версия базы для файлов истории MetaTrader 4 указывается "400", для MetaTrader 5 - "500". Это важно, т.к. у каждой версии своя структура данных бара.
Стандартное представление массива баров, следующего за заголовком, для файла истории версии "400" выглядит так:
#pragma pack(push,1)
struct RateInfo
{
 time_t   ctm;	  // время в секундах
 double	  open;	  // цена открытия бара
 double	  low;	  // минимальная цена бара
 double   high;	  // максимальная цена бара
 double   close; // цена закрытия бара
 double   vol;	  // объем
};
#pragma pack(pop)
Стандартное представление массива баров для файла истории версии "500" выглядит так:
#pragma pack(push,1)
struct MqlRates
{
 datetime time;         // время бара в секундах или миллисекундах
 double   open;         // цена открытия
 double   high;         // наивысшая цена за период
 double   low;          // наименьшая цена за период
 double   close;        // цена закрытия
 long     tick_volume;  // тиковый объем
 int      spread;       // спред
 long     real_volume;  // биржевой объем 
};
#pragma pack(pop)

Обратите внимание, что для версии "500" время бара можно задавать как в секундах, так и в миллисекундах. iCustomChart корректно распознает оба формата времени.

Важно: ответственность за корректность файла истории несет пользователь.

6. Графические объекты для технического анализа
Стандартные графические объекты терминала при размещении в окне графика привязываются к временной шкале графика-подложки. Шкала времени пользовательских графиков, созданных с помощью iCustomChart, не всегда совпадает со шкалой времени графика-подложки. Поэтому iCustomChart автоматически привязывает накладываемые графические объекты к своей временной шкале. Синхронизация с iCustomChart поддерживается для следующих штатных графических объектов MetaTrader 5:
  • линии: горизонтальные, вертикальные, трендовые, трендовые по углу, циклические, линии со стрелкой;
  • каналы: равноудаленные, вилы Эндрюса;
  • инструменты Фибоначчи: линии, временные зоны, веер, дуги, канал, расширение;
  • инструменты Эллиота: импульсная волна, корректирующая волна;
  • фигуры: треугольник, прямоугольник, эллипс;
  • стрелки: хорошо, плохо, вниз, вверх, стоп, галочка, левая и правая ценовые метки, значок "Buy" и "Sell", пользовательская стрелка.
Иногда, например при закрытии терминала, iCustomChart сохраняет данные об объектах во временный файл, который располагается в папке "каталог_данных_терминала\MQL5\Files\iCustomChart\Objects". При удалении iCustomChart из окна графика все временные файлы тоже удаляются.
7. Индикаторы и эксперты
Обычные индикаторы, также как и объекты, следуют временной шкале графика-подложки. Для привязки индикаторов к временной шкале iCustomChart следует использовать бесплатную библиотеку LibCustomChart
Функции библиотеки позволяют писать индикаторы, которые автоматически подключаются к iCustomChart (Скриншот 3), если он загружен в окно графика. Если iCustomChart не загружен, то эти индикаторы без проблем будут работать в обычном окне графика. Кроме этого, библиотека предоставляет упрощенный доступ к таймсериям iCustomChart.
Если функции библиотеки используются в эксперте, то эксперт, также как и индикатор, автоматически будет использовать данные iCustomChart, если он уже загружен в окно графика. Если iCustomChart не загружен, то эксперт будет работать в обычном окне графика и использовать его данные.
Примеры использования библиотеки в индикаторах и экспертах можно найти в Code Base.

Демонстрационную версию iCustomChart можно скачать бесплатно.

Нет отзывов