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

 
Почему не правильно отображаются ордера?
Почему не правильно отображаются ордера?
  • 2019.02.27
  • www.mql5.com
Почему то при тестировании эксперта с отложенными ордерами позиции на графике не правильно отображаются. Раньше такого не было...
 
Sergey Dzyublik:
Опять час поиска ошибок в коде проекта привел к "специфике" работы MT5 (build 2049).

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


Каким-то чудом очередь логов выбрасывает запись с номером 395, при этом все записи до и после этого номера выводятся в лог МТ.
Таким образом тест №395 всегда провальный.

Попробовал воспроизвести Ваш кейс. У меня стабильно закусывается запись с номером 198

Спасибо, воспроизвели проблему. Исправление будет в ближайшем или следующем (если не успеем) билде.

 
fxsaber:

Еще раз прошу отключить проскальзывания лимитных ордеров и тейков в Тестере на кастомных символах по реальным тикам.

Сейчас все, кто гонит в Тестере ТС по реальным тикам, где применяются лимитные ордера или тейки, относятся к одной из трех категорий

  • Не ведуют, что их обманывает Тестер.
  • Пофигисты.
  • fxsaber.

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

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

 
Andrey Khatimlianskii:

В третьей категории людей сильно больше.

Круто! Извращаюсь в виде Неттинг+Биржа, иначе Тестер совсем неадекватные результаты показывает.

Тест на кастумной истории с прореженными тиками из-за проскользов показывает совсем нереальные результаты.

Даже без прореживания обман приличный выходит.

 

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

Ошибки, баги, вопросы

Sergey Dzyublik, 2019.05.23 13:52

Испытываем новый подход: из списка неисправленного выбираем самый "приоритетный" для нас и выставляем первым в очереди...

 (не исправлено в MT5(build 2072)) "Ошибка компиляции при повторном использовании одной и той же сигнатуры функции в рамках typedef".
 (исправлено в MT5(build 2072)) "Баг с очередью логов в МТ терминале, предположительно, когда количество сообщений в очереди достигает лимита, происходит перевыделение памяти с перекопированием, однако одно сообщение 395-е теряется."
 (исправлено в MT5(build 2069)) "Ошибка компиляции при передаче в шаблонную функцию параметра (void*)(NULL)"".
 (исправлено в MT5(build 2059)) "Тестер стратегий: запланировано 2 прохода, но на практике бесконечное число проходов > 900шт из-за ошибки "OnInit critical error"".
 (не исправлено в MT5(build 2072)))  "Компилятор не видит дефолтный конструктор копирования класса при возвращении объекта класса по значению из функции".
 (не исправлено в MT5(build 2072))  "Некорректное значение поля размер массива в рамках работы дефолтного оператора присваивания для структур с динамическими массивами".
  и  (исправлено в MT5(build 2059))  "Ошибка компиляции при выполнении type cast "самого в себя" для шаблонных классов и "сложных" структур".
 (не исправлено в MT5(build 2072))  "При работе с typedef использование шаблонной функции с явной специализацией не вызывает генерацию кода этой шаблонной функции".
 (не исправлено в MT5(build 2072))  "Значительная часть функций для работы со строками не работает с NULL символами в строке (например: ShortArrayToString, StringInit, StringFill)".
 (не исправлено в MT5(build 2072))  "Функция StringSetLength работает только в сторону "обрезания" длины строки, но не увеличения".
 (исправлено в MT5(build 2057)) "Тестер стратегий: запуск 750 процессов "metatester64.exe"".
 "Форум www.mql5.com, при правке сообщения с картинкой, предыдущая картинка не заменяется на новую".


Предложения:
 "Предоставить пользователю возможность принудительной генерации/удаления кода для оператора присвоения (конструктор копирования) по умолчанию".
 "Разрешить функции ArrayCopy копировать классы и "сложные" структуры, аналогично тому как структуры предоставляют функционал deep copy для любого типа объекта".
 "Предоставить пользователю функционал для чтения/установки значения Capacity при работе с динамическими массивами"
 "Изменения по улучшению инфографики сервиса "Сигналы""


 
Поиск по сайту полностью сломали.
 
При компиляции этого сприпта
void Func() { return(true); }

void OnStart()
{
  if (Func())
    ;
}


такой лог

'if' - expression of 'void' type is illegal     Test8.mq5       5       3
empty controlled statement found        Test8.mq5       6       5
'return' - 'void' function returns a value      Test8.mq5       1       15
2 error(s), 1 warning(s)                3       2


Выделил две ошибки. Это нормально, что они идут не сверху-вниз исходника?

 
fxsaber:
При компиляции этого сприпта


такой лог


Выделил две ошибки. Это нормально, что они идут не сверху-вниз исходника?

А разве void функция может возвращать значение?

void Func() { return(true); }
 
Alexey Viktorov:

А разве void функция может возвращать значение?

Ошибка сделана специально для примера. Спрашивал о другом.

 
fxsaber:

Выделил две ошибки. Это нормально, что они идут не сверху-вниз исходника?

ну Вы же можете любую функцию описать как в начале кода MQL, так и в конце - сборка при компиляции будет все равно произведена по логике производителя компилятора, что он там и в какой последовательности собирает - один разработчик знает, тут видимо сначала идет сборка main() и по всем вызовам функций из main() идет компиляция функций, потом уже идет все что осталось, где то Илья писал как классы собирает компилятор MQL

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

у нас же компилятор, а не интерпретатор? - в интерпретаторе там, ну примерно, как сверху вниз идет выполнение команд или вернее чтение исходнника машиной


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