Ошибки, баги, вопросы - страница 2040

 

Ошибка при компиляции

int f() { return 1; }
void OnStart() export
{
        for   ( int i = f();           ;) {} //(1) нормально
        for   (            ;int i = f();) {} //(2) 'i' - unexpected token
        while (             int i = f() ) {} //(3) 'i' - unexpected token
}
 
Vitaly Muzichenko:

Ожидалось преобразовать координаты в подокне, и получить цену.

Работает в основном окне, в подокнах не работает, что и видно по принтам.

Так-же функция подменяет номер подокна на "0", то есть на главное:

Из справки по функции: X и Y - координаты отсчитываются от левого верхнего угла главного окна графика.

х=5, y=34 относится тоже к главному окну, поэтому на выходе window=0

Попробуй Y увеличить на высоту главного окна, чтобы "очутиться" в другом окне

 
A100:

Ошибка при компиляции

а что, внутри while(...) допустимо объявлять и присваивать вместо проверки условия?
 
Kirill Belousov:

Из справки по функции: X и Y - координаты отсчитываются от левого верхнего угла главного окна графика.

х=5, y=34 относится тоже к главному окну, поэтому на выходе window=0

Попробуй Y увеличить на высоту главного окна, чтобы "очутиться" в другом окне

Это совсем не ответ, и не выход.

Указываем номер подокна, а это может быть и 3 и 4, как тогда указывать координаты?

В функции явная ошибка.

 
Vitaly Muzichenko:

Это совсем не ответ, и не выход.

Указываем номер подокна, а это может быть и 3 и 4, как тогда указывать координаты?

В функции явная ошибка.

Номер подокна не мы указываем, а нам сообщает функция (это выходной параметр, а не входной) - в каком подокне чарта с указанным ID находится ценовой график и сообщается какая цена и время соответствуют заданным нами координатам X,Y на том графике.
 
Kirill Belousov:
а что, внутри while(...) допустимо объявлять и присваивать вместо проверки условия?

Пусть разработчики проверят. С++ компилирует, хотя в устаревших компиляторах строка (2) [но не (3)] может вызывать ошибку

 
Kirill Belousov:
Номер подокна не мы указываем, а нам сообщает функция (это выходной параметр, а не входной) - в каком подокне чарта с указанным ID находится ценовой график и сообщается какая цена и время соответствуют заданным нами координатам X,Y на том графике.

Это понятно, передача параметра по ссыкле. Но вопрос открыт: почему функция не видит, в каком номере подокна установлен индикатор, и не берёт с него данные?

 
Vitaly Muzichenko:

Это понятно, передача параметра по ссыкле. Но вопрос открыт: почему функция не видит, в каком номере подокна установлен индикатор, и не берёт с него данные?

CHART_HEIGHT_IN_PIXELS
 
fxsaber:
CHART_HEIGHT_IN_PIXELS

Это целая история с расчётами, если индикаторов в подокнах несколько, но всё-равно спасибо за уделённое время.

 
Vitaly Muzichenko:

Это целая история с расчётами, если индикаторов в подокнах несколько, но всё-равно спасибо за уделённое время.

https://www.mql5.com/ru/docs/chart_operations/chartwindowfind

Документация по MQL5: Операции с графиками / ChartWindowFind
Документация по MQL5: Операции с графиками / ChartWindowFind
  • www.mql5.com
1. Функция ищет на указанном графике подокно с указанным "коротким именем" индикатора (короткое имя выводится слева вверху подокна) и в случае удачи возвращает номер подокна. Не следует путать короткое имя индикатора и имя файла, которое указывается при создании индикатора функциями iCustom() и IndicatorCreate(). Если короткое наименование...