Максимальная и минимальная видимые котировки - страница 4

 
Пользователь использует графики с отступами от правого края. Сколько баров отображается на таком графике ? Чистая геометрическая константа, не зависящая от периодов, истории, прокрутки и всего прочего.
А если подумать?
Допустим, график прокручен максимально вправо, тогда отступ виден, и на графике, например, 100 баров.
Но если промотать график налево, чтоб отступ ищез, баров будет 100 + столько, сколько влазит в отступ.
 
Допустим, график прокручен максимально вправо, тогда отступ виден, и на графике, например, 100 баров.
Но если промотать график налево, чтоб отступ ищез, баров будет 100 + столько, сколько влазит в отступ.


Руками мотать график совсем не интересно.


какие системные функции и библиотеки необходимо подключать для
- получения вертикального и горизонтального размера текущего графика в пикселах;

1. GetClientRect из user32.dll


Помогите разобраться с импортом *.dll, у меня совершенно нет опыта.
Нашел описание GetClientRect

Функция GetClientRect извлекает координаты рабочей области окна. Рабочие координаты определяют левый верхний и нижний правый углы рабочей области. Поскольку рабочие координаты определены относительно левого верхнего угла рабочей области окна, координаты левого верхнего угла - (0,0).
Синтаксис
BOOL GetClientRect
(
HWND hWnd, // дескриптор окна
LPRECT lpRect // адрес структуры рабочих координат
);
Параметры
hWnd
Идентифицирует окно, рабочие координаты которого должны быть возвращены.
lpRect
Указывает на структуру RECT, которая принимает рабочие координаты. Левые и верхние элементы - нулевые. Правые и нижние элементы содержат ширину и высоту окна.
Возвращаемые значения
Если функция завершается успешно, возвращаемое значение отлично от нуля. Если функция потерпит неудачу, возвращаемое значение нулевое. Чтобы получить расширенные данные об ошибках, вызовите GetLastError.


В других источниках эта функция описывается как void. Чему верить ?

Для подключения необходимо указать #import "user32.dll" ?

По одним источникам структура RECT описана в winuser.h, по другим в windef.h. Ни одного из этих файлов на моей машине нет.

#include <winuser.h> или #include <windef.h> ?

Что необходимо указывать в качестве идентификатора окна hWnd ?

Как получить требуемые параметры из структуры lpRect ? MQL4 не поддерживает сложные типы данных (структуры).


какие системные функции и библиотеки необходимо подключать для

- получения максимальной и минимальной видимых котировок текущего графика;

Может быть есть смысл дополнить язык MQL4 соответствующими функциями ?


|------------------------------------------------| <- 1.8595
|................................................|
|................................................|
|.............--- High ........................|
|................................................|
|................................................|
|................................................|
|................................................|
|................................................|
|................................................|
|............................--- Low..........|
|................................................|
|................................................|
|------------------------------------------------| <- 1.8293

Представляют интерес величины максимальной и минимальной котировок, видимых на вертикальной оси.
 
Уважаемые разработчики !

Прошу ответить на мои вопросы.
 
Вопросы программирования обсуждаются на специализированном форуме MQL4.COMmunity.

На сайте есть множество статей и коллекция программ. Почитайте, не пожалеете. В частности, вопрос про минимальные и максимальные котировки обсуждался здесь: "MQL4: Interception"

Процитирую
===
Если известен размер окна в пикселях, тогда запросто можно воспользоваться функциями BarsPerWindow и FirstVisibleBar. Нет никаких проблем, чтобы вычислить номер бара.
Сложнее с координатой цены. Если масштаб - автоматический, то можно посчитать, прибавив по 5 процентов от разнициы между наибольшим и наименьшим значениями цен сверху и снизу. Если масштаб - фиксированный, то посчитать нельзя, так как отсутствует информация о верхней и нижней границе.
===
 

Процитирую
===
Если известен размер окна в пикселях, тогда запросто можно воспользоваться функциями BarsPerWindow и FirstVisibleBar. Нет никаких проблем, чтобы вычислить номер бара.
Сложнее с координатой цены. Если масштаб - автоматический, то можно посчитать, прибавив по 5 процентов от разнициы между наибольшим и наименьшим значениями цен сверху и снизу. Если масштаб - фиксированный, то посчитать нельзя, так как отсутствует информация о верхней и нижней границе.
===


Реальный пример: EURUSD, M1
High 1.2613 Макс. видимое значение 1.2620 delta 0.0007
Low 1.2602 Мин. видимое значение 1.2600 delta 0.0002

Где же здесь 5 % ?

Поиск GetClientRect на форуме MQL4.COMmunity дает 2 ссылки. Никаких конкретных ответов или рекомендаций.
 

Поиск GetClientRect на форуме MQL4.COMmunity дает 2 ссылки. Никаких конкретных ответов или рекомендаций.

Так Вы задайте вопрос. Я Вас для этого пригласил на специализированный форум.
Кроме того, я процитировал самого себя: "Сложнее с координатой цены". Что означает, что вопрос не имеет однозначного ответа.

Кстати, 5% не от цены, а от количества пикселей между максимальной и минимальной ценой.
 
Пользователю пока доступны только цены High и Low. Согласно приведенному примеру вывод текстовых объектов возможен только на 50% площади графика. Разве это нормально ?
 

Так Вы задайте вопрос. Я Вас для этого пригласил на специализированный форум.
Кроме того, я процитировал самого себя: "Сложнее с координатой цены". Что означает, что вопрос не имеет однозначного ответа.

Кстати, 5% не от цены, а от количества пикселей между максимальной и минимальной ценой.


Последовал вашему совету и разместил вопрос на форуме MQL4.COMmunity. Нулевая реакция и никаких перспектив и надежд. Помогите, пожалуйста.
 
Уважаемые разработчики !

Помогите, пожалуйста, разобраться с функцией GetClientRect из user32.dll для получения вертикального и горизонтального размера текущего графика в пикселах.

Описание функции приведено выше.

Для подключения указываем #import "user32.dll".

В качестве идентификатора окна hWnd указываем значение, возвращаемое функцией WindowHandle (…) .

Как получить требуемые параметры из структуры lpRect, если MQL4 не поддерживает сложные типы данных (структуры) ?
 
Уважаемые разработчики !

Более месяца безуспешно прошу помощи в решении своей проблемы.

Некоторые посты получают ответ через час-два, некоторые откровенно игнорируются в течение длительного времени. Почему ?
Причина обращения: