курсор с ценой - страница 2

 
alsu >>:

5. Переводим вертикальную координату в значение цены, пользуясь высотой окна, имеющейся координатой Y, WindowPriceMax(), WindowPriceMin()

Во - про это-то я и забыл! :)

Так что всё решаемо.

 
6. Скрипт не годится. Будет спрашивать при перекл. ТФ: выгрузить скрипт? Лучше в эксперте.
 
SK. >>:
6. Скрипт не годится. Будет спрашивать при перекл. ТФ: выгрузить скрипт? Лучше в эксперте.

тогда на график другой эксперт уже не повесишь:)))

...индикатор? :)

 

 Может это подойдет:  

На любом месте графика кликаете колесико мышки. Появляется перекрестие.

Затем нажимаете левую кнопку и елозте по окну куда угодно. Отображается цена, номер бара и количество пунктов.

 
alsu >>:

Чисто теоретически можно из без хука.

1. С помощью стандартного WinAPI получаем координаты курсора относительно рабочего стола

2. Получаем дескриптор нужного окна с помощью WindowHandle()

3. Конвертируем (опять же, в WinAPI предусмотрена такая возможность) имеющиеся координаты в к-ты относительно левого верхнего угла графика

4. Получаем высоту окна в пикселах.

5. Переводим вертикальную координату в значение цены, пользуясь высотой окна, имеющейся координатой Y, WindowPriceMax(), WindowPriceMin()

В принципе, если на предыдущем шаге добавить еще и ширину, то далее WindowBarsPerChart(), WindowFirstVisibleBar(), и мы имеем еще и время бара под курсором.

6. Пишем коротенький запускающий скрипт с бесконечным циклом, содержащим шаги 1-5 (естественно, с проверкой на каждой итерации события изменения курсора, чтобы не загружать проц понапраcну)

voila

:)

ум!!! ++

 
alsu >>:

я сейчас в отпусу уезжаю. в деревню. на месяц. ноут беру с собой. если будет совсем скучно, обещаю заняться. вернусь 24 августа:))))

да вообще отлично, благодарю от души!

нужный инструмент должен получиться

 
laanaa0708 >>:

 Может это подойдет:  

На любом месте графика кликаете колесико мышки. Появляется перекрестие.

Затем нажимаете левую кнопку и елозте по окну куда угодно. Отображается цена, номер бара и количество пунктов.

перекрестие показывает цену справа, прицеливаться получается не удобно, + инструменты линии сетки выставлять нельзя

 
trilobyte:

:)

ум!!! ++

Всем привет) в MQL пишу недавно. Тоже встала задача определения - какой бар ближе всего к курсору.

Что занятно - ведь MetaTrader во всплывающей подсказке именно это и использует на любом графике с ценой или индикатором, ничего не подвешивая и другим сущностям не мешая.

А вот найденный пример типа

#import "user32.dll"
bool GetCursorPos(int& Pos[2]);
bool GetWindowRect(int hWnd,int& Pos[4]);

int start()
{int p[2];
int rect[4];
int hwnd=WindowHandle(Symbol(),Period());
while(!IsStopped())
{ GetWindowRect(hwnd,rect);
GetCursorPos(p);
int X=-rect[0]+p[0];
int Y=-rect[1]+p[1];
string c="Глобальные координаты мыши x= "+p[0]+" y= "+p[1]+"\n";
c=c+"Координаты мыши в окне котировок x= "+X+" y= "+Y";
Comment(c);
Sleep(10);
}
return(0);

}

срабатывает только при помещении индикатора или советника на форму, не отягощая себя интерактивностью.

Если кто решил этот вопрос - please, напишите КАК)

Причина обращения: