В некоторых случаях (один/два пикселя сторону) ChartXYToTimePrice ошибается. Советник для подтверждения
#property strict void OnInit( void ) { ChartSetInteger(0, CHART_EVENT_MOUSE_MOVE, TRUE); return; } void OnChartEvent( const int id, const long& lparam, const double& dparam, const string& sparam ) { if (id == CHARTEVENT_MOUSE_MOVE) { datetime time; double price; int SubWindow; ChartXYToTimePrice(0, (int)lparam, (int)dparam, SubWindow, time, price); Comment(time); } return; }
Результат
Видно, что окно CTRL+D выдает одно значение под курсором, советник - другое. Актуально в обеих платформах.
В некоторых случаях (один/два пикселя сторону) ChartXYToTimePrice ошибается. Советник для подтверждения
Результат
Видно, что окно CTRL+D выдает одно значение под курсором, советник - другое. Актуально в обеих платформах.
Почему этот URL ничего не выдает?
https://www.mql5.com/ru/search#!keyword=chartxytotimeprice
В окне данных "Time" - это время открытия бара над которым сейчас мышка. А время определяемое через ChartXYToTimePrice высчитывается для каждого пикселя над которым проходит мышка. Ошибки нет.
Сами себе противоречите. Из справки
Значение времени на графике, для которого будет получено значение в пикселах на оси X.
В MT5 выдается с точностью до секунд. Но это не повод, чтобы минуты различались (на M1 запущено). Тем более, в MT4, где выдается с точностью до минуты.
Перекрестие в "зоне влияния" бара 16-20
и Перекрестие в "зоне влияния" бара 16-25
Для M5 так и должно быть. А вот для M1 - нет. Попробуйте M1.
Отображение правильное: перекрестие находится в "зоне влияния" бара 16:20 - поэтому в "Окне данных" Вы видите 16:20, в тоже время функция ChartXYToTimePrice рассчитывает точное время для пикселя над которым находится курсор в данное время - и это время равно 16:19:37.
А вот когда курсор будет находится точно посередине бара (по шкале время) функция ChartXYToTimePrice вернёт время 16:20:00.
Отображение правильное: перекрестие находится в "зоне влияния" бара 16:20 - поэтому в "Окне данных" Вы видите 16:20, в тоже время функция ChartXYToTimePrice рассчитывает точное время для пикселя над которым находится курсор в данное время - и это время равно 16:19:37.
А вот когда курсор будет находится точно посередине бара (по шкале время) функция ChartXYToTimePrice вернёт время 16:20:00.
Ну ерунду же говорите. Если курсор находится над 16:19:37, то это автоматически обозначает, что он находится и над баром, который отвечате за интервал 16:19:00 - 16:19:59. Т.е над баром 16:19.
Нет. Не ерунду. Время 16:19:37 на 14 секунд ближе к 16:20:00. Курсор-то на самом деле между барами находится. Таким же способом точки у трендовых линий примагничиваются
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования