Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
Size of candles 2 (text) - индикатор для MetaTrader 5
- Просмотров:
- 2800
- Рейтинг:
- Опубликован:
- 2017.05.30 09:12
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Версия 1
Версия 2.
Индикатор отражает размер бара. Размер свечи считается по формуле: "уменьшаемое" минус "вычитаемое". "Уменьшаемое" и "вычитаемое" могут быть одним их четырёх значений (open, high, low or close).
Добавлено в версии 2:
- выбор цвета надписи для бычьего и для медвежьего баров
- настройка отступа от бара
- сам текст теперь отображается:
- снизу бара, если бар бычий
- сверху бара в остальных случаях
Количество баров, для которых отображается размер, ограничено во входных параметрах (InpNumberOfBars). Это число остаётся неизменным, даже если открылся новый бар:
Немного о синхронизации баров и графических объектов.
Учет графических объектов
Названия объектов хранятся в массиве m_arr_names[] — его размер равен входному параметру InpNumberOfBars. Почему выбран именно массив, а не простая переменная типа string? Это своеобразный задел на будущее.
Формирование имени объекта
Название объекта, который соответствует бару index, формируется по такой формуле:
name[index] = m_prefix + ("high_" or "low_") + TimeToString(time[index])
Когда нужно удалять все объекты
Как известно, индикаторы выгружаются в следующих случаях:
- открепление индикатора от графика;
- закрытие терминала (если индикатор был прикреплен к графику);
- загрузка шаблона, если к графику прикреплен индикатор;
- закрытие графика, к которому был прикреплен индикатор;
- смена профиля, если индикатор прикреплен к одному из графиков сменяемого профиля;
- смена символа и/или периода графика, к которому прикреплен индикатор;
- изменение входных параметров индикатора.
Поэтому выполняем полное удаление созданных графических объектов:
- в OnDeinit()
- в OnInit() (это больше для перестраховки — вдруг остались неудалённые "бесхозные" графические объекты)
- в OnCalculate(), когда prev_calculated==0.
Также выполняем очистку массива m_arr_names[]:
- в OnCalculate(), когда prev_calculated==0 или когда prev_calculated!=rates_total
Поддержание постоянного количества графических объектов:
при возникновении нового бара (или баров) на графике срабатывает условие prev_calculated!=rates_total. В этом случае все объекты удаляются, а массив m_arr_names[] очищается.
Торговля по паттерну "Bullish and Bearish Engulfing".
FractalSystemИндикатор с использованием фракталов.
Индикатор QEMA с возможностью изменения таймфрейма индикатора во входных параметрах.
EveningStarИндикатор показывает паттерн "Evening Star" (Вечерняя звезда).