Новая версия платформы MetaTrader 5 build 2980: Push-уведомления о торговых операциях - страница 13

 

beta 2994. 

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

 
Denis Kirichenko:

beta 2994. 

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

В функции это объяснить можно порядком вычисления параметров

А вот в if если несколько условий на нескольких строках, то помню все время возврат был перед продолжением к 1ой строке

 

Пример (код iMACD Intersection Martingale). Пытаемся поставить точки останова:

Запускаем код и сразу точка останова оказывается здесь:



Можно упростить и в OpenSell поставить сразу return:

Было:

//+------------------------------------------------------------------+
//| Open Sell position                                               |
//+------------------------------------------------------------------+
void OpenSell(const int index)
  {
   double sl=0.0;
   double tp=0.0;
   double short_lot=0.0;
   if(SPosition[index].volume>0.0)
      short_lot=SPosition[index].volume;
   else

Стало:

//+------------------------------------------------------------------+
//| Open Sell position                                               |
//+------------------------------------------------------------------+
void OpenSell(const int index)
  {
   return;
   double sl=0.0;
   double tp=0.0;
   double short_lot=0.0;
   if(SPosition[index].volume>0.0)
      short_lot=SPosition[index].volume;
   else


Результат тот-же - точка останова слетает вниз. Более глубокую отладку вообще трудно провести - курсор прыгает куда угодно, только не по порядку.

iMACD Intersection Martingale
iMACD Intersection Martingale
  • www.mql5.com
Стратегия по индикатору iMACD (Moving Average Convergence/Divergence, MACD). Мартингейл
 
Vladimir Karputov:

Более глубокую отладку вообще трудно провести - курсор прыгает куда угодно, только не по порядку.

За год так и не исправилось...

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

 
Vladimir Karputov:

Пример (код iMACD Intersection Martingale). Пытаемся поставить точки останова:

Запускаем код и сразу точка останова оказывается здесь:



Можно упростить и в OpenSell поставить сразу return:

Было:

Стало:


Результат тот-же - точка останова слетает вниз. Более глубокую отладку вообще трудно провести - курсор прыгает куда угодно, только не по порядку.

Перенос точки останова - это последствия частичной оптимизации кода в дебаг режиме.

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

Подумаем над этим.

 
Edgar Akhmadeev:

За год так и не исправилось...

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

Новый профайлер показывает реальность.

После оптимизатора весь ваш код теряет всю логичность, структурность, максимально распространяется через встраивание кусков кода и очень сильно перемешивается.

Поэтому профайлинг релизного кода всегда и безусловно вводит в изумление на любом языке уровня С/C++.

 
MetaQuotes:

Перенос точки останова - это последствия частичной оптимизации кода в дебаг режиме.

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

Подумаем над этим.

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

Какой отладки ... У меня F7-компиляция с 10 - 15 секунд возросла до 1 - 3 минут.  Оптимизация кода отключена в ini-файле. Я уже писал об этом. Сказали, что всё как раз наоборот.
Ну ладно.

 
Artyom Trishkin:

Какой отладки ... У меня F7-компиляция с 10 - 15 секунд возросла до 1 - 3 минут.  Оптимизация кода отключена в ini-файле. Я уже писал об этом. Сказали, что всё как раз наоборот.
Ну ладно.

Запуск под отладчиком.
 

И вот так по кругу. Постоянно. Обновился -- перезапуск -- обновился -- перезапуск -- обно .......


Версия 2998 доступна, но после каждого перезапуска терминала, версия остаётся 2994 и просит перезапустить для обновления