Панель в Эксперте и Индикаторе

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vjacheslav Lapaev
1458
Vjacheslav Lapaev  

Для примера использую "стандартный" :) код Панели.

Код панели используется как в индикаторе, так и в эксперте.

Отрисовка Панели в Терминале для обоих вариантов кода происходит без ошибок .

В Тестере, для варианта кода Панели в индикаторе, генерируется ошибка: CAppDialog: find subwindow error

Явного запрета на использование Панелей в индикаторе и Тестере в документации, вроде бы, нет.

Код для индикатора и эксперта отличается лишь наличием функции

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   return(rates_total);
//---
  }

Каких-либо других отличий в коде нет. Кто может пояснить причину появления подобного рода ОШИБКИ? 

Файлы:
Vjacheslav Lapaev
1458
Vjacheslav Lapaev  
Кто подскажет?

Как я понимаю, с проблемой, опубликованной постом выше, надо в сервисдеск "топать"? :)
Alexey Volchanskiy
27272
Alexey Volchanskiy  
Vjacheslav Lapaev:
Кто подскажет?

Как я понимаю, с проблемой, опубликованной постом выше, надо в сервисдеск "топать"? :)

В тестере МТ5 есть какие-то ограничения на использования элементов управления. Попробуйте создать просто кнопку и проверить. Через CButton

Vjacheslav Lapaev
1458
Vjacheslav Lapaev  
Alexey Volchanskiy:

В тестере МТ5 есть какие-то ограничения на использования элементов управления. Попробуйте создать просто кнопку и проверить. Через CButton

до последнего обновления, вроде бы всё работало ... да и эти два файла ... из документации
тут дело даже не в доп. объектах ... сама панель выдает ошибку в тестере

Alexey Volchanskiy
27272
Alexey Volchanskiy  
Vjacheslav Lapaev:

до последнего обновления, вроде бы всё работало ... да и эти два файла ... из документации
тут дело даже не в доп. объектах ... сама панель выдает ошибку в тестере

да, я читал, ошибка поиска подокна

ну пишите в СД

только подробно пишите, с прикладыванием кода, тогда есть большая вероятность ответа

а то есть умельцы, напишут, - ничего не работает, што делать!

а потом хают СД, что им не отвечают

Vjacheslav Lapaev
1458
Vjacheslav Lapaev  
Alexey Volchanskiy:

да, я читал, ошибка поиска подокна

ну пишите в СД

только подробно пишите, с прикладыванием кода, тогда есть большая вероятность ответа

а то есть умельцы, напишут, - ничего не работает, што делать!

а потом хают СД, что им не отвечают

Код для варианта эксперта и индикатора приложен вверху :) ... В общем, суть, код для эксперта в тестере работает, а вот для индикатора - выдает ошибку. Вероятно, запрет. просто не нашёл упоминание о запрете в документации.

Вопрос снят. на нет и суда нет :).

ifinch
22
ifinch  
Vjacheslav Lapaev:

Код для варианта эксперта и индикатора приложен вверху :) ... В общем, суть, код для эксперта в тестере работает, а вот для индикатора - выдает ошибку. Вероятно, запрет. просто не нашёл упоминание о запрете в документации.

Вопрос снят. на нет и суда нет :).

Столкнулся с такой же проблемой. МТ5 тестер стратегий и тестер на маркете выдает одно и тоже.


Тестер

2019.01.21 18:37:59.145 2018.05.02 00:00:00   CAppDialog: find subwindow error

2019.01.21 18:37:59.149 EURUSD,H1) OnInit return code is -1

2019.01.21 18:37:59.149 cannot initialize indicator

2019.01.21 18:37:59.221 MetaTester 5 forced to stop


Маркет

test on EURUSD,H1 (netting)

 test26600 (EURUSD,H1) OnInit return code is -1

 cannot initialize indicator

 disconnected

 disconnected


Дальнейшее ковыряние привело к файлу include/Controls/Dialog.mqh

и функции

bool CAppDialog::CreateIndicator(const int x1,const int y1,const int x2,const int y2)

  {

   int width=m_chart.WidthInPixels();

//--- geometry for the minimized state

   m_min_rect.LeftTop(0,0);

   m_min_rect.Width(width);

   m_min_rect.Height(CONTROLS_DIALOG_MINIMIZE_HEIGHT-2*CONTROLS_BORDER_WIDTH);

//--- determine subwindow

   m_subwin=ChartWindowFind();

   if(m_subwin==-1)

     {

      Print("CAppDialog: find subwindow error");

      m_chart.Detach();

      return(false);

     }


При одних и тех же условиях на МТ4 в Тестере и Маркете все прекрасно проходит, в МТ5 нет. В Dialog.mqh и в функции CreateIndicator я не нашел отличия.

Более того, если в Dialog.mqh после m_subwin=ChartWindowFind() сделать Print(m_subwin), то в тестере и просто в терминале МТ5 мы увидим разные значения. Для МТ5 тестера это -1 что как видно выдает ошибку, в обычном режиме на графике это 0. Т.е. такое ощущение что ChartWindowFind() работает по-разному.

Не нашел как именно обратиться с этим в СД. Может кто показать куда писать?

Спасибо!

Artyom Trishkin
Модератор
53120
Artyom Trishkin  
Vasily Kobylin:

Столкнулся с такой же проблемой. МТ5 тестер стратегий и тестер на маркете выдает одно и тоже.


Тестер

2019.01.21 18:37:59.145 2018.05.02 00:00:00   CAppDialog: find subwindow error

2019.01.21 18:37:59.149 EURUSD,H1) OnInit return code is -1

2019.01.21 18:37:59.149 cannot initialize indicator

2019.01.21 18:37:59.221 MetaTester 5 forced to stop


Маркет

test on EURUSD,H1 (netting)

 test26600 (EURUSD,H1) OnInit return code is -1

 cannot initialize indicator

 disconnected

 disconnected


Дальнейшее ковыряние привело к файлу include/Controls/Dialog.mqh

и функции

bool CAppDialog::CreateIndicator(const int x1,const int y1,const int x2,const int y2)

  {

   int width=m_chart.WidthInPixels();

//--- geometry for the minimized state

   m_min_rect.LeftTop(0,0);

   m_min_rect.Width(width);

   m_min_rect.Height(CONTROLS_DIALOG_MINIMIZE_HEIGHT-2*CONTROLS_BORDER_WIDTH);

//--- determine subwindow

   m_subwin=ChartWindowFind();

   if(m_subwin==-1)

     {

      Print("CAppDialog: find subwindow error");

      m_chart.Detach();

      return(false);

     }


При одних и тех же условиях на МТ4 в Тестере и Маркете все прекрасно проходит, в МТ5 нет. В Dialog.mqh и в функции CreateIndicator я не нашел отличия.

Более того, если в Dialog.mqh после m_subwin=ChartWindowFind() сделать Print(m_subwin), то в тестере и просто в терминале МТ5 мы увидим разные значения. Для МТ5 тестера это -1 что как видно выдает ошибку, в обычном режиме на графике это 0. Т.е. такое ощущение что ChartWindowFind() работает по-разному.

Не нашел как именно обратиться с этим в СД. Может кто показать куда писать?

Спасибо!

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2010.06.02
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий