Пользователь использует графики с отступами от правого края. Сколько баров отображается на таком графике ? Чистая геометрическая константа, не зависящая от периодов, истории, прокрутки и всего прочего.
А если подумать? Допустим, график прокручен максимально вправо, тогда отступ виден, и на графике, например, 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 соответствующими функциями ?
Вопросы программирования обсуждаются на специализированном форуме 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 не поддерживает сложные типы данных (структуры) ?
Допустим, график прокручен максимально вправо, тогда отступ виден, и на графике, например, 100 баров.
Но если промотать график налево, чтоб отступ ищез, баров будет 100 + столько, сколько влазит в отступ.
Но если промотать график налево, чтоб отступ ищез, баров будет 100 + столько, сколько влазит в отступ.
Руками мотать график совсем не интересно.
- получения вертикального и горизонтального размера текущего графика в пикселах;
1. GetClientRect из user32.dll
Помогите разобраться с импортом *.dll, у меня совершенно нет опыта.
Нашел описание GetClientRect
Синтаксис
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: 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% не от цены, а от количества пикселей между максимальной и минимальной ценой.
Так Вы задайте вопрос. Я Вас для этого пригласил на специализированный форум.
Кроме того, я процитировал самого себя: "Сложнее с координатой цены". Что означает, что вопрос не имеет однозначного ответа.
Кстати, 5% не от цены, а от количества пикселей между максимальной и минимальной ценой.
Последовал вашему совету и разместил вопрос на форуме MQL4.COMmunity. Нулевая реакция и никаких перспектив и надежд. Помогите, пожалуйста.
Помогите, пожалуйста, разобраться с функцией GetClientRect из user32.dll для получения вертикального и горизонтального размера текущего графика в пикселах.
Описание функции приведено выше.
Для подключения указываем #import "user32.dll".
В качестве идентификатора окна hWnd указываем значение, возвращаемое функцией WindowHandle (…) .
Как получить требуемые параметры из структуры lpRect, если MQL4 не поддерживает сложные типы данных (структуры) ?
Более месяца безуспешно прошу помощи в решении своей проблемы.
Некоторые посты получают ответ через час-два, некоторые откровенно игнорируются в течение длительного времени. Почему ?