ChartTimePriceToXY(0,0,iTime(_Symbol,PERIOD_CURRENT,6),OrderOpenPrice(),x ,y);
Нужно привязать кнопку к цене открытия ордера
Эта функция возвращает на каждом тике разное значение переменной y.
Как можно узнать точную координату по оси y цены открытия
Так не?
ChartTimePriceToXY(0,0,OrderOpenTime(),OrderOpenPrice(),x ,y);
ChartTimePriceToXY(0,0,iTime(_Symbol,PERIOD_CURRENT,6),OrderOpenPrice(),x ,y);
Нужно привязать кнопку к цене открытия ордера
Эта функция возвращает на каждом тике разное значение переменной y.
Как можно узнать точную координату по оси y цены открытия
Почему беспокоит факт изменения значения y? Цена ведь не обязана находиться на одном и том же месте экрана всегда. Она будет изменяться в зависимости от размеров, масштаба и координат графика. Если прокрутить график так, что цена открытия ордера не будет видна, то координаты в пикселях не могут оставаться тем же, что и тогда, когда цена открытия ордера была в видимой части графика.
Почему беспокоит факт изменения значения y? Цена ведь не обязана находиться на одном и том же месте экрана всегда. Она будет изменяться в зависимости от размеров, масштаба и координат графика. Если прокрутить график так, что цена открытия ордера не будет видна, то координаты в пикселях не могут оставаться тем же, что и тогда, когда цена открытия ордера была в видимой части графика.
При одном и том же положении графика (Размер и тд ничего на графике не поменялось он неизменялся). Значение "У" при каждом тике почему то меняется .
При одном и том же положении графика (Размер и тд ничего на графике не поменялось он неизменялся). Значение "У" при каждом тике почему то меняется .
Меняется не всегда, а только при изменении масштаба. Если тики не приводят к изменению масштаба, то и координата 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"
У меня что то не клется посмотрите может увидите ошибку.Код вверху подает две цены из двух ордеров. и возле цены разные значения переменной "y"
Тяжело что-то увидеть через замочную скважину..
Я предоставил Вам полный тестовый код. Его достаточно скопировать и скомпилировать. Вы же мне даете две строчки кода, которые невозможно скомпилировать. Ведь неизвестен даже тип программы, который Вы используете, не говоря уже о том, что такое Price, как оно объявлено, как заполняется. Таким образом, получаем кучу нюансов. И все это нужно угадать?
У меня что то не клется посмотрите может увидите ошибку.Код вверху подает две цены из двух ордеров. и возле цены разные значения переменной "y"
Запустил Вашу программу - выдает то же самое. Именно так себя и должна вести программа с этим кодом.
Если Вы хотели получить другой результат, то зачем Вы в нем сомневались и выводили его на печать? Для другого результата нужен другой код!!!
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
ChartTimePriceToXY(0,0,iTime(_Symbol,PERIOD_CURRENT,6),OrderOpenPrice(),x ,y);
Нужно привязать кнопку к цене открытия ордера
Эта функция возвращает на каждом тике разное значение переменной y.
Как можно узнать точную координату по оси y цены открытия