Скачать MetaTrader 5

Смотри, как бесплатно скачать роботов

Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят

Понравился скрипт?
Оцени его работу в терминале MetaTrader 5

2015.12.03 15:30
Библиотеки

Замена CRect и CCanvas (Стандартная библиотека - исправлено несколько ошибок) - библиотека для MetaTrader 5

| Russian English 中文 Español Deutsch 日本語 Português

Опубликовал:
Doerk Hilger
Просмотров:
616
Рейтинг:
голосов: 18
\MQL5\Include\Controls\\MQL5\Include\Canvas\

Реальный автор:

MetaQuotes Software, Исправления и Улучшения от Doerk.

Во время попиксельной работы со стандартной библиотекой, вскоре станет заметно, что в некоторых местах не хватает пикселей. Это странное поведение в основном вызвано несколькими ошибками в классе CRect. Основная проблема здесь в том, что оригинальный класс даёт сбой при вычислении высоты и ширины прямоугольника, который влияет почти на ВСЕ производные класса CWnd, так как CWnd графически основан на CRect.

В оригинальном CRect ширина рассчитывается следующим образом:

width = x2 - x1

Это попросту неверно. При создании любого прямоугольного объекта начиная с 0,0 до 10,10, получается объект шириной в 11 пикселей, а не в 10 пикселей. Таким образом, правильный ответ

width = x2 - x1 +1

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

Теперь стало возможным сравнение двух прямоугольников при помощи обычных операторов, таких как == != >= <= > <

вместо кодирования

if (rect1.left==rect2.left && rect1.top==rect2.rect.top && rect1.right==rect2.rect.right && rect1.bottom==rect2.bottom)

нужно лишь ввести

if (rect1==rect2)

Более того, также для расширения или увеличения прямоугольника поддерживаются унарные операторы, такие как ++, --, +.

Рекомендации:

  • Замените Rect.mqh этим файлом в папке Controls. Не ставьте его в другую папку, он просто не будет работать.
  • Замените Canvas.mqh в папке Canvas прикрепленным файлом. Не ставьте его в другую папку, он не будет работать.
  • Сделайте резервную копию этого файла и восстановите его на новых версиях MetaTrader в исходную папку.
  • Если MetaQuotes решит заменить оригиналы этими файлами, думаю вы всё равно будете проинформированы.

Перевод с английского произведен MetaQuotes Software Corp.
Оригинальная публикация: https://www.mql5.com/en/code/13936

Замена CWndContainer Замена CWndContainer

Этот файл заменяет оригинальный файл WndContainer.mqh. Он предотвращает изменение графика при нажатии и удержании кнопки мыши внутри области контейнера.

ColorJFatlAcceleration_HTF ColorJFatlAcceleration_HTF

Индикатор ColorJFatlAcceleration с возможностью изменения таймфрейма индикатора во входных параметрах.

BSI Trend Indicator BSI Trend Indicator

Этот индикатор отображает состояние тренда при помощи Индикатора BSI.

Price Heatmap Price Heatmap

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