Можно, вот он скрипт для получения координат мыши в окне с графиком цены (мне почемуто показалось чтовсетаки не "Окно котировок" нужно, а именно график)
//+------------------------------------------------------------------+ //| MousePos.mq4 | //| Jhonny | //| jhonnyfx@mail.ru | //+------------------------------------------------------------------+ #property copyright "Jhonny" #property link "jhonnyfx@mail.ru" //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ #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); } //+------------------------------------------------------------------+
PS Хмм.. оказывается с простенькими структурами можно работать... кто знает может и со сложными чтонибудь придумается...
Спасибо, это тот путь, который я безуспешно искал.
А то я нашел способ с применением IdleLib.dll, описанный на форуме, но сильно не хочется пользоваться чем-то, чего нет в исходниках. Нахлебаешься потом.
Вопрос почти аналогичный, но нужны координаты не в пикселях, а в единицах графика, X(datetime), Y(price), например, Х=D'2011.03.01 15:30 ' Y=1.2345
То есть получить ту же координату Х курсора Т(datetime), которую мы видим внизу графика, данные TOHLCV на инфо-панели, отслеживающие положение курсора.
П.С. При компиляции приведенного кода ошибка, в этой строчке нужно убрать лишнюю последнюю кавычку:
c=c+"Координаты мыши в окне котировок x= "+X+" y= "+Y ;
thecore:
Спасибо, это тот путь, который я безуспешно искал.
А то я нашел способ с применением IdleLib.dll, описанный на форуме, но сильно не хочется пользоваться чем-то, чего нет в исходниках. Нахлебаешься потом.
:-))) Много ли нахлебались от Word, Exel, Opera, QIP и многих других полезных программ?
:-))) Много ли нахлебались от Word, Exel, Opera, QIP и многих других полезных программ?
Не многие, свои самопальные DLL, в ряд с этими продуктами ставят.
;)
Тогда, наверно, вопрос/просьба/мольба/взывание к разработчикам:
Дайте, плиз, возможность получать значение координат курсора в единицах графика, X(datetime), Y(price)!
Например, функцией наподобие GetCursor...(), или добавить курсор в список графических объектов, пусть только с возможностью получения (Get) его свойств. Желательно в зависимости от входного параметра, возвращать или пиксели или datetime/price, так как при работе с графическими объектами используются оба вида координат. Зачем на ровном месте создавать проблемы с использованием сторонних ДЛЛ, тем более что задача перевода пикселей в значения время/цена получается неоднозначной, нетривиальной и в общем случае нерешаемой. В то время как та же координата курсора по Х лежит на поверхности - под графиками выводятся значения ТOHLCV.
П.С. Могу перечислить проблемы перевода пикселей в значение X(datetime). Они возникнут из-за нарушения линейности шкалы времени на графике по таким причинам:
- пропущенные (отсутствующие) бары;
- пропущенные (отсутствующие) дни - выходные, праздники...
- по пятницам ранее время окончания торгов, причем это время не всегда одно и то же;
- то же самое может быть в пред- и после-праздничные дни;
- на разных ДЦ по разному отображаются выходные дни...
Тогда, наверно, вопрос/просьба/мольба/взывание к разработчикам:
Дайте, плиз, возможность получать значение координат курсора в единицах графика, X(datetime), Y(price)!
Например, функцией наподобие GetCursor...(), или добавить курсор в список графических объектов, пусть только с возможностью получения (Get) его свойств. Желательно в зависимости от входного параметра, возвращать или пиксели или datetime/price, так как при работе с графическими объектами используются оба вида координат. Зачем на ровном месте создавать проблемы с использованием сторонних ДЛЛ, тем более что задача перевода пикселей в значения время/цена получается неоднозначной, нетривиальной и в общем случае нерешаемой. В то время как та же координата курсора по Х лежит на поверхности - под графиками выводятся значения ТOHLCV.
П.С. Могу перечислить проблемы перевода пикселей в значение X(datetime). Они возникнут из-за нарушения линейности шкалы времени на графике по таким причинам:
- пропущенные (отсутствующие) бары;
- пропущенные (отсутствующие) дни - выходные, праздники...
- по пятницам ранее время окончания торгов, причем это время не всегда одно и то же;
- то же самое может быть в пред- и после-праздничные дни;
- на разных ДЦ по разному отображаются выходные дни...
Это не проблемы. Проблема в том, что невозможно получить размеры подокон, если они есть. При наличие подокон невозможно узнать размер окна с графиком цены.
Это не проблемы. Проблема в том, что невозможно получить размеры подокон, если они есть. При наличие подокон невозможно узнать размер окна с графиком цены.
Есть такая возможность, но очень всё это долго писать и тестировать.
Я бы взялся за 10000$ :-)) Шутка. Времени на это нет.
время прошедшее лучше всего брать из статусной строки, а будущее уже расчитывать - подобно тому, что мы видим со включеным перекрестием.
но средствами mql тут врятли обойдешься..
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Уважаемые коллеги!
Подскажите, пожалуйста, можно ли средствами MQL узнать координаты курсора мыши в окне котировок?
Заранее благодарен.