Бета-версия платформы MetaTrader 5 build 1995: Экономический календарь, MQL5-программы в виде сервисов и API для языка R - страница 8

 
Alexey Navoykov:
Но место в коде, где идёт зацикливание, вам же не покажут. Я это имел ввиду под локализацией проблемы.

Это да. Но и мест таких, обычно, не много. Хотя, конечно, было бы удобно, если такие вещи показывали на этапе сборки.

 
Alexey Navoykov:
Но место в коде, где идёт зацикливание, вам же не покажут. Я это имел ввиду под локализацией проблемы.


Видать недавно обновили автотестировщика в маркете (месяц - два назад).

У меня был советник с рекурсивной функцией. Вернее я совсем не заметил, что функция вызывает сама себя через другую функцию :-) 

Так вот на домашнем терминале все работало. Как только хотел обновить в маркете - сразу переполнился стек.  


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

 
Хотелось бы чтобы графики и инструменты из Обзора рынка можно было сортировать не только линейно, а хоть как-то посовременнее.
 
Alexey Kozitsyn:

Это да. Но и мест таких, обычно, не много. Хотя, конечно, было бы удобно, если такие вещи показывали на этапе сборки.

Мест то может и не много, но отыскивать их в коде бывает крайне утомительно.

Я вообще думаю, что надо выдавать даже не предупреждение, а ошибку компиляции. Ведь очевидно, никто не будет умышленно впадать в бесконечную рекурсию.

Это же касается и бесконечных циклов.  Если в цикле отсутствует проверка условий выхода (либо это условие всегда ложно), то это тоже надо считать ошибкой.

 
Баг в Тестере
int OnInit()
{
  Print(AccountInfoInteger(ACCOUNT_CURRENCY_DIGITS)); // 2 - реал, 0 - тестер.
  
  return(INIT_FAILED);
}
 

Вешаю индикатор на чарт кастомного символа. По таймеру из индикатора пробрасываю тик на свой же символ.

Как результат, в Обзоре рынка обновляется тик. Но он не попадает в историю, никак не формирует бары и не вызывает OnCalculate.

Прошу исправить этот баг.

 
Serhii Shevchuk:

Сокет - это окно в мир. Ну или мирок в качестве ПК, где запущен метатрейдер. Связь с чем угодно. Будь это БД, или какой-то аналитический софт, принимающий решения (где реализовано то, что трудоемко реализовать на MQL). Это может быть сервер для связи 100 терминалов (супер-мега-копировщик или типа того, мега-хаб). Да что угодно, на что хватит фантазии.

Но вместе с этим, это огромная дыра.

И поэтому программы с сокетами в маркет не пропустят, то есть опять вещь в себе и для себя :) Так что проще использовать wininet.dll, как более высокоуровневое решение. Или написать dll на C# с использованием WCF, это вообще круть. Тем более, сейчас сделана прямая поддержка C# dll, обертки не нужны.

 
pivalexander:

Ученые мужи, подскажите можно ли в файле проекта *.mqproj задать путь куда компилировать ex5 ?

тут описано подробнее

https://www.mql5.com/ru/forum/303812

Для советников в папку \MQL5\Experts\Shared Projects\имя_проекта, я не копался, вроде поменять нельзя.

 
Alexey Volchanskiy:

И поэтому программы с сокетами в маркет не пропустят, то есть опять вещь в себе и для себя :) Так что проще использовать wininet.dll, как более высокоуровневое решение. Или написать dll на C# с использованием WCF, это вообще круть. Тем более, сейчас сделана прямая поддержка C# dll, обертки не нужны.

Алексей, процитируйте, пожалуйста, выдержку из правил, где сказано, что не пропустят.
 
Serhii Shevchuk:
Алексей, процитируйте, пожалуйста, выдержку из правил, где сказано, что не пропустят.

Только позавчера эти сокеты добавили, не думаю, что уже скорректировали правила. Но тут обсуждали, что в Маркет нельзя с использованием Webrequest. А сокеты это гораздо опаснее, думаю, тоже зарубят. Если что-то поменялось, модераторы меня поправят.

Опасность в том,что можно легко передавать наружу данные о счете пользователя.