Скачать MetaTrader 5

ChartXYToTimePrice расчёт времени

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Добавляй наш канал в друзья и следи за новостями!
Vladimir Karputov
Модератор
45954
Vladimir Karputov 2016.03.21 15:22 
В эту тему были перенесены комментарии, не относящиеся к "Ошибки, баги, вопросы".
comp
538
comp 2016.03.21 14:08  

В некоторых случаях (один/два пикселя сторону) 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 выдает одно значение под курсором, советник - другое. Актуально в обеих платформах.

Vladimir Karputov
Модератор
45954
Vladimir Karputov 2016.03.21 14:51  
comp:

В некоторых случаях (один/два пикселя сторону) ChartXYToTimePrice ошибается. Советник для подтверждения

 Результат

 

Видно, что окно CTRL+D выдает одно значение под курсором, советник - другое. Актуально в обеих платформах.

В окне данных "Time" - это время открытия бара над которым сейчас мышка. А время определяемое через ChartXYToTimePrice высчитывается для каждого пикселя над которым проходит мышка. Ошибки нет.
comp
538
comp 2016.03.21 15:01  

Почему этот URL ничего не выдает?

https://www.mql5.com/ru/search#!keyword=chartxytotimeprice 

comp
538
comp 2016.03.21 15:05  
Karputov Vladimir:
В окне данных "Time" - это время открытия бара над которым сейчас мышка. А время определяемое через ChartXYToTimePrice высчитывается для каждого пикселя над которым проходит мышка. Ошибки нет.

Сами себе противоречите. Из справки

 Значение времени на графике, для которого будет получено значение в пикселах на оси X.

В MT5 выдается с точностью до секунд. Но это не повод, чтобы минуты различались (на M1 запущено). Тем более, в MT4, где выдается с точностью до минуты.

Vladimir Karputov
Модератор
45954
Vladimir Karputov 2016.03.21 15:36  

Перекрестие в "зоне влияния" бара 16-20

Перекрестие в "зоне влияния" бара 16-20 

и Перекрестие в "зоне влияния" бара 16-25

Перекрестие в "зоне влияния" бара 16-25 

comp
538
comp 2016.03.21 16:06  
Karputov Vladimir:

Для M5 так и должно быть. А вот для M1 - нет. Попробуйте M1.


Vladimir Karputov
Модератор
45954
Vladimir Karputov 2016.03.21 16:29  
comp:

Для M5 так и должно быть. А вот для M1 - нет. Попробуйте M1.


Отображение правильное: перекрестие находится в "зоне влияния" бара 16:20 - поэтому в "Окне данных" Вы видите 16:20, в тоже время функция ChartXYToTimePrice рассчитывает точное время для пикселя над которым находится курсор в данное время - и это время равно 16:19:37.

А вот когда курсор будет находится точно посередине бара (по шкале время) функция ChartXYToTimePrice вернёт время 16:20:00.

comp
538
comp 2016.03.21 16:57  
Karputov Vladimir:

Отображение правильное: перекрестие находится в "зоне влияния" бара 16:20 - поэтому в "Окне данных" Вы видите 16:20, в тоже время функция ChartXYToTimePrice рассчитывает точное время для пикселя над которым находится курсор в данное время - и это время равно 16:19:37.

А вот когда курсор будет находится точно посередине бара (по шкале время) функция ChartXYToTimePrice вернёт время 16:20:00.

Ну ерунду же говорите. Если курсор находится над 16:19:37, то это автоматически обозначает, что он находится и над баром, который отвечате за интервал 16:19:00 - 16:19:59. Т.е над баром 16:19.
Slawa
Модератор
6841
Slawa 2016.03.21 19:50  
comp:
Ну ерунду же говорите. Если курсор находится над 16:19:37, то это автоматически обозначает, что он находится и над баром, который отвечате за интервал 16:19:00 - 16:19:59. Т.е над баром 16:19.
Нет. Не ерунду. Время 16:19:37 на 14 секунд ближе к 16:20:00. Курсор-то на самом деле между барами находится. Таким же способом точки у трендовых линий примагничиваются
comp
538
comp 2016.03.21 19:55  
Slawa:
Нет. Не ерунду. Время 16:19:37 на 14 секунд ближе к 16:20:00. Курсор-то на самом деле между барами находится. Таким же способом точки у трендовых линий примагничиваются
Ширина каждого бара (в пикселях) является степенью двойки. Разве между ними есть промежутки?
1234
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий