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

 
Привет!

Дано: два графика в терминале мт5,например, EURUSD H1,EURUSD H1. Пусть графики имеют номера 1 и 2, соответственно, при нумерации слева - направо.

При размещение "панели" (практически любой) на графике, который, имеет номер 1, после перехода на график 2 и возврате на 1 график, панель минимизируется - сворачивается в левый верхний угол.

В тоже время, если "панель" поместить на график 2, при существующем, естественно, графике 1, то при переходе на 1 график и возврате на график 2, минимизации - сворачивания "панели" в левый верхний угол не происходит :).

Кто может пояснить в чём суть и как с этим бороться? 

Panel-01   Panel-02
Файлы:
 
SEM:

Здравствуйте!

В последней версии (build 2007, 25 Feb 2019) обнаружились два бага:

1)      1) При открытии программы (или смены профиля) на многих графиках (общее количество 41) отображается вечное «Ожидание обновления».

2)      2) При закрытии программы, она полностью не закрывается, по диспетчеру задач видно что программа не закрылась, хотя визуально она уже не отображается.

3)      Спорный баг (на версии за декабрь 2018 года все нормально работало, ошибок не было), может ошибка в индикаторе, при запуске программы или смене профиля, неправильно рассчитывается индикатор, по отрисованным данным видно, что часть данных рассчитана неверно. При повторном применении шаблона или открытии и закрытии свойств индикатора, верно рассчитываются данные.

4)      Почему-то агенты перестали работать в облаке после обновления (аккаунт указан). Пройдено тестов 586, прошло времени 0 часов 0 минут.

Ошибка с отрисовкой графиков, происходит и со стандартными индикаторами, помогает только перезапуск терминала, и принудительное закрытие через диспетчер задач.

В чем может быть ошибка? История по символам загружена.

error

 
SEM:

Ошибка с отрисовкой графиков, происходит и со стандартными индикаторами, помогает только перезапуск терминала, и принудительное закрытие через диспетчер задач.

В чем может быть ошибка? История по символам загружена.


тоже сталкивался. не скажу, что в последней версии, но в предыдущих - точно. в основном в индикаторах, где работаю с объектами (надписи и т.п.) . возможно,это связано c большим числом индикаторных массивов. в среднем, около 40, как "INDICATOR_DATA", так и "INDICATOR_CALCULATIONS". решение тоже было одно - принудительное удаление терминала из списка программ в диспетчере задач. индикаторы, кстати, если память не изменяет, в подобных ситуациях даже после удачной компиляции в терминале не обновлялись. но тут не уверен. проще было из диспетчера задача мт удалить.

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

Использование аналитических объектов - Графики котировок, технический и фундаментальный анализ - MetaTrader 5
Использование аналитических объектов - Графики котировок, технический и фундаментальный анализ - MetaTrader 5
  • www.metatrader5.com
Определение трендов, построение каналов, выявление циклов и уровней поддержки/сопротивления — все эти и многие другие задачи решаются при помощи аналитических объектов. Всего в торговой платформе доступно 46 таких инструментов. Среди них имеются геометрические фигуры, различные каналы, инструменты Ганна, Фибоначчи, Эллиотта и многое другое. В...
 
Ilya Malev:

О таких тонкостях я не в курсе, поскольку раньше плотной разработкой своих ТС на МТ5 в основном не занимался. Как это тейки являются маркетами, что за новость? Тейки это те же лимитные ордера, если они попадают в гэп то должны исполняться по первой котировке, то есть в случае лимитов скользить в плюс. Качественный брокер может позволять это и на реале. Хотя конечно правилом это не назовешь. Но если бы спред за бар везде брался максимальный, то этот выигрыш на лимитах он бы вполне компенсировал.

Наверное, самый быстрый способ посмотреть проскальзывания в Тестере тейков и остального

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Библиотеки: TradePanel_Csharp

fxsaber, 2019.03.05 10:10

Демонстрация

Смотреть столбец SlipPage

В столбце SlipPage показаны проскальзывания на открытии (по лимитнику) и закрытии (по тейку) в пипсах. Отлично видно, как Тестер в режиме по реальным тикам завышает прибыль.

 
В других компиляторах есть такая возможность?
void OnInit()
{
  OnInit2(); // Пропишите внизу OnInit
}

#define OnInit OnInit2
сейчас компилятор выдает
'OnInit2' - function not defined        Test3.mq5       3       3
1 error(s), 0 warning(s)                2       1


А хотелось бы, чтобы выдавал

'OnInit2' - function not defined        Test3.mq5       3       3 Пропишите внизу OnInit
1 error(s), 0 warning(s)                2       1
 
fxsaber:
В других компиляторах есть такая возможность?сейчас компилятор выдает


А хотелось бы, чтобы выдавал

в компиляторах вряд ли, в интерпретаторах скорее всего возможно, в компиляторах обычно применяется статическое связывание указателей на вызовы ф-ций или переменных (вроде так должно звучать? ), т.е. на этапе компиляции будут вычислены все смещения указателей

в Вашем примере все по старинке, #define  и #ifndef ( _DEBUG ? )

 
Igor Makanu:

в компиляторах вряд ли, в интерпретаторах скорее всего возможно, в компиляторах обычно применяется статическое связывание указателей на вызовы ф-ций или переменных (вроде так должно звучать? ), т.е. на этапе компиляции будут вычислены все смещения указателей

в Вашем примере все по старинке, #define  и #ifndef ( _DEBUG ? )

Хотел только, чтобы компилятор сообщение об ошибке дополнял комментарием строки.

 
Vjacheslav Lapaev:

тоже сталкивался. не скажу, что в последней версии, но в предыдущих - точно. в основном в индикаторах, где работаю с объектами (надписи и т.п.) . возможно,это связано c большим числом индикаторных массивов. в среднем, около 40, как "INDICATOR_DATA", так и "INDICATOR_CALCULATIONS". решение тоже было одно - принудительное удаление терминала из списка программ в диспетчере задач. индикаторы, кстати, если память не изменяет, в подобных ситуациях даже после удачной компиляции в терминале не обновлялись. но тут не уверен. проще было из диспетчера задача мт удалить.

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

Спасибо за совет! Жалко конечно, что программа нестабильно работает, в версии за декабрь такой ошибки не было.
 
Ilyas:

Не вникал в представленный код, попробую угадать - проблема в том, что оба EA работают с одним и тем же графическим ресурсом.

это пример использования стандартной библиотеки class CAppDialog

если использовать этот класс, то при переключении чартов панелька всегда вызывается метод Minimize()

я не захотел разбираться, просто написал свой OnClickButtonMinMax(), весьма криво, но работал без проблем, вот выдрал из своего исходника

CAppDialog::OnClickButtonMinMax()
  {
   if(Width()<200) Minimized_state=false;
   if(Minimized_state)
     {
      Minimize();
     }
   else
     {
      Maximize();
      ObjectSet(TS1.Name()+"Label",OBJPROP_BACK,true);
      ObjectSet(TS2.Name()+"Label",OBJPROP_BACK,true);
      ObjectSet(CP.Name()+"Label",OBJPROP_BACK,true);
     }
  }

в классе CAppDialog какой баг еще, после Minimize() и Maximize() изменяется свойство OBJPROP_BACK  класса CCheckBox , и чекбоксы становятся с границей "квадратика", тож в этом коде по быстрому устранил ObjectSet(TS1.Name()+"Label",OBJPROP_BACK,true); ...

 
Vjacheslav Lapaev:
Привет!

Дано: два графика в терминале мт5,например, EURUSD H1,EURUSD H1. Пусть графики имеют номера 1 и 2, соответственно, при нумерации слева - направо.

При размещение "панели" (практически любой) на графике, который, имеет номер 1, после перехода на график 2 и возврате на 1 график, панель минимизируется - сворачивается в левый верхний угол.

В тоже время, если "панель" поместить на график 2, при существующем, естественно, графике 1, то при переходе на 1 график и возврате на график 2, минимизации - сворачивания "панели" в левый верхний угол не происходит :).

Кто может пояснить в чём суть и как с этим бороться?
   

Удалил свой предыдущий ответ

Окно сворачивается, потому что оно не помещается на чарте.
Выйдете из режима "чарт на всё окно терминала", вы увидите реальные размеры чартов.

Для того чтобы избежать сворачивания панели на чарте, нужно увеличить размеры чартов.
После этого можете развернуть чарт на весь терминал и попробуйте переключаться между ними

Причина обращения: