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

Range Bars Chart

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

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

Содержание:

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

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

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

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

  • Max bars in chart - позволяет отображать фиксированное количество баров в окне графика. Нулевое значение параметра позволяет отображать максимально возможное количество баров, но не больше установленного в настройках клиентского терминала. При этом параметр действует подобно аналогичному параметру клиентского терминала, описанному в справке. По умолчанию установлено 1000.
  • Range - диапазон или размер баров в пунктах от минимального значения (low) до максимального (hight). По умолчанию установлено 200.
  • Update - способ обновления индикатора  iRangeBarsChart:
                   Disable - обновление отключено; 
                   Ticks    - обновление на каждом тике графика-подложки, установлено по умолчанию ; 
                   Bars     - обновление при возникновении нового бара на графике-подложке.
  • Shadows - управление отрисовкой теней свечи:
                   Enable  - отображение теней включено, установлено по умолчанию; 
                   Disable - отображение теней выключено.
  • Price scale - выбор шкалы цен:  
                   Standard - штатная шкала цен. Масштабирование и управление шкалой производится средствами MetaTrader 5.
                   Custom - масштабирование производится индикатором iRangeBarsChart. Установлено по умолчанию.
  • Value of zero buffer - значение нулевого буфера, рассчитывается в соответствии с выбранной ценовой константой.

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

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

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

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

  • Верхнее поле - наименование символа и параметр. Параметр - это размер бара в пунктах (Range), установленный во входных параметрах индикатора. При клике на это поле загрузится окно с информацией о файле истории (Скриншот 5).
  • Date            - дата открытия бара.
  • Time            - время открытия бара.
  • Open           - цена открытия бара.
  • High            - максимальная цена бара.
  • Low             - минимальная цена бара.
  • Close           - цена закрытия бара.
  • Volume        - биржевой объем.
  • Tick Volume - тиковый объем.
  • Spread        - спред бара.
  • Bar              - номер бара, нулевой бар - последний незавершенный бар.
5. Файлы истории (HST-файлы)
Для отрисовки графиков используется открытый формат файлов истории, описанный в Руководстве пользователя MetaTrader 4. Пользователь может для работы взять готовый файл истории Range Bars или создать его самостоятельно. Затем можно использовать индикатор  iRangeBarsChart для отображения графика.
Формат файла истории следующий. Сначала идет заголовок файла истории:
struct HistoryHeader
{
  int		version		// версия базы
  char		copyright[64];	// копирайт
  char		symbol[12];	// инструмент
  int		parameter;      // период или параметр инструмента, для iRangeBarsChart это значение входного параметра "Range"
  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" время бара можно задавать как в секундах, так и в миллисекундах.  iRangeBarsChart  корректно распознает оба формата времени.

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

Чтобы iRangeBarsChart мог распознать файл истории, он должен находится в папке "каталог_данных_терминала\MQL5\Files\iRangeBarsChart\History". Имя файла истории:

  1. должно начинаться с префикса "Range";
  2. затем должно указываться имя инструмента на графике-подложке которого индикатор будет загружен (например, "EURUSD");
  3. далее должно идти значение входного параметра "Range" индикатора;
  4. и должно иметь расширение ".hst".
Пример имени файла: RangeEURUSD200.hst

Если файл истории не существует, то он автоматически будет создан из минутной истории, доступной в терминале. Если существует, то он будет обновляться в соответствии с установкой входного параметра индикатора "Update". 

6. Контроль качества истории

Для файлов истории, созданных исключительно iRangeBarsChart, возможен контроль качества истории.

Любой новый файл истории создается из минутной истории, доступной в терминале. Соответственно, могут возникнуть ситуации, когда смоделированные бары могут отличатся от баров, созданных в online. Каждый сомнительный смоделированный бар на графике отображается более светлым цветом, чем корректные бары (Скриншот 7). Это позволяет визуально оценить качество истории.

При инициализации индикатора в журнале появится сообщение о качестве истории (Скриншот 7). Ее можно оценить в процентном соотношении хороших и плохих баров. Обратите внимание, что расчет качества истории производится только для отображаемых на графике баров, а не для всего файла истории. 

Используя индикаторный буфер "Цвет бара" можно программно оценивать качество истории из своих индикаторов и экспертов.  Это позволяет принимать адекватные решения при реализации той или иной торговой стратегии.

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

7. Шкала времени

Шкала времени графиков, созданных с помощью iRangeBarsChart, обычно не совпадает со шкалой времени графика-подложки и является нелинейной. Поэтому в индикатор встроена для визуализации собственная шкала времени (Скриншот 6). Особенности встроенной шкалы:

  • внешне схожа со штатной шкалой времени;
  • легко перемещается по вертикали;
  • имеет полупрозрачный фон, всегда видны графические объекты и ценовой график за шкалой.

8. Графические объекты для технического анализа

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

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

Нет отзывов