Разный результат при тех же параметрах функции ChartTimePriceToXY

 

 ChartTimePriceToXY(0,0,iTime(_Symbol,PERIOD_CURRENT,6),OrderOpenPrice(),x ,y);

Нужно привязать кнопку к цене открытия ордера

Эта функция возвращает на каждом тике разное значение переменной y.

Как можно узнать точную координату по оси y цены открытия 

 
Igor Petrov:

 ChartTimePriceToXY(0,0,iTime(_Symbol,PERIOD_CURRENT,6),OrderOpenPrice(),x ,y);

Нужно привязать кнопку к цене открытия ордера

Эта функция возвращает на каждом тике разное значение переменной y.

Как можно узнать точную координату по оси y цены открытия 

Так не?

ChartTimePriceToXY(0,0,OrderOpenTime(),OrderOpenPrice(),x ,y);
 
Igor Petrov:

 ChartTimePriceToXY(0,0,iTime(_Symbol,PERIOD_CURRENT,6),OrderOpenPrice(),x ,y);

Нужно привязать кнопку к цене открытия ордера

Эта функция возвращает на каждом тике разное значение переменной y.

Как можно узнать точную координату по оси y цены открытия 

Почему беспокоит факт изменения значения y? Цена ведь не обязана находиться на одном и том же месте экрана всегда. Она будет изменяться в зависимости от размеров, масштаба и координат графика. Если прокрутить график так, что цена открытия ордера не будет видна, то координаты в пикселях не могут оставаться тем же, что и тогда, когда цена открытия ордера была в видимой части графика.

 
Vitaly Muzichenko #:

Так не?

Время регулируеться поэтому оно берется от другого значения.

 
Ihor Herasko #:

Почему беспокоит факт изменения значения y? Цена ведь не обязана находиться на одном и том же месте экрана всегда. Она будет изменяться в зависимости от размеров, масштаба и координат графика. Если прокрутить график так, что цена открытия ордера не будет видна, то координаты в пикселях не могут оставаться тем же, что и тогда, когда цена открытия ордера была в видимой части графика.

При одном и том же положении графика (Размер и тд ничего на графике не поменялось он неизменялся). Значение "У" при каждом тике почему то меняется . 

 
Igor Petrov #:

При одном и том же положении графика (Размер и тд ничего на графике не поменялось он неизменялся). Значение "У" при каждом тике почему то меняется . 

попробуйте зафиксировать масштаб графика в настройках

если проблема исчезнет, это и станет ответом на Ваш вопрос

 
Igor Petrov #:

При одном и том же положении графика (Размер и тд ничего на графике не поменялось он неизменялся). Значение "У" при каждом тике почему то меняется . 

Меняется не всегда, а только при изменении масштаба. Если тики не приводят к изменению масштаба, то и координата Y останется неизменной:

Код:

void OnTick()
{
   int nX = 0, nY = 0;
   double fTrackedPrice = 1.3821;
   ChartTimePriceToXY(0, 0, iTime(_Symbol,PERIOD_CURRENT,6), fTrackedPrice, nX, nY);   
   Print("fTrackedPrice: ", DoubleToString(fTrackedPrice, Digits()), ", Y: ", nY);
}
 
ChartTimePriceToXY(0,0,iTime(_Symbol,PERIOD_CURRENT,6),NormalizeDouble(Price,_Digits),x ,y);
  Print(__FUNCTION__,"                    y   ==    ",y," цена ", NormalizeDouble(Price,_Digits));
 

У меня что то не клется посмотрите может увидите ошибку.Код вверху подает две цены из двух ордеров. и возле цены разные значения переменной "y"   

 
Igor Petrov #:

У меня что то не клется посмотрите может увидите ошибку.Код вверху подает две цены из двух ордеров. и возле цены разные значения переменной "y"  

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

Я предоставил Вам полный тестовый код. Его достаточно скопировать и скомпилировать. Вы же мне даете две строчки кода, которые невозможно скомпилировать. Ведь неизвестен даже тип программы, который Вы используете, не говоря уже о том, что такое Price, как оно объявлено, как заполняется. Таким образом, получаем кучу нюансов. И все это нужно угадать?

 
Igor Petrov #:

У меня что то не клется посмотрите может увидите ошибку.Код вверху подает две цены из двух ордеров. и возле цены разные значения переменной "y"  

Запустил Вашу программу - выдает то же самое. Именно так себя и должна вести программа с этим кодом.

Если Вы хотели получить другой результат, то зачем Вы в нем сомневались и выводили его на печать? Для другого результата нужен другой код!!!

 
Или это курсовой проект ?
Причина обращения: