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

Renko Charts

Индикатор iRenkoChart предназначен для создания пользовательских графиков Renko. Используется открытый формат файлов истории, легкое переключение между графиками на основе Bid и Ask котировок, контроль качества истории, возможность использования экспертов, индикаторов и графический объектов для технического анализа и многое другое.

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

Содержание:

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

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

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

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

  • Max bars in chart - позволяет отображать фиксированное количество баров (боксов) в окне графика. Нулевое значение параметра позволяет отображать максимально возможное количество баров, но не больше установленного в настройках клиентского терминала. При этом параметр действует подобно аналогичному параметру клиентского терминала, описанному в справке. По умолчанию установлено 1000.
  • Size of box - диапазон или размер (боксов) баров в пунктах от цены открытия (open) до цены закрытия (close). По умолчанию установлено 200.
  • Value of zero buffer - значение нулевого буфера, рассчитывается в соответствии с выбранной ценовой константой.

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

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

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

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

  • Верхнее поле - наименование символа и параметр. Параметр - это размер бара в пунктах (Size of box), установленный во входных параметрах индикатора. При клике на это поле загрузится окно с информацией о файле истории (Скриншот 5).
  • Date - дата открытия бара.
  • Time - время открытия бара.
  • Open - цена открытия бара.
  • High - максимальная цена бара.
  • Low - минимальная цена бара.
  • Close - цена закрытия бара.
  • Volume - биржевой объем.
  • Tick Volume - тиковый объем.
  • Spread - спред бара.
  • Bar - номер бара; нулевой бар - последний незавершенный бар.

Окно данных имеет несколько кнопок управления отображением графика:

  • Shadows - кнопка включает/отключает отображение теней, на клавиатуре дублируется клавишей "S";
  • Update - кнопка включения/отключения режима обновления графика (горячая клавиша "U");
  • Bid/Ask - кнопка переключения отображения графика основанного на Bid или Ask котировках (горячие клавиши "B" и "A", соответственно);
  • Open/Close - кнопка открытия/закрытия окна данных находится в верхнем правом углу окна данных (горячая клавиша "W");
  • Redraw - кнопка перерисовки графика находится рядом с кнопкой закрытия окна данных (горячая клавиша "R").

Горячие клавиши работают только при активном окне графика.

5. Файлы истории (HST-файлы)

Для отрисовки графиков используется открытый формат файлов истории, описанный в Руководстве пользователя MetaTrader 4. Пользователь может для работы взять готовый файл истории Renko или создать его самостоятельно. Затем можно использовать индикатор iRenkoChart для отображения графика.

Формат файла истории следующий. Сначала идет заголовок файла истории:

struct HistoryHeader
{
  int     version        // версия базы
  char    copyright[64]; // копирайт
  char    symbol[12];   // инструмент
  int     parameter;    // период или параметр инструмента, для iRenkoChart это значение входного параметра "Size of box"
  int     digits;       // число знаков после запятой в инструменте
  time_t  timesign;     // временной отпечаток создания базы
  time_t  last_sync;    // время последней синхронизации
  int     type;         // тип хранимой истории, 1 - Ask-история, 2 - Bid-история,
                        // любое другое значение параметра - тип истории не определен
  int     unused[12];   // для будущего использования
};

Обратите внимание, что в стандартный заголовок добавлен новый параметр "type".

Версия базы для файлов истории 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" время бара можно задавать как в секундах, так и в миллисекундах. iRenkoChart корректно распознает оба формата времени.
Важно: ответственность за корректность файла истории несет пользователь.

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

  1. должно начинаться с префикса "Renko". Перед префиксом может быть добавлено "Ask" или "Bid", если в файле хранится соответствующий тип истории;
  2. затем должно указываться имя инструмента, на графике-подложке которого индикатор будет загружен (например, "EURUSD");
  3. далее должно идти значение входного параметра "Size of box" индикатора;
  4. и должно иметь расширение ".hst".

Пример имени файла: AskRenkoEURUSD200.hst

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

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

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

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

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

Также при формировании истории учитываются гэпы. На графике визуально по умолчанию гэпы отображаются в виде баров серым цветом и нулевыми объемами.

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

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

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

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

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

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

Стандартные графические объекты терминала при размещении в окне графика привязываются к временной шкале графика-подложки. Поэтому iRenkoChart автоматически перепривязывает накладываемые графические объекты к своей временной шкале. Это позволяет использовать штатные графические объекты для технического анализа графиков Renko. Синхронизация с iRenkoChart поддерживается для следующих штатных графических объектов MetaTrader 5:

  • линии: горизонтальные, вертикальные, трендовые, трендовые по углу, циклические, линии со стрелкой;
  • каналы: равноудаленные, вилы Эндрюса;
  • инструменты Фибоначчи: линии, временные зоны, веер, дуги, канал, расширение;
  • инструменты Эллиота: импульсная волна, корректирующая волна;
  • фигуры: треугольник, прямоугольник, эллипс;
  • стрелки: хорошо, плохо, вниз, вверх, стоп, галочка, левая и правая ценовые метки, значок "Buy" и "Sell", пользовательская стрелка.

Иногда, например, при закрытии терминала, iRenkoChart сохраняет данные об объектах во временный файл, который располагается в папке "каталог_данных_терминала\MQL5\Files\iRenkoChart\Objects". При удалении iRenkoChart из окна графика все временные файлы тоже удаляются.

9. Индикаторы и эксперты

Обычные индикаторы, также как и объекты, следуют временной шкале графика-подложки. Для привязки индикаторов к временной шкале iRenkoChart рекомендуется использовать бесплатную библиотеку LibCustomChart.

Функции библиотеки позволяют писать индикаторы, которые автоматически подключаются к iRenkoChart (Скриншот 3), если он загружен в окно графика. Если не загружен, то эти индикаторы без проблем будут работать в обычном окне графика. Кроме этого, библиотека предоставляет упрощенный доступ к таймсериям iRenkoChart.

Если функции библиотеки используются в эксперте, то эксперт, также как и индикатор, автоматически будет использовать данные  iRenkoChart, если он уже загружен в окно графика. Если iRenkoChart не загружен, то эксперт будет работать в обычном окне графика и использовать его данные.

Примеры использования библиотеки в индикаторах и экспертах можно найти в Code Base.

Данный индикатор основан на движке iCustomChart и является его частной реализацией. Демонстрационную версию iCustomChart можно скачать бесплатно.
Нет отзывов
Версия 1.17 - 2015.04.29
1. Входной параметр Offset переименован в Type of chart. Имеет три значения:
Standard Renko - строится график ренко по классическому алгоритму;
Price frame - отличие от стандартного ренко заключается в том, что цена открытия бокса всегда равна цене закрытия предыдущего бокса;
Mediam Renko - цена открытия бокса равна среднему значению цены открытия и закрытия предыдущего бокса.
2. В штатном окне данных MetaTrader 5 добавлено отображение значений OHLC бокса.
Версия 1.16 - 2015.03.20
1. Исправлено отображение графика Ренко при входном параметре "Max bars in chart" больше количества баров на графике-подложке.
2. Добавлен фильтр от нулевых котировок, которые приводили к неверному отображению графика Ренко.
Версия 1.15 - 2015.03.11
1. Исправлена ошибка во время чтения файла истории после обрыва связи с сервером, приводившая иногда к неверному отображению графика ренко.
2. Оптимизирован код работы с файлами истории.
Версия 1.14 - 2014.09.24
1. Исправлена ошибка при работе с инструментами, имя которых превышает 12 символов.
2. Оптимизирован код отображения шкалы времени.
Версия 1.13 - 2014.06.23
Исправлена ошибка формирования каталога файла истории в случае присутствия в имени брокера служебных символов.
Версия 1.12 - 2013.09.03
Снят запрет на использовании в тестере. Работа в визуализаторе тестера пока попрежнему отключена.
Версия 1.11 - 2013.06.21
1. В предыдущих версиях добавлен параметр "Offset". При значении "OFF" в окне отображается график Ренко. При значении "ON" в окне отображается график Прайсфрейм. Отличие от Ренко только в том, что разворотные боксы начинают формироваться сразу после закрытия предыдущего.
2. Исправлена ошибка при синхронизации графических объектов с iRenkoChart, возникающая после перезагрузки терминала.
3. Исправлено отображение цветов при выборе одной из 3 цветовых схем в свойствах графика.