Как узнать координату правой вертикальной оси на чарте?

 

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

Кто нибудь может мне подсказать, как узнать координату этой правой оси по Х?
При этом надо учитывать, что Chart Shift может быть включен и расстояние между последним баром и правой осью может быть изменено пользователем.

 
После нулевого бара, бары не рисуются впринципе, можно нарисвоать объекты не по барам, а по секундам (с 1970).
 

К сожалению, это непростой вопрос.

Получить координаты сетки можно, но за этим следует другой вопрос - реакция на изменение размеров окна, что приводит к необходимости отслеживания таких действий (зацикленный скрипт, советник).

Непосредственно получить место расположения правой границы штатными средствами можно, но не в пикселях, а во времени открытия бара. Для этого используются функции WindowFirstVisibleBar и WindowsBarPerChart. От времени открытия самого крайнего правого бара окна и рисуйте объекты.

 
легче рисовать в лейбами в писелях экрана, а не чарта. синхронизируя по цене.
 
FAQ:
легче рисовать в лейбами в писелях экрана, а не чарта. синхронизируя по цене.


Думаю, что не проще. Перевод цены в пиксели в МТ4 штатными способами не решается.

 
JLY:
После нулевого бара, бары не рисуются впринципе, можно нарисвоать объекты не по барам, а по секундам (с 1970).


Я и хочу нарисовать 'по секундам' и собираюсь для этого использовать функцию

ObjectCreate("my_histo1", OBJ_RECTANGLE, 0, time1, price1, time2, price2);

Scriptong:

Получить координаты сетки можно, но за этим следует другой вопрос - реакция на изменение размеров окна, что приводит к необходимости отслеживания таких действий (зацикленный скрипт, советник).

Ну да, но это другая проблема. Планирую для ее решения сделать все в зацикленном советнике.

Scriptong:

Непосредственно получить место расположения правой границы штатными средствами можно, но не в пикселях, а во времени открытия бара. Для этого используются функции WindowFirstVisibleBar и WindowsBarPerChart. От времени открытия самого крайнего правого бара окна и рисуйте объекты.


WindowFirstVisibleBar и WindowBarsPerChart конечно полезные функции, но используя их я смогу вычислить координату синей линии,

а мне интересно, есть ли способ узнать координату красной линии?

 
FAQ:
легче рисовать в лейбами в писелях экрана, а не чарта. синхронизируя по цене.

Лейбел - это же текст, а мне надо нарисовать прямоугольник или можно рисовать прямоугольники с помощью лейбелов?

Сам себе отвечу - нельзя. Т.к. лейбел использует только одну координату для отображения

OBJ_LABEL 23 Text label. Uses 1 coordinate in pixels.

 
sergo700:


WindowFirstVisibleBar и WindowBarsPerChart конечно полезные функции, но используя их я смогу вычислить координату синей линии,

а мне интересно, есть ли способ узнать координату красной линии?

Координату в межбарном пространстве узнать не получится.

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

 
Scriptong:

Координату в межбарном пространстве узнать не получится.

Спасибо за ответы!

Тогда буду рисовать от синей линии.

Scriptong:

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

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

Ув. Scriptong!

Скажите, пожалуйста, какой процент составляет свободное от баров пространство от всего окна графика? Спасибо!

 
borilunad:

Ув. Scriptong!

Скажите, пожалуйста, какой процент составляет свободное от баров пространство от всего окна графика? Спасибо!

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